Move icon loading into AppEntryListManager.
It seems unlikely we will have a use case for app entries without icons. Moving this into the manager to further reduce logic in controllers.
Bug: 122824071
Test: build and deploy, RunCarSettingsRoboTests
Change-Id: I28b1ecc4ff7aea2cc614dfe31c74165b8236ec91
diff --git a/src/com/android/car/settings/applications/specialaccess/AppEntryListManager.java b/src/com/android/car/settings/applications/specialaccess/AppEntryListManager.java
index 1039a74..7359f80 100644
--- a/src/com/android/car/settings/applications/specialaccess/AppEntryListManager.java
+++ b/src/com/android/car/settings/applications/specialaccess/AppEntryListManager.java
@@ -219,6 +219,15 @@
mMainHandler.removeMessages(MainHandler.MSG_INFO_UPDATED);
}
+ private void loadInfo(List<ApplicationsState.AppEntry> entries) {
+ if (mExtraInfoBridge != null) {
+ mExtraInfoBridge.loadExtraInfo(entries);
+ }
+ for (ApplicationsState.AppEntry entry : entries) {
+ mApplicationsState.ensureIcon(entry);
+ }
+ }
+
private static class BackgroundHandler extends Handler {
private static final int MSG_LOAD_ALL = 1;
private static final int MSG_LOAD_PKG = 2;
@@ -238,16 +247,12 @@
}
switch (msg.what) {
case MSG_LOAD_ALL:
- if (outer.mExtraInfoBridge != null) {
- outer.mExtraInfoBridge.loadExtraInfo(outer.mSession.getAllApps());
- }
+ outer.loadInfo(outer.mSession.getAllApps());
outer.mMainHandler.sendEmptyMessage(MainHandler.MSG_INFO_UPDATED);
break;
case MSG_LOAD_PKG:
ApplicationsState.AppEntry entry = (ApplicationsState.AppEntry) msg.obj;
- if (outer.mExtraInfoBridge != null) {
- outer.mExtraInfoBridge.loadExtraInfo(Collections.singletonList(entry));
- }
+ outer.loadInfo(Collections.singletonList(entry));
outer.mMainHandler.sendEmptyMessage(MainHandler.MSG_INFO_UPDATED);
break;
}
diff --git a/src/com/android/car/settings/applications/specialaccess/AppOpsPreferenceController.java b/src/com/android/car/settings/applications/specialaccess/AppOpsPreferenceController.java
index 2ce7aac..043aec9 100644
--- a/src/com/android/car/settings/applications/specialaccess/AppOpsPreferenceController.java
+++ b/src/com/android/car/settings/applications/specialaccess/AppOpsPreferenceController.java
@@ -17,7 +17,6 @@
package com.android.car.settings.applications.specialaccess;
import android.app.AppOpsManager;
-import android.app.Application;
import android.car.drivingstate.CarUxRestrictions;
import android.content.Context;
import android.content.pm.ApplicationInfo;
@@ -61,7 +60,6 @@
};
private final AppOpsManager mAppOpsManager;
- private final ApplicationsState mApplicationsState;
private final Preference.OnPreferenceChangeListener mOnPreferenceChangeListener =
new Preference.OnPreferenceChangeListener() {
@@ -105,8 +103,6 @@
FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
super(context, preferenceKey, fragmentController, uxRestrictions);
mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
- mApplicationsState = ApplicationsState.getInstance(
- (Application) context.getApplicationContext());
mAppEntryListManager = new AppEntryListManager(context);
}
@@ -185,7 +181,6 @@
}
preference.removeAll();
for (AppEntry entry : mEntries) {
- mApplicationsState.ensureIcon(entry);
Preference appOpPreference = new AppOpPreference(getContext(), entry);
appOpPreference.setOnPreferenceChangeListener(mOnPreferenceChangeListener);
preference.addPreference(appOpPreference);
diff --git a/src/com/android/car/settings/applications/specialaccess/PremiumSmsAccessPreferenceController.java b/src/com/android/car/settings/applications/specialaccess/PremiumSmsAccessPreferenceController.java
index b62f9d7..1673dcb 100644
--- a/src/com/android/car/settings/applications/specialaccess/PremiumSmsAccessPreferenceController.java
+++ b/src/com/android/car/settings/applications/specialaccess/PremiumSmsAccessPreferenceController.java
@@ -16,7 +16,6 @@
package com.android.car.settings.applications.specialaccess;
-import android.app.Application;
import android.car.drivingstate.CarUxRestrictions;
import android.content.Context;
import android.os.RemoteException;
@@ -33,7 +32,6 @@
import com.android.car.settings.common.PreferenceController;
import com.android.internal.telephony.ISms;
import com.android.internal.telephony.SmsUsageMonitor;
-import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.applications.ApplicationsState.AppFilter;
@@ -67,7 +65,6 @@
};
private final ISms mSmsManager;
- private final ApplicationsState mApplicationsState;
private final Preference.OnPreferenceChangeListener mOnPreferenceChangeListener =
new Preference.OnPreferenceChangeListener() {
@@ -108,8 +105,6 @@
FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
super(context, preferenceKey, fragmentController, uxRestrictions);
mSmsManager = ISms.Stub.asInterface(ServiceManager.getService("isms"));
- mApplicationsState = ApplicationsState.getInstance(
- (Application) context.getApplicationContext());
mAppEntryListManager = new AppEntryListManager(context);
}
@@ -147,7 +142,6 @@
}
preference.removeAll();
for (AppEntry entry : mEntries) {
- mApplicationsState.ensureIcon(entry);
Preference appPreference = new PremiumSmsPreference(getContext(), entry);
appPreference.setOnPreferenceChangeListener(mOnPreferenceChangeListener);
preference.addPreference(appPreference);