summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/camera/VideoController.java2
-rw-r--r--src/com/android/camera/VideoModule.java9
-rw-r--r--src/com/android/camera/VideoUI.java3
-rw-r--r--src/com/android/camera/ui/CameraControls.java2
-rw-r--r--src/com/android/camera/ui/PieRenderer.java48
5 files changed, 61 insertions, 3 deletions
diff --git a/src/com/android/camera/VideoController.java b/src/com/android/camera/VideoController.java
index 8bde8090f..474f521de 100644
--- a/src/com/android/camera/VideoController.java
+++ b/src/com/android/camera/VideoController.java
@@ -27,7 +27,7 @@ public interface VideoController extends OnShutterButtonListener {
public void onReviewPlayClicked(View view);
public boolean isVideoCaptureIntent();
-
+ public boolean isInReviewMode();
public int onZoomChanged(int index);
public void onSingleTapUp(View view, int x, int y);
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 0bcdbabb5..f7830a303 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -126,6 +126,7 @@ public class VideoModule implements CameraModule,
private boolean mIsVideoCaptureIntent;
private boolean mQuickCapture;
+ private boolean mIsInReviewMode = false;
private MediaRecorder mMediaRecorder;
private EffectsRecorder mEffectsRecorder;
@@ -541,15 +542,22 @@ public class VideoModule implements CameraModule,
@OnClickAttr
public void onReviewDoneClicked(View v) {
+ mIsInReviewMode = false;
doReturnToCaller(true);
}
@OnClickAttr
public void onReviewCancelClicked(View v) {
+ mIsInReviewMode = false;
stopVideoRecording();
doReturnToCaller(false);
}
+ @Override
+ public boolean isInReviewMode() {
+ return mIsInReviewMode;
+ }
+
private void onStopVideoRecording() {
mEffectsDisplayResult = true;
boolean recordFail = stopVideoRecording();
@@ -1525,6 +1533,7 @@ public class VideoModule implements CameraModule,
}
private void showCaptureResult() {
+ mIsInReviewMode = true;
Bitmap bitmap = null;
if (mVideoFileDescriptor != null) {
bitmap = Thumbnail.createVideoThumbnailBitmap(mVideoFileDescriptor.getFileDescriptor(),
diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java
index 0afcd8a8d..0c9457204 100644
--- a/src/com/android/camera/VideoUI.java
+++ b/src/com/android/camera/VideoUI.java
@@ -293,6 +293,9 @@ public class VideoUI implements SurfaceHolder.Callback, PieRenderer.PieListener,
}
public void dismissPopup(boolean topLevelPopupOnly, boolean fullScreen) {
+ // In review mode, we do not want to bring up the camera UI
+ if (mController.isInReviewMode()) return;
+
if (fullScreen) {
mActivity.showUI();
mBlocker.setVisibility(View.VISIBLE);
diff --git a/src/com/android/camera/ui/CameraControls.java b/src/com/android/camera/ui/CameraControls.java
index d63a454a9..7940ae0d9 100644
--- a/src/com/android/camera/ui/CameraControls.java
+++ b/src/com/android/camera/ui/CameraControls.java
@@ -317,7 +317,7 @@ public class CameraControls extends RotatableLayout {
// on the wrong side of the screen. We need to make adjustment to move the controls
// to the USB side
public void adjustControlsToRightPosition() {
- int orientation = Util.getDisplayRotation((Activity) getContext());
+ int orientation = getUnifiedRotation();
if (orientation >= 180) {
flipChildren();
}
diff --git a/src/com/android/camera/ui/PieRenderer.java b/src/com/android/camera/ui/PieRenderer.java
index 4328b95ae..bdbe6129f 100644
--- a/src/com/android/camera/ui/PieRenderer.java
+++ b/src/com/android/camera/ui/PieRenderer.java
@@ -71,6 +71,7 @@ public class PieRenderer extends OverlayRenderer
private static final long PIE_XFADE_DURATION = 200;
private static final long PIE_SELECT_FADE_DURATION = 300;
private static final long PIE_OPEN_SUB_DELAY = 400;
+ private static final long PIE_SLICE_DURATION = 80;
private static final int MSG_OPEN = 0;
private static final int MSG_CLOSE = 1;
@@ -133,6 +134,7 @@ public class PieRenderer extends OverlayRenderer
private LinearAnimation mXFade;
private LinearAnimation mFadeIn;
private FadeOutAnimation mFadeOut;
+ private LinearAnimation mSlice;
private volatile boolean mFocusCancelled;
private PointF mPolar = new PointF();
private TextDrawable mLabel;
@@ -571,7 +573,12 @@ public class PieRenderer extends OverlayRenderer
if (item.isSelected()) {
Paint p = mSelectedPaint;
int state = canvas.save();
- float angle = getArcCenter(item, pos, count) - SWEEP_ARC / 2f;
+ float angle = 0;
+ if (mSlice != null) {
+ angle = mSlice.getValue();
+ } else {
+ angle = getArcCenter(item, pos, count) - SWEEP_ARC / 2f;
+ }
angle = getDegrees(angle);
canvas.rotate(angle, mPieCenterX, y);
if (mFadeOut != null) {
@@ -715,6 +722,7 @@ public class PieRenderer extends OverlayRenderer
mCurrentItem.setSelected(false);
}
if (item != null && item.isEnabled()) {
+ moveSelection(mCurrentItem, item);
item.setSelected(true);
mCurrentItem = item;
mLabel.setText(mCurrentItem.getLabel());
@@ -764,6 +772,44 @@ public class PieRenderer extends OverlayRenderer
}
}
+ private int getItemPos(PieItem target) {
+ List<PieItem> items = getOpenItem().getItems();
+ return items.indexOf(target);
+ }
+
+ private int getCurrentCount() {
+ return getOpenItem().getItems().size();
+ }
+
+ private void moveSelection(PieItem from, PieItem to) {
+ final int count = getCurrentCount();
+ final int fromPos = getItemPos(from);
+ final int toPos = getItemPos(to);
+ if (fromPos != -1 && toPos != -1) {
+ float startAngle = getArcCenter(from, getItemPos(from), count)
+ - SWEEP_ARC / 2f;
+ float endAngle = getArcCenter(to, getItemPos(to), count)
+ - SWEEP_ARC / 2f;
+ mSlice = new LinearAnimation(startAngle, endAngle);
+ mSlice.setDuration(PIE_SLICE_DURATION);
+ mSlice.setAnimationListener(new AnimationListener() {
+ @Override
+ public void onAnimationEnd(Animation arg0) {
+ mSlice = null;
+ }
+
+ @Override
+ public void onAnimationRepeat(Animation arg0) {
+ }
+
+ @Override
+ public void onAnimationStart(Animation arg0) {
+ }
+ });
+ mOverlay.startAnimation(mSlice);
+ }
+ }
+
private void openCurrentItem() {
if ((mCurrentItem != null) && mCurrentItem.hasItems()) {
mOpen.add(mCurrentItem);