summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/WidgetPreviewLoader.java
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2017-03-29 15:30:43 -0700
committerTony Wickham <twickham@google.com>2017-04-04 14:36:52 -0700
commit86222d23e28a09a7a26e7a0d4b4830ded2efb384 (patch)
treee746881bea2f4173b6d4db0b63f195e02db7fe5e /src/com/android/launcher3/WidgetPreviewLoader.java
parent2f54a1625ae031ffbb2a99a00c7b25de3c677828 (diff)
downloadandroid_packages_apps_Trebuchet-86222d23e28a09a7a26e7a0d4b4830ded2efb384.tar.gz
android_packages_apps_Trebuchet-86222d23e28a09a7a26e7a0d4b4830ded2efb384.tar.bz2
android_packages_apps_Trebuchet-86222d23e28a09a7a26e7a0d4b4830ded2efb384.zip
Add support for getting widgets/shortucts for a particular package/user
Bug: 34940468 Bug: 33553066 Change-Id: I5d0131df206c6a13d4227ad28c5b094bbf1343df
Diffstat (limited to 'src/com/android/launcher3/WidgetPreviewLoader.java')
-rw-r--r--src/com/android/launcher3/WidgetPreviewLoader.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java
index 49e68d75a..fc3b66887 100644
--- a/src/com/android/launcher3/WidgetPreviewLoader.java
+++ b/src/com/android/launcher3/WidgetPreviewLoader.java
@@ -25,6 +25,7 @@ import android.os.AsyncTask;
import android.os.CancellationSignal;
import android.os.Handler;
import android.os.UserHandle;
+import android.support.annotation.Nullable;
import android.support.v4.graphics.ColorUtils;
import android.util.Log;
import android.util.LongSparseArray;
@@ -36,6 +37,7 @@ import com.android.launcher3.graphics.LauncherIcons;
import com.android.launcher3.graphics.ShadowGenerator;
import com.android.launcher3.model.WidgetItem;
import com.android.launcher3.util.ComponentKey;
+import com.android.launcher3.util.PackageUserKey;
import com.android.launcher3.util.Preconditions;
import com.android.launcher3.util.SQLiteCacheHelper;
import com.android.launcher3.util.Thunk;
@@ -170,8 +172,12 @@ public class WidgetPreviewLoader {
* 1. Any preview generated for an old package version is removed
* 2. Any preview for an absent package is removed
* This ensures that we remove entries for packages which changed while the launcher was dead.
+ *
+ * @param packageUser if provided, specifies that list only contains previews for the
+ * given package/user, otherwise the list contains all previews
*/
- public void removeObsoletePreviews(ArrayList<? extends ComponentKey> list) {
+ public void removeObsoletePreviews(ArrayList<? extends ComponentKey> list,
+ @Nullable PackageUserKey packageUser) {
Preconditions.assertWorkerThread();
LongSparseArray<HashSet<String>> validPackages = new LongSparseArray<>();
@@ -187,6 +193,8 @@ public class WidgetPreviewLoader {
}
LongSparseArray<HashSet<String>> packagesToDelete = new LongSparseArray<>();
+ long passedUserId = packageUser == null ? 0
+ : mUserManager.getSerialNumberForUser(packageUser.mUser);
Cursor c = null;
try {
c = mDb.query(
@@ -199,6 +207,12 @@ public class WidgetPreviewLoader {
long lastUpdated = c.getLong(2);
long version = c.getLong(3);
+ if (packageUser != null && (!pkg.equals(packageUser.mPackageName)
+ || userId != passedUserId)) {
+ // This preview is associated with a different package/user, no need to remove.
+ continue;
+ }
+
HashSet<String> packages = validPackages.get(userId);
if (packages != null && packages.contains(pkg)) {
long[] versions = getPackageVersion(pkg);