summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/CameraControls.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/ui/CameraControls.java')
-rw-r--r--src/com/android/camera/ui/CameraControls.java42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/com/android/camera/ui/CameraControls.java b/src/com/android/camera/ui/CameraControls.java
index 0938ffc19..dedf3d583 100644
--- a/src/com/android/camera/ui/CameraControls.java
+++ b/src/com/android/camera/ui/CameraControls.java
@@ -39,6 +39,7 @@ import java.util.ArrayList;
import org.codeaurora.snapcam.R;
import com.android.camera.ui.ModuleSwitcher;
+import com.android.camera.ui.RotateImageView;
import com.android.camera.ShutterButton;
import com.android.camera.util.CameraUtil;
@@ -80,6 +81,7 @@ public class CameraControls extends RotatableLayout {
private LinearLayout mRemainingPhotos;
private TextView mRemainingPhotosText;
+ private int mOrientation;
private int mPreviewRatio;
private static int mTopMargin = 0;
@@ -776,34 +778,22 @@ public class CameraControls extends RotatableLayout {
int h = mRemainingPhotos.getMeasuredHeight();
int m = getResources().getDimensionPixelSize(R.dimen.remaining_photos_margin);
- int hc, vc;
- int rotation = getUnifiedRotation();
- switch (rotation) {
- case 90:
- hc = (rl + rr) / 2 - m;
- vc = (rt + rb) / 2;
- break;
- case 180:
- hc = (rl + rr) / 2;
- vc = (rt + rb) / 2 + m;
- break;
- case 270:
- hc = (rl + rr) / 2 + m;
- vc = (rt + rb) / 2;
- break;
- default:
- hc = (rl + rr) / 2;
- vc = (rt + rb) / 2 - m;
- break;
+ int hc = (rl + rr) / 2;
+ int vc = (rt + rb) / 2 - m;
+ if (mOrientation == 90 || mOrientation == 270) {
+ vc -= w / 2;
}
mRemainingPhotos.layout(hc - w / 2, vc - h / 2, hc + w / 2, vc + h / 2);
+ mRemainingPhotos.setRotation(-mOrientation);
}
public void updateRemainingPhotos(int remaining) {
if (remaining < 0) {
mRemainingPhotos.setVisibility(View.GONE);
} else {
- mRemainingPhotos.setVisibility(View.VISIBLE);
+ for (int i = mRemainingPhotos.getChildCount() - 1; i >= 0; --i) {
+ mRemainingPhotos.getChildAt(i).setVisibility(View.VISIBLE);
+ }
mRemainingPhotosText.setText(remaining + " ");
}
}
@@ -829,6 +819,18 @@ public class CameraControls extends RotatableLayout {
mRemainingPhotos.setVisibility(show ? View.GONE : View.VISIBLE);
}
+ public void setOrientation(int orientation, boolean animation) {
+ mOrientation = orientation;
+ View[] views = {
+ mSceneModeSwitcher, mFilterModeSwitcher, mFrontBackSwitcher,
+ mHdrSwitcher, mMenu, mShutter, mPreview, mSwitcher
+ };
+ for (View v : views) {
+ ((RotateImageView) v).setOrientation(orientation, animation);
+ }
+ layoutRemaingPhotos();
+ }
+
private class ArrowTextView extends TextView {
private static final int TEXT_SIZE = 14;
private static final int PADDING_SIZE = 18;