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

Commit f77d2e6b authored by Sungsoo Lim's avatar Sungsoo Lim
Browse files

Use MediaRouteButton in MediaControlView2Impl

Show cast button using MediaRouteButton instead of a fake
image button in MediaControlView2Impl.

Test: manually using VideoViewTest
Change-Id: Ibe2f0d1e93de9d54b5e4ec3a554eb506995e87d4
parent 6766e9d3
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v3h2L3,5h18v14h-7v2h7c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM1,18v3h3c0,-1.66 -1.34,-3 -3,-3zM1,14v2c2.76,0 5,2.24 5,5h2c0,-3.87 -3.13,-7 -7,-7zM1,10v2c4.97,0 9,4.03 9,9h2c0,-6.08 -4.93,-11 -11,-11z"
        android:fillColor="#FFFFFF"/>
</vector>
+2 −3
Original line number Diff line number Diff line
@@ -49,11 +49,10 @@
            android:text="North by Northwest"
            android:textColor="#FFFFFFFF" />

        <ImageButton
            android:id="@+id/cast"
        <view class="com.android.support.mediarouter.app.MediaRouteButton" android:id="@+id/cast"
            android:layout_alignParentEnd="true"
            android:layout_centerVertical="true"
            style="@style/TitleBarButton.MediaRouteButton"/>
            style="@style/TitleBarButton" />

    </RelativeLayout>

+0 −5
Original line number Diff line number Diff line
@@ -34,11 +34,6 @@
        <item name="android:layout_margin">10dp</item>
    </style>

    <style name="TitleBarButton.MediaRouteButton">
        <item name="android:src">@drawable/ic_cast</item>
    </style>


    <style name="BottomBarButton">
        <item name="android:background">@null</item>
        <item name="android:layout_width">24dp</item>
+18 −1
Original line number Diff line number Diff line
@@ -20,10 +20,13 @@ import android.content.Context;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.content.res.XmlResourceParser;
import android.util.AttributeSet;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;

import com.android.support.mediarouter.app.MediaRouteButton;

public class ApiHelper {
    private static ApiHelper sInstance;
    private final Resources mLibResources;
@@ -55,7 +58,21 @@ public class ApiHelper {
    public static LayoutInflater getLayoutInflater(Context context) {
        LayoutInflater layoutInflater = LayoutInflater.from(context).cloneInContext(
                new ContextThemeWrapper(context, getLibTheme()));
        // TODO: call layoutInflater.setFactory2()
        layoutInflater.setFactory2(new LayoutInflater.Factory2() {
            @Override
            public View onCreateView(
                    View parent, String name, Context context, AttributeSet attrs) {
                if (MediaRouteButton.class.getCanonicalName().equals(name)) {
                    return new MediaRouteButton(context, attrs);
                }
                return null;
            }

            @Override
            public View onCreateView(String name, Context context, AttributeSet attrs) {
                return onCreateView(null, name, context, attrs);
            }
        });
        return layoutInflater;
    }

+11 −5
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.drawable.AnimationDrawable;
@@ -36,6 +37,7 @@ import android.util.SparseArray;
import android.view.SoundEffectConstants;
import android.view.View;

import com.android.media.update.ApiHelper;
import com.android.media.update.R;
import com.android.support.mediarouter.media.MediaRouteSelector;
import com.android.support.mediarouter.media.MediaRouter;
@@ -128,8 +130,11 @@ public class MediaRouteButton extends View {
        mRouter = MediaRouter.getInstance(context);
        mCallback = new MediaRouterCallback();

        TypedArray a = context.obtainStyledAttributes(attrs,
        Resources.Theme theme = ApiHelper.getLibResources().newTheme();
        theme.applyStyle(MediaRouterThemeHelper.getRouterThemeId(context), true);
        TypedArray a = theme.obtainStyledAttributes(attrs,
                R.styleable.MediaRouteButton, defStyleAttr, 0);

        mButtonTint = a.getColorStateList(R.styleable.MediaRouteButton_mediaRouteButtonTint);
        mMinWidth = a.getDimensionPixelSize(
                R.styleable.MediaRouteButton_android_minWidth, 0);
@@ -290,8 +295,9 @@ public class MediaRouteButton extends View {
     * button when the button is long pressed.
     */
    void setCheatSheetEnabled(boolean enable) {
        TooltipCompat.setTooltipText(this,
                enable ? getContext().getString(R.string.mr_button_content_description) : null);
        TooltipCompat.setTooltipText(this, enable
                ? ApiHelper.getLibResources().getString(R.string.mr_button_content_description)
                : null);
    }

    @Override
@@ -533,7 +539,7 @@ public class MediaRouteButton extends View {
        } else {
            resId = R.string.mr_cast_button_disconnected;
        }
        setContentDescription(getContext().getString(resId));
        setContentDescription(ApiHelper.getLibResources().getString(resId));
    }

    private final class MediaRouterCallback extends MediaRouter.Callback {
@@ -590,7 +596,7 @@ public class MediaRouteButton extends View {

        @Override
        protected Drawable doInBackground(Void... params) {
            return getContext().getResources().getDrawable(mResId);
            return ApiHelper.getLibResources().getDrawable(mResId);
        }

        @Override
Loading