Modify AppHeaderController to provide UI for notif settings
- The AppHeaderController is no longer a singleton. Each time appheader should be updated we will create a new controller. It acts as a builder/mutator, user provides customizable inputs, and the controller will bind everything to UI when calling done(). Bug: 32442716 Test: RunSettingsRoboTests Change-Id: Icfc5bcd8bc170a02b57432d864eaddf71db0d5b4
This commit is contained in:
@@ -154,7 +154,6 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
private final HashSet<String> mHomePackages = new HashSet<>();
|
||||
|
||||
private DashboardFeatureProvider mDashboardFeatureProvider;
|
||||
private AppHeaderController mAppHeaderController;
|
||||
|
||||
private boolean mInitialized;
|
||||
private boolean mShowUninstalled;
|
||||
@@ -317,8 +316,6 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
final Activity activity = getActivity();
|
||||
mDashboardFeatureProvider =
|
||||
FeatureFactory.getFactory(activity).getDashboardFeatureProvider(activity);
|
||||
mAppHeaderController = FeatureFactory.getFactory(activity)
|
||||
.getApplicationFeatureProvider(activity).getAppHeaderController();
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
addPreferencesFromResource(mDashboardFeatureProvider.isEnabled()
|
||||
@@ -384,13 +381,15 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
if (!mDashboardFeatureProvider.isEnabled()) {
|
||||
handleHeader();
|
||||
} else {
|
||||
final Activity activity = getActivity();
|
||||
mHeader = (LayoutPreference) findPreference(KEY_HEADER);
|
||||
mAppHeaderController.bindAppHeaderButtons(
|
||||
this,
|
||||
mHeader.findViewById(R.id.app_detail_links),
|
||||
mPackageName,
|
||||
AppHeaderController.ActionType.ACTION_STORE_DEEP_LINK,
|
||||
AppHeaderController.ActionType.ACTION_APP_PREFERENCE);
|
||||
FeatureFactory.getFactory(activity)
|
||||
.getApplicationFeatureProvider(activity)
|
||||
.newAppHeaderController(this, mHeader.findViewById(R.id.app_snippet))
|
||||
.setPackageName(mPackageName)
|
||||
.setButtonActions(AppHeaderController.ActionType.ACTION_STORE_DEEP_LINK,
|
||||
AppHeaderController.ActionType.ACTION_APP_PREFERENCE)
|
||||
.bindAppHeaderButtons();
|
||||
prepareUninstallAndStop();
|
||||
}
|
||||
|
||||
@@ -544,7 +543,14 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
final View appSnippet = mHeader.findViewById(R.id.app_snippet);
|
||||
mState.ensureIcon(mAppEntry);
|
||||
if (mDashboardFeatureProvider.isEnabled()) {
|
||||
mAppHeaderController.bindAppHeader(appSnippet, pkgInfo, mAppEntry);
|
||||
final Activity activity = getActivity();
|
||||
FeatureFactory.getFactory(activity)
|
||||
.getApplicationFeatureProvider(activity)
|
||||
.newAppHeaderController(this, appSnippet)
|
||||
.setLabel(mAppEntry)
|
||||
.setIcon(mAppEntry)
|
||||
.setSummary(pkgInfo)
|
||||
.done(false /* rebindActions */);
|
||||
} else {
|
||||
setupAppSnippet(appSnippet, mAppEntry.label, mAppEntry.icon,
|
||||
pkgInfo != null ? pkgInfo.versionName : null);
|
||||
|
Reference in New Issue
Block a user