Merge "Fix a timing issue where LauncherApps registers its callback twice"

This commit is contained in:
TreeHugger Robot
2020-09-24 17:36:19 +00:00
committed by Android (Google) Code Review

View File

@@ -75,6 +75,7 @@ import android.util.Log;
import android.util.Pair;
import android.util.Slog;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.content.PackageMonitor;
import com.android.internal.os.BackgroundThread;
@@ -143,6 +144,9 @@ public class LauncherAppsService extends SystemService {
private final MyPackageMonitor mPackageMonitor = new MyPackageMonitor();
@GuardedBy("mListeners")
private boolean mIsWatchingPackageBroadcasts = false;
private final ShortcutChangeHandler mShortcutChangeHandler;
private final Handler mCallbackHandler;
@@ -281,7 +285,10 @@ public class LauncherAppsService extends SystemService {
* Register a receiver to watch for package broadcasts
*/
private void startWatchingPackageBroadcasts() {
mPackageMonitor.register(mContext, UserHandle.ALL, true, mCallbackHandler);
if (!mIsWatchingPackageBroadcasts) {
mPackageMonitor.register(mContext, UserHandle.ALL, true, mCallbackHandler);
mIsWatchingPackageBroadcasts = true;
}
}
/**
@@ -291,7 +298,10 @@ public class LauncherAppsService extends SystemService {
if (DEBUG) {
Log.d(TAG, "Stopped watching for packages");
}
mPackageMonitor.unregister();
if (mIsWatchingPackageBroadcasts) {
mPackageMonitor.unregister();
mIsWatchingPackageBroadcasts = false;
}
}
void checkCallbackCount() {