From: David A. Velasco Date: Tue, 12 Mar 2013 13:36:31 +0000 (+0100) Subject: Update image of play/pause button when audio playback starts X-Git-Tag: oc-android-1.4.3~39^2~15 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/ce7f7fa48c5cce2070a8e42ec19d1954a18db090?ds=inline Update image of play/pause button when audio playback starts --- diff --git a/src/com/owncloud/android/media/MediaService.java b/src/com/owncloud/android/media/MediaService.java index e6365166..f8e70fe7 100644 --- a/src/com/owncloud/android/media/MediaService.java +++ b/src/com/owncloud/android/media/MediaService.java @@ -133,7 +133,7 @@ public class MediaService extends Service implements OnCompletionListener, OnPre private IBinder mBinder; /** Control panel shown to the user to control the playback, to register through binding */ - private MediaController mMediaController; + private MediaControlView mMediaController; @@ -481,9 +481,6 @@ public class MediaService extends Service implements OnCompletionListener, OnPre /** Called when media player is done playing current song. */ public void onCompletion(MediaPlayer player) { - if (mMediaController != null) { - mMediaController.hide(); - } Toast.makeText(this, String.format(getString(R.string.media_event_done, mFile.getFileName())), Toast.LENGTH_LONG).show(); processStopRequest(true); return; @@ -503,7 +500,7 @@ public class MediaService extends Service implements OnCompletionListener, OnPre } configAndStartMediaPlayer(); if (mMediaController != null) { - mMediaController.show(MEDIA_CONTROL_PERMANENT); + mMediaController.updatePausePlay(); } } @@ -576,10 +573,6 @@ public class MediaService extends Service implements OnCompletionListener, OnPre public boolean onError(MediaPlayer mp, int what, int extra) { Log.e(TAG, "Error in audio playback, what = " + what + ", extra = " + extra); - if (mMediaController != null) { - mMediaController.hide(); - } - String message = getMessageForMediaError(this, what, extra); Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show(); @@ -680,15 +673,11 @@ public class MediaService extends Service implements OnCompletionListener, OnPre } - protected void setMediaContoller(MediaController mediaController) { - if (mMediaController != null) { - mMediaController.hide(); - } + protected void setMediaContoller(MediaControlView mediaController) { mMediaController = mediaController; - } - protected MediaController getMediaController() { + protected MediaControlView getMediaController() { return mMediaController; } diff --git a/src/com/owncloud/android/media/MediaServiceBinder.java b/src/com/owncloud/android/media/MediaServiceBinder.java index 514f65d4..40404063 100644 --- a/src/com/owncloud/android/media/MediaServiceBinder.java +++ b/src/com/owncloud/android/media/MediaServiceBinder.java @@ -170,11 +170,11 @@ public class MediaServiceBinder extends Binder implements MediaController.MediaP } - public void registerMediaController(MediaController mediaController) { + public void registerMediaController(MediaControlView mediaController) { mService.setMediaContoller(mediaController); } - public void unregisterMediaController(MediaController mediaController) { + public void unregisterMediaController(MediaControlView mediaController) { if (mediaController != null && mediaController == mService.getMediaController()) { mService.setMediaContoller(null); } diff --git a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java index 0ee824d2..e8b897c6 100644 --- a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java +++ b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java @@ -39,15 +39,12 @@ import android.accounts.AccountManager; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.ServiceConnection; import android.net.Uri; import android.os.Bundle; import android.os.Handler; -import android.os.IBinder; import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.LayoutInflater; @@ -58,7 +55,6 @@ import android.webkit.MimeTypeMap; import android.widget.Button; import android.widget.CheckBox; import android.widget.ImageView; -import android.widget.MediaController; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; @@ -73,8 +69,6 @@ import com.owncloud.android.files.services.FileObserverService; import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; -import com.owncloud.android.media.MediaService; -import com.owncloud.android.media.MediaServiceBinder; import com.owncloud.android.network.OwnCloudClientUtils; import com.owncloud.android.operations.OnRemoteOperationListener; import com.owncloud.android.operations.RemoteOperation; @@ -86,7 +80,6 @@ import com.owncloud.android.operations.SynchronizeFileOperation; import com.owncloud.android.ui.activity.ConflictsResolveActivity; import com.owncloud.android.ui.activity.FileDetailActivity; import com.owncloud.android.ui.activity.FileDisplayActivity; -import com.owncloud.android.ui.activity.PreviewVideoActivity; import com.owncloud.android.ui.dialog.EditNameDialog; import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener; import com.owncloud.android.utils.OwnCloudVersion; @@ -119,17 +112,12 @@ public class FileDetailFragment extends SherlockFragment implements private Account mAccount; private FileDataStorageManager mStorageManager; - //private DownloadFinishReceiver mDownloadFinishReceiver; private UploadFinishReceiver mUploadFinishReceiver; public ProgressListener mProgressListener; private Handler mHandler; private RemoteOperation mLastRemoteOperation; - private MediaServiceBinder mMediaServiceBinder = null; - private MediaController mMediaController = null; - private MediaServiceConnection mMediaServiceConnection = null; - private static final String TAG = FileDetailFragment.class.getSimpleName(); public static final String FTAG = "FileDetails"; public static final String FTAG_CONFIRMATION = "REMOVE_CONFIRMATION_FRAGMENT"; @@ -244,23 +232,12 @@ public class FileDetailFragment extends SherlockFragment implements @Override public void onStart() { super.onStart(); - if (mFile != null && mFile.isAudio()) { - bindMediaService(); - } listenForTransferProgress(); } @Override public void onResume() { super.onResume(); - - /* - mDownloadFinishReceiver = new DownloadFinishReceiver(); - IntentFilter filter = new IntentFilter( - FileDownloader.DOWNLOAD_FINISH_MESSAGE); - getActivity().registerReceiver(mDownloadFinishReceiver, filter); - */ - mUploadFinishReceiver = new UploadFinishReceiver(); IntentFilter filter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE); getActivity().registerReceiver(mUploadFinishReceiver, filter); @@ -271,14 +248,6 @@ public class FileDetailFragment extends SherlockFragment implements @Override public void onPause() { super.onPause(); - - /* - if (mDownloadFinishReceiver != null) { - getActivity().unregisterReceiver(mDownloadFinishReceiver); - mDownloadFinishReceiver = null; - } - */ - if (mUploadFinishReceiver != null) { getActivity().unregisterReceiver(mUploadFinishReceiver); mUploadFinishReceiver = null; @@ -289,18 +258,6 @@ public class FileDetailFragment extends SherlockFragment implements @Override public void onStop() { super.onStop(); - if (mMediaServiceConnection != null) { - Log.d(TAG, "Unbinding from MediaService ..."); - if (mMediaServiceBinder != null && mMediaController != null) { - mMediaServiceBinder.unregisterMediaController(mMediaController); - } - getActivity().unbindService(mMediaServiceConnection); - mMediaServiceBinder = null; - if (mMediaController != null) { - mMediaController.hide(); - mMediaController = null; - } - } leaveTransferProgress(); } @@ -410,71 +367,6 @@ public class FileDetailFragment extends SherlockFragment implements } - private void startVideoActivity() { - Intent i = new Intent(getActivity(), PreviewVideoActivity.class); - i.putExtra(PreviewVideoActivity.EXTRA_FILE, mFile); - i.putExtra(PreviewVideoActivity.EXTRA_ACCOUNT, mAccount); - startActivity(i); - } - - - private void bindMediaService() { - Log.d(TAG, "Binding to MediaService..."); - if (mMediaServiceConnection == null) { - mMediaServiceConnection = new MediaServiceConnection(); - } - getActivity().bindService( new Intent(getActivity(), - MediaService.class), - mMediaServiceConnection, - Context.BIND_AUTO_CREATE); - // follow the flow in MediaServiceConnection#onServiceConnected(...) - } - - /** Defines callbacks for service binding, passed to bindService() */ - private class MediaServiceConnection implements ServiceConnection { - - @Override - public void onServiceConnected(ComponentName component, IBinder service) { - if (component.equals(new ComponentName(getActivity(), MediaService.class))) { - Log.d(TAG, "Media service connected"); - mMediaServiceBinder = (MediaServiceBinder) service; - if (mMediaServiceBinder != null) { - if (mMediaController == null) { - mMediaController = new MediaController(getSherlockActivity()); - } - prepareMediaController(); - - Log.d(TAG, "Successfully bound to MediaService, MediaController ready"); - - } else { - Log.e(TAG, "Unexpected response from MediaService while binding"); - } - } - } - - private void prepareMediaController() { - mMediaServiceBinder.registerMediaController(mMediaController); - mMediaController.setMediaPlayer(mMediaServiceBinder); - mMediaController.setAnchorView(getView()); - mMediaController.setEnabled(mMediaServiceBinder.isInPlaybackState()); - } - - @Override - public void onServiceDisconnected(ComponentName component) { - if (component.equals(new ComponentName(getActivity(), MediaService.class))) { - Log.e(TAG, "Media service suddenly disconnected"); - if (mMediaController != null) { - mMediaController.hide(); - mMediaController.setMediaPlayer(null); - mMediaController = null; - } - mMediaServiceBinder = null; - mMediaServiceConnection = null; - } - } - } - - /** * Opens mFile. */ diff --git a/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java b/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java index cee0c609..a1e5fa31 100644 --- a/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java +++ b/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java @@ -47,7 +47,6 @@ import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.webkit.MimeTypeMap; import android.widget.ImageView; -import android.widget.MediaController; import android.widget.Toast; import android.widget.VideoView; @@ -67,7 +66,6 @@ import com.owncloud.android.operations.RemoteOperationResult; import com.owncloud.android.operations.RemoveFileOperation; import com.owncloud.android.ui.activity.FileDetailActivity; import com.owncloud.android.ui.activity.FileDisplayActivity; -import com.owncloud.android.ui.activity.TransferServiceGetter; import com.owncloud.android.ui.fragment.ConfirmationDialogFragment; import com.owncloud.android.ui.fragment.FileDetailFragment; import com.owncloud.android.ui.fragment.FileFragment; @@ -105,7 +103,6 @@ public class PreviewMediaFragment extends SherlockFragment implements private RemoteOperation mLastRemoteOperation; private MediaServiceBinder mMediaServiceBinder = null; - //private MediaController mMediaController = null; private MediaControlView mMediaController = null; private MediaServiceConnection mMediaServiceConnection = null; private VideoHelper mVideoHelper; @@ -171,7 +168,6 @@ public class PreviewMediaFragment extends SherlockFragment implements mMediaController = (MediaControlView)mView.findViewById(R.id.media_controller); - //updateFileDetails(false); return mView; } @@ -334,8 +330,6 @@ public class PreviewMediaFragment extends SherlockFragment implements // load the video file in the video player ; when done, VideoHelper#onPrepared() will be called mVideoPreview.setVideoPath(mFile.getStoragePath()); - - //mVideoPreview.setMediaController(mMediaController); } @@ -354,7 +348,6 @@ public class PreviewMediaFragment extends SherlockFragment implements mVideoPreview.start(); mMediaController.setEnabled(true); mMediaController.updatePausePlay(); - //mMediaController.show(MediaService.MEDIA_CONTROL_SHORT_LIFE); } @@ -382,12 +375,6 @@ public class PreviewMediaFragment extends SherlockFragment implements public boolean onError(MediaPlayer mp, int what, int extra) { Log.e(TAG, "Error in video playback, what = " + what + ", extra = " + extra); - /* - if (mMediaController != null) { - mMediaController.hide(); - } - */ - if (mVideoPreview.getWindowToken() != null) { String message = MediaService.getMessageForMediaError(getActivity(), what, extra); new AlertDialog.Builder(getActivity()) @@ -426,17 +413,11 @@ public class PreviewMediaFragment extends SherlockFragment implements if (mMediaServiceConnection != null) { Log.d(TAG, "Unbinding from MediaService ..."); if (mMediaServiceBinder != null && mMediaController != null) { - //mMediaServiceBinder.unregisterMediaController(mMediaController); + mMediaServiceBinder.unregisterMediaController(mMediaController); } getActivity().unbindService(mMediaServiceConnection); mMediaServiceConnection = null; mMediaServiceBinder = null; - /* - if (mMediaController != null) { - mMediaController.hide(); - mMediaController = null; - } - */ } } @@ -482,18 +463,8 @@ public class PreviewMediaFragment extends SherlockFragment implements } else { if (!mMediaServiceBinder.isPlaying()) { mMediaServiceBinder.start(); + mMediaController.updatePausePlay(); } - /* - if (!mMediaController.isShowing() && isVisible()) { - //mMediaController.show(MediaService.MEDIA_CONTROL_PERMANENT); - // TODO - fix strange bug; steps to trigger : - // 1. remove the "isVisible()" control - // 2. start the app and preview an audio file - // 3. exit from the app (home button, for instance) while the audio file is still being played - // 4. go to notification bar and click on the "ownCloud music app" notification - // PUM! - } - */ } } @@ -519,11 +490,6 @@ public class PreviewMediaFragment extends SherlockFragment implements Log.d(TAG, "Media service connected"); mMediaServiceBinder = (MediaServiceBinder) service; if (mMediaServiceBinder != null) { - /* - if (mMediaController == null) { - mMediaController = new MediaController(getSherlockActivity()); - } - */ prepareMediaController(); playAudio(); // do not wait for the touch of nobody to play audio @@ -534,9 +500,9 @@ public class PreviewMediaFragment extends SherlockFragment implements } } } - + private void prepareMediaController() { - //mMediaServiceBinder.registerMediaController(mMediaController); + mMediaServiceBinder.registerMediaController(mMediaController); if (mMediaController != null) { mMediaController.setMediaPlayer(mMediaServiceBinder); mMediaController.setEnabled(true); @@ -549,9 +515,7 @@ public class PreviewMediaFragment extends SherlockFragment implements if (component.equals(new ComponentName(getActivity(), MediaService.class))) { Log.e(TAG, "Media service suddenly disconnected"); if (mMediaController != null) { - //mMediaController.hide(); mMediaController.setMediaPlayer(null); - //mMediaController = null; } else { Toast.makeText(getActivity(), "No media controller to release when disconnected from media service", Toast.LENGTH_SHORT).show(); } @@ -748,9 +712,6 @@ public class PreviewMediaFragment extends SherlockFragment implements } private void stopPreview(boolean stopAudio) { - if (mMediaController != null) { - //mMediaController.hide(); - } if (mFile.isAudio() && stopAudio) { mMediaServiceBinder.pause();