|
|
- package eu.faircode.email;
-
- import android.content.Context;
-
- import androidx.appcompat.app.AlertDialog;
- import androidx.lifecycle.Lifecycle;
- import androidx.lifecycle.LifecycleObserver;
- import androidx.lifecycle.LifecycleOwner;
- import androidx.lifecycle.OnLifecycleEvent;
-
- public class DialogBuilderLifecycle extends AlertDialog.Builder implements LifecycleObserver {
- private LifecycleOwner owner;
- private AlertDialog dialog;
-
- public DialogBuilderLifecycle(Context context, LifecycleOwner owner) {
- super(context);
- this.owner = owner;
- }
-
- public DialogBuilderLifecycle(Context context, int themeResId, LifecycleOwner owner) {
- super(context, themeResId);
- this.owner = owner;
- }
-
- @Override
- public AlertDialog create() {
- dialog = super.create();
- owner.getLifecycle().addObserver(this);
- return dialog;
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
- public void onDestroy() {
- dialog.dismiss();
- owner = null;
- dialog = null;
- }
- }
|