summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/model
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2017-08-28 15:29:18 -0700
committerSunny Goyal <sunnygoyal@google.com>2017-08-28 15:35:25 -0700
commitf5523921c3aeebe723a7bae96d93abaefde291a4 (patch)
treec49e439116097b1874e312505299de5850b80c12 /src/com/android/launcher3/model
parent1ad3c8f61edd7ff205530846e6e7c049583b8964 (diff)
downloadandroid_packages_apps_Trebuchet-f5523921c3aeebe723a7bae96d93abaefde291a4.tar.gz
android_packages_apps_Trebuchet-f5523921c3aeebe723a7bae96d93abaefde291a4.tar.bz2
android_packages_apps_Trebuchet-f5523921c3aeebe723a7bae96d93abaefde291a4.zip
Adding support for badging instant app icons.
Change-Id: Idc43a1a83e0a93f70879730a0acefbc124f9c0e2
Diffstat (limited to 'src/com/android/launcher3/model')
-rw-r--r--src/com/android/launcher3/model/CacheDataUpdatedTask.java2
-rw-r--r--src/com/android/launcher3/model/PackageInstallStateChangedTask.java15
-rw-r--r--src/com/android/launcher3/model/PackageUpdatedTask.java26
3 files changed, 29 insertions, 14 deletions
diff --git a/src/com/android/launcher3/model/CacheDataUpdatedTask.java b/src/com/android/launcher3/model/CacheDataUpdatedTask.java
index 7a27741c3..0139bd902 100644
--- a/src/com/android/launcher3/model/CacheDataUpdatedTask.java
+++ b/src/com/android/launcher3/model/CacheDataUpdatedTask.java
@@ -88,7 +88,7 @@ public class CacheDataUpdatedTask extends BaseModelUpdateTask {
case OP_CACHE_UPDATE:
return true;
case OP_SESSION_UPDATE:
- return si.isPromise();
+ return si.hasPromiseIconUi();
default:
return false;
}
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;
}
diff --git a/src/com/android/launcher3/model/PackageUpdatedTask.java b/src/com/android/launcher3/model/PackageUpdatedTask.java
index 98bffe1fb..13962a259 100644
--- a/src/com/android/launcher3/model/PackageUpdatedTask.java
+++ b/src/com/android/launcher3/model/PackageUpdatedTask.java
@@ -23,6 +23,7 @@ import android.os.Process;
import android.os.UserHandle;
import android.util.ArrayMap;
import android.util.Log;
+
import com.android.launcher3.AllAppsList;
import com.android.launcher3.AppInfo;
import com.android.launcher3.IconCache;
@@ -32,7 +33,6 @@ import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherAppWidgetInfo;
import com.android.launcher3.LauncherModel.CallbackTask;
import com.android.launcher3.LauncherModel.Callbacks;
-import com.android.launcher3.LauncherSettings;
import com.android.launcher3.LauncherSettings.Favorites;
import com.android.launcher3.SessionCommitReceiver;
import com.android.launcher3.ShortcutInfo;
@@ -46,6 +46,7 @@ import com.android.launcher3.util.ItemInfoMatcher;
import com.android.launcher3.util.LongArrayMap;
import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.util.PackageUserKey;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -198,10 +199,11 @@ public class PackageUpdatedTask extends BaseModelUpdateTask {
if (cn != null && matcher.matches(si, cn)) {
AppInfo appInfo = addedOrUpdatedApps.get(cn);
- if (mOp == OP_REMOVE
- && si.hasStatusFlag(ShortcutInfo.FLAG_SUPPORTS_WEB_UI)) {
+ if (si.hasStatusFlag(ShortcutInfo.FLAG_SUPPORTS_WEB_UI)) {
removedShortcuts.put(si.id, false);
- continue;
+ if (mOp == OP_REMOVE) {
+ continue;
+ }
}
// For system apps, package manager send OP_UPDATE when an
@@ -220,22 +222,20 @@ public class PackageUpdatedTask extends BaseModelUpdateTask {
appInfo = addedOrUpdatedApps.get(cn);
}
- if ((intent == null) || (appInfo == null)) {
+ if (intent != null && appInfo != null) {
+ si.intent = intent;
+ si.status = ShortcutInfo.DEFAULT;
+ infoUpdated = true;
+ } else if (si.hasPromiseIconUi()) {
removedShortcuts.put(si.id, true);
continue;
}
- si.intent = intent;
}
}
- si.status = ShortcutInfo.DEFAULT;
- infoUpdated = true;
- if (si.itemType == Favorites.ITEM_TYPE_APPLICATION) {
- iconCache.getTitleAndIcon(si, si.usingLowResIcon);
- }
}
- if (appInfo != null && Intent.ACTION_MAIN.equals(si.intent.getAction())
- && si.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION) {
+ if ((mOp == OP_ADD || mOp == OP_UPDATE) &&
+ si.itemType == Favorites.ITEM_TYPE_APPLICATION) {
iconCache.getTitleAndIcon(si, si.usingLowResIcon);
infoUpdated = true;
}