Java tutorial
/* * Copyright (C) 2014 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 cat.terrones.devops.radiofx.ui; import android.app.Fragment; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.FragmentActivity; import android.support.v4.content.ContextCompat; import android.support.v4.media.MediaMetadataCompat; import android.support.v4.media.session.MediaControllerCompat; import android.support.v4.media.session.PlaybackStateCompat; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; //FIX!! //import com.example.android.uamp.AlbumArtCache; //import com.example.android.uamp.MusicService; //import com.example.android.uamp.R; //import com.example.android.uamp.utils.LogHelper; /** * A class that shows the Media Queue to the user. */ public class PlaybackControlsFragment extends Fragment { // private static final String TAG = LogHelper.makeLogTag(PlaybackControlsFragment.class); // // private ImageButton mPlayPause; // private TextView mTitle; // private TextView mSubtitle; // private TextView mExtraInfo; // private ImageView mAlbumArt; // private String mArtUrl; // // Receive callbacks from the MediaController. Here we update our state such as which queue // // is being shown, the current title and description and the PlaybackState. // private final MediaControllerCompat.Callback mCallback = new MediaControllerCompat.Callback() { // @Override // public void onPlaybackStateChanged(@NonNull PlaybackStateCompat state) { // LogHelper.d(TAG, "Received playback state change to state ", state.getState()); // PlaybackControlsFragment.this.onPlaybackStateChanged(state); // } // // @Override // public void onMetadataChanged(MediaMetadataCompat metadata) { // if (metadata == null) { // return; // } // LogHelper.d(TAG, "Received metadata state change to mediaId=", // metadata.getDescription().getMediaId(), // " song=", metadata.getDescription().getTitle()); // PlaybackControlsFragment.this.onMetadataChanged(metadata); // } // }; // // @Override // public View onCreateView(LayoutInflater inflater, ViewGroup container, // Bundle savedInstanceState) { // View rootView = inflater.inflate(R.layout.fragment_playback_controls, container, false); // // mPlayPause = (ImageButton) rootView.findViewById(R.id.play_pause); // mPlayPause.setEnabled(true); // mPlayPause.setOnClickListener(mButtonListener); // // mTitle = (TextView) rootView.findViewById(R.id.title); // mSubtitle = (TextView) rootView.findViewById(R.id.artist); // mExtraInfo = (TextView) rootView.findViewById(R.id.extra_info); // mAlbumArt = (ImageView) rootView.findViewById(R.id.album_art); // rootView.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // Intent intent = new Intent(getActivity(), FullScreenPlayerActivity.class); // intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); // MediaControllerCompat controller = ((FragmentActivity) getActivity()) // .getSupportMediaController(); // MediaMetadataCompat metadata = controller.getMetadata(); // if (metadata != null) { // intent.putExtra(MusicPlayerActivity.EXTRA_CURRENT_MEDIA_DESCRIPTION, // metadata.getDescription()); // } // startActivity(intent); // } // }); // return rootView; // } // // @Override // public void onStart() { // super.onStart(); // LogHelper.d(TAG, "fragment.onStart"); // MediaControllerCompat controller = ((FragmentActivity) getActivity()) // .getSupportMediaController(); // if (controller != null) { // onConnected(); // } // } // // @Override // public void onStop() { // super.onStop(); // LogHelper.d(TAG, "fragment.onStop"); // MediaControllerCompat controller = ((FragmentActivity) getActivity()) // .getSupportMediaController(); // if (controller != null) { // controller.unregisterCallback(mCallback); // } // } // // public void onConnected() { // MediaControllerCompat controller = ((FragmentActivity) getActivity()) // .getSupportMediaController(); // LogHelper.d(TAG, "onConnected, mediaController==null? ", controller == null); // if (controller != null) { // onMetadataChanged(controller.getMetadata()); // onPlaybackStateChanged(controller.getPlaybackState()); // controller.registerCallback(mCallback); // } // } // // private void onMetadataChanged(MediaMetadataCompat metadata) { // LogHelper.d(TAG, "onMetadataChanged ", metadata); // if (getActivity() == null) { // LogHelper.w(TAG, "onMetadataChanged called when getActivity null," + // "this should not happen if the callback was properly unregistered. Ignoring."); // return; // } // if (metadata == null) { // return; // } // // mTitle.setText(metadata.getDescription().getTitle()); // mSubtitle.setText(metadata.getDescription().getSubtitle()); // String artUrl = null; // if (metadata.getDescription().getIconUri() != null) { // artUrl = metadata.getDescription().getIconUri().toString(); // } // if (!TextUtils.equals(artUrl, mArtUrl)) { // mArtUrl = artUrl; // Bitmap art = metadata.getDescription().getIconBitmap(); // AlbumArtCache cache = AlbumArtCache.getInstance(); // if (art == null) { // art = cache.getIconImage(mArtUrl); // } // if (art != null) { // mAlbumArt.setImageBitmap(art); // } else { // cache.fetch(artUrl, new AlbumArtCache.FetchListener() { // @Override // public void onFetched(String artUrl, Bitmap bitmap, Bitmap icon) { // if (icon != null) { // LogHelper.d(TAG, "album art icon of w=", icon.getWidth(), // " h=", icon.getHeight()); // if (isAdded()) { // mAlbumArt.setImageBitmap(icon); // } // } // } // } // ); // } // } // } // // public void setExtraInfo(String extraInfo) { // if (extraInfo == null) { // mExtraInfo.setVisibility(View.GONE); // } else { // mExtraInfo.setText(extraInfo); // mExtraInfo.setVisibility(View.VISIBLE); // } // } // // private void onPlaybackStateChanged(PlaybackStateCompat state) { // LogHelper.d(TAG, "onPlaybackStateChanged ", state); // if (getActivity() == null) { // LogHelper.w(TAG, "onPlaybackStateChanged called when getActivity null," + // "this should not happen if the callback was properly unregistered. Ignoring."); // return; // } // if (state == null) { // return; // } // boolean enablePlay = false; // switch (state.getState()) { // case PlaybackStateCompat.STATE_PAUSED: // case PlaybackStateCompat.STATE_STOPPED: // enablePlay = true; // break; // case PlaybackStateCompat.STATE_ERROR: // LogHelper.e(TAG, "error playbackstate: ", state.getErrorMessage()); // Toast.makeText(getActivity(), state.getErrorMessage(), Toast.LENGTH_LONG).show(); // break; // } // // if (enablePlay) { // mPlayPause.setImageDrawable( // ContextCompat.getDrawable(getActivity(), R.drawable.ic_play_arrow_black_36dp)); // } else { // mPlayPause.setImageDrawable( // ContextCompat.getDrawable(getActivity(), R.drawable.ic_pause_black_36dp)); // } // // MediaControllerCompat controller = ((FragmentActivity) getActivity()) // .getSupportMediaController(); // String extraInfo = null; // if (controller != null && controller.getExtras() != null) { // String castName = controller.getExtras().getString(MusicService.EXTRA_CONNECTED_CAST); // if (castName != null) { // extraInfo = getResources().getString(R.string.casting_to_device, castName); // } // } // setExtraInfo(extraInfo); // } // // private final View.OnClickListener mButtonListener = new View.OnClickListener() { // @Override // public void onClick(View v) { // MediaControllerCompat controller = ((FragmentActivity) getActivity()) // .getSupportMediaController(); // PlaybackStateCompat stateObj = controller.getPlaybackState(); // final int state = stateObj == null ? // PlaybackStateCompat.STATE_NONE : stateObj.getState(); // LogHelper.d(TAG, "Button pressed, in state " + state); // switch (v.getId()) { // case R.id.play_pause: // LogHelper.d(TAG, "Play button pressed, in state " + state); // if (state == PlaybackStateCompat.STATE_PAUSED || // state == PlaybackStateCompat.STATE_STOPPED || // state == PlaybackStateCompat.STATE_NONE) { // playMedia(); // } else if (state == PlaybackStateCompat.STATE_PLAYING || // state == PlaybackStateCompat.STATE_BUFFERING || // state == PlaybackStateCompat.STATE_CONNECTING) { // pauseMedia(); // } // break; // } // } // }; // // private void playMedia() { // MediaControllerCompat controller = ((FragmentActivity) getActivity()) // .getSupportMediaController(); // if (controller != null) { // controller.getTransportControls().play(); // } // } // // private void pauseMedia() { // MediaControllerCompat controller = ((FragmentActivity) getActivity()) // .getSupportMediaController(); // if (controller != null) { // controller.getTransportControls().pause(); // } // } }