diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/MockCameraPreview.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/MockCameraPreview.java index c0fd2d2c..d1e5d647 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/MockCameraPreview.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/MockCameraPreview.java @@ -15,6 +15,8 @@ public class MockCameraPreview extends CameraPreview { super(context, parent); } + private View rootView; + @Override public boolean supportsCropping() { return true; @@ -23,7 +25,8 @@ public class MockCameraPreview extends CameraPreview { @NonNull @Override protected View onCreateView(@NonNull Context context, @NonNull ViewGroup parent) { - return new View(context); + rootView = new View(context); + return rootView; } @NonNull @@ -42,6 +45,6 @@ public class MockCameraPreview extends CameraPreview { @NonNull @Override public View getRootView() { - return null; + return rootView; } } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/preview/CameraPreview.java b/cameraview/src/main/java/com/otaliastudios/cameraview/preview/CameraPreview.java index e3b5cee9..a184731d 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/preview/CameraPreview.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/preview/CameraPreview.java @@ -7,6 +7,7 @@ import androidx.annotation.VisibleForTesting; import android.view.View; import android.view.ViewGroup; +import android.view.ViewParent; import com.otaliastudios.cameraview.CameraLogger; import com.otaliastudios.cameraview.engine.CameraEngine; @@ -240,8 +241,11 @@ public abstract class CameraPreview { * this is a lifecycle event. */ public void onDestroy() { - ViewGroup parent = (ViewGroup) getRootView().getParent(); - parent.removeView(getRootView()); + View root = getRootView(); + ViewParent parent = root.getParent(); + if (parent instanceof ViewGroup) { + ((ViewGroup) parent).removeView(root); + } } /**