From 6cc806d678c8a44478308119c087ac9adde73b66 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Fri, 2 May 2014 13:47:11 -0700 Subject: Watch for profile events and reload Reload the workspace and all-apps list when a managed profile is added or removed. Bug: 14484845 Change-Id: I69210c22e568f2a561266ef2846ddf8f6d659070 --- src/com/android/launcher3/Launcher.java | 6 ++++++ src/com/android/launcher3/LauncherModel.java | 2 +- src/com/android/launcher3/compat/LauncherAppsCompat.java | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 217219412..5757cb7ee 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1568,6 +1568,9 @@ public class Launcher extends Activity mModel.startLoader(false, PagedView.INVALID_RESTORE_PAGE, LauncherModel.LOADER_FLAG_CLEAR_WORKSPACE | LauncherModel.LOADER_FLAG_MIGRATE_SHORTCUTS); + } else if (LauncherAppsCompat.ACTION_MANAGED_PROFILE_ADDED.equals(action) + || LauncherAppsCompat.ACTION_MANAGED_PROFILE_REMOVED.equals(action)) { + getModel().forceReload(); } } }; @@ -1580,6 +1583,9 @@ public class Launcher extends Activity final IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_SCREEN_OFF); filter.addAction(Intent.ACTION_USER_PRESENT); + // For handling managed profiles + filter.addAction(LauncherAppsCompat.ACTION_MANAGED_PROFILE_ADDED); + filter.addAction(LauncherAppsCompat.ACTION_MANAGED_PROFILE_REMOVED); if (ENABLE_DEBUG_INTENTS) { filter.addAction(DebugIntents.DELETE_DATABASE); filter.addAction(DebugIntents.MIGRATE_DATABASE); diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index 15db057ec..f0ffe1d4c 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -1256,7 +1256,7 @@ public class LauncherModel extends BroadcastReceiver } } - private void forceReload() { + void forceReload() { resetLoadedState(true, true); // Do this here because if the launcher activity is running it will be restarted. diff --git a/src/com/android/launcher3/compat/LauncherAppsCompat.java b/src/com/android/launcher3/compat/LauncherAppsCompat.java index 59ee45c2c..069e3dea7 100644 --- a/src/com/android/launcher3/compat/LauncherAppsCompat.java +++ b/src/com/android/launcher3/compat/LauncherAppsCompat.java @@ -34,6 +34,11 @@ import java.util.Map; public abstract class LauncherAppsCompat { + public static final String ACTION_MANAGED_PROFILE_ADDED = + "android.intent.action.MANAGED_PROFILE_ADDED"; + public static final String ACTION_MANAGED_PROFILE_REMOVED = + "android.intent.action.MANAGED_PROFILE_REMOVED"; + public interface OnAppsChangedListenerCompat { void onPackageRemoved(UserHandleCompat user, String packageName); void onPackageAdded(UserHandleCompat user, String packageName); -- cgit v1.2.3