mirror of
https://github.com/M66B/FairEmail.git
synced 2026-05-18 21:18:12 +02:00
Lifecycle aware popup menu
This commit is contained in:
31
app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java
Normal file
31
app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package eu.faircode.email;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.widget.PopupMenu;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.LifecycleObserver;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.lifecycle.OnLifecycleEvent;
|
||||
|
||||
public class PopupMenuLifecycle extends PopupMenu implements LifecycleObserver {
|
||||
private LifecycleOwner owner;
|
||||
|
||||
public PopupMenuLifecycle(@NonNull Context context, LifecycleOwner owner, @NonNull View anchor) {
|
||||
super(context, anchor);
|
||||
this.owner = owner;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
super.show();
|
||||
}
|
||||
|
||||
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
|
||||
public void onDestroy() {
|
||||
this.dismiss();
|
||||
owner = null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user