Loading packages/MediaComponents/src/com/android/widget/MediaControlView2Impl.java +0 −53 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityManager; import android.widget.Button; import android.widget.ImageButton; import android.widget.MediaControlView2; Loading Loading @@ -64,8 +63,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie private static final int REWIND_TIME_MS = 10000; private static final int FORWARD_TIME_MS = 30000; private AccessibilityManager mAccessibilityManager; private MediaController mController; private MediaController.TransportControls mControls; private PlaybackState mPlaybackState; Loading @@ -76,7 +73,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie private int mDuration; private int mPrevState; private int mCurrentVisibility; private long mTimeout; private long mPlaybackActions; private boolean mShowing; private boolean mDragging; Loading Loading @@ -122,14 +118,9 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie @Override public void initialize(@Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { mAccessibilityManager = AccessibilityManager.getInstance(mInstance.getContext()); // Inflate MediaControlView2 from XML View root = makeControllerView(); mInstance.addView(root); // Set default timeout mTimeout = 2000; } @Override Loading Loading @@ -222,16 +213,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie } } @Override public void setTimeout_impl(long timeout) { mTimeout = timeout; } @Override public long getTimeout_impl() { return mTimeout; } @Override public CharSequence getAccessibilityClassName_impl() { return MediaControlView2.class.getName(); Loading @@ -245,7 +226,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie // TODO: Should this function be removed? @Override public boolean onTrackballEvent_impl(MotionEvent ev) { resetFadeOutRunnable(); return false; } Loading Loading @@ -290,11 +270,8 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie // was already true. This happens, for example, if we're // paused with the progress bar showing the user hits play. mInstance.post(mShowProgress); resetFadeOutRunnable(); } else if (visibility == View.GONE) { mInstance.removeCallbacks(mShowProgress); // Remove existing call to mFadeOut to avoid from being called later. mInstance.removeCallbacks(mFadeOut); } } } Loading Loading @@ -488,15 +465,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie } } private final Runnable mFadeOut = new Runnable() { @Override public void run() { if (isPlaying()) { mInstance.setVisibility(View.GONE); } } }; private final Runnable mShowProgress = new Runnable() { @Override public void run() { Loading @@ -508,13 +476,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie } }; private void resetFadeOutRunnable() { if (mTimeout != 0 && !mAccessibilityManager.isTouchExplorationEnabled()) { mInstance.removeCallbacks(mFadeOut); mInstance.postDelayed(mFadeOut, mTimeout); } } private String stringForTime(int timeMs) { int totalSeconds = timeMs / 1000; Loading Loading @@ -590,7 +551,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie } mDragging = true; mInstance.removeCallbacks(mFadeOut); // By removing these pending progress messages we make sure // that a) we won't update the progress while the user adjusts Loading Loading @@ -639,8 +599,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie setProgress(); resetFadeOutRunnable(); // Ensure that progress is properly updated in the future, // the call to show() does not guarantee this because it is a // no-op if we are already showing. Loading @@ -652,7 +610,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie @Override public void onClick(View v) { togglePausePlayState(); resetFadeOutRunnable(); } }; Loading @@ -662,8 +619,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie int pos = getCurrentPosition() - REWIND_TIME_MS; mControls.seekTo(pos); setProgress(); resetFadeOutRunnable(); } }; Loading @@ -673,8 +628,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie int pos = getCurrentPosition() + FORWARD_TIME_MS; mControls.seekTo(pos); setProgress(); resetFadeOutRunnable(); } }; Loading @@ -682,7 +635,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie @Override public void onClick(View v) { mControls.skipToNext(); resetFadeOutRunnable(); } }; Loading @@ -690,7 +642,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie @Override public void onClick(View v) { mControls.skipToPrevious(); resetFadeOutRunnable(); } }; Loading @@ -710,7 +661,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie mController.sendCommand(MediaControlView2.COMMAND_HIDE_SUBTITLE, null, null); mSubtitleIsEnabled = false; } resetFadeOutRunnable(); } }; Loading @@ -732,7 +682,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie mController.sendCommand(MediaControlView2.COMMAND_SET_FULLSCREEN, args, null); mIsFullScreen = isEnteringFullScreen; resetFadeOutRunnable(); } }; Loading @@ -741,7 +690,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie public void onClick(View v) { mBasicControls.setVisibility(View.GONE); mExtraControls.setVisibility(View.VISIBLE); resetFadeOutRunnable(); } }; Loading @@ -750,7 +698,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie public void onClick(View v) { mBasicControls.setVisibility(View.VISIBLE); mExtraControls.setVisibility(View.GONE); resetFadeOutRunnable(); } }; Loading packages/MediaComponents/src/com/android/widget/VideoView2Impl.java +54 −26 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.view.accessibility.AccessibilityManager; import android.widget.MediaControlView2; import android.widget.VideoView2; Loading @@ -70,6 +71,7 @@ public class VideoView2Impl extends BaseLayout implements VideoView2Provider, VideoViewInterface.SurfaceListener { private static final String TAG = "VideoView2"; private static final boolean DEBUG = true; // STOPSHIP: Log.isLoggable(TAG, Log.DEBUG); private static final long DEFAULT_SHOW_CONTROLLER_INTERVAL_MS = 2000; private final VideoView2 mInstance; Loading @@ -83,6 +85,7 @@ public class VideoView2Impl extends BaseLayout private static final int INVALID_TRACK_INDEX = -1; private AccessibilityManager mAccessibilityManager; private AudioManager mAudioManager; private AudioAttributes mAudioAttributes; private int mAudioFocusType = AudioManager.AUDIOFOCUS_GAIN; // legacy focus gain Loading Loading @@ -119,15 +122,17 @@ public class VideoView2Impl extends BaseLayout private int mVideoWidth; private int mVideoHeight; private SubtitleView mSubtitleView; private boolean mSubtitleEnabled; private int mSelectedTrackIndex; private int mSelectedTrackIndex; // selected subtitle track index as MediaPlayer2 returns private SubtitleView mSubtitleView; private float mSpeed; // TODO: Remove mFallbackSpeed when integration with MediaPlayer2's new setPlaybackParams(). // Refer: https://docs.google.com/document/d/1nzAfns6i2hJ3RkaUre3QMT6wsDedJ5ONLiA_OOBFFX8/edit private float mFallbackSpeed; // keep the original speed before 'pause' is called. private long mShowControllerIntervalMs; public VideoView2Impl(VideoView2 instance, ViewGroupProvider superProvider, ViewGroupProvider privateProvider) { super(instance, superProvider, privateProvider); Loading @@ -141,6 +146,10 @@ public class VideoView2Impl extends BaseLayout mSpeed = 1.0f; mFallbackSpeed = mSpeed; mSelectedTrackIndex = INVALID_TRACK_INDEX; // TODO: add attributes to get this value. mShowControllerIntervalMs = DEFAULT_SHOW_CONTROLLER_INTERVAL_MS; mAccessibilityManager = AccessibilityManager.getInstance(mInstance.getContext()); mAudioManager = (AudioManager) mInstance.getContext() .getSystemService(Context.AUDIO_SERVICE); Loading Loading @@ -203,8 +212,9 @@ public class VideoView2Impl extends BaseLayout } @Override public void setMediaControlView2_impl(MediaControlView2 mediaControlView) { public void setMediaControlView2_impl(MediaControlView2 mediaControlView, long intervalMs) { mMediaControlView = mediaControlView; mShowControllerIntervalMs = intervalMs; if (mRouteSelector != null) { ((MediaControlView2Impl) mMediaControlView.getProvider()) .setRouteSelector(mRouteSelector); Loading Loading @@ -439,8 +449,7 @@ public class VideoView2Impl extends BaseLayout Log.d(TAG, "onTouchEvent(). mCurrentState=" + mCurrentState + ", mTargetState=" + mTargetState); } if (ev.getAction() == MotionEvent.ACTION_UP && isInPlaybackState() && mMediaControlView != null) { if (ev.getAction() == MotionEvent.ACTION_UP && mMediaControlView != null) { toggleMediaControlViewVisibility(); } Loading @@ -449,14 +458,19 @@ public class VideoView2Impl extends BaseLayout @Override public boolean onTrackballEvent_impl(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_UP && isInPlaybackState() && mMediaControlView != null) { if (ev.getAction() == MotionEvent.ACTION_UP && mMediaControlView != null) { toggleMediaControlViewVisibility(); } return super.onTrackballEvent_impl(ev); } @Override public boolean dispatchTouchEvent_impl(MotionEvent ev) { // TODO: Test touch event handling logic thoroughly and simplify the logic. return super.dispatchTouchEvent_impl(ev); } /////////////////////////////////////////////////// // Implements VideoViewInterface.SurfaceListener /////////////////////////////////////////////////// Loading @@ -479,9 +493,6 @@ public class VideoView2Impl extends BaseLayout Log.d(TAG, "onSurfaceDestroyed(). mCurrentState=" + mCurrentState + ", mTargetState=" + mTargetState + ", " + view.toString()); } if (mMediaControlView != null) { mMediaControlView.setVisibility(View.GONE); } } @Override Loading Loading @@ -704,11 +715,34 @@ public class VideoView2Impl extends BaseLayout } } private final Runnable mFadeOut = new Runnable() { @Override public void run() { if (mCurrentState == STATE_PLAYING) { mMediaControlView.setVisibility(View.GONE); } } }; private void showController() { // TODO: Decide what to show when the state is not in playback state if (mMediaControlView == null || !isInPlaybackState()) { return; } mMediaControlView.removeCallbacks(mFadeOut); mMediaControlView.setVisibility(View.VISIBLE); if (mShowControllerIntervalMs != 0 && !mAccessibilityManager.isTouchExplorationEnabled()) { mMediaControlView.postDelayed(mFadeOut, mShowControllerIntervalMs); } } private void toggleMediaControlViewVisibility() { if (mMediaControlView.getVisibility() == View.VISIBLE) { mMediaControlView.removeCallbacks(mFadeOut); mMediaControlView.setVisibility(View.GONE); } else { mMediaControlView.setVisibility(View.VISIBLE); showController(); } } Loading Loading @@ -769,6 +803,9 @@ public class VideoView2Impl extends BaseLayout + ", mTargetState=" + mTargetState); } mCurrentState = STATE_PREPARED; // Create and set playback state for MediaControlView2 updatePlaybackState(); if (mOnPreparedListener != null) { mOnPreparedListener.onPrepared(mInstance); } Loading Loading @@ -802,19 +839,6 @@ public class VideoView2Impl extends BaseLayout if (needToStart()) { mMediaController.getTransportControls().play(); if (mMediaControlView != null) { mMediaControlView.setVisibility(View.VISIBLE); } } else if (!(isInPlaybackState() && mMediaPlayer.isPlaying()) && (seekToPosition != 0 || mMediaPlayer.getCurrentPosition() > 0)) { if (mMediaControlView != null) { // Show the media controls when we're paused into a video and // make them stick. long currTimeout = mMediaControlView.getTimeout(); mMediaControlView.setTimeout(0L); mMediaControlView.setVisibility(View.VISIBLE); mMediaControlView.setTimeout(currTimeout); } } } else { // We don't know the video size yet, but should start anyway. Loading @@ -823,8 +847,6 @@ public class VideoView2Impl extends BaseLayout mMediaController.getTransportControls().play(); } } // Create and set playback state for MediaControlView2 updatePlaybackState(); // Get and set duration and title values as MediaMetadata for MediaControlView2 MediaMetadata.Builder builder = new MediaMetadata.Builder(); Loading Loading @@ -954,11 +976,13 @@ public class VideoView2Impl extends BaseLayout break; } } showController(); } @Override public void onCustomAction(String action, Bundle extras) { mOnCustomActionListener.onCustomAction(action, extras); showController(); } @Override Loading @@ -978,6 +1002,7 @@ public class VideoView2Impl extends BaseLayout + ", mTargetState=" + mTargetState); } } showController(); } @Override Loading @@ -998,6 +1023,7 @@ public class VideoView2Impl extends BaseLayout + ", mTargetState=" + mTargetState); } } showController(); } @Override Loading @@ -1013,6 +1039,7 @@ public class VideoView2Impl extends BaseLayout mSeekWhenPrepared = pos; } } showController(); } @Override Loading @@ -1022,6 +1049,7 @@ public class VideoView2Impl extends BaseLayout } else { resetPlayer(); } showController(); } } Loading packages/MediaComponents/src/com/android/widget/ViewGroupImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,11 @@ public abstract class ViewGroupImpl implements ViewGroupProvider { mSuperProvider.setMeasuredDimension_impl(measuredWidth, measuredHeight); } @Override public boolean dispatchTouchEvent_impl(MotionEvent ev) { return mSuperProvider.dispatchTouchEvent_impl(ev); } @Override public boolean checkLayoutParams_impl(ViewGroup.LayoutParams p) { return mSuperProvider.checkLayoutParams_impl(p); Loading Loading
packages/MediaComponents/src/com/android/widget/MediaControlView2Impl.java +0 −53 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityManager; import android.widget.Button; import android.widget.ImageButton; import android.widget.MediaControlView2; Loading Loading @@ -64,8 +63,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie private static final int REWIND_TIME_MS = 10000; private static final int FORWARD_TIME_MS = 30000; private AccessibilityManager mAccessibilityManager; private MediaController mController; private MediaController.TransportControls mControls; private PlaybackState mPlaybackState; Loading @@ -76,7 +73,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie private int mDuration; private int mPrevState; private int mCurrentVisibility; private long mTimeout; private long mPlaybackActions; private boolean mShowing; private boolean mDragging; Loading Loading @@ -122,14 +118,9 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie @Override public void initialize(@Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { mAccessibilityManager = AccessibilityManager.getInstance(mInstance.getContext()); // Inflate MediaControlView2 from XML View root = makeControllerView(); mInstance.addView(root); // Set default timeout mTimeout = 2000; } @Override Loading Loading @@ -222,16 +213,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie } } @Override public void setTimeout_impl(long timeout) { mTimeout = timeout; } @Override public long getTimeout_impl() { return mTimeout; } @Override public CharSequence getAccessibilityClassName_impl() { return MediaControlView2.class.getName(); Loading @@ -245,7 +226,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie // TODO: Should this function be removed? @Override public boolean onTrackballEvent_impl(MotionEvent ev) { resetFadeOutRunnable(); return false; } Loading Loading @@ -290,11 +270,8 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie // was already true. This happens, for example, if we're // paused with the progress bar showing the user hits play. mInstance.post(mShowProgress); resetFadeOutRunnable(); } else if (visibility == View.GONE) { mInstance.removeCallbacks(mShowProgress); // Remove existing call to mFadeOut to avoid from being called later. mInstance.removeCallbacks(mFadeOut); } } } Loading Loading @@ -488,15 +465,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie } } private final Runnable mFadeOut = new Runnable() { @Override public void run() { if (isPlaying()) { mInstance.setVisibility(View.GONE); } } }; private final Runnable mShowProgress = new Runnable() { @Override public void run() { Loading @@ -508,13 +476,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie } }; private void resetFadeOutRunnable() { if (mTimeout != 0 && !mAccessibilityManager.isTouchExplorationEnabled()) { mInstance.removeCallbacks(mFadeOut); mInstance.postDelayed(mFadeOut, mTimeout); } } private String stringForTime(int timeMs) { int totalSeconds = timeMs / 1000; Loading Loading @@ -590,7 +551,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie } mDragging = true; mInstance.removeCallbacks(mFadeOut); // By removing these pending progress messages we make sure // that a) we won't update the progress while the user adjusts Loading Loading @@ -639,8 +599,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie setProgress(); resetFadeOutRunnable(); // Ensure that progress is properly updated in the future, // the call to show() does not guarantee this because it is a // no-op if we are already showing. Loading @@ -652,7 +610,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie @Override public void onClick(View v) { togglePausePlayState(); resetFadeOutRunnable(); } }; Loading @@ -662,8 +619,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie int pos = getCurrentPosition() - REWIND_TIME_MS; mControls.seekTo(pos); setProgress(); resetFadeOutRunnable(); } }; Loading @@ -673,8 +628,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie int pos = getCurrentPosition() + FORWARD_TIME_MS; mControls.seekTo(pos); setProgress(); resetFadeOutRunnable(); } }; Loading @@ -682,7 +635,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie @Override public void onClick(View v) { mControls.skipToNext(); resetFadeOutRunnable(); } }; Loading @@ -690,7 +642,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie @Override public void onClick(View v) { mControls.skipToPrevious(); resetFadeOutRunnable(); } }; Loading @@ -710,7 +661,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie mController.sendCommand(MediaControlView2.COMMAND_HIDE_SUBTITLE, null, null); mSubtitleIsEnabled = false; } resetFadeOutRunnable(); } }; Loading @@ -732,7 +682,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie mController.sendCommand(MediaControlView2.COMMAND_SET_FULLSCREEN, args, null); mIsFullScreen = isEnteringFullScreen; resetFadeOutRunnable(); } }; Loading @@ -741,7 +690,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie public void onClick(View v) { mBasicControls.setVisibility(View.GONE); mExtraControls.setVisibility(View.VISIBLE); resetFadeOutRunnable(); } }; Loading @@ -750,7 +698,6 @@ public class MediaControlView2Impl extends BaseLayout implements MediaControlVie public void onClick(View v) { mBasicControls.setVisibility(View.VISIBLE); mExtraControls.setVisibility(View.GONE); resetFadeOutRunnable(); } }; Loading
packages/MediaComponents/src/com/android/widget/VideoView2Impl.java +54 −26 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.view.accessibility.AccessibilityManager; import android.widget.MediaControlView2; import android.widget.VideoView2; Loading @@ -70,6 +71,7 @@ public class VideoView2Impl extends BaseLayout implements VideoView2Provider, VideoViewInterface.SurfaceListener { private static final String TAG = "VideoView2"; private static final boolean DEBUG = true; // STOPSHIP: Log.isLoggable(TAG, Log.DEBUG); private static final long DEFAULT_SHOW_CONTROLLER_INTERVAL_MS = 2000; private final VideoView2 mInstance; Loading @@ -83,6 +85,7 @@ public class VideoView2Impl extends BaseLayout private static final int INVALID_TRACK_INDEX = -1; private AccessibilityManager mAccessibilityManager; private AudioManager mAudioManager; private AudioAttributes mAudioAttributes; private int mAudioFocusType = AudioManager.AUDIOFOCUS_GAIN; // legacy focus gain Loading Loading @@ -119,15 +122,17 @@ public class VideoView2Impl extends BaseLayout private int mVideoWidth; private int mVideoHeight; private SubtitleView mSubtitleView; private boolean mSubtitleEnabled; private int mSelectedTrackIndex; private int mSelectedTrackIndex; // selected subtitle track index as MediaPlayer2 returns private SubtitleView mSubtitleView; private float mSpeed; // TODO: Remove mFallbackSpeed when integration with MediaPlayer2's new setPlaybackParams(). // Refer: https://docs.google.com/document/d/1nzAfns6i2hJ3RkaUre3QMT6wsDedJ5ONLiA_OOBFFX8/edit private float mFallbackSpeed; // keep the original speed before 'pause' is called. private long mShowControllerIntervalMs; public VideoView2Impl(VideoView2 instance, ViewGroupProvider superProvider, ViewGroupProvider privateProvider) { super(instance, superProvider, privateProvider); Loading @@ -141,6 +146,10 @@ public class VideoView2Impl extends BaseLayout mSpeed = 1.0f; mFallbackSpeed = mSpeed; mSelectedTrackIndex = INVALID_TRACK_INDEX; // TODO: add attributes to get this value. mShowControllerIntervalMs = DEFAULT_SHOW_CONTROLLER_INTERVAL_MS; mAccessibilityManager = AccessibilityManager.getInstance(mInstance.getContext()); mAudioManager = (AudioManager) mInstance.getContext() .getSystemService(Context.AUDIO_SERVICE); Loading Loading @@ -203,8 +212,9 @@ public class VideoView2Impl extends BaseLayout } @Override public void setMediaControlView2_impl(MediaControlView2 mediaControlView) { public void setMediaControlView2_impl(MediaControlView2 mediaControlView, long intervalMs) { mMediaControlView = mediaControlView; mShowControllerIntervalMs = intervalMs; if (mRouteSelector != null) { ((MediaControlView2Impl) mMediaControlView.getProvider()) .setRouteSelector(mRouteSelector); Loading Loading @@ -439,8 +449,7 @@ public class VideoView2Impl extends BaseLayout Log.d(TAG, "onTouchEvent(). mCurrentState=" + mCurrentState + ", mTargetState=" + mTargetState); } if (ev.getAction() == MotionEvent.ACTION_UP && isInPlaybackState() && mMediaControlView != null) { if (ev.getAction() == MotionEvent.ACTION_UP && mMediaControlView != null) { toggleMediaControlViewVisibility(); } Loading @@ -449,14 +458,19 @@ public class VideoView2Impl extends BaseLayout @Override public boolean onTrackballEvent_impl(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_UP && isInPlaybackState() && mMediaControlView != null) { if (ev.getAction() == MotionEvent.ACTION_UP && mMediaControlView != null) { toggleMediaControlViewVisibility(); } return super.onTrackballEvent_impl(ev); } @Override public boolean dispatchTouchEvent_impl(MotionEvent ev) { // TODO: Test touch event handling logic thoroughly and simplify the logic. return super.dispatchTouchEvent_impl(ev); } /////////////////////////////////////////////////// // Implements VideoViewInterface.SurfaceListener /////////////////////////////////////////////////// Loading @@ -479,9 +493,6 @@ public class VideoView2Impl extends BaseLayout Log.d(TAG, "onSurfaceDestroyed(). mCurrentState=" + mCurrentState + ", mTargetState=" + mTargetState + ", " + view.toString()); } if (mMediaControlView != null) { mMediaControlView.setVisibility(View.GONE); } } @Override Loading Loading @@ -704,11 +715,34 @@ public class VideoView2Impl extends BaseLayout } } private final Runnable mFadeOut = new Runnable() { @Override public void run() { if (mCurrentState == STATE_PLAYING) { mMediaControlView.setVisibility(View.GONE); } } }; private void showController() { // TODO: Decide what to show when the state is not in playback state if (mMediaControlView == null || !isInPlaybackState()) { return; } mMediaControlView.removeCallbacks(mFadeOut); mMediaControlView.setVisibility(View.VISIBLE); if (mShowControllerIntervalMs != 0 && !mAccessibilityManager.isTouchExplorationEnabled()) { mMediaControlView.postDelayed(mFadeOut, mShowControllerIntervalMs); } } private void toggleMediaControlViewVisibility() { if (mMediaControlView.getVisibility() == View.VISIBLE) { mMediaControlView.removeCallbacks(mFadeOut); mMediaControlView.setVisibility(View.GONE); } else { mMediaControlView.setVisibility(View.VISIBLE); showController(); } } Loading Loading @@ -769,6 +803,9 @@ public class VideoView2Impl extends BaseLayout + ", mTargetState=" + mTargetState); } mCurrentState = STATE_PREPARED; // Create and set playback state for MediaControlView2 updatePlaybackState(); if (mOnPreparedListener != null) { mOnPreparedListener.onPrepared(mInstance); } Loading Loading @@ -802,19 +839,6 @@ public class VideoView2Impl extends BaseLayout if (needToStart()) { mMediaController.getTransportControls().play(); if (mMediaControlView != null) { mMediaControlView.setVisibility(View.VISIBLE); } } else if (!(isInPlaybackState() && mMediaPlayer.isPlaying()) && (seekToPosition != 0 || mMediaPlayer.getCurrentPosition() > 0)) { if (mMediaControlView != null) { // Show the media controls when we're paused into a video and // make them stick. long currTimeout = mMediaControlView.getTimeout(); mMediaControlView.setTimeout(0L); mMediaControlView.setVisibility(View.VISIBLE); mMediaControlView.setTimeout(currTimeout); } } } else { // We don't know the video size yet, but should start anyway. Loading @@ -823,8 +847,6 @@ public class VideoView2Impl extends BaseLayout mMediaController.getTransportControls().play(); } } // Create and set playback state for MediaControlView2 updatePlaybackState(); // Get and set duration and title values as MediaMetadata for MediaControlView2 MediaMetadata.Builder builder = new MediaMetadata.Builder(); Loading Loading @@ -954,11 +976,13 @@ public class VideoView2Impl extends BaseLayout break; } } showController(); } @Override public void onCustomAction(String action, Bundle extras) { mOnCustomActionListener.onCustomAction(action, extras); showController(); } @Override Loading @@ -978,6 +1002,7 @@ public class VideoView2Impl extends BaseLayout + ", mTargetState=" + mTargetState); } } showController(); } @Override Loading @@ -998,6 +1023,7 @@ public class VideoView2Impl extends BaseLayout + ", mTargetState=" + mTargetState); } } showController(); } @Override Loading @@ -1013,6 +1039,7 @@ public class VideoView2Impl extends BaseLayout mSeekWhenPrepared = pos; } } showController(); } @Override Loading @@ -1022,6 +1049,7 @@ public class VideoView2Impl extends BaseLayout } else { resetPlayer(); } showController(); } } Loading
packages/MediaComponents/src/com/android/widget/ViewGroupImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,11 @@ public abstract class ViewGroupImpl implements ViewGroupProvider { mSuperProvider.setMeasuredDimension_impl(measuredWidth, measuredHeight); } @Override public boolean dispatchTouchEvent_impl(MotionEvent ev) { return mSuperProvider.dispatchTouchEvent_impl(ev); } @Override public boolean checkLayoutParams_impl(ViewGroup.LayoutParams p) { return mSuperProvider.checkLayoutParams_impl(p); Loading