diff options
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java | 7 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/toast/SystemUIToast.java | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java index 2528ac1767f8..f180776bbe93 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -1496,6 +1496,13 @@ public class ApplicationsState { } } + /** + * Whether the packages for the user have been initialized. + */ + public boolean isUserAdded(int userId) { + return mEntriesMap.contains(userId); + } + public interface Callbacks { void onRunningStateChanged(boolean running); diff --git a/packages/SystemUI/src/com/android/systemui/toast/SystemUIToast.java b/packages/SystemUI/src/com/android/systemui/toast/SystemUIToast.java index fd19528e6d55..3892f310e669 100644 --- a/packages/SystemUI/src/com/android/systemui/toast/SystemUIToast.java +++ b/packages/SystemUI/src/com/android/systemui/toast/SystemUIToast.java @@ -26,6 +26,7 @@ import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.UserHandle; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; @@ -43,6 +44,7 @@ import com.android.systemui.plugins.ToastPlugin; * directly. Instead, use {@link ToastFactory#createToast}. */ public class SystemUIToast implements ToastPlugin.Toast { + static final String TAG = "SystemUIToast"; final Context mContext; final CharSequence mText; final ToastPlugin.Toast mPluginToast; @@ -225,8 +227,12 @@ public class SystemUIToast implements ToastPlugin.Toast { int userId) { final ApplicationsState appState = ApplicationsState.getInstance((Application) context.getApplicationContext()); + if (!appState.isUserAdded(userId)) { + Log.d(TAG, "user hasn't been fully initialized, not showing an app icon for " + + "packageName=" + packageName); + return null; + } final AppEntry appEntry = appState.getEntry(packageName, userId); - if (!ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER.filterApp(appEntry)) { return null; } @@ -237,6 +243,5 @@ public class SystemUIToast implements ToastPlugin.Toast { Bitmap iconBmp = iconFactory.createBadgedIconBitmap( appInfo.loadUnbadgedIcon(context.getPackageManager()), user, true).icon; return new BitmapDrawable(context.getResources(), iconBmp); - } } |