diff --git a/app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java b/app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java index 07f928d8f5..b5331db53f 100644 --- a/app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java +++ b/app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java @@ -20,9 +20,11 @@ package eu.faircode.email; */ import android.content.Context; +import android.view.MenuItem; import android.view.View; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.widget.PopupMenu; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleObserver; @@ -48,6 +50,22 @@ public class PopupMenuLifecycle extends PopupMenu implements LifecycleObserver { } } + @Override + public void setOnMenuItemClickListener(@Nullable OnMenuItemClickListener listener) { + super.setOnMenuItemClickListener(new OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + try { + // Handle click just before destroy + return listener.onMenuItemClick(item); + } catch (Throwable ex) { + Log.w(ex); + return false; + } + } + }); + } + @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) public void onDestroy() { Log.i("Destroy " + this);