Add ability to clear lifecycleObserver (#798)

* Added ability clear lifecycleObserver

* Added clearing reference on lifecycle
pull/789/merge
Alexander 5 years ago committed by GitHub
parent 778cdedc00
commit 5530c011fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java

@ -752,12 +752,26 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
* Sets the lifecycle owner for this view. This means you don't need * Sets the lifecycle owner for this view. This means you don't need
* to call {@link #open()}, {@link #close()} or {@link #destroy()} at all. * 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 * @param owner the owner activity or fragment
*/ */
public void setLifecycleOwner(@NonNull LifecycleOwner owner) { public void setLifecycleOwner(@Nullable LifecycleOwner owner) {
if (mLifecycle != null) mLifecycle.removeObserver(this); if (owner == null) {
mLifecycle = owner.getLifecycle(); clearLifecycleObserver();
mLifecycle.addObserver(this); } else {
clearLifecycleObserver();
mLifecycle = owner.getLifecycle();
mLifecycle.addObserver(this);
}
}
private void clearLifecycleObserver() {
if (mLifecycle != null) {
mLifecycle.removeObserver(this);
mLifecycle = null;
}
} }
/** /**

Loading…
Cancel
Save