summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKerong Sui <ksui@codeaurora.org>2013-08-14 10:15:27 +0800
committerSteve Kondik <shade@chemlab.org>2013-10-01 03:32:39 -0700
commita8981cf8fb184316ebd6b33915f60983fd2e709f (patch)
tree1e39bcd9c20e9c9bf01a5bd6e3fed4ab8eb2941a
parentcf82d8cf8260a0028979485f09470a21b83e4ffe (diff)
downloadandroid_packages_apps_Gallery2-a8981cf8fb184316ebd6b33915f60983fd2e709f.tar.gz
android_packages_apps_Gallery2-a8981cf8fb184316ebd6b33915f60983fd2e709f.tar.bz2
android_packages_apps_Gallery2-a8981cf8fb184316ebd6b33915f60983fd2e709f.zip
Gallery2: camera: disable all camera controls ASAP when swtich the camera
Camera switch button is a pieItem, there is a fadeInOut animation for these kinds of menus. And the onClick event deliver to upper layer happens after the end of the animation which lasts 600ms. We should add another event callback before the animation to disalbe all camera controls as soon as possible. Change-Id: Iddcb9e9452aa0ff6ea8485c08c9c56b067995fb5
-rw-r--r--src/com/android/camera/CameraPreference.java1
-rw-r--r--src/com/android/camera/PhotoModule.java4
-rw-r--r--src/com/android/camera/VideoMenu.java7
-rw-r--r--src/com/android/camera/VideoModule.java10
-rw-r--r--src/com/android/camera/ui/PieItem.java11
-rw-r--r--src/com/android/camera/ui/PieRenderer.java1
6 files changed, 32 insertions, 2 deletions
diff --git a/src/com/android/camera/CameraPreference.java b/src/com/android/camera/CameraPreference.java
index 5ddd86dbc..289650099 100644
--- a/src/com/android/camera/CameraPreference.java
+++ b/src/com/android/camera/CameraPreference.java
@@ -38,6 +38,7 @@ public abstract class CameraPreference {
public void onRestorePreferencesClicked();
public void onOverriddenPreferencesClicked();
public void onCameraPickerClicked(int cameraId);
+ public void onCameraPickerSuperClicked();
}
public CameraPreference(Context context, AttributeSet attrs) {
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 7854ca258..83a67a666 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -2084,6 +2084,10 @@ public class PhotoModule
}
}
+ @Override
+ public void onCameraPickerSuperClicked() {
+ }
+
// Preview texture has been copied. Now camera can be released and the
// animation can be started.
@Override
diff --git a/src/com/android/camera/VideoMenu.java b/src/com/android/camera/VideoMenu.java
index 16a9bfbad..31f92248f 100644
--- a/src/com/android/camera/VideoMenu.java
+++ b/src/com/android/camera/VideoMenu.java
@@ -93,6 +93,13 @@ public class VideoMenu extends PieController
[lpref.findIndexOfValue(lpref.getValue())]);
final PieItem fitem = item;
+ item.setOnSuperClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(PieItem item) {
+ mListener.onCameraPickerSuperClicked();
+ }
+ });
item.setOnClickListener(new OnClickListener() {
@Override
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index b1ac5d3a0..7b5404468 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -2333,14 +2333,20 @@ public class VideoModule implements CameraModule,
// We need to keep a preview frame for the animation before
// releasing the camera. This will trigger onPreviewTextureCopied.
((CameraScreenNail) mActivity.mCameraScreenNail).copyTexture();
- // Disable all camera controls.
- mSwitchingCamera = true;
} else {
switchCamera();
}
}
@Override
+ public void onCameraPickerSuperClicked() {
+ if (mPaused || mPendingSwitchCameraId != -1) return;
+
+ // Disable all camera controls.
+ mSwitchingCamera = true;
+ }
+
+ @Override
public boolean needsSwitcher() {
return !mIsVideoCaptureIntent;
}
diff --git a/src/com/android/camera/ui/PieItem.java b/src/com/android/camera/ui/PieItem.java
index 47fe06758..34c00605e 100644
--- a/src/com/android/camera/ui/PieItem.java
+++ b/src/com/android/camera/ui/PieItem.java
@@ -41,6 +41,7 @@ public class PieItem {
private List<PieItem> mItems;
private Path mPath;
private OnClickListener mOnClickListener;
+ private OnClickListener mOnSuperClickListener;
private float mAlpha;
private CharSequence mLabel;
@@ -138,12 +139,22 @@ public class PieItem {
mOnClickListener = listener;
}
+ public void setOnSuperClickListener(OnClickListener listener) {
+ mOnSuperClickListener = listener;
+ }
+
public void performClick() {
if (mOnClickListener != null) {
mOnClickListener.onClick(this);
}
}
+ public void performSuperClick() {
+ if (mOnSuperClickListener != null) {
+ mOnSuperClickListener.onClick(this);
+ }
+ }
+
public int getIntrinsicWidth() {
return mDrawable.getIntrinsicWidth();
}
diff --git a/src/com/android/camera/ui/PieRenderer.java b/src/com/android/camera/ui/PieRenderer.java
index edae2be93..6c0f5bacb 100644
--- a/src/com/android/camera/ui/PieRenderer.java
+++ b/src/com/android/camera/ui/PieRenderer.java
@@ -455,6 +455,7 @@ public class PieRenderer extends OverlayRenderer
mFadeOut.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
+ item.performSuperClick();
}
@Override