Use new app header in more screens.
- This covers app data usage settings, power usage details - Addded helper method on AppHeaderController to build the header as Preference because every fragment needs to do this anyway. Bug: 32442716 Test: RunSettingsRoboTests Change-Id: I6d38321b867154f8fb5194b993d118bcdbbfedc9
This commit is contained in:
@@ -27,6 +27,7 @@ import android.content.res.Resources;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.UserHandle;
|
||||
import android.support.annotation.IntDef;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -58,6 +59,7 @@ public class AppHeaderController {
|
||||
int ACTION_APP_PREFERENCE = 3;
|
||||
int ACTION_NOTIF_PREFERENCE = 4;
|
||||
}
|
||||
public static final String PREF_KEY_APP_HEADER = "pref_app_header";
|
||||
|
||||
private static final String TAG = "AppDetailFeature";
|
||||
|
||||
@@ -175,6 +177,17 @@ public class AppHeaderController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Done mutating appheader, rebinds everything and return a new {@link LayoutPreference}.
|
||||
*/
|
||||
public LayoutPreference done(Context context) {
|
||||
final LayoutPreference pref = new LayoutPreference(context, done());
|
||||
// Makes sure it's the first preference onscreen.
|
||||
pref.setOrder(-1000);
|
||||
pref.setKey(PREF_KEY_APP_HEADER);
|
||||
return pref;
|
||||
}
|
||||
|
||||
/**
|
||||
* Done mutating appheader, rebinds everything.
|
||||
*/
|
||||
|
@@ -20,7 +20,6 @@ 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;
|
||||
@@ -47,7 +46,7 @@ public abstract class AppInfoWithHeader extends AppInfoBase {
|
||||
mPackageInfo.applicationInfo.loadLabel(mPm), mPackageName,
|
||||
mPackageInfo.applicationInfo.uid, 0);
|
||||
} else {
|
||||
final View appHeader = FeatureFactory.getFactory(activity)
|
||||
final Preference pref = FeatureFactory.getFactory(activity)
|
||||
.getApplicationFeatureProvider(activity)
|
||||
.newAppHeaderController(this, null /* appHeader */)
|
||||
.setIcon(mPackageInfo.applicationInfo.loadIcon(mPm))
|
||||
@@ -56,11 +55,8 @@ public abstract class AppInfoWithHeader extends AppInfoBase {
|
||||
.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);
|
||||
.done(getPrefContext());
|
||||
getPreferenceScreen().addPreference(pref);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -31,8 +31,8 @@ import android.os.LocaleList;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.preference.PreferenceFrameLayout;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.text.TextUtils;
|
||||
import android.util.ArraySet;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
@@ -52,9 +52,9 @@ import android.widget.FrameLayout;
|
||||
import android.widget.ListView;
|
||||
import android.widget.SectionIndexer;
|
||||
import android.widget.Spinner;
|
||||
|
||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.AppHeader;
|
||||
import com.android.settings.core.InstrumentedFragment;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Settings.AllApplicationsActivity;
|
||||
import com.android.settings.Settings.HighPowerApplicationsActivity;
|
||||
@@ -67,6 +67,7 @@ import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.applications.AppStateAppOpsBridge.PermissionState;
|
||||
import com.android.settings.applications.AppStateUsageBridge.UsageState;
|
||||
import com.android.settings.core.InstrumentedFragment;
|
||||
import com.android.settings.dashboard.SummaryLoader;
|
||||
import com.android.settings.fuelgauge.HighPowerDetail;
|
||||
import com.android.settings.fuelgauge.PowerWhitelistBackend;
|
||||
@@ -338,7 +339,7 @@ public class ManageApplications extends InstrumentedFragment
|
||||
private void createHeader() {
|
||||
Activity activity = getActivity();
|
||||
FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header);
|
||||
mSpinnerHeader = (ViewGroup) activity.getLayoutInflater()
|
||||
mSpinnerHeader = activity.getLayoutInflater()
|
||||
.inflate(R.layout.apps_filter_spinner, pinnedHeader, false);
|
||||
mFilterSpinner = (Spinner) mSpinnerHeader.findViewById(R.id.filter_spinner);
|
||||
mFilterAdapter = new FilterSpinnerAdapter(this);
|
||||
@@ -371,9 +372,23 @@ public class ManageApplications extends InstrumentedFragment
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
if (mListType == LIST_TYPE_STORAGE) {
|
||||
FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header);
|
||||
AppHeader.createAppHeader(getActivity(), null, mVolumeName, null, -1, pinnedHeader);
|
||||
final Activity activity = getActivity();
|
||||
final boolean isNewIAEnabled = FeatureFactory.getFactory(activity)
|
||||
.getDashboardFeatureProvider(activity)
|
||||
.isEnabled();
|
||||
if (!isNewIAEnabled) {
|
||||
FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header);
|
||||
AppHeader.createAppHeader(getActivity(), null, mVolumeName, null, -1, pinnedHeader);
|
||||
} else {
|
||||
final View appHeader = FeatureFactory.getFactory(activity)
|
||||
.getApplicationFeatureProvider(activity)
|
||||
.newAppHeaderController(this, null /* appHeaderView */)
|
||||
.setLabel(mVolumeName)
|
||||
.done();
|
||||
mListView.addHeaderView(appHeader);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -133,7 +133,7 @@ public class ProcessStatsDetail extends SettingsPreferenceFragment {
|
||||
: new ColorDrawable(0),
|
||||
mApp.mUiLabel, mApp.mPackage, mApp.mUiTargetApp.uid);
|
||||
} else {
|
||||
final View appHeader = FeatureFactory.getFactory(activity)
|
||||
final Preference pref = FeatureFactory.getFactory(activity)
|
||||
.getApplicationFeatureProvider(activity)
|
||||
.newAppHeaderController(this, null /* appHeader */)
|
||||
.setIcon(mApp.mUiTargetApp != null
|
||||
@@ -145,11 +145,8 @@ public class ProcessStatsDetail extends SettingsPreferenceFragment {
|
||||
? 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);
|
||||
.done(getPrefContext());
|
||||
getPreferenceScreen().addPreference(pref);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user