Use new app header in more screens.

- This covers all subclasses of AppInfoWithHeader: app launch settings,
  app storage settings, draw over settings, write setting details,
  usage  access settings.

Bug: 32442716
Test: RunSettingsRoboTests
Change-Id: I8e5831a4fcce5f98c3a6cc6b0fd66bc4a53d1330
This commit is contained in:
Fan Zhang
2016-10-28 09:53:27 -07:00
parent 31b0da66a6
commit 5abaef7dd1
3 changed files with 179 additions and 6 deletions

View File

@@ -16,10 +16,16 @@
package com.android.settings.applications;
import android.app.Activity;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.util.Log;
import android.view.View;
import com.android.settings.AppHeader;
import com.android.settings.overlay.FeatureFactory;
import static com.android.settings.applications.AppHeaderController.ActionType;
public abstract class AppInfoWithHeader extends AppInfoBase {
@@ -34,8 +40,27 @@ public abstract class AppInfoWithHeader extends AppInfoBase {
}
mCreated = true;
if (mPackageInfo == null) return;
AppHeader.createAppHeader(this, mPackageInfo.applicationInfo.loadIcon(mPm),
mPackageInfo.applicationInfo.loadLabel(mPm), mPackageName,
mPackageInfo.applicationInfo.uid, 0);
final Activity activity = getActivity();
if (!FeatureFactory.getFactory(activity)
.getDashboardFeatureProvider(activity).isEnabled()) {
AppHeader.createAppHeader(this, mPackageInfo.applicationInfo.loadIcon(mPm),
mPackageInfo.applicationInfo.loadLabel(mPm), mPackageName,
mPackageInfo.applicationInfo.uid, 0);
} else {
final View appHeader = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity)
.newAppHeaderController(this, null /* appHeader */)
.setIcon(mPackageInfo.applicationInfo.loadIcon(mPm))
.setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
.setSummary(mPackageInfo)
.setPackageName(mPackageName)
.setUid(mPackageInfo.applicationInfo.uid)
.setButtonActions(ActionType.ACTION_APP_INFO, ActionType.ACTION_NONE)
.done();
final Preference appHeaderPref = new LayoutPreference(getPrefContext(), appHeader);
// Makes sure it's the first preference onscreen.
appHeaderPref.setOrder(-1000);
getPreferenceScreen().addPreference(appHeaderPref);
}
}
}