OSDN Git Service

Rename some methods to confirm to our naming standards.
authorMarco Nelissen <marcone@google.com>
Tue, 5 May 2009 21:36:25 +0000 (14:36 -0700)
committerMarco Nelissen <marcone@google.com>
Tue, 5 May 2009 21:36:25 +0000 (14:36 -0700)
Make it so that when a content-uri is passed in a VIEW intent, it doesn't play in one-shot mode,
but can play in the background as if it was started from the music app itself.

src/com/android/music/IMediaPlaybackService.aidl
src/com/android/music/MediaPlaybackActivity.java
src/com/android/music/MediaPlaybackService.java
src/com/android/music/StreamStarter.java

index 5698cc5..1d27057 100644 (file)
@@ -21,8 +21,8 @@ import android.graphics.Bitmap;
 
 interface IMediaPlaybackService
 {
-    void openfile(String path);
-    void openfileAsync(String path);
+    void openFile(String path, boolean oneShot);
+    void openFileAsync(String path);
     void open(in int [] list, int position);
     int getQueuePosition();
     boolean isPlaying();
index 1f7b404..7d50084 100644 (file)
@@ -21,11 +21,14 @@ import android.app.AlertDialog;
 import android.app.SearchManager;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.ServiceConnection;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.media.AudioManager;
 import android.media.MediaFile;
@@ -65,7 +68,7 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
     
     private boolean mOneShot = false;
     private boolean mSeeking = false;
-    private boolean mTrackball;
+    private boolean mDeviceHasNoDpad;
     private long mStartSeekPos = 0;
     private long mLastSeekEventTime;
     private IMediaPlaybackService mService = null;
@@ -78,7 +81,6 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
     private Worker mAlbumArtWorker;
     private AlbumArtHandler mAlbumArtHandler;
     private Toast mToast;
-    private boolean mRelaunchAfterConfigChange;
     private int mTouchSlop;
 
     public MediaPlaybackActivity()
@@ -129,8 +131,8 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
         mNextButton.setRepeatListener(mFfwdListener, 260);
         seekmethod = 1;
 
-        mTrackball = true; /* (See bug 1044348) (getResources().getConfiguration().navigation =
-            Resources.Configuration.NAVIGATION_TRACKBALL);*/
+        mDeviceHasNoDpad = (getResources().getConfiguration().navigation !
+            Configuration.NAVIGATION_DPAD);
         
         mQueueButton = (ImageButton) findViewById(R.id.curplaylist);
         mQueueButton.setOnClickListener(mQueueListener);
@@ -146,7 +148,6 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
         mProgress.setMax(1000);
         
         if (icicle != null) {
-            mRelaunchAfterConfigChange = icicle.getBoolean("configchange");
             mOneShot = icicle.getBoolean("oneshot");
         } else {
             mOneShot = getIntent().getBooleanExtra("oneshot", false);
@@ -444,7 +445,6 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
 
     @Override
     public void onSaveInstanceState(Bundle outState) {
-        outState.putBoolean("configchange", getChangingConfigurations() != 0);
         outState.putBoolean("oneshot", mOneShot);
         super.onSaveInstanceState(outState);
     }
@@ -710,7 +710,7 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
             switch(keyCode)
             {
                 case KeyEvent.KEYCODE_DPAD_LEFT:
-                    if (mTrackball) {
+                    if (mDeviceHasNoDpad) {
                         break;
                     }
                     if (mService != null) {
@@ -731,7 +731,7 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
                     mPosOverride = -1;
                     return true;
                 case KeyEvent.KEYCODE_DPAD_RIGHT:
-                    if (mTrackball) {
+                    if (mDeviceHasNoDpad) {
                         break;
                     }
                     if (mService != null) {
@@ -789,7 +789,7 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
                 return true;
 
             case KeyEvent.KEYCODE_DPAD_LEFT:
-                if (mTrackball) {
+                if (mDeviceHasNoDpad) {
                     break;
                 }
                 if (!mPrevButton.hasFocus()) {
@@ -798,7 +798,7 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
                 scanBackward(repcnt, event.getEventTime() - event.getDownTime());
                 return true;
             case KeyEvent.KEYCODE_DPAD_RIGHT:
-                if (mTrackball) {
+                if (mDeviceHasNoDpad) {
                     break;
                 }
                 if (!mNextButton.hasFocus()) {
@@ -988,12 +988,14 @@ public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs,
                 filename = uri.toString();
             }
             try {
-                mOneShot = true;
-                if (! mRelaunchAfterConfigChange) {
-                    mService.stop();
-                    mService.openfile(filename);
-                    mService.play();
+                if (! ContentResolver.SCHEME_CONTENT.equals(scheme) ||
+                        ! MediaStore.AUTHORITY.equals(uri.getAuthority())) {
+                    mOneShot = true;
                 }
+                mService.stop();
+                mService.openFile(filename, mOneShot);
+                mService.play();
+                setIntent(new Intent());
             } catch (Exception ex) {
                 Log.d("MediaPlaybackActivity", "couldn't start playback: " + ex);
             }
index deedf27..663da57 100644 (file)
@@ -1734,13 +1734,13 @@ public class MediaPlaybackService extends Service {
 
     private final IMediaPlaybackService.Stub mBinder = new IMediaPlaybackService.Stub()
     {
-        public void openfileAsync(String path)
+        public void openFileAsync(String path)
         {
             MediaPlaybackService.this.openAsync(path);
         }
-        public void openfile(String path)
+        public void openFile(String path, boolean oneShot)
         {
-            MediaPlaybackService.this.open(path, true);
+            MediaPlaybackService.this.open(path, oneShot);
         }
         public void open(int [] list, int position) {
             MediaPlaybackService.this.open(list, position);
index 0537bad..dc18c41 100644 (file)
@@ -58,7 +58,7 @@ public class StreamStarter extends Activity
                     IntentFilter f = new IntentFilter();
                     f.addAction(MediaPlaybackService.ASYNC_OPEN_COMPLETE);
                     registerReceiver(mStatusListener, new IntentFilter(f));
-                    MusicUtils.sService.openfileAsync(getIntent().getData().toString());
+                    MusicUtils.sService.openFileAsync(getIntent().getData().toString());
                 } catch (RemoteException ex) {
                 }
             }