diff options
Diffstat (limited to 'src')
5 files changed, 84 insertions, 6 deletions
diff --git a/src/com/android/gallery3d/app/MovieActivity.java b/src/com/android/gallery3d/app/MovieActivity.java index 01d8d26b7..8767248ff 100644 --- a/src/com/android/gallery3d/app/MovieActivity.java +++ b/src/com/android/gallery3d/app/MovieActivity.java @@ -61,6 +61,7 @@ import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.CompoundButton; +import android.widget.ImageView; import android.widget.ShareActionProvider; import android.widget.ToggleButton; import android.widget.Toast; @@ -100,6 +101,7 @@ public class MovieActivity extends Activity { private MoviePlayer mPlayer; private boolean mFinishOnCompletion; private Uri mUri; + private ImageView mLiveImg; private static final short BASSBOOST_MAX_STRENGTH = 1000; private static final short VIRTUALIZER_MAX_STRENGTH = 1000; @@ -180,6 +182,8 @@ public class MovieActivity extends Activity { setSystemUiVisibility(rootView); + mLiveImg = (ImageView) findViewById(R.id.img_live); + Intent intent = getIntent(); mMovieHooker = ExtensionHelper.getHooker(this); @@ -262,6 +266,10 @@ public class MovieActivity extends Activity { } } + public ImageView getLiveImage() { + return mLiveImg; + } + private void initializeActionBar(Intent intent) { mUri = intent.getData(); final ActionBar actionBar = getActionBar(); @@ -322,6 +330,7 @@ public class MovieActivity extends Activity { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.movie, menu); MenuItem shareMenu = menu.findItem(R.id.action_share); + shareMenu.setVisible(false); ShareActionProvider provider = (ShareActionProvider) shareMenu.getActionProvider(); mShareProvider = provider; if (mShareProvider != null) { diff --git a/src/com/android/gallery3d/app/MovieControllerOverlay.java b/src/com/android/gallery3d/app/MovieControllerOverlay.java index 72b95fd38..82b01812e 100644 --- a/src/com/android/gallery3d/app/MovieControllerOverlay.java +++ b/src/com/android/gallery3d/app/MovieControllerOverlay.java @@ -66,7 +66,7 @@ public class MovieControllerOverlay extends CommonControllerOverlay implements private ScreenModeManager mScreenModeManager; protected ScreenModeExt mScreenModeExt = new ScreenModeExt(); - private ControllerRewindAndForwardExt mControllerRewindAndForwardExt = new ControllerRewindAndForwardExt(); + protected ControllerRewindAndForwardExt mControllerRewindAndForwardExt = new ControllerRewindAndForwardExt(); private OverlayExtension mOverlayExt = new OverlayExtension(); private boolean hidden; @@ -781,6 +781,10 @@ public class MovieControllerOverlay extends CommonControllerOverlay implements private static final int BUTTON_PADDING = 40; private int mTimeBarHeight = 0; + public ImageView getStopBtn() { + return mStop; + } + void init(Context context) { Log.v(TAG, "ControllerRewindAndForwardExt init"); mTimeBarHeight = mTimeBar.getPreferredHeight(); @@ -815,7 +819,6 @@ public class MovieControllerOverlay extends CommonControllerOverlay implements LinearLayout.LayoutParams stopLayoutParam = new LinearLayout.LayoutParams( mTimeBarHeight, mTimeBarHeight); stopLayoutParam.setMargins(BUTTON_PADDING, 0, BUTTON_PADDING, 0); - mContollerButtons.addView(mStop, stopLayoutParam); mForward = new ImageView(context); mForward.setImageResource(R.drawable.icn_media_forward); diff --git a/src/com/android/gallery3d/app/MovieControllerOverlayNew.java b/src/com/android/gallery3d/app/MovieControllerOverlayNew.java index a11a74a51..135591c05 100644 --- a/src/com/android/gallery3d/app/MovieControllerOverlayNew.java +++ b/src/com/android/gallery3d/app/MovieControllerOverlayNew.java @@ -33,11 +33,27 @@ import android.content.Context; import android.graphics.Rect; import android.view.MotionEvent; import android.view.View; +import android.widget.ImageView; + +import com.android.gallery3d.R; + +import org.codeaurora.gallery3d.video.IControllerRewindAndForward; public class MovieControllerOverlayNew extends MovieControllerOverlay { + private boolean mIsLive = false; + private ImageView mLiveImage; + private ImageView mStopBtn; + + private int mLiveMargin; + public MovieControllerOverlayNew(Context context) { super(context); + mLiveImage = ((MovieActivity) mContext).getLiveImage(); + mStopBtn = mControllerRewindAndForwardExt.getStopBtn(); + mLiveMargin = context.getResources().getDimensionPixelSize( + R.dimen.livestream_icon_padding); + addView(mStopBtn); } @Override @@ -64,7 +80,7 @@ public class MovieControllerOverlayNew extends MovieControllerOverlay { Rect insets = mWindowInsets; int pr = insets.right; int pb = insets.bottom; - + int pt = insets.top; int h = bottom - top; int w = right - left; @@ -72,11 +88,50 @@ public class MovieControllerOverlayNew extends MovieControllerOverlay { mBackground.layout(0, y - mTimeBar.getPreferredHeight(), w, y); mScreenModeExt.onLayout(w, pr, y); + if (mIsLive && mState != State.ENDED) { + if (mLiveImage != null) { + mLiveImage.setVisibility(View.VISIBLE); + mLiveImage.layout(width - mLiveImage.getWidth() - mLiveMargin, pt + mLiveMargin, + width - mLiveMargin, pt + mLiveMargin + mLiveImage.getHeight()); + } + if (isPrepared()) { + mPlayPauseReplayView.setVisibility(View.GONE); - mPlayPauseReplayView.layout(0, y - mTimeBar.getPreferredHeight(), - mTimeBar.getPreferredHeight(), y); + if (mStopBtn != null) { + mStopBtn.setVisibility(View.VISIBLE); + mStopBtn.layout(0, y - mTimeBar.getPreferredHeight(), + mTimeBar.getPreferredHeight(), y); + } + } + } else { + mPlayPauseReplayView.setVisibility(View.VISIBLE); + if (mLiveImage != null) { + mLiveImage.setVisibility(View.GONE); + } + if (mStopBtn != null) { + mStopBtn.setVisibility(View.GONE); + } + mPlayPauseReplayView.layout(0, y - mTimeBar.getPreferredHeight(), + mTimeBar.getPreferredHeight(), y); + } mTimeBar.layout(mTimeBar.getPreferredHeight(), y - mTimeBar.getPreferredHeight(), width - mScreenModeExt.getAddedRightPadding(), y); } + public void setLive(boolean live) { + mIsLive = live; + mTimeBar.setClickable(!mIsLive); + } + + public IControllerRewindAndForward getControllerRewindAndForwardExt() { + return mControllerRewindAndForwardExt; + } + + private boolean isPrepared() { + if ((mState == State.PLAYING || mState == State.BUFFERING || mState == State.LOADING)) { + return true; + } + return false; + } + } diff --git a/src/com/android/gallery3d/app/MoviePlayer.java b/src/com/android/gallery3d/app/MoviePlayer.java index 0ecc8bf20..1f6401ee5 100755 --- a/src/com/android/gallery3d/app/MoviePlayer.java +++ b/src/com/android/gallery3d/app/MoviePlayer.java @@ -121,7 +121,7 @@ public class MoviePlayer implements private final Bookmarker mBookmarker; private final Handler mHandler = new Handler(); private final AudioBecomingNoisyReceiver mAudioBecomingNoisyReceiver; - private final MovieControllerOverlay mController; + private final MovieControllerOverlayNew mController; private long mResumeableTime = Long.MAX_VALUE; private int mVideoPosition = 0; @@ -617,6 +617,7 @@ public class MoviePlayer implements if ("http".equalsIgnoreCase(scheme) || "rtsp".equalsIgnoreCase(scheme) || "https".equalsIgnoreCase(scheme)) { mController.showLoading(); + mController.setLive(isLiveStreaming()); mOverlayExt.setPlayingInfo(isLiveStreaming()); mHandler.removeCallbacks(mPlayingChecker); mHandler.postDelayed(mPlayingChecker, 250); diff --git a/src/com/android/gallery3d/app/TimeBarNew.java b/src/com/android/gallery3d/app/TimeBarNew.java index 9f57ef692..74a2b5cb6 100644 --- a/src/com/android/gallery3d/app/TimeBarNew.java +++ b/src/com/android/gallery3d/app/TimeBarNew.java @@ -30,6 +30,7 @@ package com.android.gallery3d.app; import android.content.Context; +import android.view.MotionEvent; import com.android.gallery3d.R; @@ -40,6 +41,7 @@ public class TimeBarNew extends TimeBar { public TimeBarNew(Context context, Listener listener) { super(context, listener); mTimeBarHeight = context.getResources().getDimensionPixelSize(R.dimen.timebar_height); + this.setClickable(true); } @Override @@ -51,4 +53,12 @@ public class TimeBarNew extends TimeBar { public void setInfo(String info) { // Do nothing here, show nothing in timeBar's info. } + + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + if (!isClickable()) { + return true; + } + return super.dispatchTouchEvent(event); + } }
\ No newline at end of file |
