summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/RenderOverlay.java
diff options
context:
space:
mode:
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;