diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 02953b5899..d752740667 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -1816,7 +1816,7 @@ public class AdapterMessage extends RecyclerView.Adapter. - - Copyright 2018-2019 by Marcel Bokhorst (M66B) -*/ - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.TextView; - -import androidx.annotation.Nullable; -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; - private CharSequence title = null; - private CharSequence message = null; - - 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.Builder setTitle(int titleId) { - return setTitle(getContext().getString(titleId)); - } - - @Override - public AlertDialog.Builder setTitle(@Nullable CharSequence title) { - this.title = title; - return this; - } - - @Override - public AlertDialog.Builder setMessage(int messageId) { - return setMessage(getContext().getString(messageId)); - } - - @Override - public AlertDialog.Builder setMessage(@Nullable CharSequence message) { - this.message = message; - return this; - } - - @Override - public AlertDialog create() { - if (title == null && message != null) { - View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_message, null); - TextView tvMessage = dview.findViewById(R.id.tvMessage); - tvMessage.setText(message); - setView(dview); - } else { - if (title != null) - super.setTitle(title); - if (message != null) - super.setMessage(message); - } - dialog = super.create(); - owner.getLifecycle().addObserver(this); - return dialog; - } - - @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) - public void onDestroy() { - dialog.dismiss(); - owner = null; - dialog = null; - title = null; - message = null; - } -}