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; } }