From d25d5e52cec4f36aa34368c124786e3b7ae9f97d Mon Sep 17 00:00:00 2001 From: "alexander.melnikov" Date: Sat, 14 Mar 2020 01:42:07 +0300 Subject: [PATCH] Added ability clear lifecycleObserver --- .../otaliastudios/cameraview/CameraView.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java index 07c1d6b4..07bedd06 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java @@ -752,12 +752,23 @@ public class CameraView extends FrameLayout implements LifecycleObserver { * Sets the lifecycle owner for this view. This means you don't need * to call {@link #open()}, {@link #close()} or {@link #destroy()} at all. * + * If you want that lifecycle stopped controlling the state of the camera, + * pass null in this method. + * * @param owner the owner activity or fragment */ - public void setLifecycleOwner(@NonNull LifecycleOwner owner) { + public void setLifecycleOwner(@Nullable LifecycleOwner owner) { + if (owner == null) { + clearLifecycleObserver(); + } else { + clearLifecycleObserver(); + mLifecycle = owner.getLifecycle(); + mLifecycle.addObserver(this); + } + } + + private void clearLifecycleObserver() { if (mLifecycle != null) mLifecycle.removeObserver(this); - mLifecycle = owner.getLifecycle(); - mLifecycle.addObserver(this); } /**