Simple email application for Android. Original source code: https://framagit.org/dystopia-project/simple-email

38 lines
1.0 KiB

  1. package eu.faircode.email;
  2. import android.content.Context;
  3. import androidx.appcompat.app.AlertDialog;
  4. import androidx.lifecycle.Lifecycle;
  5. import androidx.lifecycle.LifecycleObserver;
  6. import androidx.lifecycle.LifecycleOwner;
  7. import androidx.lifecycle.OnLifecycleEvent;
  8. public class DialogBuilderLifecycle extends AlertDialog.Builder implements LifecycleObserver {
  9. private LifecycleOwner owner;
  10. private AlertDialog dialog;
  11. public DialogBuilderLifecycle(Context context, LifecycleOwner owner) {
  12. super(context);
  13. this.owner = owner;
  14. }
  15. public DialogBuilderLifecycle(Context context, int themeResId, LifecycleOwner owner) {
  16. super(context, themeResId);
  17. this.owner = owner;
  18. }
  19. @Override
  20. public AlertDialog create() {
  21. dialog = super.create();
  22. owner.getLifecycle().addObserver(this);
  23. return dialog;
  24. }
  25. @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
  26. public void onDestroy() {
  27. dialog.dismiss();
  28. owner = null;
  29. dialog = null;
  30. }
  31. }