Refresh widgets in the model when packages change

Fix: 191163748
Test: local sample app
Change-Id: Ic09ad11cabf6efa471fb6e685cb255c4a17493ee
This commit is contained in:
Stevie Kideckel
2021-06-17 10:54:49 +00:00
parent 358411a96a
commit 69af278f8a
2 changed files with 45 additions and 17 deletions

View File

@@ -29,6 +29,7 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.util.Log;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherSettings;
import com.android.launcher3.LauncherSettings.Favorites;
@@ -123,6 +124,14 @@ public class PackageUpdatedTask extends BaseModelUpdateTask {
activitiesLists.put(
packages[i], appsList.updatePackage(context, packages[i], mUser));
app.getWidgetCache().removePackage(packages[i], mUser);
// The update may have changed which shortcuts/widgets are available.
// Refresh the widgets for the package if we have an activity running.
Launcher launcher = Launcher.ACTIVITY_TRACKER.getCreatedActivity();
if (launcher != null) {
launcher.refreshAndBindWidgetsForPackageUser(
new PackageUserKey(packages[i], mUser));
}
}
}
// Since package was just updated, the target must be available now.