Esempio n. 1
0
 /** Updates the entries related to the given package in memory and persistent DB. */
 public synchronized void updateIconsForPkg(String packageName, UserHandleCompat user) {
   removeIconsForPkg(packageName, user);
   try {
     PackageInfo info =
         mPackageManager.getPackageInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
     long userSerial = mUserManager.getSerialNumberForUser(user);
     for (LauncherActivityInfoCompat app : mLauncherApps.getActivityList(packageName, user)) {
       addIconToDBAndMemCache(app, info, userSerial);
     }
   } catch (NameNotFoundException e) {
     Log.d(TAG, "Package not found", e);
     return;
   }
 }
Esempio n. 2
0
  public void updateDbIcons(Set<String> ignorePackagesForMainUser) {
    // Remove all active icon update tasks.
    mWorkerHandler.removeCallbacksAndMessages(ICON_UPDATE_TOKEN);

    updateSystemStateString();
    for (UserHandleCompat user : mUserManager.getUserProfiles()) {
      // Query for the set of apps
      final List<LauncherActivityInfoCompat> apps = mLauncherApps.getActivityList(null, user);
      // Fail if we don't have any apps
      // TODO: Fix this. Only fail for the current user.
      if (apps == null || apps.isEmpty()) {
        return;
      }

      // Update icon cache. This happens in segments and {@link #onPackageIconsUpdated}
      // is called by the icon cache when the job is complete.
      updateDBIcons(
          user,
          apps,
          UserHandleCompat.myUserHandle().equals(user)
              ? ignorePackagesForMainUser
              : Collections.<String>emptySet());
    }
  }