summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/model/PackageInstallStateChangedTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/model/PackageInstallStateChangedTask.java')
-rw-r--r--src/com/android/launcher3/model/PackageInstallStateChangedTask.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/com/android/launcher3/model/PackageInstallStateChangedTask.java b/src/com/android/launcher3/model/PackageInstallStateChangedTask.java
index ebc6f2379..32dfe2537 100644
--- a/src/com/android/launcher3/model/PackageInstallStateChangedTask.java
+++ b/src/com/android/launcher3/model/PackageInstallStateChangedTask.java
@@ -16,6 +16,9 @@
package com.android.launcher3.model;
import android.content.ComponentName;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.os.Process;
import com.android.launcher3.AllAppsList;
import com.android.launcher3.AppInfo;
@@ -28,6 +31,7 @@ import com.android.launcher3.PromiseAppInfo;
import com.android.launcher3.ShortcutInfo;
import com.android.launcher3.compat.PackageInstallerCompat;
import com.android.launcher3.compat.PackageInstallerCompat.PackageInstallInfo;
+import com.android.launcher3.util.InstantAppResolver;
import java.util.ArrayList;
import java.util.HashSet;
@@ -46,6 +50,17 @@ public class PackageInstallStateChangedTask extends BaseModelUpdateTask {
@Override
public void execute(LauncherAppState app, BgDataModel dataModel, AllAppsList apps) {
if (mInstallInfo.state == PackageInstallerCompat.STATUS_INSTALLED) {
+ try {
+ // For instant apps we do not get package-add. Use setting events to update
+ // any pinned icons.
+ ApplicationInfo ai = app.getContext()
+ .getPackageManager().getApplicationInfo(mInstallInfo.packageName, 0);
+ if (InstantAppResolver.newInstance(app.getContext()).isInstantApp(ai)) {
+ app.getModel().onPackageAdded(ai.packageName, Process.myUserHandle());
+ }
+ } catch (PackageManager.NameNotFoundException e) {
+ // Ignore
+ }
// Ignore install success events as they are handled by Package add events.
return;
}