diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index 761e4f869b..d17b39e775 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -98,7 +98,7 @@ public class AdapterFolder extends RecyclerView.Adapter() { @Override @@ -841,7 +841,7 @@ public class ServiceSynchronize extends LifecycleService { } else folders.put(folder, null); - final TwoStateOwner owner = new TwoStateOwner(ServiceSynchronize.this); + final TwoStateOwner owner = new TwoStateOwner(ServiceSynchronize.this, folder.name); new Handler(getMainLooper()).post(new Runnable() { @Override diff --git a/app/src/main/java/eu/faircode/email/ServiceTileUnseen.java b/app/src/main/java/eu/faircode/email/ServiceTileUnseen.java index 191049dd7c..01a9dadbb9 100644 --- a/app/src/main/java/eu/faircode/email/ServiceTileUnseen.java +++ b/app/src/main/java/eu/faircode/email/ServiceTileUnseen.java @@ -33,7 +33,7 @@ import androidx.lifecycle.Observer; @TargetApi(Build.VERSION_CODES.N) public class ServiceTileUnseen extends TileService { - private TwoStateOwner owner = new TwoStateOwner(); + private TwoStateOwner owner = new TwoStateOwner("ServiceTileUnseen"); @Override public void onCreate() { diff --git a/app/src/main/java/eu/faircode/email/TwoStateOwner.java b/app/src/main/java/eu/faircode/email/TwoStateOwner.java index 64a874184f..d73aeaa1ff 100644 --- a/app/src/main/java/eu/faircode/email/TwoStateOwner.java +++ b/app/src/main/java/eu/faircode/email/TwoStateOwner.java @@ -8,20 +8,33 @@ import androidx.lifecycle.LifecycleRegistry; import androidx.lifecycle.OnLifecycleEvent; public class TwoStateOwner implements LifecycleOwner { + private String name; private LifecycleRegistry registry; // https://developer.android.com/topic/libraries/architecture/lifecycle#lc - TwoStateOwner() { + TwoStateOwner(String aname) { + name = aname; + registry = new LifecycleRegistry(this); registry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE); + + registry.addObserver(new LifecycleObserver() { + @OnLifecycleEvent(Lifecycle.Event.ON_ANY) + public void onAny() { + if (BuildConfig.DEBUG) + Log.i("LifeCycle " + name + " state=" + registry.getCurrentState()); + } + }); } - TwoStateOwner(LifecycleOwner owner) { - this(); + TwoStateOwner(LifecycleOwner owner, String aname) { + this(aname); owner.getLifecycle().addObserver(new LifecycleObserver() { @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) public void onDestroyed() { + if (BuildConfig.DEBUG) + Log.i("LifeCycle " + name + " parent destroyed"); destroy(); } });