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,6 +16,7 @@
package com.android.settings.applications;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.app.AlertDialog;
@@ -31,6 +32,7 @@ import android.content.pm.ServiceInfo;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.Process;
import android.os.UserHandle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory;
import android.text.format.Formatter;
@@ -40,6 +42,7 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.AppHeader;
import com.android.settings.CancellablePreference;
@@ -48,6 +51,7 @@ import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.SummaryPreference;
import com.android.settings.applications.ProcStatsEntry.Service;
import com.android.settings.overlay.FeatureFactory;
import java.util.ArrayList;
import java.util.Collections;
@@ -55,6 +59,8 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import static com.android.settings.applications.AppHeaderController.ActionType;
public class ProcessStatsDetail extends SettingsPreferenceFragment {
private static final String TAG = "ProcessStatsDetail";
@@ -119,9 +125,32 @@ public class ProcessStatsDetail extends SettingsPreferenceFragment {
finish();
return;
}
AppHeader.createAppHeader(this,
mApp.mUiTargetApp != null ? mApp.mUiTargetApp.loadIcon(mPm) : new ColorDrawable(0),
mApp.mUiLabel, mApp.mPackage, mApp.mUiTargetApp.uid);
final Activity activity = getActivity();
if (!FeatureFactory.getFactory(activity)
.getDashboardFeatureProvider(activity).isEnabled()) {
AppHeader.createAppHeader(this, mApp.mUiTargetApp != null
? mApp.mUiTargetApp.loadIcon(mPm)
: new ColorDrawable(0),
mApp.mUiLabel, mApp.mPackage, mApp.mUiTargetApp.uid);
} else {
final View appHeader = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity)
.newAppHeaderController(this, null /* appHeader */)
.setIcon(mApp.mUiTargetApp != null
? mApp.mUiTargetApp.loadIcon(mPm)
: new ColorDrawable(0))
.setLabel(mApp.mUiLabel)
.setPackageName(mApp.mPackage)
.setUid(mApp.mUiTargetApp != null
? mApp.mUiTargetApp.uid
: UserHandle.USER_NULL)
.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);
}
}
@Override