diff options
author | Adam Powell <adamp@google.com> | 2012-06-12 12:04:24 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-06-12 12:04:24 -0700 |
commit | 579ec3086c9ce3616735bc3cf63246f052973a7f (patch) | |
tree | ebc1f2f7a6f5894a6f4dec682253d7aae695de6e | |
parent | ceb8067920043a430478be386c56c244355d4c9f (diff) | |
parent | b35c445f34e1a18e17aef3e3dfbc1c39b4d1815c (diff) | |
download | frameworks_base-579ec3086c9ce3616735bc3cf63246f052973a7f.zip frameworks_base-579ec3086c9ce3616735bc3cf63246f052973a7f.tar.gz frameworks_base-579ec3086c9ce3616735bc3cf63246f052973a7f.tar.bz2 |
Merge "MediaRouter work" into jb-dev
-rw-r--r-- | api/current.txt | 2 | ||||
-rw-r--r-- | core/java/android/app/MediaRouteActionProvider.java | 11 | ||||
-rw-r--r-- | core/java/android/app/MediaRouteButton.java | 7 | ||||
-rw-r--r-- | media/java/android/media/MediaRouter.java | 26 |
4 files changed, 34 insertions, 12 deletions
diff --git a/api/current.txt b/api/current.txt index dcf4bf2..55c9e28 100644 --- a/api/current.txt +++ b/api/current.txt @@ -3679,6 +3679,7 @@ package android.app { public class MediaRouteActionProvider extends android.view.ActionProvider { ctor public MediaRouteActionProvider(android.content.Context); method public android.view.View onCreateActionView(); + method public void setExtendedSettingsClickListener(android.view.View.OnClickListener); method public void setRouteTypes(int); } @@ -3687,6 +3688,7 @@ package android.app { ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet); ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet, int); method public int getRouteTypes(); + method public void setExtendedSettingsClickListener(android.view.View.OnClickListener); method public void setRouteTypes(int); } diff --git a/core/java/android/app/MediaRouteActionProvider.java b/core/java/android/app/MediaRouteActionProvider.java index 7764ac6..5fe08ec 100644 --- a/core/java/android/app/MediaRouteActionProvider.java +++ b/core/java/android/app/MediaRouteActionProvider.java @@ -33,11 +33,12 @@ public class MediaRouteActionProvider extends ActionProvider { private MediaRouteButton mView; private int mRouteTypes; private final RouterCallback mRouterCallback = new RouterCallback(); + private View.OnClickListener mExtendedSettingsListener; public MediaRouteActionProvider(Context context) { super(context); mContext = context; - mRouter = (MediaRouter)context.getSystemService(Context.MEDIA_ROUTER_SERVICE); + mRouter = (MediaRouter) context.getSystemService(Context.MEDIA_ROUTER_SERVICE); // Start with live audio by default. // TODO Update this when new route types are added; segment by API level @@ -76,6 +77,7 @@ public class MediaRouteActionProvider extends ActionProvider { mView = new MediaRouteButton(mContext); mMenuItem.setVisible(mRouter.getRouteCount() > 1); mView.setRouteTypes(mRouteTypes); + mView.setExtendedSettingsClickListener(mExtendedSettingsListener); return mView; } @@ -85,6 +87,13 @@ public class MediaRouteActionProvider extends ActionProvider { return true; } + public void setExtendedSettingsClickListener(View.OnClickListener listener) { + mExtendedSettingsListener = listener; + if (mView != null) { + mView.setExtendedSettingsClickListener(listener); + } + } + private class RouterCallback extends MediaRouter.SimpleCallback { @Override public void onRouteAdded(MediaRouter router, RouteInfo info) { diff --git a/core/java/android/app/MediaRouteButton.java b/core/java/android/app/MediaRouteButton.java index 8f9379a..385241c 100644 --- a/core/java/android/app/MediaRouteButton.java +++ b/core/java/android/app/MediaRouteButton.java @@ -43,6 +43,8 @@ public class MediaRouteButton extends View { private int mMinWidth; private int mMinHeight; + private OnClickListener mExtendedSettingsClickListener; + private static final int[] ACTIVATED_STATE_SET = { R.attr.state_activated }; @@ -260,6 +262,11 @@ public class MediaRouteButton extends View { mRemoteIndicator.draw(canvas); } + public void setExtendedSettingsClickListener(OnClickListener listener) { + // TODO: if dialog is already open, propagate so that it updates live. + mExtendedSettingsClickListener = listener; + } + private class MediaRouteCallback extends MediaRouter.SimpleCallback { @Override public void onRouteSelected(MediaRouter router, int type, RouteInfo info) { diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java index 7c74f0a..38fe363 100644 --- a/media/java/android/media/MediaRouter.java +++ b/media/java/android/media/MediaRouter.java @@ -45,21 +45,21 @@ public class MediaRouter { private static final String TAG = "MediaRouter"; static class Static { - private final Resources mResources; - private final AudioManager mAudioManager; - private final Handler mHandler; - private final ArrayList<CallbackInfo> mCallbacks = new ArrayList<CallbackInfo>(); + final Resources mResources; + final AudioManager mAudioManager; + final Handler mHandler; + final ArrayList<CallbackInfo> mCallbacks = new ArrayList<CallbackInfo>(); - private final ArrayList<RouteInfo> mRoutes = new ArrayList<RouteInfo>(); - private final ArrayList<RouteCategory> mCategories = new ArrayList<RouteCategory>(); + final ArrayList<RouteInfo> mRoutes = new ArrayList<RouteInfo>(); + final ArrayList<RouteCategory> mCategories = new ArrayList<RouteCategory>(); - private final RouteCategory mSystemCategory; - private final HeadphoneChangedBroadcastReceiver mHeadphoneChangedReceiver; + final RouteCategory mSystemCategory; + final HeadphoneChangedBroadcastReceiver mHeadphoneChangedReceiver; - private RouteInfo mDefaultAudio; - private RouteInfo mBluetoothA2dpRoute; + RouteInfo mDefaultAudio; + RouteInfo mBluetoothA2dpRoute; - private RouteInfo mSelectedRoute; + RouteInfo mSelectedRoute; Static(Context appContext) { mResources = Resources.getSystem(); @@ -78,7 +78,10 @@ public class MediaRouter { speakerFilter.addAction(Intent.ACTION_HDMI_AUDIO_PLUG); mHeadphoneChangedReceiver = new HeadphoneChangedBroadcastReceiver(); appContext.registerReceiver(mHeadphoneChangedReceiver, speakerFilter); + } + // Called after sStatic is initialized + void initDefaultRoutes() { mDefaultAudio = new RouteInfo(mSystemCategory); mDefaultAudio.mName = mResources.getText( com.android.internal.R.string.default_audio_route_name); @@ -130,6 +133,7 @@ public class MediaRouter { synchronized (Static.class) { if (sStatic == null) { sStatic = new Static(context.getApplicationContext()); + sStatic.initDefaultRoutes(); } } } |