summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/RenderOverlay.java
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2016-11-29 13:34:34 +0100
committerMichael Bestas <mikeioannina@gmail.com>2016-12-23 00:33:27 -0800
commit2bf3a05c66d350e253956503a9388946c1be1c1c (patch)
treecd665058b5a1485d8797087b43515c0bd9f58ef4 /src/com/android/camera/ui/RenderOverlay.java
parent3acc722b184214a4cd76f7ef77b12658297e1f87 (diff)
downloadandroid_packages_apps_Snap-2bf3a05c66d350e253956503a9388946c1be1c1c.tar.gz
android_packages_apps_Snap-2bf3a05c66d350e253956503a9388946c1be1c1c.tar.bz2
android_packages_apps_Snap-2bf3a05c66d350e253956503a9388946c1be1c1c.zip
Use transparent navigation bar.
Ensures a 16:9 preview isn't scaled on a 16:9 screen just due to the navigation bar being shown. Change-Id: I7ca7778b0405d3e9ac7ae1db3e7a56cacd703e3b
Diffstat (limited to 'src/com/android/camera/ui/RenderOverlay.java')
-rw-r--r--src/com/android/camera/ui/RenderOverlay.java26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/com/android/camera/ui/RenderOverlay.java b/src/com/android/camera/ui/RenderOverlay.java
index 8e2f4457f..5f9b7aebf 100644
--- a/src/com/android/camera/ui/RenderOverlay.java
+++ b/src/com/android/camera/ui/RenderOverlay.java
@@ -18,6 +18,7 @@ package com.android.camera.ui;
import android.content.Context;
import android.graphics.Canvas;
+import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
@@ -48,6 +49,7 @@ public class RenderOverlay extends FrameLayout {
// reverse list of touch clients
private List<Renderer> mTouchClients;
private int[] mPosition = new int[2];
+ private final Rect mInsets = new Rect();
public RenderOverlay(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -69,13 +71,15 @@ public class RenderOverlay extends FrameLayout {
if (renderer.handlesTouch()) {
mTouchClients.add(0, renderer);
}
- renderer.layout(getLeft(), getTop(), getRight(), getBottom());
+ renderer.layout(mRenderView.getLeft(), mRenderView.getTop(),
+ mRenderView.getRight(), mRenderView.getBottom());
}
public void addRenderer(int pos, Renderer renderer) {
mClients.add(pos, renderer);
renderer.setOverlay(this);
- renderer.layout(getLeft(), getTop(), getRight(), getBottom());
+ renderer.layout(mRenderView.getLeft(), mRenderView.getTop(),
+ mRenderView.getRight(), mRenderView.getBottom());
}
public void remove(Renderer renderer) {
@@ -88,6 +92,24 @@ public class RenderOverlay extends FrameLayout {
}
@Override
+ protected boolean fitSystemWindows(Rect insets) {
+ if (!mInsets.equals(insets)) {
+ mInsets.set(insets);
+ // Make sure onMeasure will be called to adapt to the new insets.
+ requestLayout();
+ }
+ return false;
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ // make sure all the children are resized - insets include status bar,
+ // navigation bar, etc, but in this case, we are only concerned with the size of nav bar
+ super.onMeasure(widthMeasureSpec - mInsets.right, heightMeasureSpec - mInsets.bottom);
+ setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
+ }
+
+ @Override
public boolean dispatchTouchEvent(MotionEvent m) {
if (mGestures != null) {
if (!mGestures.isEnabled()) return false;