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

Commit 96234aa6 authored by Jin Seok Park's avatar Jin Seok Park
Browse files

Update MediaControlView2Impl

This CL does the following 5 things:

1) REMOVE setPrevNextListener API
2) REMOVE show/hideSubtitle API
3) EXPOSE Command related strings as public
4) CHANGE time parameter in show(timeout) from integer to long
5) CHANGE setButtonVisibility(visible) parameter from boolean to int

All changes are based on API review.

Test: build
Change-Id: If10a1849487fedf019383d2ab9cc2adc64df0608
parent 9e69820b
Loading
Loading
Loading
Loading
+34 −50
Original line number Diff line number Diff line
@@ -49,10 +49,6 @@ public class MediaControlView2Impl implements MediaControlView2Provider {
    private final MediaControlView2 mInstance;
    private final ViewProvider mSuperProvider;

    static final String COMMAND_SHOW_SUBTITLE = "showSubtitle";
    static final String COMMAND_HIDE_SUBTITLE = "hideSubtitle";
    static final String COMMAND_SET_FULLSCREEN = "setFullscreen";

    static final String ARGUMENT_KEY_FULLSCREEN = "fullScreen";

    static final String KEY_STATE_CONTAINS_SUBTITLE = "StateContainsSubtitle";
@@ -85,7 +81,6 @@ public class MediaControlView2Impl implements MediaControlView2Provider {
    private boolean mSubtitleIsEnabled;
    private boolean mContainsSubtitle;
    private boolean mSeekAvailable;
    private View.OnClickListener mNextListener, mPrevListener;
    private ImageButton mPlayPauseButton;
    private ImageButton mFfwdButton;
    private ImageButton mRewButton;
@@ -144,7 +139,7 @@ public class MediaControlView2Impl implements MediaControlView2Provider {
    }

    @Override
    public void show_impl(int timeout) {
    public void show_impl(long timeout) {
        if (!mShowing) {
            setProgress();
            if (mPlayPauseButton != null) {
@@ -186,92 +181,65 @@ public class MediaControlView2Impl implements MediaControlView2Provider {
    }

    @Override
    public void showSubtitle_impl() {
        mController.sendCommand(COMMAND_SHOW_SUBTITLE, null, null);
    }

    @Override
    public void hideSubtitle_impl() {
        mController.sendCommand(COMMAND_HIDE_SUBTITLE, null, null);
    }

    @Override
    public void setPrevNextListeners_impl(View.OnClickListener next, View.OnClickListener prev) {
        mNextListener = next;
        mPrevListener = prev;

        if (mNextButton != null) {
            mNextButton.setOnClickListener(mNextListener);
            mNextButton.setEnabled(mNextListener != null);
            mNextButton.setVisibility(View.VISIBLE);
        }
        if (mPrevButton != null) {
            mPrevButton.setOnClickListener(mPrevListener);
            mPrevButton.setEnabled(mPrevListener != null);
            mPrevButton.setVisibility(View.VISIBLE);
        }
    }

    @Override
    public void setButtonVisibility_impl(int button, boolean visible) {
    public void setButtonVisibility_impl(int button, int visibility) {
        switch (button) {
            case MediaControlView2.BUTTON_PLAY_PAUSE:
                if (mPlayPauseButton != null && canPause()) {
                    mPlayPauseButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mPlayPauseButton.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_FFWD:
                if (mFfwdButton != null && canSeekForward()) {
                    mFfwdButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mFfwdButton.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_REW:
                if (mRewButton != null && canSeekBackward()) {
                    mRewButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mRewButton.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_NEXT:
                // TODO: this button is not visible unless its listener is manually set. Should this
                // function still be provided?
                if (mNextButton != null) {
                    mNextButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mNextButton.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_PREV:
                // TODO: this button is not visible unless its listener is manually set. Should this
                // function still be provided?
                if (mPrevButton != null) {
                    mPrevButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mPrevButton.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_SUBTITLE:
                if (mSubtitleButton != null && mContainsSubtitle) {
                    mSubtitleButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mSubtitleButton.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_FULL_SCREEN:
                if (mFullScreenButton != null) {
                    mFullScreenButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mFullScreenButton.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_OVERFLOW:
                if (mOverflowButtonRight != null) {
                    mOverflowButtonRight.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mOverflowButtonRight.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_MUTE:
                if (mMuteButton != null) {
                    mMuteButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mMuteButton.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_ASPECT_RATIO:
                if (mAspectRationButton != null) {
                    mAspectRationButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mAspectRationButton.setVisibility(visibility);
                }
                break;
            case MediaControlView2.BUTTON_SETTINGS:
                if (mSettingsButton != null) {
                    mSettingsButton.setVisibility((visible) ? View.VISIBLE : View.GONE);
                    mSettingsButton.setVisibility(visibility);
                }
                break;
            default:
@@ -426,11 +394,11 @@ public class MediaControlView2Impl implements MediaControlView2Provider {
        }
        mNextButton = v.findViewById(R.id.next);
        if (mNextButton != null) {
            mNextButton.setVisibility(View.GONE);
            mNextButton.setOnClickListener(mNextListener);
        }
        mPrevButton = v.findViewById(R.id.prev);
        if (mPrevButton != null) {
            mPrevButton.setVisibility(View.GONE);
            mPrevButton.setOnClickListener(mPrevListener);
        }

        mBasicControls = v.findViewById(R.id.basic_controls);
@@ -693,6 +661,22 @@ public class MediaControlView2Impl implements MediaControlView2Provider {
        }
    };

    private final View.OnClickListener mNextListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mControls.skipToNext();
            mInstance.show(DEFAULT_TIMEOUT_MS);
        }
    };

    private final View.OnClickListener mPrevListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mControls.skipToPrevious();
            mInstance.show(DEFAULT_TIMEOUT_MS);
        }
    };

    private final View.OnClickListener mSubtitleListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
@@ -700,13 +684,13 @@ public class MediaControlView2Impl implements MediaControlView2Provider {
                mSubtitleButton.setImageDrawable(
                        ApiHelper.getLibResources().getDrawable(
                                R.drawable.ic_media_subtitle_enabled, null));
                mInstance.showSubtitle();
                mController.sendCommand(MediaControlView2.COMMAND_SHOW_SUBTITLE, null, null);
                mSubtitleIsEnabled = true;
            } else {
                mSubtitleButton.setImageDrawable(
                        ApiHelper.getLibResources().getDrawable(
                                R.drawable.ic_media_subtitle_disabled, null));
                mInstance.hideSubtitle();
                mController.sendCommand(MediaControlView2.COMMAND_HIDE_SUBTITLE, null, null);
                mSubtitleIsEnabled = false;
            }
            mInstance.show(DEFAULT_TIMEOUT_MS);
@@ -728,7 +712,7 @@ public class MediaControlView2Impl implements MediaControlView2Provider {
            }
            Bundle args = new Bundle();
            args.putBoolean(ARGUMENT_KEY_FULLSCREEN, isEnteringFullScreen);
            mController.sendCommand(COMMAND_SET_FULLSCREEN, args, null);
            mController.sendCommand(MediaControlView2.COMMAND_SET_FULLSCREEN, args, null);

            mIsFullScreen = isEnteringFullScreen;
            mInstance.show(DEFAULT_TIMEOUT_MS);
+3 −3
Original line number Diff line number Diff line
@@ -897,13 +897,13 @@ public class VideoView2Impl implements VideoView2Provider, VideoViewInterface.Su
                mRouteSessionCallback.onCommand(command, args, receiver);
            } else {
                switch (command) {
                    case MediaControlView2Impl.COMMAND_SHOW_SUBTITLE:
                    case MediaControlView2.COMMAND_SHOW_SUBTITLE:
                        mInstance.showSubtitle();
                        break;
                    case MediaControlView2Impl.COMMAND_HIDE_SUBTITLE:
                    case MediaControlView2.COMMAND_HIDE_SUBTITLE:
                        mInstance.hideSubtitle();
                        break;
                    case MediaControlView2Impl.COMMAND_SET_FULLSCREEN:
                    case MediaControlView2.COMMAND_SET_FULLSCREEN:
                        if (mOnFullScreenRequestListener != null) {
                            mOnFullScreenRequestListener.onFullScreenRequest(
                                    mInstance,