diff options
| author | Kerong Sui <ksui@codeaurora.org> | 2013-08-14 10:15:27 +0800 |
|---|---|---|
| committer | Steve Kondik <shade@chemlab.org> | 2013-10-01 03:32:39 -0700 |
| commit | a8981cf8fb184316ebd6b33915f60983fd2e709f (patch) | |
| tree | 1e39bcd9c20e9c9bf01a5bd6e3fed4ab8eb2941a | |
| parent | cf82d8cf8260a0028979485f09470a21b83e4ffe (diff) | |
| download | android_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.java | 1 | ||||
| -rw-r--r-- | src/com/android/camera/PhotoModule.java | 4 | ||||
| -rw-r--r-- | src/com/android/camera/VideoMenu.java | 7 | ||||
| -rw-r--r-- | src/com/android/camera/VideoModule.java | 10 | ||||
| -rw-r--r-- | src/com/android/camera/ui/PieItem.java | 11 | ||||
| -rw-r--r-- | src/com/android/camera/ui/PieRenderer.java | 1 |
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 |
