Loading src/com/android/settings/applications/AppHeaderController.java +13 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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"; Loading Loading @@ -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. */ Loading src/com/android/settings/applications/AppInfoWithHeader.java +3 −7 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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)) Loading @@ -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); } } } src/com/android/settings/applications/ManageApplications.java +20 −5 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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) { 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); } } } Loading src/com/android/settings/applications/ProcessStatsDetail.java +3 −6 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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); } } Loading src/com/android/settings/datausage/AppDataUsage.java +24 −6 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ package com.android.settings.datausage; import android.app.Activity; import android.app.LoaderManager; import android.content.Context; import android.content.Intent; Loading @@ -29,7 +30,6 @@ import android.net.NetworkTemplate; import android.net.TrafficStats; import android.os.AsyncTask; import android.os.Bundle; import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; Loading @@ -38,13 +38,15 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.text.format.Formatter; import android.util.ArraySet; import android.util.Log; import android.view.View; import android.widget.AdapterView; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.settings.AppHeader; import com.android.settings.R; import com.android.settings.applications.AppHeaderController; import com.android.settings.applications.AppInfoBase; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.AppItem; import com.android.settingslib.Utils; import com.android.settingslib.net.ChartData; Loading @@ -53,7 +55,6 @@ import com.android.settingslib.net.UidDetailProvider; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; Loading Loading @@ -345,15 +346,32 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); View header = setPinnedHeaderView(R.layout.app_header); String pkg = mPackages.size() != 0 ? mPackages.valueAt(0) : null; int uid = 0; try { uid = pkg != null ? getPackageManager().getPackageUid(pkg, 0) : 0; } catch (PackageManager.NameNotFoundException e) { } final Activity activity = getActivity(); if (!FeatureFactory.getFactory(activity) .getDashboardFeatureProvider(activity).isEnabled()) { View header = setPinnedHeaderView(R.layout.app_header); AppHeader.setupHeaderView(getActivity(), mIcon, mLabel, pkg, uid, AppHeader.includeAppInfo(this), 0, header, null); } else { final Preference pref = FeatureFactory.getFactory(activity) .getApplicationFeatureProvider(activity) .newAppHeaderController(this, null /* appHeader */) .setIcon(mIcon) .setLabel(mLabel) .setPackageName(pkg) .setUid(uid) .setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO, AppHeaderController.ActionType.ACTION_NONE) .done(getPrefContext()); getPreferenceScreen().addPreference(pref); } } @Override Loading Loading
src/com/android/settings/applications/AppHeaderController.java +13 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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"; Loading Loading @@ -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. */ Loading
src/com/android/settings/applications/AppInfoWithHeader.java +3 −7 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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)) Loading @@ -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); } } }
src/com/android/settings/applications/ManageApplications.java +20 −5 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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) { 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); } } } Loading
src/com/android/settings/applications/ProcessStatsDetail.java +3 −6 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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); } } Loading
src/com/android/settings/datausage/AppDataUsage.java +24 −6 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ package com.android.settings.datausage; import android.app.Activity; import android.app.LoaderManager; import android.content.Context; import android.content.Intent; Loading @@ -29,7 +30,6 @@ import android.net.NetworkTemplate; import android.net.TrafficStats; import android.os.AsyncTask; import android.os.Bundle; import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; Loading @@ -38,13 +38,15 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.text.format.Formatter; import android.util.ArraySet; import android.util.Log; import android.view.View; import android.widget.AdapterView; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.settings.AppHeader; import com.android.settings.R; import com.android.settings.applications.AppHeaderController; import com.android.settings.applications.AppInfoBase; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.AppItem; import com.android.settingslib.Utils; import com.android.settingslib.net.ChartData; Loading @@ -53,7 +55,6 @@ import com.android.settingslib.net.UidDetailProvider; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; Loading Loading @@ -345,15 +346,32 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); View header = setPinnedHeaderView(R.layout.app_header); String pkg = mPackages.size() != 0 ? mPackages.valueAt(0) : null; int uid = 0; try { uid = pkg != null ? getPackageManager().getPackageUid(pkg, 0) : 0; } catch (PackageManager.NameNotFoundException e) { } final Activity activity = getActivity(); if (!FeatureFactory.getFactory(activity) .getDashboardFeatureProvider(activity).isEnabled()) { View header = setPinnedHeaderView(R.layout.app_header); AppHeader.setupHeaderView(getActivity(), mIcon, mLabel, pkg, uid, AppHeader.includeAppInfo(this), 0, header, null); } else { final Preference pref = FeatureFactory.getFactory(activity) .getApplicationFeatureProvider(activity) .newAppHeaderController(this, null /* appHeader */) .setIcon(mIcon) .setLabel(mLabel) .setPackageName(pkg) .setUid(uid) .setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO, AppHeaderController.ActionType.ACTION_NONE) .done(getPrefContext()); getPreferenceScreen().addPreference(pref); } } @Override Loading