diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2011-09-14 09:05:36 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-14 09:05:36 -0700 |
commit | e83f771f0ab8e1e72e1fd2147085223ac8a00ba2 (patch) | |
tree | 62442357c460e9b2069cbb82ae8a48639cea896f /media | |
parent | d8c82516dd664d3d7617d19bd1f8530f1d922957 (diff) | |
parent | 6e920e6dac11c3ebf6c0c19402934834e9e491bf (diff) | |
download | frameworks_base-e83f771f0ab8e1e72e1fd2147085223ac8a00ba2.zip frameworks_base-e83f771f0ab8e1e72e1fd2147085223ac8a00ba2.tar.gz frameworks_base-e83f771f0ab8e1e72e1fd2147085223ac8a00ba2.tar.bz2 |
Merge "Bug 5300223 RemoteControlClient uses PendingIntent"
Diffstat (limited to 'media')
-rw-r--r-- | media/java/android/media/RemoteControlClient.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/media/java/android/media/RemoteControlClient.java b/media/java/android/media/RemoteControlClient.java index daa25e0..f66f1b0 100644 --- a/media/java/android/media/RemoteControlClient.java +++ b/media/java/android/media/RemoteControlClient.java @@ -16,7 +16,9 @@ package android.media; +import android.app.PendingIntent; import android.content.ComponentName; +import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; @@ -203,6 +205,8 @@ public class RemoteControlClient public final static int FLAG_INFORMATION_REQUEST_ALBUM_ART = 1 << 3; /** + * @hide + * TODO remove after modifying known (internal) media apps using this API * Class constructor. * @param mediaButtonEventReceiver The receiver for the media button events. It needs to have * been registered with {@link AudioManager#registerMediaButtonEventReceiver(ComponentName)} @@ -226,6 +230,8 @@ public class RemoteControlClient } /** + * @hide + * TODO remove after modifying known (internal) media apps using this API * Class constructor for a remote control client whose internal event handling * happens on a user-provided Looper. * @param mediaButtonEventReceiver The receiver for the media button events. It needs to have @@ -242,6 +248,56 @@ public class RemoteControlClient mEventHandler = new EventHandler(this, looper); } + /** + * Class constructor. + * @param mediaButtonIntent The intent that will be sent for the media button events sent + * by remote controls. + * This intent needs to have been constructed with the {@link Intent#ACTION_MEDIA_BUTTON} + * action, and have a component that will handle the intent (set with + * {@link Intent#setComponent(ComponentName)}) registered with + * {@link AudioManager#registerMediaButtonEventReceiver(ComponentName)} + * before this new RemoteControlClient can itself be registered with + * {@link AudioManager#registerRemoteControlClient(RemoteControlClient)}. + * @see AudioManager#registerMediaButtonEventReceiver(ComponentName) + * @see AudioManager#registerRemoteControlClient(RemoteControlClient) + */ + public RemoteControlClient(PendingIntent mediaButtonIntent) { + // TODO implement using PendingIntent instead of ComponentName + mRcEventReceiver = null; + + Looper looper; + if ((looper = Looper.myLooper()) != null) { + mEventHandler = new EventHandler(this, looper); + } else if ((looper = Looper.getMainLooper()) != null) { + mEventHandler = new EventHandler(this, looper); + } else { + mEventHandler = null; + Log.e(TAG, "RemoteControlClient() couldn't find main application thread"); + } + } + + /** + * Class constructor for a remote control client whose internal event handling + * happens on a user-provided Looper. + * @param mediaButtonIntent The intent that will be sent for the media button events sent + * by remote controls. + * This intent needs to have been constructed with the {@link Intent#ACTION_MEDIA_BUTTON} + * action, and have a component that will handle the intent (set with + * {@link Intent#setComponent(ComponentName)}) registered with + * {@link AudioManager#registerMediaButtonEventReceiver(ComponentName)} + * before this new RemoteControlClient can itself be registered with + * {@link AudioManager#registerRemoteControlClient(RemoteControlClient)}. + * @param looper The Looper running the event loop. + * @see AudioManager#registerMediaButtonEventReceiver(ComponentName) + * @see AudioManager#registerRemoteControlClient(RemoteControlClient) + */ + public RemoteControlClient(PendingIntent mediaButtonIntent, Looper looper) { + // TODO implement using PendingIntent instead of ComponentName + mRcEventReceiver = null; + + mEventHandler = new EventHandler(this, looper); + } + private static final int[] METADATA_KEYS_TYPE_STRING = { MediaMetadataRetriever.METADATA_KEY_ALBUM, MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST, |