Revert "SnapdragonCamera: Add preview thumbnail button"
This reverts commit 71b2bfc91e157d8ee922fca6985251f37415d343.
diff --git a/res/layout-land/camera_controls.xml b/res/layout-land/camera_controls.xml
index 65a17ca..1d911ba 100644
--- a/res/layout-land/camera_controls.xml
+++ b/res/layout-land/camera_controls.xml
@@ -64,14 +64,14 @@
android:scaleType="center"
android:src="@drawable/btn_new_shutter" />
- <com.android.camera.ui.RotateImageView
+ <ImageView
android:id="@+id/preview_thumb"
android:layout_width="@dimen/capture_size"
android:layout_height="@dimen/capture_size"
android:layout_gravity="top|right"
- android:background="@android:color/black"
android:contentDescription="@string/switch_photo_filmstrip"
- android:scaleType="fitCenter" />
+ android:scaleType="centerInside"
+ android:visibility="invisible" />
<com.android.camera.ui.RotatableLayout
android:id="@+id/front_back_switcher"
@@ -83,6 +83,15 @@
</com.android.camera.ui.RotatableLayout>
<com.android.camera.ui.RotatableLayout
+ android:id="@+id/flash_switcher"
+ style="@style/ToggleButtonOuter" >
+
+ <com.android.camera.ui.RotateImageView
+ style="@style/ToggleButton"
+ android:layout_gravity="center" />
+ </com.android.camera.ui.RotatableLayout>
+
+ <com.android.camera.ui.RotatableLayout
android:id="@+id/hdr_switcher"
style="@style/ToggleButtonOuter" >
diff --git a/res/layout-port/camera_controls.xml b/res/layout-port/camera_controls.xml
index bf3cda0..130efc7 100644
--- a/res/layout-port/camera_controls.xml
+++ b/res/layout-port/camera_controls.xml
@@ -64,14 +64,14 @@
android:scaleType="center"
android:src="@drawable/btn_new_shutter" />
- <com.android.camera.ui.RotateImageView
+ <ImageView
android:id="@+id/preview_thumb"
android:layout_width="@dimen/capture_size"
android:layout_height="@dimen/capture_size"
android:layout_gravity="top|right"
- android:background="@android:color/black"
android:contentDescription="@string/switch_photo_filmstrip"
- android:scaleType="fitCenter" />
+ android:scaleType="centerInside"
+ android:visibility="invisible" />
<com.android.camera.ui.RotatableLayout
android:id="@+id/front_back_switcher"
@@ -83,6 +83,15 @@
</com.android.camera.ui.RotatableLayout>
<com.android.camera.ui.RotatableLayout
+ android:id="@+id/flash_switcher"
+ style="@style/ToggleButtonOuter" >
+
+ <com.android.camera.ui.RotateImageView
+ style="@style/ToggleButton"
+ android:layout_gravity="center" />
+ </com.android.camera.ui.RotatableLayout>
+
+ <com.android.camera.ui.RotatableLayout
android:id="@+id/hdr_switcher"
style="@style/ToggleButtonOuter" >
diff --git a/res/values/qcomstrings.xml b/res/values/qcomstrings.xml
index c76f5c6..c72f9bb 100644
--- a/res/values/qcomstrings.xml
+++ b/res/values/qcomstrings.xml
@@ -283,7 +283,7 @@
<string name="pref_camera_video_tnr_default" translatable="false">off</string>
<!-- Default face detection setting. -->
- <string name="pref_camera_facedetection_default" translatable="false">off</string>
+ <string name="pref_camera_facedetection_default" translatable="false">on</string>
<!-- Settings screen, Select Face Detection -->
<string name="pref_camera_facedetection_title">Face Detection</string>
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index b5fc0a6..bc8e2f1 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -33,12 +33,8 @@
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
-import android.database.Cursor;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
-import android.media.ThumbnailUtils;
import android.nfc.NfcAdapter;
import android.nfc.NfcAdapter.CreateBeamUrisCallback;
import android.nfc.NfcEvent;
@@ -87,7 +83,6 @@
import com.android.camera.ui.ModuleSwitcher;
import com.android.camera.ui.DetailsDialog;
import com.android.camera.ui.FilmStripView;
-import com.android.camera.ui.FilmStripView.ImageData;
import com.android.camera.util.ApiHelper;
import com.android.camera.util.CameraUtil;
import com.android.camera.util.GcamHelper;
@@ -188,8 +183,6 @@
private boolean mIsUndoingDeletion = false;
private boolean mIsEditActivityInProgress = false;
protected boolean mIsModuleSwitchInProgress = false;
- private View mPreviewCover;
- private FrameLayout mPreviewContentLayout;
private Uri[] mNfcPushUris = new Uri[1];
@@ -208,7 +201,6 @@
private Intent mImageShareIntent;
public static int SETTING_LIST_WIDTH_1 = 250;
public static int SETTING_LIST_WIDTH_2 = 250;
- private Bitmap mPreviewThumbnailBitmap;
private class MyOrientationEventListener
extends OrientationEventListener {
@@ -519,13 +511,10 @@
};
public void gotoGallery() {
- LocalDataAdapter adapter = getDataAdapter();
- ImageData img = adapter.getImageData(1);
- if (img == null)
- return;
- Uri uri = img.getContentUri();
- Intent intent = new Intent(Intent.ACTION_VIEW, uri);
- startActivity(intent);
+ UsageStatistics.onEvent(UsageStatistics.COMPONENT_CAMERA, UsageStatistics.ACTION_FILMSTRIP,
+ "thumbnailTap");
+
+ mFilmStripView.getController().goToNextItem();
}
/**
@@ -609,98 +598,6 @@
mNfcPushUris[0] = uri;
}
- public LocalDataAdapter getDataAdapter() {
- return mDataAdapter;
- }
-
- private String getPathFromUri(Uri uri) {
- String[] projection = {
- MediaStore.Images.Media.DATA
- };
- Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
- if (cursor == null)
- return null;
- int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
- cursor.moveToFirst();
- String s = cursor.getString(column_index);
- cursor.close();
- return s;
- }
-
- public void setPreviewThumbnailBitmap(Bitmap bitmap) {
- mPreviewThumbnailBitmap = bitmap;
- }
-
- public Bitmap getPreviewThumbBitmap() {
- return mPreviewThumbnailBitmap;
- }
-
- public void updatePreviewThumbnail() {
- if (mCurrentModule != null) {
- if (mCurrentModule instanceof VideoModule) {
- ((VideoModule) mCurrentModule).updatePreviewThumbnail();
- }
- else if (mCurrentModule instanceof WideAnglePanoramaModule) {
- ((WideAnglePanoramaModule) mCurrentModule).updatePreviewThumbnail();
- }
- else if (mCurrentModule instanceof PhotoModule) {
- ((PhotoModule) mCurrentModule).updatePreviewThumbnail();
- }
- }
- }
-
- public void updatePreviewThumbnailForVideo() {
- if (mCurrentModule != null) {
- if (mCurrentModule instanceof VideoModule) {
- ((VideoModule) mCurrentModule).updatePreviewThumbnail();
- }
- }
- }
-
- public class UpdatePreviewThumbnail extends AsyncTask<Void, Void, Bitmap> {
- private ImageView imgView;
- private Bitmap imgBitmap = null;
-
- public UpdatePreviewThumbnail(ImageView view) {
- imgView = view;
- }
-
- @Override
- protected Bitmap doInBackground(Void... params) {
- if (imgBitmap != null)
- return imgBitmap;
-
- LocalDataAdapter adapter = getDataAdapter();
- ImageData img = adapter.getImageData(1);
- if (img == null) {
- return null;
- }
- Uri uri = img.getContentUri();
- String path = getPathFromUri(uri);
- if (path == null) {
- return null;
- }
- else {
- if (img.isPhoto()) {
- BitmapFactory.Options opt = new BitmapFactory.Options();
- opt.inSampleSize = 4;
- return BitmapFactory.decodeFile(path, opt);
- } else {
- return ThumbnailUtils
- .createVideoThumbnail(path, MediaStore.Video.Thumbnails.MICRO_KIND);
- }
- }
- }
-
- @Override
- protected void onPostExecute(Bitmap bitmap) {
- if (imgView == null)
- return;
- imgView.setImageBitmap(bitmap);
- setPreviewThumbnailBitmap(bitmap);
- }
- }
-
private void setStandardShareIntent(Uri contentUri, String mimeType) {
mStandardShareIntent = getShareIntentFromType(mimeType);
if (mStandardShareIntent != null) {
diff --git a/src/com/android/camera/CustomPhotoMenu.java b/src/com/android/camera/CustomPhotoMenu.java
index 551412a..f8230c0 100644
--- a/src/com/android/camera/CustomPhotoMenu.java
+++ b/src/com/android/camera/CustomPhotoMenu.java
@@ -81,6 +81,7 @@
private static final int MODE_FILTER = 1;
private static final int DEVELOPER_MENU_TOUCH_COUNT = 10;
private int mSceneStatus;
+ private View mFlashSwitcher;
private View mHdrSwitcher;
private View mFrontBackSwitcher;
private View mSceneModeSwitcher;
@@ -102,6 +103,7 @@
mSettingOff = activity.getString(R.string.setting_off_value);
mActivity = activity;
mFrontBackSwitcher = ui.getRootView().findViewById(R.id.front_back_switcher);
+ mFlashSwitcher = ui.getRootView().findViewById(R.id.flash_switcher);
mHdrSwitcher = ui.getRootView().findViewById(R.id.hdr_switcher);
mSceneModeSwitcher = ui.getRootView().findViewById(R.id.scene_mode_switcher);
mFilterModeSwitcher = ui.getRootView().findViewById(R.id.filter_mode_switcher);
@@ -120,6 +122,7 @@
initSceneModeButton(mSceneModeSwitcher);
initFilterModeButton(mFilterModeSwitcher);
mHdrSwitcher.setVisibility(View.INVISIBLE);
+ mFlashSwitcher.setVisibility(View.INVISIBLE);
mFrontBackSwitcher.setVisibility(View.INVISIBLE);
// HDR.
@@ -176,6 +179,7 @@
};
initSwitchItem(CameraSettings.KEY_CAMERA_ID, mFrontBackSwitcher);
+ initSwitchItem(CameraSettings.KEY_FLASH_MODE, mFlashSwitcher);
}
@Override
@@ -453,6 +457,9 @@
@Override
public void overrideSettings(final String... keyvalues) {
for (int i = 0; i < keyvalues.length; i += 2) {
+ if (keyvalues[i].equals(CameraSettings.KEY_FLASH_MODE)) {
+ buttonSetEnabled(mFlashSwitcher, keyvalues[i + 1] == null);
+ }
if (keyvalues[i].equals(CameraSettings.KEY_SCENE_MODE)) {
buttonSetEnabled(mSceneModeSwitcher, keyvalues[i + 1] == null);
}
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 5fb7ac7..81b9f69 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -2557,10 +2557,6 @@
}
}
- public void updatePreviewThumbnail() {
- mUI.updatePreviewThumbnail();
- }
-
private void setDisplayOrientation() {
mDisplayRotation = CameraUtil.getDisplayRotation(mActivity);
mDisplayOrientation = CameraUtil.getDisplayOrientation(mDisplayRotation, mCameraId);
diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java
index 4067254..803c2b1 100644
--- a/src/com/android/camera/PhotoUI.java
+++ b/src/com/android/camera/PhotoUI.java
@@ -53,7 +53,6 @@
import android.widget.Toast;
import android.graphics.drawable.AnimationDrawable;
-import com.android.camera.CameraActivity.UpdatePreviewThumbnail;
import com.android.camera.CameraPreference.OnPreferenceChangedListener;
import com.android.camera.FocusOverlayManager.FocusUI;
import com.android.camera.ui.AbstractSettingPopup;
@@ -230,7 +229,7 @@
@Override
protected void onPostExecute(Bitmap bitmap) {
mPreviewThumb.setImageBitmap(bitmap);
- updatePreviewThumbnail(bitmap);
+ mAnimationManager.startCaptureAnimation(mPreviewThumb);
}
}
@@ -287,24 +286,6 @@
mPrevOrientationResize = false;
}
- public void updatePreviewThumbnail() {
- mPreviewThumb.setVisibility(View.VISIBLE);
- Bitmap bitmap = mActivity.getPreviewThumbBitmap();
- if (bitmap != null) {
- mPreviewThumb.setImageBitmap(bitmap);
- }
- else {
- UpdatePreviewThumbnail task = mActivity.new UpdatePreviewThumbnail(mPreviewThumb);
- task.execute();
- }
- }
-
- public void updatePreviewThumbnail(Bitmap bitmap) {
- mPreviewThumb.setVisibility(View.VISIBLE);
- mPreviewThumb.setImageBitmap(bitmap);
- mActivity.setPreviewThumbnailBitmap(bitmap);
- }
-
public void setDownFactor(int factor) {
mDownSampleFactor = factor;
}
@@ -401,7 +382,6 @@
// Re-apply transform matrix for new surface texture
setTransformMatrix(mPreviewWidth, mPreviewHeight);
}
- updatePreviewThumbnail();
}
@Override
@@ -557,7 +537,7 @@
mSwitcher.setVisibility(View.VISIBLE);
}
// called from onResume but only the first time
- public void initializeFirstTime() {
+ public void initializeFirstTime() {
// Initialize shutter button.
mShutterButton.setImageBitmap(null);
mShutterButton.setBackgroundResource(R.drawable.shutter_button_anim);
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 8259b82..b38b9d6 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -1520,10 +1520,6 @@
mCurrentVideoValues = null;
}
- public void updatePreviewThumbnail() {
- mUI.updateWithNewPreviewThumbnail();
- }
-
private void deleteVideoFile(String fileName) {
Log.v(TAG, "Deleting video " + fileName);
File f = new File(fileName);
diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java
index 6dd793d..2167b61 100644
--- a/src/com/android/camera/VideoUI.java
+++ b/src/com/android/camera/VideoUI.java
@@ -45,7 +45,6 @@
import android.widget.PopupWindow;
import android.widget.TextView;
-import com.android.camera.CameraActivity.UpdatePreviewThumbnail;
import com.android.camera.CameraPreference.OnPreferenceChangedListener;
import com.android.camera.ui.AbstractSettingPopup;
import com.android.camera.ui.CameraControls;
@@ -95,7 +94,7 @@
private VideoController mController;
private int mZoomMax;
private List<Integer> mZoomRatios;
- private ImageView mPreviewThumb;
+ private View mPreviewThumb;
private View mFlashOverlay;
private boolean mOrientationResize;
private boolean mPrevOrientationResize;
@@ -241,23 +240,6 @@
mPrevOrientationResize = false;
}
- public void updatePreviewThumbnail() {
- mPreviewThumb.setVisibility(View.VISIBLE);
- Bitmap bitmap = mActivity.getPreviewThumbBitmap();
- if (bitmap != null)
- mPreviewThumb.setImageBitmap(bitmap);
- else {
- UpdatePreviewThumbnail task = mActivity.new UpdatePreviewThumbnail(mPreviewThumb);
- task.execute();
- }
- }
-
- public void updateWithNewPreviewThumbnail() {
- mPreviewThumb.setVisibility(View.VISIBLE);
- UpdatePreviewThumbnail task = mActivity.new UpdatePreviewThumbnail(mPreviewThumb);
- task.execute();
- }
-
public void cameraOrientationPreviewResize(boolean orientation){
mPrevOrientationResize = mOrientationResize;
mOrientationResize = orientation;
@@ -406,7 +388,7 @@
Log.e(TAG, "No valid bitmap for capture animation.");
return;
}
- mPreviewThumb.setImageBitmap(bitmap);
+ ((ImageView) mPreviewThumb).setImageBitmap(bitmap);
mAnimationManager.startCaptureAnimation(mPreviewThumb);
}
@@ -550,7 +532,7 @@
mGestures.setRenderOverlay(mRenderOverlay);
- mPreviewThumb = (ImageView) mRootView.findViewById(R.id.preview_thumb);
+ mPreviewThumb = mRootView.findViewById(R.id.preview_thumb);
mPreviewThumb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -987,7 +969,6 @@
// Re-apply transform matrix for new surface texture
setTransformMatrix(mPreviewWidth, mPreviewHeight);
}
- updatePreviewThumbnail();
}
@Override
diff --git a/src/com/android/camera/WideAnglePanoramaModule.java b/src/com/android/camera/WideAnglePanoramaModule.java
index 4087858..d9f0032 100644
--- a/src/com/android/camera/WideAnglePanoramaModule.java
+++ b/src/com/android/camera/WideAnglePanoramaModule.java
@@ -736,10 +736,6 @@
}
}
- public void updatePreviewThumbnail() {
- mUI.updatePreviewThumbnail();
- }
-
// This function will be called upon the first camera frame is available.
private void reset() {
mCaptureState = CAPTURE_STATE_VIEWFINDER;
diff --git a/src/com/android/camera/WideAnglePanoramaUI.java b/src/com/android/camera/WideAnglePanoramaUI.java
index 8f96439..97c7d43 100644
--- a/src/com/android/camera/WideAnglePanoramaUI.java
+++ b/src/com/android/camera/WideAnglePanoramaUI.java
@@ -34,14 +34,12 @@
import android.view.LayoutInflater;
import android.view.TextureView;
import android.view.View;
-import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-import com.android.camera.CameraActivity.UpdatePreviewThumbnail;
import com.android.camera.ui.CameraControls;
import com.android.camera.ui.CameraRootView;
import com.android.camera.ui.ModuleSwitcher;
@@ -80,7 +78,6 @@
private TextureView mTextureView;
private ShutterButton mShutterButton;
private CameraControls mCameraControls;
- private ImageView mPreviewThumb;
private Matrix mProgressDirectionMatrix = new Matrix();
private float[] mProgressAngle = new float[2];
@@ -107,14 +104,6 @@
mSwitcher = (ModuleSwitcher) mRootView.findViewById(R.id.camera_switcher);
mSwitcher.setCurrentIndex(ModuleSwitcher.WIDE_ANGLE_PANO_MODULE_INDEX);
mSwitcher.setSwitchListener(mActivity);
- mPreviewThumb = (ImageView) mRootView.findViewById(R.id.preview_thumb);
- mPreviewThumb.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- if (!CameraControls.isAnimating())
- mActivity.gotoGallery();
- }
- });
}
public void onStartCapture() {
@@ -213,23 +202,6 @@
mProgressDirectionMatrix.postRotate(orientation);
}
- public void updatePreviewThumbnail(Bitmap bitmap) {
- mPreviewThumb.setVisibility(View.VISIBLE);
- mPreviewThumb.setImageBitmap(bitmap);
- mActivity.setPreviewThumbnailBitmap(bitmap);
- }
-
- public void updatePreviewThumbnail() {
- mPreviewThumb.setVisibility(View.VISIBLE);
- Bitmap bitmap = mActivity.getPreviewThumbBitmap();
- if (bitmap != null)
- mPreviewThumb.setImageBitmap(bitmap);
- else {
- UpdatePreviewThumbnail task = mActivity.new UpdatePreviewThumbnail(mPreviewThumb);
- task.execute();
- }
- }
-
public void showDirectionIndicators(int direction) {
switch (direction) {
case PanoProgressBar.DIRECTION_NONE:
@@ -255,7 +227,6 @@
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i2) {
mSurfaceTexture = surfaceTexture;
mController.onPreviewUIReady();
- updatePreviewThumbnail();
}
@Override
@@ -311,9 +282,6 @@
// is sometimes not shown due to wrong layout result. It's likely to be
// a framework bug. Call requestLayout() as a workaround.
mSavingProgressBar.requestLayout();
-
- updatePreviewThumbnail(Bitmap.createScaledBitmap(bitmap,
- bitmap.getWidth() / 2, bitmap.getHeight() / 2, false));
}
public void onConfigurationChanged(
diff --git a/src/com/android/camera/data/FixedFirstDataAdapter.java b/src/com/android/camera/data/FixedFirstDataAdapter.java
index 03402da..e26ec27 100644
--- a/src/com/android/camera/data/FixedFirstDataAdapter.java
+++ b/src/com/android/camera/data/FixedFirstDataAdapter.java
@@ -158,7 +158,6 @@
return (dataID != 0);
}
});
- mListener.onDataLoaded();
}
@Override
diff --git a/src/com/android/camera/ui/CameraControls.java b/src/com/android/camera/ui/CameraControls.java
index 1c94195..aeaa0d4 100644
--- a/src/com/android/camera/ui/CameraControls.java
+++ b/src/com/android/camera/ui/CameraControls.java
@@ -41,6 +41,7 @@
private View mSwitcher;
private View mMenu;
private View mFrontBackSwitcher;
+ private View mFlashSwitcher;
private View mHdrSwitcher;
private View mIndicators;
private View mPreview;
@@ -52,13 +53,13 @@
private static boolean isAnimating = false;
private ArrayList<View> mViewList;
private static final int FRONT_BACK_INDEX = 0;
- private static final int HDR_INDEX = 1;
- private static final int SCENE_MODE_INDEX = 2;
- private static final int FILTER_MODE_INDEX = 3;
- private static final int MENU_INDEX = 4;
+ private static final int FLASH_INDEX = 1;
+ private static final int HDR_INDEX = 2;
+ private static final int SCENE_MODE_INDEX = 3;
+ private static final int FILTER_MODE_INDEX = 4;
private static final int SWITCHER_INDEX = 5;
private static final int SHUTTER_INDEX = 6;
- private static final int PREVIEW_INDEX = 7;
+ private static final int MENU_INDEX = 7;
private static final int INDICATOR_INDEX = 8;
private static final int ANIME_DURATION = 300;
private float[][] mLocX = new float[4][9];
@@ -81,6 +82,7 @@
resetLocation(0, 0);
mFrontBackSwitcher.setVisibility(View.INVISIBLE);
+ mFlashSwitcher.setVisibility(View.INVISIBLE);
mHdrSwitcher.setVisibility(View.INVISIBLE);
mSceneModeSwitcher.setVisibility(View.INVISIBLE);
mFilterModeSwitcher.setVisibility(View.INVISIBLE);
@@ -99,6 +101,7 @@
resetLocation(0, 0);
mFrontBackSwitcher.setVisibility(View.INVISIBLE);
+ mFlashSwitcher.setVisibility(View.INVISIBLE);
mHdrSwitcher.setVisibility(View.INVISIBLE);
mSceneModeSwitcher.setVisibility(View.INVISIBLE);
mFilterModeSwitcher.setVisibility(View.INVISIBLE);
@@ -158,19 +161,21 @@
mSwitcher.setPressed(false);
mMenu.setPressed(false);
mFrontBackSwitcher.setPressed(false);
+ mFlashSwitcher.setPressed(false);
mHdrSwitcher.setPressed(false);
mSceneModeSwitcher.setPressed(false);
mFilterModeSwitcher.setPressed(false);
} else {
+ mTempEnabled[FLASH_INDEX] = mFlashSwitcher.isEnabled();
mTempEnabled[FILTER_MODE_INDEX] = mFilterModeSwitcher.isEnabled();
}
((ShutterButton) mShutter).enableTouch(enable);
((ModuleSwitcher) mSwitcher).enableTouch(enable);
mMenu.setEnabled(enable);
mFrontBackSwitcher.setEnabled(enable);
+ mFlashSwitcher.setEnabled(enable && mTempEnabled[FLASH_INDEX]);
mHdrSwitcher.setEnabled(enable);
mSceneModeSwitcher.setEnabled(enable);
- mPreview.setEnabled(enable);
mFilterModeSwitcher.setEnabled(enable && mTempEnabled[FILTER_MODE_INDEX]);
}
@@ -178,6 +183,8 @@
mViewList = new ArrayList<View>();
if (mFrontBackSwitcher.getVisibility() == View.VISIBLE)
mViewList.add(mFrontBackSwitcher);
+ if (mFlashSwitcher.getVisibility() == View.VISIBLE)
+ mViewList.add(mFlashSwitcher);
if (mHdrSwitcher.getVisibility() == View.VISIBLE)
mViewList.add(mHdrSwitcher);
if (mSceneModeSwitcher.getVisibility() == View.VISIBLE)
@@ -199,6 +206,7 @@
mSwitcher = findViewById(R.id.camera_switcher);
mShutter = findViewById(R.id.shutter_button);
mFrontBackSwitcher = findViewById(R.id.front_back_switcher);
+ mFlashSwitcher = findViewById(R.id.flash_switcher);
mHdrSwitcher = findViewById(R.id.hdr_switcher);
mMenu = findViewById(R.id.menu);
mIndicators = findViewById(R.id.on_screen_indicators);
@@ -224,6 +232,7 @@
v.layout(l, t, r, b);
}
Rect shutter = new Rect();
+ topRight(mPreview, l, t, r, b);
center(mShutter, l, t, r, b, orientation, rotation, shutter, SHUTTER_INDEX);
mSize = (int) (Math.max(shutter.right - shutter.left, shutter.bottom - shutter.top) * 1.2f);
center(mBackgroundView, l, t, r, b, orientation, rotation, new Rect(), -1);
@@ -243,11 +252,11 @@
private void setLocation(int w, int h) {
int rotation = getUnifiedRotation();
toIndex(mSwitcher, w, h, rotation, 4, 6, SWITCHER_INDEX);
- toIndex(mMenu, w, h, rotation, 4, 0, MENU_INDEX);
+ toIndex(mMenu, w, h, rotation, 0, 6, MENU_INDEX);
toIndex(mIndicators, w, h, rotation, 0, 6, INDICATOR_INDEX);
toIndex(mFrontBackSwitcher, w, h, rotation, 2, 0, FRONT_BACK_INDEX);
- toIndex(mPreview, w, h, rotation, 0, 6, PREVIEW_INDEX);
- toIndex(mHdrSwitcher, w, h, rotation, 3, 0, HDR_INDEX);
+ toIndex(mFlashSwitcher, w, h, rotation, 3, 0, FLASH_INDEX);
+ toIndex(mHdrSwitcher, w, h, rotation, 4, 0, HDR_INDEX);
toIndex(mFilterModeSwitcher, w, h, rotation, 1, 0, FILTER_MODE_INDEX);
toIndex(mSceneModeSwitcher, w, h, rotation, 0, 0, SCENE_MODE_INDEX);
}
@@ -301,24 +310,24 @@
int idx1 = rotation / 90;
mFrontBackSwitcher.setX(mLocX[idx1][FRONT_BACK_INDEX] + x);
+ mFlashSwitcher.setX(mLocX[idx1][FLASH_INDEX] + x);
mHdrSwitcher.setX(mLocX[idx1][HDR_INDEX] + x);
mSceneModeSwitcher.setX(mLocX[idx1][SCENE_MODE_INDEX] + x);
mFilterModeSwitcher.setX(mLocX[idx1][FILTER_MODE_INDEX] + x);
- mMenu.setX(mLocX[idx1][MENU_INDEX] + x);
mSwitcher.setX(mLocX[idx1][SWITCHER_INDEX] - x);
mShutter.setX(mLocX[idx1][SHUTTER_INDEX] - x);
+ mMenu.setX(mLocX[idx1][MENU_INDEX] - x);
mIndicators.setX(mLocX[idx1][INDICATOR_INDEX] - x);
- mPreview.setX(mLocX[idx1][PREVIEW_INDEX] - x);
mFrontBackSwitcher.setY(mLocY[idx1][FRONT_BACK_INDEX] + y);
+ mFlashSwitcher.setY(mLocY[idx1][FLASH_INDEX] + y);
mHdrSwitcher.setY(mLocY[idx1][HDR_INDEX] + y);
mSceneModeSwitcher.setY(mLocY[idx1][SCENE_MODE_INDEX] + y);
mFilterModeSwitcher.setY(mLocY[idx1][FILTER_MODE_INDEX] + y);
- mMenu.setY(mLocY[idx1][MENU_INDEX] + y);
mSwitcher.setY(mLocY[idx1][SWITCHER_INDEX] - y);
mShutter.setY(mLocY[idx1][SHUTTER_INDEX] - y);
+ mMenu.setY(mLocY[idx1][MENU_INDEX] - y);
mIndicators.setY(mLocY[idx1][INDICATOR_INDEX] - y);
- mPreview.setY(mLocY[idx1][PREVIEW_INDEX] - y);
}
public void hideUI() {
@@ -326,6 +335,7 @@
enableTouch(false);
int rotation = getUnifiedRotation();
mFrontBackSwitcher.animate().cancel();
+ mFlashSwitcher.animate().cancel();
mHdrSwitcher.animate().cancel();
mSceneModeSwitcher.animate().cancel();
mFilterModeSwitcher.animate().cancel();
@@ -333,7 +343,6 @@
mShutter.animate().cancel();
mMenu.animate().cancel();
mIndicators.animate().cancel();
- mPreview.animate().cancel();
mFrontBackSwitcher.animate().setListener(outlistener);
((ModuleSwitcher) mSwitcher).removePopup();
resetLocation(0, 0);
@@ -341,51 +350,51 @@
switch (rotation) {
case 0:
mFrontBackSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mHdrSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mSceneModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mFilterModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
- mMenu.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
+ mMenu.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mIndicators.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
- mPreview.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
break;
case 90:
mFrontBackSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mHdrSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mSceneModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mFilterModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
- mMenu.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
+ mMenu.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mIndicators.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
- mPreview.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
break;
case 180:
mFrontBackSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mHdrSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mSceneModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mFilterModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
- mMenu.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
+ mMenu.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mIndicators.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
- mPreview.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
break;
case 270:
mFrontBackSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mHdrSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mSceneModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mFilterModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
- mMenu.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
+ mMenu.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mIndicators.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
- mPreview.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
break;
}
}
@@ -395,6 +404,7 @@
enableTouch(false);
int rotation = getUnifiedRotation();
mFrontBackSwitcher.animate().cancel();
+ mFlashSwitcher.animate().cancel();
mHdrSwitcher.animate().cancel();
mSceneModeSwitcher.animate().cancel();
mFilterModeSwitcher.animate().cancel();
@@ -402,7 +412,6 @@
mShutter.animate().cancel();
mMenu.animate().cancel();
mIndicators.animate().cancel();
- mPreview.animate().cancel();
if (mViewList != null)
for (View v : mViewList) {
v.setVisibility(View.VISIBLE);
@@ -414,7 +423,6 @@
mMenu.setVisibility(View.VISIBLE);
mIndicators.setVisibility(View.VISIBLE);
- mPreview.setVisibility(View.VISIBLE);
mFrontBackSwitcher.animate().setListener(inlistener);
switch (rotation) {
@@ -422,57 +430,57 @@
resetLocation(0, -mSize);
mFrontBackSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mHdrSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mSceneModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mFilterModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
- mMenu.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
+ mMenu.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mIndicators.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
- mPreview.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
break;
case 90:
resetLocation(-mSize, 0);
mFrontBackSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mHdrSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mSceneModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mFilterModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
- mMenu.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
+ mMenu.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mIndicators.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
- mPreview.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
break;
case 180:
resetLocation(0, mSize);
mFrontBackSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mHdrSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mSceneModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mFilterModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
- mMenu.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
+ mMenu.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mIndicators.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
- mPreview.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
break;
case 270:
resetLocation(mSize, 0);
mFrontBackSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mHdrSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mSceneModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mFilterModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
- mMenu.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
+ mMenu.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mIndicators.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
- mPreview.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
break;
}
}
@@ -624,6 +632,14 @@
v.layout(l, t, r, b);
}
+ private void topRight(View v, int l, int t, int r, int b) {
+ // layout using the specific margins; the rotation code messes up the
+ // others
+ int mt = getContext().getResources().getDimensionPixelSize(R.dimen.capture_margin_top);
+ int mr = getContext().getResources().getDimensionPixelSize(R.dimen.capture_margin_right);
+ v.layout(r - v.getMeasuredWidth() - mr, t + mt, r - mr, t + mt + v.getMeasuredHeight());
+ }
+
private void adjustBackground() {
int rotation = getUnifiedRotation();
// remove current drawable and reset rotation
diff --git a/src/com/android/camera/ui/FilmStripView.java b/src/com/android/camera/ui/FilmStripView.java
index 7f197ca..8da49a1 100644
--- a/src/com/android/camera/ui/FilmStripView.java
+++ b/src/com/android/camera/ui/FilmStripView.java
@@ -106,8 +106,6 @@
private boolean mSendToPreviewMenu;
private boolean mSendToMenu;
private boolean mReset;
- private boolean mIsLoaded = false;
-
/**
* Common interface for all images in the filmstrip.
*/
@@ -1735,10 +1733,7 @@
mDataAdapter.setListener(new DataAdapter.Listener() {
@Override
public void onDataLoaded() {
- mActivity.updatePreviewThumbnail();
- if (!mIsLoaded)
- reload();
- mIsLoaded = true;
+ reload();
}
@Override
@@ -1754,7 +1749,6 @@
return;
}
updateInsertion(dataID);
- mActivity.updatePreviewThumbnailForVideo();
}
@Override
@@ -1813,7 +1807,9 @@
&& deltaX < mSlop * (-1)) {
// intercept left swipe
if (Math.abs(deltaX) >= Math.abs(deltaY) * 2) {
- return false;
+ UsageStatistics.onEvent(UsageStatistics.COMPONENT_CAMERA,
+ UsageStatistics.ACTION_FILMSTRIP, null);
+ return true;
}
}
}