Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 579ec308 authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "MediaRouter work" into jb-dev

parents ceb80679 b35c445f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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);
  }
+10 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ 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);
@@ -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) {
+7 −0
Original line number Diff line number Diff line
@@ -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) {
+15 −11
Original line number Diff line number Diff line
@@ -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();
            }
        }
    }