diff options
38 files changed, 114 insertions, 105 deletions
diff --git a/services/core/java/com/android/server/pm/ApexManager.java b/services/core/java/com/android/server/pm/ApexManager.java index 26e70c0279e3..21284a05ddad 100644 --- a/services/core/java/com/android/server/pm/ApexManager.java +++ b/services/core/java/com/android/server/pm/ApexManager.java @@ -410,7 +410,7 @@ public abstract class ApexManager { * Map of all apex system services to the jar files they are contained in. */ @GuardedBy("mLock") - private List<ApexSystemServiceInfo> mApexSystemServices = new ArrayList<>(); + private final List<ApexSystemServiceInfo> mApexSystemServices = new ArrayList<>(); /** * Contains the list of {@code packageName}s of apks-in-apex for given @@ -418,14 +418,14 @@ public abstract class ApexManager { * difference between {@code packageName} and {@code apexModuleName}. */ @GuardedBy("mLock") - private ArrayMap<String, List<String>> mApksInApex = new ArrayMap<>(); + private final ArrayMap<String, List<String>> mApksInApex = new ArrayMap<>(); /** * Contains the list of {@code Exception}s that were raised when installing apk-in-apex * inside {@code apexModuleName}. */ @GuardedBy("mLock") - private Map<String, String> mErrorWithApkInApex = new ArrayMap<>(); + private final Map<String, String> mErrorWithApkInApex = new ArrayMap<>(); /** * An APEX is a file format that delivers the apex-payload wrapped in an apk container. The diff --git a/services/core/java/com/android/server/pm/AppsFilterBase.java b/services/core/java/com/android/server/pm/AppsFilterBase.java index 5b32a94c4eac..a5bc2c36a5a8 100644 --- a/services/core/java/com/android/server/pm/AppsFilterBase.java +++ b/services/core/java/com/android/server/pm/AppsFilterBase.java @@ -201,7 +201,7 @@ public abstract class AppsFilterBase implements AppsFilterSnapshot { protected static final boolean CACHE_VALID = true; protected static final boolean CACHE_INVALID = false; - protected AtomicBoolean mCacheValid = new AtomicBoolean(CACHE_INVALID); + protected final AtomicBoolean mCacheValid = new AtomicBoolean(CACHE_INVALID); protected boolean isForceQueryable(int callingAppId) { return mForceQueryable.contains(callingAppId); diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java index 9bca9f0192b2..36677df07ca3 100644 --- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java +++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java @@ -89,7 +89,7 @@ public final class BackgroundDexOptService { private static final long CANCELLATION_WAIT_CHECK_INTERVAL_MS = 200; - private static ComponentName sDexoptServiceName = + private static final ComponentName sDexoptServiceName = new ComponentName("android", BackgroundDexOptJobService.class.getName()); // Possible return codes of individual optimization steps. @@ -179,7 +179,7 @@ public final class BackgroundDexOptService { private final long mDowngradeUnusedAppsThresholdInMillis; - private List<PackagesUpdatedListener> mPackagesUpdatedListeners = new ArrayList<>(); + private final List<PackagesUpdatedListener> mPackagesUpdatedListeners = new ArrayList<>(); private int mThermalStatusCutoff = THERMAL_CUTOFF_DEFAULT; diff --git a/services/core/java/com/android/server/pm/CrossProfileAppsService.java b/services/core/java/com/android/server/pm/CrossProfileAppsService.java index 486282aa2c04..0bd165ec91fa 100644 --- a/services/core/java/com/android/server/pm/CrossProfileAppsService.java +++ b/services/core/java/com/android/server/pm/CrossProfileAppsService.java @@ -21,7 +21,7 @@ import android.content.pm.CrossProfileAppsInternal; import com.android.server.SystemService; public class CrossProfileAppsService extends SystemService { - private CrossProfileAppsServiceImpl mServiceImpl; + private final CrossProfileAppsServiceImpl mServiceImpl; public CrossProfileAppsService(Context context) { super(context); diff --git a/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java b/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java index 5f28e56e996c..f1dc2849a391 100644 --- a/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java +++ b/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java @@ -78,8 +78,8 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub { private final LocalService mLocalService = new LocalService(); - private Context mContext; - private Injector mInjector; + private final Context mContext; + private final Injector mInjector; public CrossProfileAppsServiceImpl(Context context) { this(context, new InjectorImpl(context)); @@ -783,7 +783,7 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub { } private static class InjectorImpl implements Injector { - private Context mContext; + private final Context mContext; public InjectorImpl(Context context) { mContext = context; diff --git a/services/core/java/com/android/server/pm/CrossProfileDomainInfo.java b/services/core/java/com/android/server/pm/CrossProfileDomainInfo.java index 72f3afc35e99..3313e7234a19 100644 --- a/services/core/java/com/android/server/pm/CrossProfileDomainInfo.java +++ b/services/core/java/com/android/server/pm/CrossProfileDomainInfo.java @@ -22,10 +22,10 @@ import android.os.UserHandle; public final class CrossProfileDomainInfo { /* ResolveInfo for IntentForwarderActivity to send the intent to the other profile */ - ResolveInfo mResolveInfo; + final ResolveInfo mResolveInfo; int mHighestApprovalLevel; @UserIdInt - int mTargetUserId = UserHandle.USER_CURRENT; // default as current user + final int mTargetUserId; CrossProfileDomainInfo(ResolveInfo resolveInfo, int highestApprovalLevel, @UserIdInt int targetUserId) { @@ -37,6 +37,7 @@ public final class CrossProfileDomainInfo { CrossProfileDomainInfo(ResolveInfo resolveInfo, int highestApprovalLevel) { this.mResolveInfo = resolveInfo; this.mHighestApprovalLevel = highestApprovalLevel; + this.mTargetUserId = UserHandle.USER_CURRENT; // default as current user } @Override diff --git a/services/core/java/com/android/server/pm/CrossProfileIntentFilterHelper.java b/services/core/java/com/android/server/pm/CrossProfileIntentFilterHelper.java index 51214faca730..56e9c0a3544b 100644 --- a/services/core/java/com/android/server/pm/CrossProfileIntentFilterHelper.java +++ b/services/core/java/com/android/server/pm/CrossProfileIntentFilterHelper.java @@ -25,11 +25,11 @@ import android.util.ArraySet; * Helper class to manage {@link com.android.server.pm.CrossProfileIntentFilter}s. */ public class CrossProfileIntentFilterHelper { - private Context mContext; - private UserManagerInternal mUserManagerInternal; - private Settings mSettings; - private UserManagerService mUserManagerService; - private PackageManagerTracedLock mLock; + private final Context mContext; + private final UserManagerInternal mUserManagerInternal; + private final Settings mSettings; + private final UserManagerService mUserManagerService; + private final PackageManagerTracedLock mLock; public CrossProfileIntentFilterHelper(Settings settings, UserManagerService userManagerService, PackageManagerTracedLock lock, UserManagerInternal userManagerInternal, diff --git a/services/core/java/com/android/server/pm/CrossProfileResolver.java b/services/core/java/com/android/server/pm/CrossProfileResolver.java index a8da818932fa..1d38bbb2a1bd 100644 --- a/services/core/java/com/android/server/pm/CrossProfileResolver.java +++ b/services/core/java/com/android/server/pm/CrossProfileResolver.java @@ -36,8 +36,8 @@ import java.util.function.Function; */ public abstract class CrossProfileResolver { - protected ComponentResolverApi mComponentResolver; - protected UserManagerService mUserManager; + protected final ComponentResolverApi mComponentResolver; + protected final UserManagerService mUserManager; public CrossProfileResolver(ComponentResolverApi componentResolver, UserManagerService userManager) { diff --git a/services/core/java/com/android/server/pm/DataLoaderManagerService.java b/services/core/java/com/android/server/pm/DataLoaderManagerService.java index 29322e2553e9..888e1c26206c 100644 --- a/services/core/java/com/android/server/pm/DataLoaderManagerService.java +++ b/services/core/java/com/android/server/pm/DataLoaderManagerService.java @@ -50,7 +50,8 @@ public class DataLoaderManagerService extends SystemService { private final HandlerThread mThread; private final Handler mHandler; private final DataLoaderManagerBinderService mBinderService; - private SparseArray<DataLoaderServiceConnection> mServiceConnections = new SparseArray<>(); + private final SparseArray<DataLoaderServiceConnection> mServiceConnections = + new SparseArray<>(); public DataLoaderManagerService(Context context) { super(context); diff --git a/services/core/java/com/android/server/pm/DefaultCrossProfileIntentFilter.java b/services/core/java/com/android/server/pm/DefaultCrossProfileIntentFilter.java index dc5915de5551..db05dd394915 100644 --- a/services/core/java/com/android/server/pm/DefaultCrossProfileIntentFilter.java +++ b/services/core/java/com/android/server/pm/DefaultCrossProfileIntentFilter.java @@ -75,10 +75,10 @@ public final class DefaultCrossProfileIntentFilter { } static final class Builder { - private WatchedIntentFilter mFilter = new WatchedIntentFilter(); - private int mFlags; - private @Direction int mDirection; - private boolean mLetsPersonalDataIntoProfile; + private final WatchedIntentFilter mFilter = new WatchedIntentFilter(); + private final int mFlags; + private final @Direction int mDirection; + private final boolean mLetsPersonalDataIntoProfile; Builder(@Direction int direction, int flags, boolean letsPersonalDataIntoProfile) { mDirection = direction; diff --git a/services/core/java/com/android/server/pm/InstallArgs.java b/services/core/java/com/android/server/pm/InstallArgs.java index dd96a2b84a97..cc6bb007411e 100644 --- a/services/core/java/com/android/server/pm/InstallArgs.java +++ b/services/core/java/com/android/server/pm/InstallArgs.java @@ -67,7 +67,8 @@ final class InstallArgs { // The list of instruction sets supported by this app. This is currently // only used during the rmdex() phase to clean up resources. We can get rid of this // if we move dex files under the common app path. - @Nullable String[] mInstructionSets; + @Nullable + final String[] mInstructionSets; InstallArgs(OriginInfo originInfo, MoveInfo moveInfo, IPackageInstallObserver2 observer, int installFlags, int developmentInstallFlags, InstallSource installSource, diff --git a/services/core/java/com/android/server/pm/InstallRequest.java b/services/core/java/com/android/server/pm/InstallRequest.java index be4fb5c539a9..fc831205f60e 100644 --- a/services/core/java/com/android/server/pm/InstallRequest.java +++ b/services/core/java/com/android/server/pm/InstallRequest.java @@ -153,7 +153,7 @@ final class InstallRequest { private int[] mUpdateBroadcastInstantUserIds = EMPTY_INT_ARRAY; @NonNull - private ArrayList<String> mWarnings = new ArrayList<>(); + private final ArrayList<String> mWarnings = new ArrayList<>(); // New install InstallRequest(InstallingSession params) { diff --git a/services/core/java/com/android/server/pm/InstallingSession.java b/services/core/java/com/android/server/pm/InstallingSession.java index ca8dc2973404..187cadaf4d46 100644 --- a/services/core/java/com/android/server/pm/InstallingSession.java +++ b/services/core/java/com/android/server/pm/InstallingSession.java @@ -68,7 +68,7 @@ class InstallingSession { final MoveInfo mMoveInfo; final IPackageInstallObserver2 mObserver; int mInstallFlags; - int mDevelopmentInstallFlags; + final int mDevelopmentInstallFlags; @NonNull final InstallSource mInstallSource; final String mVolumeUuid; diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java index 8b82a1c6e7c9..3f4cc4a84ffd 100644 --- a/services/core/java/com/android/server/pm/LauncherAppsService.java +++ b/services/core/java/com/android/server/pm/LauncherAppsService.java @@ -233,7 +233,8 @@ public class LauncherAppsService extends SystemService { final LauncherAppsServiceInternal mInternal; @NonNull - private final RemoteCallbackList<IDumpCallback> mDumpCallbacks = new RemoteCallbackList<>(); + private final RemoteCallbackList<IDumpCallback> mDumpCallbacks = + new RemoteCallbackList<>(); public LauncherAppsImpl(Context context) { mContext = context; @@ -2374,8 +2375,8 @@ public class LauncherAppsService extends SystemService { class PackageLoadingProgressCallback extends PackageManagerInternal.InstalledLoadingProgressCallback { - private String mPackageName; - private UserHandle mUser; + private final String mPackageName; + private final UserHandle mUser; PackageLoadingProgressCallback(String packageName, UserHandle user) { super(mCallbackHandler); diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java index a4d8632ac077..98eee4dc3b1d 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerService.java +++ b/services/core/java/com/android/server/pm/PackageInstallerService.java @@ -1867,7 +1867,8 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements } static class ParentChildSessionMap { - private TreeMap<PackageInstallerSession, TreeSet<PackageInstallerSession>> mSessionMap; + private final TreeMap<PackageInstallerSession, TreeSet<PackageInstallerSession>> + mSessionMap; private final Comparator<PackageInstallerSession> mSessionCreationComparator = Comparator.comparingLong( diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 1be28ca9e915..4b466be8476b 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -491,7 +491,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { @GuardedBy("mLock") private SigningDetails mSigningDetails; @GuardedBy("mLock") - private SparseArray<PackageInstallerSession> mChildSessions = new SparseArray<>(); + private final SparseArray<PackageInstallerSession> mChildSessions = new SparseArray<>(); @GuardedBy("mLock") private int mParentSessionId; @@ -535,7 +535,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } @GuardedBy("mLock") - private ArraySet<FileEntry> mFiles = new ArraySet<>(); + private final ArraySet<FileEntry> mFiles = new ArraySet<>(); static class PerFileChecksum { private final Checksum[] mChecksums; @@ -556,7 +556,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } @GuardedBy("mLock") - private ArrayMap<String, PerFileChecksum> mChecksums = new ArrayMap<>(); + private final ArrayMap<String, PerFileChecksum> mChecksums = new ArrayMap<>(); @GuardedBy("mLock") private boolean mSessionApplied; diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java b/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java index 9428ef6c8ba9..655b9c93d9dd 100644 --- a/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java +++ b/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java @@ -60,7 +60,7 @@ public final class PackageManagerServiceTestParams { public IncrementalManager incrementalManager; public PackageInstallerService installerService; public InstantAppRegistry instantAppRegistry; - public ChangedPackagesTracker changedPackagesTracker = new ChangedPackagesTracker(); + public final ChangedPackagesTracker changedPackagesTracker = new ChangedPackagesTracker(); public InstantAppResolverConnection instantAppResolverConnection; public ComponentName instantAppResolverSettingsComponent; public boolean isPreNmr1Upgrade; @@ -118,7 +118,7 @@ public final class PackageManagerServiceTestParams { public SuspendPackageHelper suspendPackageHelper; public DistractingPackageHelper distractingPackageHelper; public StorageEventHelper storageEventHelper; - public Set<String> initialNonStoppedSystemPackages = new ArraySet<>(); + public final Set<String> initialNonStoppedSystemPackages = new ArraySet<>(); public boolean shouldStopSystemPackagesByDefault; public FreeStorageHelper freeStorageHelper; public PackageMonitorCallbackHelper packageMonitorCallbackHelper; diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index d4abad8499f2..6f45d2befc6b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -2364,7 +2364,7 @@ class PackageManagerShellCommand extends ShellCommand { private boolean mSuccess = false; private int mErrCode = -1; private ParcelFileDescriptor mProfileReadFd = null; - private CountDownLatch mDoneSignal = new CountDownLatch(1); + private final CountDownLatch mDoneSignal = new CountDownLatch(1); @Override public void onSuccess(ParcelFileDescriptor profileReadFd) { @@ -5186,7 +5186,7 @@ class PackageManagerShellCommand extends ShellCommand { private static class LocalIntentReceiver { private final LinkedBlockingQueue<Intent> mResult = new LinkedBlockingQueue<>(); - private IIntentSender.Stub mLocalSender = new IIntentSender.Stub() { + private final IIntentSender.Stub mLocalSender = new IIntentSender.Stub() { @Override public void send(int code, Intent intent, String resolvedType, IBinder whitelistToken, IIntentReceiver finishedReceiver, String requiredPermission, Bundle options) { diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java b/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java index a09e71311125..c829e1c79ba8 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java @@ -148,7 +148,8 @@ public class PackageManagerShellCommandDataLoader extends DataLoaderService { private final byte[] mData; private final String mSalt; - private static AtomicLong sGlobalSalt = new AtomicLong((new SecureRandom()).nextLong()); + private static final AtomicLong sGlobalSalt = + new AtomicLong((new SecureRandom()).nextLong()); private static Long nextGlobalSalt() { return sGlobalSalt.incrementAndGet(); } diff --git a/services/core/java/com/android/server/pm/PreferredComponent.java b/services/core/java/com/android/server/pm/PreferredComponent.java index 5507e7c7754a..18caafdaa56a 100644 --- a/services/core/java/com/android/server/pm/PreferredComponent.java +++ b/services/core/java/com/android/server/pm/PreferredComponent.java @@ -48,7 +48,7 @@ public class PreferredComponent { public final int mMatch; public final ComponentName mComponent; // Whether this is to be the one that's always chosen. If false, it's the most recently chosen. - public boolean mAlways; + public final boolean mAlways; final String[] mSetPackages; final String[] mSetClasses; diff --git a/services/core/java/com/android/server/pm/SELinuxMMAC.java b/services/core/java/com/android/server/pm/SELinuxMMAC.java index cf5aa7b1eb02..e667bfe36d18 100644 --- a/services/core/java/com/android/server/pm/SELinuxMMAC.java +++ b/services/core/java/com/android/server/pm/SELinuxMMAC.java @@ -68,12 +68,12 @@ public final class SELinuxMMAC { // All policy stanzas read from mac_permissions.xml. This is also the lock // to synchronize access during policy load and access attempts. - private static List<Policy> sPolicies = new ArrayList<>(); + private static final List<Policy> sPolicies = new ArrayList<>(); /** Whether or not the policy files have been read */ private static boolean sPolicyRead; /** Required MAC permissions files */ - private static List<File> sMacPermissions = new ArrayList<>(); + private static final List<File> sMacPermissions = new ArrayList<>(); private static final String DEFAULT_SEINFO = "default"; diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index 440823c43607..6338965e4a80 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -3944,9 +3944,9 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile mDisabledSysPackages.put(name, ps); } - private static int PRE_M_APP_INFO_FLAG_HIDDEN = 1<<27; - private static int PRE_M_APP_INFO_FLAG_CANT_SAVE_STATE = 1<<28; - private static int PRE_M_APP_INFO_FLAG_PRIVILEGED = 1<<30; + private static final int PRE_M_APP_INFO_FLAG_HIDDEN = 1 << 27; + private static final int PRE_M_APP_INFO_FLAG_CANT_SAVE_STATE = 1 << 28; + private static final int PRE_M_APP_INFO_FLAG_PRIVILEGED = 1 << 30; private void readPackageLPw(TypedXmlPullParser parser, List<UserInfo> users, ArrayMap<String, Long> originalFirstInstallTimes) @@ -5846,7 +5846,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile @GuardedBy("mLock") // Tracking the mutations that haven't yet been written to legacy state. // This avoids unnecessary work when writing settings for multiple users. - private AtomicBoolean mIsLegacyPermissionStateStale = new AtomicBoolean(false); + private final AtomicBoolean mIsLegacyPermissionStateStale = new AtomicBoolean(false); @GuardedBy("mLock") // The mapping keys are user ids. diff --git a/services/core/java/com/android/server/pm/ShortcutPackageItem.java b/services/core/java/com/android/server/pm/ShortcutPackageItem.java index 8667888fbb51..12115afcbeec 100644 --- a/services/core/java/com/android/server/pm/ShortcutPackageItem.java +++ b/services/core/java/com/android/server/pm/ShortcutPackageItem.java @@ -53,7 +53,7 @@ abstract class ShortcutPackageItem { protected ShortcutUser mShortcutUser; @GuardedBy("mLock") - protected ShortcutBitmapSaver mShortcutBitmapSaver; + protected final ShortcutBitmapSaver mShortcutBitmapSaver; protected final Object mLock = new Object(); diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index c6aba2ab9cbe..3adeb4b5925f 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -296,24 +296,26 @@ public class ShortcutService extends IShortcutService.Stub { private final Object mNonPersistentUsersLock = new Object(); private final Object mWtfLock = new Object(); - private static List<ResolveInfo> EMPTY_RESOLVE_INFO = new ArrayList<>(0); + private static final List<ResolveInfo> EMPTY_RESOLVE_INFO = new ArrayList<>(0); // Temporarily reverted to anonymous inner class form due to: b/32554459 - private static Predicate<ResolveInfo> ACTIVITY_NOT_EXPORTED = new Predicate<ResolveInfo>() { - public boolean test(ResolveInfo ri) { - return !ri.activityInfo.exported; - } - }; + private static final Predicate<ResolveInfo> ACTIVITY_NOT_EXPORTED = + new Predicate<ResolveInfo>() { + public boolean test(ResolveInfo ri) { + return !ri.activityInfo.exported; + } + }; - private static Predicate<ResolveInfo> ACTIVITY_NOT_INSTALLED = (ri) -> + private static final Predicate<ResolveInfo> ACTIVITY_NOT_INSTALLED = (ri) -> !isInstalled(ri.activityInfo); // Temporarily reverted to anonymous inner class form due to: b/32554459 - private static Predicate<PackageInfo> PACKAGE_NOT_INSTALLED = new Predicate<PackageInfo>() { - public boolean test(PackageInfo pi) { - return !isInstalled(pi); - } - }; + private static final Predicate<PackageInfo> PACKAGE_NOT_INSTALLED = + new Predicate<PackageInfo>() { + public boolean test(PackageInfo pi) { + return !isInstalled(pi); + } + }; private final Handler mHandler; @@ -4656,8 +4658,8 @@ public class ShortcutService extends IShortcutService.Stub { private boolean mDumpFiles = false; private boolean mDumpDetails = true; - private List<Pattern> mPackagePatterns = new ArrayList<>(); - private List<Integer> mUsers = new ArrayList<>(); + private final List<Pattern> mPackagePatterns = new ArrayList<>(); + private final List<Integer> mUsers = new ArrayList<>(); void addPackageRegex(String regex) { mPackagePatterns.add(Pattern.compile(regex)); diff --git a/services/core/java/com/android/server/pm/SnapshotStatistics.java b/services/core/java/com/android/server/pm/SnapshotStatistics.java index e04a1e5b3569..31541d083fbc 100644 --- a/services/core/java/com/android/server/pm/SnapshotStatistics.java +++ b/services/core/java/com/android/server/pm/SnapshotStatistics.java @@ -157,12 +157,12 @@ public class SnapshotStatistics { private static class BinMap { // The number of bins - private int mCount; + private final int mCount; // The maximum mapped value. Values at or above this are mapped to the // top bin. - private int mMaxBin; + private final int mMaxBin; // A copy of the original key - private int[] mUserKey; + private final int[] mUserKey; /** * Create a bin map. The input is an array of integers, which must be @@ -232,13 +232,13 @@ public class SnapshotStatistics { * The build-time histogram. The total number of rebuilds is the sum over the * histogram entries. */ - public int[] mTimes; + public final int[] mTimes; /** * The reuse histogram. The total number of snapshot uses is the sum over the * histogram entries. */ - public int[] mUsed; + public final int[] mUsed; /** * The total number of rebuilds. This could be computed by summing over the use @@ -477,12 +477,12 @@ public class SnapshotStatistics { /** * Long statistics. These roll over approximately one day. */ - private Stats[] mLong; + private final Stats[] mLong; /** * Short statistics. These roll over approximately every minute; */ - private Stats[] mShort; + private final Stats[] mShort; /** * The time of last logging to the FrameworkStatsLog. diff --git a/services/core/java/com/android/server/pm/UserJourneyLogger.java b/services/core/java/com/android/server/pm/UserJourneyLogger.java index 895edce093b5..651578dc5deb 100644 --- a/services/core/java/com/android/server/pm/UserJourneyLogger.java +++ b/services/core/java/com/android/server/pm/UserJourneyLogger.java @@ -586,7 +586,7 @@ public class UserJourneyLogger { public final long mSessionId; @UserJourney public final int mJourney; - public long mStartTimeInMills; + public final long mStartTimeInMills; @VisibleForTesting public UserJourneySession(long sessionId, @UserJourney int journey) { diff --git a/services/core/java/com/android/server/pm/dex/DexManager.java b/services/core/java/com/android/server/pm/dex/DexManager.java index 6e738daf9315..78c13f854fe4 100644 --- a/services/core/java/com/android/server/pm/dex/DexManager.java +++ b/services/core/java/com/android/server/pm/dex/DexManager.java @@ -119,10 +119,10 @@ public class DexManager { private final int mCriticalBatteryLevel; // Possible outcomes of a dex search. - private static int DEX_SEARCH_NOT_FOUND = 0; // dex file not found - private static int DEX_SEARCH_FOUND_PRIMARY = 1; // dex file is the primary/base apk - private static int DEX_SEARCH_FOUND_SPLIT = 2; // dex file is a split apk - private static int DEX_SEARCH_FOUND_SECONDARY = 3; // dex file is a secondary dex + private static final int DEX_SEARCH_NOT_FOUND = 0; // dex file not found + private static final int DEX_SEARCH_FOUND_PRIMARY = 1; // dex file is the primary/base apk + private static final int DEX_SEARCH_FOUND_SPLIT = 2; // dex file is a split apk + private static final int DEX_SEARCH_FOUND_SECONDARY = 3; // dex file is a secondary dex public DexManager(Context context, PackageDexOptimizer pdo, Installer installer, Object installLock, DynamicCodeLogger dynamicCodeLogger) { @@ -959,8 +959,8 @@ public class DexManager { * Convenience class to store ownership search results. */ private class DexSearchResult { - private String mOwningPackageName; - private int mOutcome; + private final String mOwningPackageName; + private final int mOutcome; public DexSearchResult(String owningPackageName, int outcome) { this.mOwningPackageName = owningPackageName; diff --git a/services/core/java/com/android/server/pm/parsing/PackageCacher.java b/services/core/java/com/android/server/pm/parsing/PackageCacher.java index d3a64bb0b9ac..2ab7db47f8e5 100644 --- a/services/core/java/com/android/server/pm/parsing/PackageCacher.java +++ b/services/core/java/com/android/server/pm/parsing/PackageCacher.java @@ -49,7 +49,7 @@ public class PackageCacher { public static final AtomicInteger sCachedPackageReadCount = new AtomicInteger(); @NonNull - private File mCacheDir; + private final File mCacheDir; public PackageCacher(@NonNull File cacheDir) { this.mCacheDir = cacheDir; diff --git a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java index 9e20805c2874..c26cf1c9a113 100644 --- a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java +++ b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java @@ -1132,7 +1132,7 @@ public class PackageInfoUtils { */ public static class CachedApplicationInfoGenerator { // Map from a package name to the corresponding app info. - private ArrayMap<String, ApplicationInfo> mCache = new ArrayMap<>(); + private final ArrayMap<String, ApplicationInfo> mCache = new ArrayMap<>(); /** * {@link PackageInfoUtils#generateApplicationInfo} with a cache. diff --git a/services/core/java/com/android/server/pm/parsing/PackageParser2.java b/services/core/java/com/android/server/pm/parsing/PackageParser2.java index d82a5000844f..3b10c7f2c2a6 100644 --- a/services/core/java/com/android/server/pm/parsing/PackageParser2.java +++ b/services/core/java/com/android/server/pm/parsing/PackageParser2.java @@ -96,19 +96,19 @@ public class PackageParser2 implements AutoCloseable { private static final boolean LOG_PARSE_TIMINGS = Build.IS_DEBUGGABLE; private static final int LOG_PARSE_TIMINGS_THRESHOLD_MS = 100; - private ThreadLocal<ApplicationInfo> mSharedAppInfo = + private final ThreadLocal<ApplicationInfo> mSharedAppInfo = ThreadLocal.withInitial(() -> { ApplicationInfo appInfo = new ApplicationInfo(); appInfo.uid = -1; // Not a valid UID since the app will not be installed yet return appInfo; }); - private ThreadLocal<ParseTypeImpl> mSharedResult; + private final ThreadLocal<ParseTypeImpl> mSharedResult; @Nullable protected PackageCacher mCacher; - private ParsingPackageUtils parsingUtils; + private final ParsingPackageUtils parsingUtils; public PackageParser2(String[] separateProcesses, DisplayMetrics displayMetrics, @Nullable File cacheDir, @NonNull Callback callback) { diff --git a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java index 056aae49ae82..75dd67d97620 100644 --- a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java +++ b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java @@ -113,21 +113,21 @@ public class PackageImpl implements ParsedPackage, AndroidPackageInternal, private static final SparseArray<int[]> EMPTY_INT_ARRAY_SPARSE_ARRAY = new SparseArray<>(); private static final Comparator<ParsedMainComponent> ORDER_COMPARATOR = (first, second) -> Integer.compare(second.getOrder(), first.getOrder()); - public static Parcelling.BuiltIn.ForBoolean sForBoolean = Parcelling.Cache.getOrCreate( + public static final Parcelling.BuiltIn.ForBoolean sForBoolean = Parcelling.Cache.getOrCreate( Parcelling.BuiltIn.ForBoolean.class); - public static ForInternedString sForInternedString = Parcelling.Cache.getOrCreate( + public static final ForInternedString sForInternedString = Parcelling.Cache.getOrCreate( ForInternedString.class); - public static Parcelling.BuiltIn.ForInternedStringArray sForInternedStringArray = Parcelling.Cache.getOrCreate( - Parcelling.BuiltIn.ForInternedStringArray.class); - public static Parcelling.BuiltIn.ForInternedStringList sForInternedStringList = Parcelling.Cache.getOrCreate( - Parcelling.BuiltIn.ForInternedStringList.class); - public static Parcelling.BuiltIn.ForInternedStringValueMap sForInternedStringValueMap = + public static final Parcelling.BuiltIn.ForInternedStringArray sForInternedStringArray = + Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForInternedStringArray.class); + public static final Parcelling.BuiltIn.ForInternedStringList sForInternedStringList = + Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForInternedStringList.class); + public static final Parcelling.BuiltIn.ForInternedStringValueMap sForInternedStringValueMap = Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForInternedStringValueMap.class); - public static Parcelling.BuiltIn.ForStringSet sForStringSet = Parcelling.Cache.getOrCreate( - Parcelling.BuiltIn.ForStringSet.class); - public static Parcelling.BuiltIn.ForInternedStringSet sForInternedStringSet = + public static final Parcelling.BuiltIn.ForStringSet sForStringSet = + Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForStringSet.class); + public static final Parcelling.BuiltIn.ForInternedStringSet sForInternedStringSet = Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForInternedStringSet.class); - protected static ParsingUtils.StringPairListParceler sForIntentInfoPairs = + protected static final ParsingUtils.StringPairListParceler sForIntentInfoPairs = new ParsingUtils.StringPairListParceler(); protected int versionCode; protected int versionCodeMajor; diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java index d6a7dc6681b9..6f6bb45bad50 100644 --- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java @@ -1748,14 +1748,14 @@ final class DefaultPermissionGrantPolicy { */ private class DelayingPackageManagerCache extends PackageManagerWrapper { /** uid -> permission -> isGranted, flags */ - private SparseArray<ArrayMap<String, PermissionState>> mDelayedPermissionState = + private final SparseArray<ArrayMap<String, PermissionState>> mDelayedPermissionState = new SparseArray<>(); /** userId -> context */ - private SparseArray<Context> mUserContexts = new SparseArray<>(); + private final SparseArray<Context> mUserContexts = new SparseArray<>(); /** Permission name -> info */ - private ArrayMap<String, PermissionInfo> mPermissionInfos = new ArrayMap<>(); + private final ArrayMap<String, PermissionInfo> mPermissionInfos = new ArrayMap<>(); /** Package name -> info */ - private ArrayMap<String, PackageInfo> mPackageInfos = new ArrayMap<>(); + private final ArrayMap<String, PackageInfo> mPackageInfos = new ArrayMap<>(); /** * Apply the cached state diff --git a/services/core/java/com/android/server/pm/pkg/component/ParsedPermissionImpl.java b/services/core/java/com/android/server/pm/pkg/component/ParsedPermissionImpl.java index 70986c3cfbac..4c831d36c9e3 100644 --- a/services/core/java/com/android/server/pm/pkg/component/ParsedPermissionImpl.java +++ b/services/core/java/com/android/server/pm/pkg/component/ParsedPermissionImpl.java @@ -41,7 +41,8 @@ import java.util.Set; public class ParsedPermissionImpl extends ParsedComponentImpl implements ParsedPermission, Parcelable { - private static ForStringSet sForStringSet = Parcelling.Cache.getOrCreate(ForStringSet.class); + private static final ForStringSet sForStringSet = + Parcelling.Cache.getOrCreate(ForStringSet.class); @Nullable private String backgroundPermission; diff --git a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java index 8240c47a607b..061698a929d6 100644 --- a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java +++ b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java @@ -328,11 +328,11 @@ public class ParsingPackageUtils { return input.success(pkg); } - private String[] mSeparateProcesses; - private DisplayMetrics mDisplayMetrics; + private final String[] mSeparateProcesses; + private final DisplayMetrics mDisplayMetrics; @NonNull - private List<PermissionManager.SplitPermissionInfo> mSplitPermissionInfos; - private Callback mCallback; + private final List<PermissionManager.SplitPermissionInfo> mSplitPermissionInfos; + private final Callback mCallback; public ParsingPackageUtils(String[] separateProcesses, DisplayMetrics displayMetrics, @NonNull List<PermissionManager.SplitPermissionInfo> splitPermissions, diff --git a/services/core/java/com/android/server/pm/resolution/ComponentResolver.java b/services/core/java/com/android/server/pm/resolution/ComponentResolver.java index fac681aaf1c4..0ceda421913d 100644 --- a/services/core/java/com/android/server/pm/resolution/ComponentResolver.java +++ b/services/core/java/com/android/server/pm/resolution/ComponentResolver.java @@ -951,7 +951,7 @@ public class ComponentResolver extends ComponentResolverLocked implements extends MimeGroupsAwareIntentResolver<Pair<ParsedActivity, ParsedIntentInfo>, ResolveInfo> { @NonNull - private UserNeedsBadgingCache mUserNeedsBadging; + private final UserNeedsBadgingCache mUserNeedsBadging; // Default constructor ActivityIntentResolver(@NonNull UserManagerService userManager, diff --git a/services/core/java/com/android/server/pm/resolution/ComponentResolverBase.java b/services/core/java/com/android/server/pm/resolution/ComponentResolverBase.java index 9115775acd05..80cde73ecf1f 100644 --- a/services/core/java/com/android/server/pm/resolution/ComponentResolverBase.java +++ b/services/core/java/com/android/server/pm/resolution/ComponentResolverBase.java @@ -68,7 +68,7 @@ public abstract class ComponentResolverBase extends WatchableImpl implements Com protected ArrayMap<String, ParsedProvider> mProvidersByAuthority; @NonNull - protected UserManagerService mUserManager; + protected final UserManagerService mUserManager; protected ComponentResolverBase(@NonNull UserManagerService userManager) { mUserManager = userManager; diff --git a/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java b/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java index 11f62e953525..3d4d4eca7f48 100644 --- a/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java +++ b/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java @@ -2005,9 +2005,9 @@ public class DomainVerificationService extends SystemService private static class GetAttachedResult { @Nullable - private DomainVerificationPkgState mPkgState; + private final DomainVerificationPkgState mPkgState; - private int mErrorCode; + private final int mErrorCode; GetAttachedResult(@Nullable DomainVerificationPkgState pkgState, int errorCode) { mPkgState = pkgState; diff --git a/services/core/java/com/android/server/pm/verify/domain/models/DomainVerificationPkgState.java b/services/core/java/com/android/server/pm/verify/domain/models/DomainVerificationPkgState.java index 6c56360177d8..d71dbbb5d53b 100644 --- a/services/core/java/com/android/server/pm/verify/domain/models/DomainVerificationPkgState.java +++ b/services/core/java/com/android/server/pm/verify/domain/models/DomainVerificationPkgState.java @@ -40,7 +40,7 @@ public class DomainVerificationPkgState { private final String mPackageName; @NonNull - private UUID mId; + private final UUID mId; /** * Whether or not the package declares any autoVerify domains. This is separate from an empty |