Remove isOverlay

pull/502/head
Mattia Iavarone 6 years ago
parent 56b3e81cde
commit bb7b391df3
  1. 2
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java
  2. 14
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/overlay/OverlayLayoutTest.java
  3. 2
      cameraview/src/androidTest/res/layout/not_overlay.xml
  4. 19
      cameraview/src/main/java/com/otaliastudios/cameraview/overlay/OverlayLayout.java

@ -811,7 +811,7 @@ public class CameraViewTest extends BaseTest {
public void testOverlays_addOverlayView() {
cameraView.mOverlayLayout = spy(cameraView.mOverlayLayout);
View overlay = new View(context());
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10, Gravity.CENTER);
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10);
int count = cameraView.getChildCount();
cameraView.addView(overlay, 0, params);
assertEquals(count, cameraView.getChildCount()); // Not added to CameraView

@ -78,12 +78,8 @@ public class OverlayLayoutTest extends BaseTest {
params = new ViewGroup.LayoutParams(10, 10);
assertFalse(overlayLayout.isOverlay(params));
params = new OverlayLayout.LayoutParams(10, 10, Gravity.CENTER);
params = new OverlayLayout.LayoutParams(10, 10);
assertTrue(overlayLayout.isOverlay(params));
// Remove the isOverlay flag.
((OverlayLayout.LayoutParams) params).isOverlay = false;
assertFalse(overlayLayout.isOverlay(params));
}
@Test
@ -109,7 +105,7 @@ public class OverlayLayoutTest extends BaseTest {
@Test
public void testLayoutParams_drawsOn() {
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10, Gravity.CENTER);
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10);
assertFalse(params.drawsOn(Overlay.Target.PREVIEW));
assertFalse(params.drawsOn(Overlay.Target.PICTURE_SNAPSHOT));
@ -125,7 +121,7 @@ public class OverlayLayoutTest extends BaseTest {
@Test
public void testLayoutParams_toString() {
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10, Gravity.CENTER);
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10);
String string = params.toString();
assertTrue(string.contains("drawOnPreview"));
assertTrue(string.contains("drawOnPictureSnapshot"));
@ -135,7 +131,7 @@ public class OverlayLayoutTest extends BaseTest {
@Test
public void testDrawChild() {
Canvas canvas = new Canvas();
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10, Gravity.CENTER);
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10);
View child = new View(context());
child.setLayoutParams(params);
when(overlayLayout.doDrawChild(canvas, child, 0)).thenReturn(true);
@ -174,7 +170,7 @@ public class OverlayLayoutTest extends BaseTest {
public void testDrawOn() {
Canvas canvas = spy(new Canvas());
View child = new View(context());
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10, Gravity.CENTER);
OverlayLayout.LayoutParams params = new OverlayLayout.LayoutParams(10, 10);
params.drawOnPreview = true;
params.drawOnPictureSnapshot = true;
params.drawOnVideoSnapshot = true;

@ -1,6 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layout_isOverlay="false"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

@ -49,7 +49,10 @@ public class OverlayLayout extends FrameLayout implements Overlay {
public boolean isOverlay(@Nullable AttributeSet set) {
if (set == null) return false;
TypedArray a = getContext().obtainStyledAttributes(set, R.styleable.CameraView_Layout);
boolean isOverlay = a.getBoolean(R.styleable.CameraView_Layout_layout_isOverlay, false);
boolean isOverlay =
a.hasValue(R.styleable.CameraView_Layout_layout_drawOnPreview)
|| a.hasValue(R.styleable.CameraView_Layout_layout_drawOnPictureSnapshot)
|| a.hasValue(R.styleable.CameraView_Layout_layout_drawOnVideoSnapshot);
a.recycle();
return isOverlay;
}
@ -60,7 +63,7 @@ public class OverlayLayout extends FrameLayout implements Overlay {
* @return true if overlay
*/
public boolean isOverlay(@NonNull ViewGroup.LayoutParams params) {
return params instanceof LayoutParams && (((LayoutParams) params).isOverlay);
return params instanceof LayoutParams;
}
/**
@ -168,22 +171,18 @@ public class OverlayLayout extends FrameLayout implements Overlay {
public static class LayoutParams extends FrameLayout.LayoutParams {
@SuppressWarnings("unused")
@VisibleForTesting boolean isOverlay;
public boolean drawOnPreview = false;
public boolean drawOnPictureSnapshot = false;
public boolean drawOnVideoSnapshot = false;
public LayoutParams(int width, int height, int gravity) {
super(width, height, gravity);
isOverlay = true;
public LayoutParams(int width, int height) {
super(width, height);
}
public LayoutParams(@NonNull Context context, @NonNull AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CameraView_Layout);
try {
// If someone is calling this constructor, they will likely want isOverlay to be true!
isOverlay = a.getBoolean(R.styleable.CameraView_Layout_layout_isOverlay, true);
drawOnPreview = a.getBoolean(R.styleable.CameraView_Layout_layout_drawOnPreview, false);
drawOnPictureSnapshot = a.getBoolean(R.styleable.CameraView_Layout_layout_drawOnPictureSnapshot, false);
drawOnVideoSnapshot = a.getBoolean(R.styleable.CameraView_Layout_layout_drawOnVideoSnapshot, false);
@ -202,8 +201,8 @@ public class OverlayLayout extends FrameLayout implements Overlay {
@NonNull
@Override
public String toString() {
return getClass().getName() + "[isOverlay:" + isOverlay
+ ",drawOnPreview:" + drawOnPreview
return getClass().getName() + "["
+ "drawOnPreview:" + drawOnPreview
+ ",drawOnPictureSnapshot:" + drawOnPictureSnapshot
+ ",drawOnVideoSnapshot:" + drawOnVideoSnapshot
+ "]";

Loading…
Cancel
Save