From ca79c7081671aa83eec25114361229042a049be5 Mon Sep 17 00:00:00 2001 From: Song Chun Fan Date: Mon, 8 Apr 2024 18:20:10 +0000 Subject: [PATCH] [Launcher/Archive] remove all checks for the archiving system property No longer needed Change-Id: I62c8843aa04a245d1dcc30f7787c71d17993f5d1 Merged-In: I62c8843aa04a245d1dcc30f7787c71d17993f5d1 BUG: 331165939 Test: builds --- src/com/android/launcher3/LauncherAppState.java | 2 +- src/com/android/launcher3/Utilities.java | 6 ------ src/com/android/launcher3/icons/IconCache.java | 3 ++- src/com/android/launcher3/model/AllAppsList.java | 3 ++- src/com/android/launcher3/model/ItemInstallQueue.java | 3 ++- src/com/android/launcher3/model/LoaderTask.java | 4 ++-- src/com/android/launcher3/model/PackageUpdatedTask.java | 2 +- src/com/android/launcher3/model/WorkspaceItemProcessor.kt | 7 ++++--- src/com/android/launcher3/model/data/AppInfo.java | 2 +- src/com/android/launcher3/model/data/ItemInfoWithIcon.java | 3 ++- src/com/android/launcher3/pm/InstallSessionHelper.java | 5 +++-- src/com/android/launcher3/pm/InstallSessionTracker.java | 3 ++- src/com/android/launcher3/touch/ItemClickHandler.java | 3 ++- src/com/android/launcher3/util/PackageManagerHelper.java | 5 +++-- 14 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java index 60a6be6c9e..50a597d407 100644 --- a/src/com/android/launcher3/LauncherAppState.java +++ b/src/com/android/launcher3/LauncherAppState.java @@ -110,7 +110,7 @@ public class LauncherAppState implements SafeCloseable { mOnTerminateCallback.add(() -> mContext.getSystemService(LauncherApps.class).unregisterCallback(callbacks)); - if (Utilities.enableSupportForArchiving()) { + if (Flags.enableSupportForArchiving()) { ArchiveCompatibilityParams params = new ArchiveCompatibilityParams(); params.setEnableUnarchivalConfirmation(false); launcherApps.setArchiveCompatibility(params); diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index d44438f5bc..2b886e4570 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -830,10 +830,4 @@ public final class Utilities { // No-Op } } - - /** Encapsulates two flag checks into a single one. */ - public static boolean enableSupportForArchiving() { - return Flags.enableSupportForArchiving() - || getSystemProperty("pm.archiving.enabled", "false").equals("true"); - } } diff --git a/src/com/android/launcher3/icons/IconCache.java b/src/com/android/launcher3/icons/IconCache.java index 1633eba5e1..af704a88f0 100644 --- a/src/com/android/launcher3/icons/IconCache.java +++ b/src/com/android/launcher3/icons/IconCache.java @@ -51,6 +51,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.core.util.Pair; +import com.android.launcher3.Flags; import com.android.launcher3.InvariantDeviceProfile; import com.android.launcher3.Utilities; import com.android.launcher3.icons.ComponentWithLabel.ComponentCachingLogic; @@ -248,7 +249,7 @@ public class IconCache extends BaseIconCache { @SuppressWarnings("NewApi") public synchronized void getTitleAndIcon(ItemInfoWithIcon info, LauncherActivityInfo activityInfo, boolean useLowResIcon) { - boolean isAppArchived = Utilities.enableSupportForArchiving() && activityInfo != null + boolean isAppArchived = Flags.enableSupportForArchiving() && activityInfo != null && activityInfo.getActivityInfo().isArchived; // If we already have activity info, no need to use package icon getTitleAndIcon(info, () -> activityInfo, isAppArchived, useLowResIcon, diff --git a/src/com/android/launcher3/model/AllAppsList.java b/src/com/android/launcher3/model/AllAppsList.java index 8659471d27..8c5ea79034 100644 --- a/src/com/android/launcher3/model/AllAppsList.java +++ b/src/com/android/launcher3/model/AllAppsList.java @@ -33,6 +33,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.launcher3.AppFilter; +import com.android.launcher3.Flags; import com.android.launcher3.Utilities; import com.android.launcher3.compat.AlphabeticIndexCompat; import com.android.launcher3.icons.IconCache; @@ -330,7 +331,7 @@ public class AllAppsList { PackageManagerHelper.getLoadingProgress(info), PackageInstallInfo.STATUS_INSTALLED_DOWNLOADING); applicationInfo.intent = launchIntent; - if (Utilities.enableSupportForArchiving()) { + if (Flags.enableSupportForArchiving()) { // In case an app is archived, the respective item flag corresponding to // archiving should also be applied during package updates if (info.getActivityInfo().isArchived) { diff --git a/src/com/android/launcher3/model/ItemInstallQueue.java b/src/com/android/launcher3/model/ItemInstallQueue.java index d35087980a..90aba2a2de 100644 --- a/src/com/android/launcher3/model/ItemInstallQueue.java +++ b/src/com/android/launcher3/model/ItemInstallQueue.java @@ -40,6 +40,7 @@ import android.util.Pair; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; +import com.android.launcher3.Flags; import com.android.launcher3.InvariantDeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; @@ -300,7 +301,7 @@ public class ItemInstallQueue { } else { lai = laiList.get(0); si.intent = makeLaunchIntent(lai); - if (Utilities.enableSupportForArchiving() + if (Flags.enableSupportForArchiving() && lai.getActivityInfo().isArchived) { si.runtimeStatusFlags |= FLAG_ARCHIVED; } diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java index 17cef900ec..1e56e89ef5 100644 --- a/src/com/android/launcher3/model/LoaderTask.java +++ b/src/com/android/launcher3/model/LoaderTask.java @@ -420,7 +420,7 @@ public class LoaderTask implements Runnable { final HashMap installingPkgs = mSessionHelper.getActiveSessions(); - if (Utilities.enableSupportForArchiving()) { + if (Flags.enableSupportForArchiving()) { mInstallingPkgsCached = installingPkgs; } installingPkgs.forEach(mApp.getIconCache()::updateSessionCache); @@ -667,7 +667,7 @@ public class LoaderTask implements Runnable { for (int i = 0; i < apps.size(); i++) { LauncherActivityInfo app = apps.get(i); AppInfo appInfo = new AppInfo(app, mUserCache.getUserInfo(user), quietMode); - if (Utilities.enableSupportForArchiving() && app.getApplicationInfo().isArchived) { + if (Flags.enableSupportForArchiving() && app.getApplicationInfo().isArchived) { // For archived apps, include progress info in case there is a pending // install session post restart of device. String appPackageName = app.getApplicationInfo().packageName; diff --git a/src/com/android/launcher3/model/PackageUpdatedTask.java b/src/com/android/launcher3/model/PackageUpdatedTask.java index 0ba468d5f0..cc0140d636 100644 --- a/src/com/android/launcher3/model/PackageUpdatedTask.java +++ b/src/com/android/launcher3/model/PackageUpdatedTask.java @@ -276,7 +276,7 @@ public class PackageUpdatedTask extends BaseModelUpdateTask { PackageInstallInfo.STATUS_INSTALLED_DOWNLOADING); // In case an app is archived, we need to make sure that archived state // in WorkspaceItemInfo is refreshed. - if (Utilities.enableSupportForArchiving() && !activities.isEmpty()) { + if (Flags.enableSupportForArchiving() && !activities.isEmpty()) { boolean newArchivalState = activities.get( 0).getActivityInfo().isArchived; if (newArchivalState != si.isArchived()) { diff --git a/src/com/android/launcher3/model/WorkspaceItemProcessor.kt b/src/com/android/launcher3/model/WorkspaceItemProcessor.kt index 59f56dfaa8..9f2a49c669 100644 --- a/src/com/android/launcher3/model/WorkspaceItemProcessor.kt +++ b/src/com/android/launcher3/model/WorkspaceItemProcessor.kt @@ -26,6 +26,7 @@ import android.graphics.Point import android.text.TextUtils import android.util.Log import android.util.LongSparseArray +import com.android.launcher3.Flags import com.android.launcher3.InvariantDeviceProfile import com.android.launcher3.LauncherAppState import com.android.launcher3.LauncherSettings.Favorites @@ -332,7 +333,7 @@ class WorkspaceItemProcessor( } if ( (c.restoreFlag != 0 || - Utilities.enableSupportForArchiving() && + Flags.enableSupportForArchiving() && activityInfo != null && activityInfo.applicationInfo.isArchived) && !TextUtils.isEmpty(targetPkg) ) { @@ -344,7 +345,7 @@ class WorkspaceItemProcessor( ItemInfoWithIcon.FLAG_INSTALL_SESSION_ACTIVE.inv() } else if ( activityInfo == null || - (Utilities.enableSupportForArchiving() && + (Flags.enableSupportForArchiving() && activityInfo.applicationInfo.isArchived) ) { // For archived apps, include progress info in case there is @@ -443,7 +444,7 @@ class WorkspaceItemProcessor( !isSafeMode && (si == null) && (lapi == null) && - !(Utilities.enableSupportForArchiving() && + !(Flags.enableSupportForArchiving() && pmHelper.isAppArchived(component.packageName)) ) { // Restore never started diff --git a/src/com/android/launcher3/model/data/AppInfo.java b/src/com/android/launcher3/model/data/AppInfo.java index 210d720bca..93ba619099 100644 --- a/src/com/android/launcher3/model/data/AppInfo.java +++ b/src/com/android/launcher3/model/data/AppInfo.java @@ -181,7 +181,7 @@ public class AppInfo extends ItemInfoWithIcon implements WorkspaceItemFactory { if (PackageManagerHelper.isAppSuspended(appInfo)) { info.runtimeStatusFlags |= FLAG_DISABLED_SUSPENDED; } - if (Utilities.enableSupportForArchiving() && lai.getActivityInfo().isArchived) { + if (Flags.enableSupportForArchiving() && lai.getActivityInfo().isArchived) { info.runtimeStatusFlags |= FLAG_ARCHIVED; } info.runtimeStatusFlags |= (appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0 diff --git a/src/com/android/launcher3/model/data/ItemInfoWithIcon.java b/src/com/android/launcher3/model/data/ItemInfoWithIcon.java index 352c3633ac..f8878b61d8 100644 --- a/src/com/android/launcher3/model/data/ItemInfoWithIcon.java +++ b/src/com/android/launcher3/model/data/ItemInfoWithIcon.java @@ -22,6 +22,7 @@ import android.os.Process; import androidx.annotation.Nullable; +import com.android.launcher3.Flags; import com.android.launcher3.Utilities; import com.android.launcher3.icons.BitmapInfo; import com.android.launcher3.icons.BitmapInfo.DrawableCreationFlags; @@ -171,7 +172,7 @@ public abstract class ItemInfoWithIcon extends ItemInfo { * Returns true if the app corresponding to the item is archived. */ public boolean isArchived() { - if (!Utilities.enableSupportForArchiving()) { + if (!Flags.enableSupportForArchiving()) { return false; } return (runtimeStatusFlags & FLAG_ARCHIVED) != 0; diff --git a/src/com/android/launcher3/pm/InstallSessionHelper.java b/src/com/android/launcher3/pm/InstallSessionHelper.java index f3769d535f..4a3318e834 100644 --- a/src/com/android/launcher3/pm/InstallSessionHelper.java +++ b/src/com/android/launcher3/pm/InstallSessionHelper.java @@ -29,6 +29,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; +import com.android.launcher3.Flags; import com.android.launcher3.LauncherPrefs; import com.android.launcher3.SessionCommitReceiver; import com.android.launcher3.Utilities; @@ -217,7 +218,7 @@ public class InstallSessionHelper { && !promiseIconAddedForId(sessionInfo.getSessionId())) { // In case of unarchival, we do not want to add a workspace promise icon if one is // not already present. For general app installations however, we do support it. - if (!Utilities.enableSupportForArchiving() || !sessionInfo.isUnarchival()) { + if (!Flags.enableSupportForArchiving() || !sessionInfo.isUnarchival()) { FileLog.d(LOG, "Adding package name to install queue: " + sessionInfo.getAppPackageName()); @@ -232,7 +233,7 @@ public class InstallSessionHelper { public boolean verifySessionInfo(@Nullable final PackageInstaller.SessionInfo sessionInfo) { // For archived apps we always want to show promise icons and the checks below don't apply. - if (Utilities.enableSupportForArchiving() && sessionInfo != null + if (Flags.enableSupportForArchiving() && sessionInfo != null && sessionInfo.isUnarchival()) { return true; } diff --git a/src/com/android/launcher3/pm/InstallSessionTracker.java b/src/com/android/launcher3/pm/InstallSessionTracker.java index eacbc11821..24d58f3e98 100644 --- a/src/com/android/launcher3/pm/InstallSessionTracker.java +++ b/src/com/android/launcher3/pm/InstallSessionTracker.java @@ -31,6 +31,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; +import com.android.launcher3.Flags; import com.android.launcher3.Utilities; import com.android.launcher3.util.PackageUserKey; @@ -80,7 +81,7 @@ public class InstallSessionTracker extends PackageInstaller.SessionCallback { helper.tryQueuePromiseAppIcon(sessionInfo); - if (Utilities.enableSupportForArchiving() && sessionInfo != null + if (Flags.enableSupportForArchiving() && sessionInfo != null && sessionInfo.isUnarchival()) { // For archived apps, icon could already be present on the workspace. To make sure // the icon state is updated, we send a change event. diff --git a/src/com/android/launcher3/touch/ItemClickHandler.java b/src/com/android/launcher3/touch/ItemClickHandler.java index 111931eeeb..b743514758 100644 --- a/src/com/android/launcher3/touch/ItemClickHandler.java +++ b/src/com/android/launcher3/touch/ItemClickHandler.java @@ -41,6 +41,7 @@ import android.widget.Toast; import com.android.launcher3.BubbleTextView; import com.android.launcher3.BuildConfig; +import com.android.launcher3.Flags; import com.android.launcher3.InvariantDeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherSettings; @@ -340,7 +341,7 @@ public class ItemClickHandler { // Check for abandoned promise if ((v instanceof BubbleTextView) && shortcut.hasPromiseIconUi() - && (!Utilities.enableSupportForArchiving() || !shortcut.isArchived())) { + && (!Flags.enableSupportForArchiving() || !shortcut.isArchived())) { String packageName = shortcut.getIntent().getComponent() != null ? shortcut.getIntent().getComponent().getPackageName() : shortcut.getIntent().getPackage(); diff --git a/src/com/android/launcher3/util/PackageManagerHelper.java b/src/com/android/launcher3/util/PackageManagerHelper.java index 606918e2ac..851c79578d 100644 --- a/src/com/android/launcher3/util/PackageManagerHelper.java +++ b/src/com/android/launcher3/util/PackageManagerHelper.java @@ -38,6 +38,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.android.launcher3.Flags; import com.android.launcher3.PendingAddItemInfo; import com.android.launcher3.R; import com.android.launcher3.Utilities; @@ -109,7 +110,7 @@ public class PackageManagerHelper { */ public boolean isAppArchivedForUser(@NonNull final String packageName, @NonNull final UserHandle user) { - if (!Utilities.enableSupportForArchiving()) { + if (!Flags.enableSupportForArchiving()) { return false; } final ApplicationInfo info = getApplicationInfo( @@ -290,6 +291,6 @@ public class PackageManagerHelper { @SuppressWarnings("NewApi") private boolean isPackageInstalledOrArchived(ApplicationInfo info) { return (info.flags & ApplicationInfo.FLAG_INSTALLED) != 0 || ( - Utilities.enableSupportForArchiving() && info.isArchived); + Flags.enableSupportForArchiving() && info.isArchived); } }