| /* |
| * Copyright 2017 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.example.android.mediasession.ui; |
| |
| import android.os.Bundle; |
| import android.support.annotation.Nullable; |
| import android.support.v4.media.MediaMetadataCompat; |
| import android.support.v4.media.session.MediaControllerCompat; |
| import android.support.v4.media.session.PlaybackStateCompat; |
| import android.support.v7.app.AppCompatActivity; |
| import android.view.View; |
| import android.widget.Button; |
| import android.widget.ImageView; |
| import android.widget.TextView; |
| |
| import com.example.android.mediasession.R; |
| import com.example.android.mediasession.client.MediaBrowserAdapter; |
| import com.example.android.mediasession.service.contentcatalogs.MusicLibrary; |
| |
| public class MainActivity extends AppCompatActivity { |
| |
| private ImageView mAlbumArt; |
| private TextView mTitleTextView; |
| private TextView mArtistTextView; |
| private ImageView mMediaControlsImage; |
| private MediaSeekBar mSeekBarAudio; |
| |
| private MediaBrowserAdapter mMediaBrowserAdapter; |
| |
| private boolean mIsPlaying; |
| |
| @Override |
| protected void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| setContentView(R.layout.activity_main); |
| initializeUI(); |
| mMediaBrowserAdapter = new MediaBrowserAdapter(this); |
| mMediaBrowserAdapter.addListener(new MediaBrowserListener()); |
| } |
| |
| private void initializeUI() { |
| mTitleTextView = (TextView) findViewById(R.id.song_title); |
| mArtistTextView = (TextView) findViewById(R.id.song_artist); |
| mAlbumArt = (ImageView) findViewById(R.id.album_art); |
| mMediaControlsImage = (ImageView) findViewById(R.id.media_controls); |
| mSeekBarAudio = (MediaSeekBar) findViewById(R.id.seekbar_audio); |
| |
| final Button buttonPrevious = (Button) findViewById(R.id.button_previous); |
| buttonPrevious.setOnClickListener(new View.OnClickListener() { |
| @Override |
| public void onClick(View v) { |
| mMediaBrowserAdapter.getTransportControls().skipToPrevious(); |
| } |
| }); |
| |
| final Button buttonPlay = (Button) findViewById(R.id.button_play); |
| buttonPlay.setOnClickListener(new View.OnClickListener() { |
| @Override |
| public void onClick(View v) { |
| if (mIsPlaying) { |
| mMediaBrowserAdapter.getTransportControls().pause(); |
| } else { |
| mMediaBrowserAdapter.getTransportControls().play(); |
| } |
| } |
| }); |
| |
| final Button buttonNext = (Button) findViewById(R.id.button_next); |
| buttonNext.setOnClickListener(new View.OnClickListener() { |
| @Override |
| public void onClick(View v) { |
| mMediaBrowserAdapter.getTransportControls().skipToNext(); |
| } |
| }); |
| } |
| |
| @Override |
| public void onStart() { |
| super.onStart(); |
| mMediaBrowserAdapter.onStart(); |
| } |
| |
| @Override |
| public void onStop() { |
| super.onStop(); |
| mSeekBarAudio.disconnectController(); |
| mMediaBrowserAdapter.onStop(); |
| } |
| |
| private class MediaBrowserListener extends MediaBrowserAdapter.MediaBrowserChangeListener { |
| |
| @Override |
| public void onConnected(@Nullable MediaControllerCompat mediaController) { |
| super.onConnected(mediaController); |
| mSeekBarAudio.setMediaController(mediaController); |
| } |
| |
| @Override |
| public void onPlaybackStateChanged(PlaybackStateCompat playbackState) { |
| mIsPlaying = playbackState != null && |
| playbackState.getState() == PlaybackStateCompat.STATE_PLAYING; |
| mMediaControlsImage.setPressed(mIsPlaying); |
| } |
| |
| @Override |
| public void onMetadataChanged(MediaMetadataCompat mediaMetadata) { |
| if (mediaMetadata == null) { |
| return; |
| } |
| mTitleTextView.setText( |
| mediaMetadata.getString(MediaMetadataCompat.METADATA_KEY_TITLE)); |
| mArtistTextView.setText( |
| mediaMetadata.getString(MediaMetadataCompat.METADATA_KEY_ARTIST)); |
| mAlbumArt.setImageBitmap(MusicLibrary.getAlbumBitmap( |
| MainActivity.this, |
| mediaMetadata.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID))); |
| } |
| } |
| } |