Stop audio playback in background when a video preview is started
authorDavid A. Velasco <dvelasco@solidgear.es>
Thu, 7 Mar 2013 16:07:58 +0000 (17:07 +0100)
committerDavid A. Velasco <dvelasco@solidgear.es>
Thu, 7 Mar 2013 16:07:58 +0000 (17:07 +0100)
src/com/owncloud/android/media/MediaService.java
src/com/owncloud/android/ui/preview/PreviewMediaFragment.java

index 5f4e1ac..e636516 100644 (file)
@@ -62,7 +62,8 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
     private static final String MY_PACKAGE = MediaService.class.getPackage() != null ? MediaService.class.getPackage().getName() : "com.owncloud.android.media";
     
     /// Intent actions that we are prepared to handle
-    public static final String ACTION_PLAY_FILE = MY_PACKAGE + ".android.media.action.PLAY_FILE";
+    public static final String ACTION_PLAY_FILE = MY_PACKAGE + ".action.PLAY_FILE";
+    public static final String ACTION_STOP_ALL = MY_PACKAGE + ".action.STOP_ALL";
 
     /// Keys to add extras to the action
     public static final String EXTRA_FILE = MY_PACKAGE + ".extra.FILE";
@@ -231,6 +232,9 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
         String action = intent.getAction();
         if (action.equals(ACTION_PLAY_FILE)) { 
             processPlayFileRequest(intent);
+            
+        } else if (action.equals(ACTION_STOP_ALL)) {
+            processStopRequest(true);
         }
 
         return START_NOT_STICKY; // don't want it to restart in case it's killed.
index 512becd..d427bfd 100644 (file)
@@ -70,8 +70,6 @@ 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;
-import com.owncloud.android.ui.fragment.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
-import com.owncloud.android.ui.fragment.FileFragment.ContainerActivity;
 
 import com.owncloud.android.R;
 import eu.alefzero.webdav.WebdavClient;
@@ -246,12 +244,20 @@ public class PreviewMediaFragment extends SherlockFragment implements
                bindMediaService();
                
            } else if (mFile.isVideo()) {
+               stopAudio();
                playVideo(); 
            }
         }
     }
     
     
+    private void stopAudio() {
+        Intent i = new Intent(getSherlockActivity(), MediaService.class);
+        i.setAction(MediaService.ACTION_STOP_ALL);
+        getSherlockActivity().startService(i);
+    }
+
+
     /**
      * {@inheritDoc}
      */