Deprecate AppListPreference and AppListPrefWithSettings

- Convert ManageAssist into DashboardFragment
- Convert default assist pref to DefaultAppPickerFragment
- Add PreferenceController for each pref
- Add tests

Bug: 35203386
Test: make RunSettingsRoboTests

Change-Id: I0350a06cae7457809fb261e2d8ec99eda80cc50a
This commit is contained in:
Fan Zhang
2017-02-16 15:00:53 -08:00
parent aba2c95ae0
commit dfce62c507
39 changed files with 1787 additions and 946 deletions

View File

@@ -37,13 +37,23 @@ public class DefaultAppInfo {
public final String summary;
// Description for why this item is disabled, if null, the item is enabled.
public final String disabledDescription;
public final boolean enabled;
public DefaultAppInfo(int uid, ComponentName cn) {
this(uid, cn, null /* summary */);
}
public DefaultAppInfo(int uid, ComponentName cn, String summary) {
this(uid, cn, summary, true /* enabled */);
}
public DefaultAppInfo(int uid, ComponentName cn, String summary, boolean enabled) {
packageItemInfo = null;
userId = uid;
componentName = cn;
this.summary = summary;
this.disabledDescription = null;
this.enabled = enabled;
}
public DefaultAppInfo(PackageItemInfo info, String description) {
@@ -52,6 +62,7 @@ public class DefaultAppInfo {
componentName = null;
summary = null;
this.disabledDescription = description;
enabled = true;
}
public DefaultAppInfo(PackageItemInfo info) {

View File

@@ -97,7 +97,7 @@ public abstract class DefaultAppPickerFragment extends InstrumentedPreferenceFra
@VisibleForTesting
public void updateCandidates() {
mCandidates.clear();
final List<DefaultAppInfo> candidateList = getCandidates();
final List<? extends DefaultAppInfo> candidateList = getCandidates();
if (candidateList != null) {
for (DefaultAppInfo info : candidateList) {
mCandidates.put(info.getKey(), info);
@@ -134,6 +134,7 @@ public abstract class DefaultAppPickerFragment extends InstrumentedPreferenceFra
pref.setEnabled(false);
pref.setSummary(app.getValue().disabledDescription);
}
pref.setEnabled(info.enabled);
pref.setOnClickListener(this);
screen.addPreference(pref);
}
@@ -200,14 +201,15 @@ public abstract class DefaultAppPickerFragment extends InstrumentedPreferenceFra
return null;
}
protected abstract List<DefaultAppInfo> getCandidates();
protected abstract List<? extends DefaultAppInfo> getCandidates();
protected abstract String getDefaultAppKey();
protected abstract boolean setDefaultAppKey(String key);
// Called after the user tries to select an item.
protected void onSelectionPerformed(boolean success) {}
protected void onSelectionPerformed(boolean success) {
}
protected String getConfirmationMessage(DefaultAppInfo appInfo) {
return null;

View File

@@ -54,7 +54,7 @@ public class DefaultAutoFillPicker extends DefaultAppPickerFragment {
.queryIntentServices(AUTO_FILL_PROBE, PackageManager.GET_META_DATA);
for (ResolveInfo info : resolveInfos) {
candidates.add(new DefaultAppInfo(mUserId, new ComponentName(
info.serviceInfo.packageName, info.serviceInfo.name), null /* summary */));
info.serviceInfo.packageName, info.serviceInfo.name)));
}
return candidates;
}

View File

@@ -55,7 +55,7 @@ public class DefaultAutoFillPreferenceController extends DefaultAppPreferenceCon
DefaultAutoFillPicker.SETTING);
if (!TextUtils.isEmpty(flattenComponent)) {
DefaultAppInfo appInfo = new DefaultAppInfo(
mUserId, ComponentName.unflattenFromString(flattenComponent), null /*summary*/);
mUserId, ComponentName.unflattenFromString(flattenComponent));
return appInfo;
}
return null;

View File

@@ -75,7 +75,7 @@ public class DefaultHomePreferenceController extends DefaultAppPreferenceControl
final ArrayList<ResolveInfo> homeActivities = new ArrayList<>();
final ComponentName currentDefaultHome = mPackageManager.getHomeActivities(homeActivities);
return new DefaultAppInfo(mUserId, currentDefaultHome, null /* summary */);
return new DefaultAppInfo(mUserId, currentDefaultHome);
}
private String getOnlyAppLabel() {

View File

@@ -76,7 +76,7 @@ public class DefaultNotificationAssistantPicker extends DefaultAppPickerFragment
}
candidates.add(new DefaultAppInfo(
mUserId, new ComponentName(info.packageName, info.name), null /* summary */));
mUserId, new ComponentName(info.packageName, info.name)));
}
return candidates;
}

View File

@@ -47,7 +47,7 @@ public class DefaultSmsPreferenceController extends DefaultAppPreferenceControll
protected DefaultAppInfo getDefaultAppInfo() {
final ComponentName app = SmsApplication.getDefaultSmsApplication(mContext, true);
if (app != null) {
return new DefaultAppInfo(mUserId, app, null /* summary */);
return new DefaultAppInfo(mUserId, app);
}
return null;
}