From 1a85c5839c91942b3c7dd0da5992db4d98defdc3 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Tue, 30 Sep 2014 09:48:49 -0700 Subject: Don't let old Launcher activity interfere with new one -> Launcher uses a static instance of it's loader (across multiple activities) since activities can come and go (configuration change, eg.) but the data model and loading is static. -> Currently, this is not robust to a sequence of events that looks like onCreate(instance A), onCreate(instance B), onDestroy(instance B) -- depending on the timing of those calls. -> This CL addresses a symptom of the above scenario by not allowing an older Launcher Activity cancel the loader / clear the callbacks for a newer Activity. Bug 17679693 Change-Id: I8ece93e288464b0d578b9669c165b67132d997ed --- src/com/android/launcher3/LauncherModel.java | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/com/android/launcher3/LauncherModel.java') diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index dd948916b..60eb15f9c 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -1385,6 +1385,10 @@ public class LauncherModel extends BroadcastReceiver return isLaunching; } + public boolean isCurrentCallbacks(Callbacks callbacks) { + return (mCallbacks != null && mCallbacks.get() == callbacks); + } + public void startLoader(boolean isLaunching, int synchronousBindPage) { startLoader(isLaunching, synchronousBindPage, LOADER_FLAG_NONE); } -- cgit v1.2.3