Merge "Don't show an app icon for uninitalized user" into sc-dev

This commit is contained in:
Beverly Tai
2021-03-18 16:20:33 +00:00
committed by Android (Google) Code Review
2 changed files with 14 additions and 2 deletions

View File

@@ -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);

View File

@@ -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);
}
}