summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/ui')
-rw-r--r--src/com/android/camera/ui/CameraRootView.java67
-rw-r--r--src/com/android/camera/ui/FaceView.java18
-rw-r--r--src/com/android/camera/ui/NewCameraRootView.java184
-rw-r--r--src/com/android/camera/ui/RenderOverlay.java6
4 files changed, 65 insertions, 210 deletions
diff --git a/src/com/android/camera/ui/CameraRootView.java b/src/com/android/camera/ui/CameraRootView.java
index 76fea2cfa..adda70697 100644
--- a/src/com/android/camera/ui/CameraRootView.java
+++ b/src/com/android/camera/ui/CameraRootView.java
@@ -20,28 +20,34 @@ import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Rect;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.DisplayManager.DisplayListener;
import android.util.AttributeSet;
-import android.view.Gravity;
import android.view.View;
import android.widget.FrameLayout;
-import android.widget.RelativeLayout;
import com.android.camera.Util;
-import com.android.gallery3d.R;
+import com.android.gallery3d.common.ApiHelper;
-public class CameraRootView extends RelativeLayout {
+public class CameraRootView extends FrameLayout {
private int mTopMargin = 0;
private int mBottomMargin = 0;
private int mLeftMargin = 0;
private int mRightMargin = 0;
- private int mOffset = 0;
private Rect mCurrentInsets;
+ private int mOffset = 0;
+ private Object mDisplayListener;
+ private MyDisplayListener mListener;
+ public interface MyDisplayListener {
+ public void onDisplayChanged();
+ }
+
public CameraRootView(Context context, AttributeSet attrs) {
super(context, attrs);
- // Layout the window as if we did not need navigation bar
- setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
- | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
+ initDisplayListener();
+ setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
@Override
@@ -60,6 +66,46 @@ public class CameraRootView extends RelativeLayout {
return true;
}
+ public void initDisplayListener() {
+ if (ApiHelper.HAS_DISPLAY_LISTENER) {
+ mDisplayListener = new DisplayListener() {
+
+ @Override
+ public void onDisplayAdded(int arg0) {}
+
+ @Override
+ public void onDisplayChanged(int arg0) {
+ mListener.onDisplayChanged();
+ }
+
+ @Override
+ public void onDisplayRemoved(int arg0) {}
+ };
+ }
+ }
+
+ public void setDisplayChangeListener(MyDisplayListener listener) {
+ mListener = listener;
+ }
+
+ @Override
+ public void onAttachedToWindow() {
+ super.onAttachedToWindow();
+ if (ApiHelper.HAS_DISPLAY_LISTENER) {
+ ((DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE))
+ .registerDisplayListener((DisplayListener) mDisplayListener, null);
+ }
+ }
+
+ @Override
+ public void onDetachedFromWindow () {
+ super.onDetachedFromWindow();
+ if (ApiHelper.HAS_DISPLAY_LISTENER) {
+ ((DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE))
+ .unregisterDisplayListener((DisplayListener) mDisplayListener);
+ }
+ }
+
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int rotation = Util.getDisplayRotation((Activity) getContext());
@@ -102,12 +148,15 @@ public class CameraRootView extends RelativeLayout {
// make sure all the children are resized
super.onMeasure(widthMeasureSpec - mLeftMargin - mRightMargin,
heightMeasureSpec - mTopMargin - mBottomMargin);
-
setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
}
@Override
public void onLayout(boolean changed, int l, int t, int r, int b) {
+ r -= l;
+ b -= t;
+ l = 0;
+ t = 0;
int orientation = getResources().getConfiguration().orientation;
// Lay out children
for (int i = 0; i < getChildCount(); i++) {
diff --git a/src/com/android/camera/ui/FaceView.java b/src/com/android/camera/ui/FaceView.java
index 24150497c..7d66dc079 100644
--- a/src/com/android/camera/ui/FaceView.java
+++ b/src/com/android/camera/ui/FaceView.java
@@ -31,9 +31,7 @@ import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
-import com.android.camera.CameraActivity;
-import com.android.camera.CameraScreenNail;
-import com.android.camera.NewPhotoUI;
+import com.android.camera.PhotoUI;
import com.android.camera.Util;
import com.android.gallery3d.R;
import com.android.gallery3d.common.ApiHelper;
@@ -41,7 +39,7 @@ import com.android.gallery3d.common.ApiHelper;
@TargetApi(ApiHelper.VERSION_CODES.ICE_CREAM_SANDWICH)
public class FaceView extends View
implements FocusIndicator, Rotatable,
- NewPhotoUI.SurfaceTextureSizeChangedListener {
+ PhotoUI.SurfaceTextureSizeChangedListener {
private static final String TAG = "CAM FaceView";
private final boolean LOGV = false;
// The value for android.hardware.Camera.setDisplayOrientation.
@@ -190,16 +188,8 @@ public class FaceView extends View
protected void onDraw(Canvas canvas) {
if (!mBlocked && (mFaces != null) && (mFaces.length > 0)) {
int rw, rh;
- if (mUncroppedWidth == 0) {
- // TODO: This check is temporary. It needs to be removed after the
- // refactoring is fully functioning.
- final CameraScreenNail sn = ((CameraActivity) getContext()).getCameraScreenNail();
- rw = sn.getUncroppedRenderWidth();
- rh = sn.getUncroppedRenderHeight();
- } else {
- rw = mUncroppedWidth;
- rh = mUncroppedHeight;
- }
+ rw = mUncroppedWidth;
+ rh = mUncroppedHeight;
// Prepare the matrix.
if (((rh > rw) && ((mDisplayOrientation == 0) || (mDisplayOrientation == 180)))
|| ((rw > rh) && ((mDisplayOrientation == 90) || (mDisplayOrientation == 270)))) {
diff --git a/src/com/android/camera/ui/NewCameraRootView.java b/src/com/android/camera/ui/NewCameraRootView.java
deleted file mode 100644
index 07b6ec623..000000000
--- a/src/com/android/camera/ui/NewCameraRootView.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.camera.ui;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.res.Configuration;
-import android.graphics.Rect;
-import android.hardware.display.DisplayManager;
-import android.hardware.display.DisplayManager.DisplayListener;
-import android.util.AttributeSet;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.FrameLayout;
-
-import com.android.camera.Util;
-import com.android.gallery3d.R;
-import com.android.gallery3d.common.ApiHelper;
-
-public class NewCameraRootView extends FrameLayout {
-
- private int mTopMargin = 0;
- private int mBottomMargin = 0;
- private int mLeftMargin = 0;
- private int mRightMargin = 0;
- private Rect mCurrentInsets;
- private int mOffset = 0;
- private Object mDisplayListener;
- private MyDisplayListener mListener;
- public interface MyDisplayListener {
- public void onDisplayChanged();
- }
-
- public NewCameraRootView(Context context, AttributeSet attrs) {
- super(context, attrs);
- initDisplayListener();
- setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
- | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
- }
-
- @Override
- protected boolean fitSystemWindows(Rect insets) {
- super.fitSystemWindows(insets);
- mCurrentInsets = insets;
- // insets include status bar, navigation bar, etc
- // In this case, we are only concerned with the size of nav bar
- if (mOffset > 0) return true;
-
- if (insets.bottom > 0) {
- mOffset = insets.bottom;
- } else if (insets.right > 0) {
- mOffset = insets.right;
- }
- return true;
- }
-
- public void initDisplayListener() {
- if (ApiHelper.HAS_DISPLAY_LISTENER) {
- mDisplayListener = new DisplayListener() {
-
- @Override
- public void onDisplayAdded(int arg0) {}
-
- @Override
- public void onDisplayChanged(int arg0) {
- mListener.onDisplayChanged();
- }
-
- @Override
- public void onDisplayRemoved(int arg0) {}
- };
- }
- }
-
- public void setDisplayChangeListener(MyDisplayListener listener) {
- mListener = listener;
- }
-
- @Override
- public void onAttachedToWindow() {
- super.onAttachedToWindow();
- if (ApiHelper.HAS_DISPLAY_LISTENER) {
- ((DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE))
- .registerDisplayListener((DisplayListener) mDisplayListener, null);
- }
- }
-
- @Override
- public void onDetachedFromWindow () {
- super.onDetachedFromWindow();
- if (ApiHelper.HAS_DISPLAY_LISTENER) {
- ((DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE))
- .unregisterDisplayListener((DisplayListener) mDisplayListener);
- }
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- int rotation = Util.getDisplayRotation((Activity) getContext());
- // all the layout code assumes camera device orientation to be portrait
- // adjust rotation for landscape
- int orientation = getResources().getConfiguration().orientation;
- int camOrientation = (rotation % 180 == 0) ? Configuration.ORIENTATION_PORTRAIT
- : Configuration.ORIENTATION_LANDSCAPE;
- if (camOrientation != orientation) {
- rotation = (rotation + 90) % 360;
- }
- // calculate margins
- mLeftMargin = 0;
- mRightMargin = 0;
- mBottomMargin = 0;
- mTopMargin = 0;
- switch (rotation) {
- case 0:
- mBottomMargin += mOffset;
- break;
- case 90:
- mRightMargin += mOffset;
- break;
- case 180:
- mTopMargin += mOffset;
- break;
- case 270:
- mLeftMargin += mOffset;
- break;
- }
- if (mCurrentInsets != null) {
- if (mCurrentInsets.right > 0) {
- // navigation bar on the right
- mRightMargin = mRightMargin > 0 ? mRightMargin : mCurrentInsets.right;
- } else {
- // navigation bar on the bottom
- mBottomMargin = mBottomMargin > 0 ? mBottomMargin : mCurrentInsets.bottom;
- }
- }
- // make sure all the children are resized
- super.onMeasure(widthMeasureSpec - mLeftMargin - mRightMargin,
- heightMeasureSpec - mTopMargin - mBottomMargin);
- setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
- }
-
- @Override
- public void onLayout(boolean changed, int l, int t, int r, int b) {
- r -= l;
- b -= t;
- l = 0;
- t = 0;
- int orientation = getResources().getConfiguration().orientation;
- // Lay out children
- for (int i = 0; i < getChildCount(); i++) {
- View v = getChildAt(i);
- if (v instanceof CameraControls) {
- // Lay out camera controls to center on the short side of the screen
- // so that they stay in place during rotation
- int width = v.getMeasuredWidth();
- int height = v.getMeasuredHeight();
- if (orientation == Configuration.ORIENTATION_PORTRAIT) {
- int left = (l + r - width) / 2;
- v.layout(left, t + mTopMargin, left + width, b - mBottomMargin);
- } else {
- int top = (t + b - height) / 2;
- v.layout(l + mLeftMargin, top, r - mRightMargin, top + height);
- }
- } else {
- v.layout(l + mLeftMargin, t + mTopMargin, r - mRightMargin, b - mBottomMargin);
- }
- }
- }
-}
diff --git a/src/com/android/camera/ui/RenderOverlay.java b/src/com/android/camera/ui/RenderOverlay.java
index c61103018..d82ce18b6 100644
--- a/src/com/android/camera/ui/RenderOverlay.java
+++ b/src/com/android/camera/ui/RenderOverlay.java
@@ -23,7 +23,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.widget.FrameLayout;
-import com.android.camera.NewPreviewGestures;
+import com.android.camera.PreviewGestures;
import java.util.ArrayList;
import java.util.List;
@@ -44,7 +44,7 @@ public class RenderOverlay extends FrameLayout {
private RenderView mRenderView;
private List<Renderer> mClients;
- private NewPreviewGestures mGestures;
+ private PreviewGestures mGestures;
// reverse list of touch clients
private List<Renderer> mTouchClients;
private int[] mPosition = new int[2];
@@ -59,7 +59,7 @@ public class RenderOverlay extends FrameLayout {
setWillNotDraw(false);
}
- public void setGestures(NewPreviewGestures gestures) {
+ public void setGestures(PreviewGestures gestures) {
mGestures = gestures;
}