From 050f9b1279d924d211ba8572876e9ada55a541f0 Mon Sep 17 00:00:00 2001 From: Pinyao Ting Date: Thu, 5 Sep 2019 14:38:08 -0700 Subject: cache shourtcut image Deep shortcuts now supports icon cache. When workspace is being loaded, we will now attempt to load deep shortcuts from memcache/db. The icon for deep shortcuts loaded in the workspace is saved to memcache/db after the workspace is loaded. Bug: 140242324 Change-Id: I49da8319ad203476fe1e45683e2848dbde3473f2 --- .../src/com/android/launcher3/icons/cache/CachingLogic.java | 8 ++++++++ .../com/android/launcher3/icons/cache/IconCacheUpdateHandler.java | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'iconloaderlib') diff --git a/iconloaderlib/src/com/android/launcher3/icons/cache/CachingLogic.java b/iconloaderlib/src/com/android/launcher3/icons/cache/CachingLogic.java index 09f59b84c..16bc7ae83 100644 --- a/iconloaderlib/src/com/android/launcher3/icons/cache/CachingLogic.java +++ b/iconloaderlib/src/com/android/launcher3/icons/cache/CachingLogic.java @@ -17,6 +17,7 @@ package com.android.launcher3.icons.cache; import android.content.ComponentName; import android.content.Context; +import android.content.pm.PackageInfo; import android.os.LocaleList; import android.os.UserHandle; @@ -41,4 +42,11 @@ public interface CachingLogic { default String getKeywords(T object, LocaleList localeList) { return null; } + + /** + * Returns the timestamp the entry was last updated in cache. + */ + default long getLastUpdatedTime(T object, PackageInfo info) { + return info.lastUpdateTime; + } } diff --git a/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java b/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java index 3c71bd027..bcdbce5e2 100644 --- a/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java +++ b/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java @@ -171,8 +171,9 @@ public class IconCacheUpdateHandler { long updateTime = c.getLong(indexLastUpdate); int version = c.getInt(indexVersion); T app = componentMap.remove(component); - if (version == info.versionCode && updateTime == info.lastUpdateTime && - TextUtils.equals(c.getString(systemStateIndex), + if (version == info.versionCode + && updateTime == cachingLogic.getLastUpdatedTime(app, info) + && TextUtils.equals(c.getString(systemStateIndex), mIconCache.getIconSystemState(info.packageName))) { if (mFilterMode == MODE_CLEAR_VALID_ITEMS) { @@ -231,7 +232,6 @@ public class IconCacheUpdateHandler { } } - /** * A runnable that updates invalid icons and adds missing icons in the DB for the provided * LauncherActivityInfo list. Items are updated/added one at a time, so that the -- cgit v1.2.3