diff options
Diffstat (limited to 'src/com/android/camera/ui/CameraControls.java')
-rw-r--r-- | src/com/android/camera/ui/CameraControls.java | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/com/android/camera/ui/CameraControls.java b/src/com/android/camera/ui/CameraControls.java index 763abe914..c5a6d9b9b 100644 --- a/src/com/android/camera/ui/CameraControls.java +++ b/src/com/android/camera/ui/CameraControls.java @@ -80,6 +80,7 @@ public class CameraControls extends RotatableLayout { private View mReviewRetakeButton; private final List<View> mViews = new ArrayList<>(); + private final List<View> mViewsDisabled = new ArrayList<>(); private static final int WIDTH_GRID = 5; private static final int HEIGHT_GRID = 7; @@ -146,10 +147,18 @@ public class CameraControls extends RotatableLayout { public void enableTouch(boolean enable) { synchronized (mViews) { - for (View v : mViews) { - if (v.getVisibility() != View.GONE) { - v.setEnabled(enable); + if (!enable) { + for (View v : mViews) { + if (v.getVisibility() != View.GONE && v.isEnabled()) { + mViewsDisabled.add(v); + v.setEnabled(false); + } } + } else { + for (View v : mViewsDisabled) { + v.setEnabled(true); + } + mViewsDisabled.clear(); } } @@ -165,6 +174,9 @@ public class CameraControls extends RotatableLayout { public void removeFromViewList(View view) { synchronized (mViews) { + if (mViewsDisabled.contains(view)) { + mViewsDisabled.remove(view); + } if (view == null || !mViews.contains(view)) { return; } |