diff --git a/res/layout/data_usage_summary.xml b/res/layout/data_usage_summary.xml
index 66341053d5b..88750040e96 100644
--- a/res/layout/data_usage_summary.xml
+++ b/res/layout/data_usage_summary.xml
@@ -26,6 +26,11 @@
android:orientation="vertical"
android:background="@drawable/default_preference_background">
+
+
diff --git a/res/layout/manage_applications_apps.xml b/res/layout/manage_applications_apps.xml
index 044cdb4b925..e4ec8715896 100644
--- a/res/layout/manage_applications_apps.xml
+++ b/res/layout/manage_applications_apps.xml
@@ -30,6 +30,11 @@
android:orientation="vertical"
android:visibility="gone">
+
+
diff --git a/src/com/android/settings/AppHeader.java b/src/com/android/settings/AppHeader.java
index 2f3678b942c..71c2255ad0e 100644
--- a/src/com/android/settings/AppHeader.java
+++ b/src/com/android/settings/AppHeader.java
@@ -28,18 +28,27 @@ import android.widget.TextView;
public class AppHeader {
- public static void createAppHeader(final Activity activity, Drawable icon, CharSequence label,
- final Intent settingsIntent) {
- createAppHeader(activity, icon, label, settingsIntent, 0);
+ public static void createAppHeader(SettingsPreferenceFragment fragment, Drawable icon,
+ CharSequence label, final Intent settingsIntent) {
+ createAppHeader(fragment, icon, label, settingsIntent, 0);
}
- public static void createAppHeader(final Activity activity, Drawable icon, CharSequence label,
- final Intent settingsIntent, int tintColorRes) {
- final View content = activity.findViewById(R.id.main_content);
- final ViewGroup contentParent = (ViewGroup) content.getParent();
+ public static void createAppHeader(Activity activity, Drawable icon, CharSequence label,
+ final Intent settingsIntent, ViewGroup pinnedHeader) {
final View bar = activity.getLayoutInflater().inflate(R.layout.app_header,
- contentParent, false);
+ pinnedHeader, false);
+ setupHeaderView(activity, icon, label, settingsIntent, 0, bar);
+ pinnedHeader.addView(bar);
+ }
+ public static void createAppHeader(SettingsPreferenceFragment fragment, Drawable icon,
+ CharSequence label, Intent settingsIntent, int tintColorRes) {
+ View bar = fragment.setPinnedHeaderView(R.layout.app_header);
+ setupHeaderView(fragment.getActivity(), icon, label, settingsIntent, tintColorRes, bar);
+ }
+
+ private static View setupHeaderView(final Activity activity, Drawable icon, CharSequence label,
+ final Intent settingsIntent, int tintColorRes, View bar) {
final ImageView appIcon = (ImageView) bar.findViewById(R.id.app_icon);
appIcon.setImageDrawable(icon);
if (tintColorRes != 0) {
@@ -61,7 +70,8 @@ public class AppHeader {
}
});
}
- contentParent.addView(bar, 0);
+
+ return bar;
}
}
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index 27a486cc0d1..7eec3dfff58 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -112,6 +112,7 @@ import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
+import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
@@ -120,12 +121,12 @@ import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.TabHost;
-import android.widget.Toast;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabContentFactory;
import android.widget.TabHost.TabSpec;
import android.widget.TabWidget;
import android.widget.TextView;
+import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.telephony.PhoneConstants;
@@ -464,12 +465,12 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
mListView.setOnItemClickListener(mListListener);
mListView.setAdapter(mAdapter);
- showRequestedAppIfNeeded();
+ showRequestedAppIfNeeded(view);
return view;
}
- private void showRequestedAppIfNeeded() {
+ private void showRequestedAppIfNeeded(View rootView) {
if (mShowAppImmediatePkg == null) {
return;
}
@@ -482,7 +483,8 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
final UidDetail detail = mUidDetailProvider.getUidDetail(app.key, true);
// When we are going straight to an app then we are coming from App Info and want
// a header at the top.
- AppHeader.createAppHeader(getActivity(), detail.icon, detail.label, null);
+ FrameLayout pinnedHeader = (FrameLayout) rootView.findViewById(R.id.pinned_header);
+ AppHeader.createAppHeader(getActivity(), detail.icon, detail.label, null, pinnedHeader);
AppDetailsFragment.show(DataUsageSummary.this, app, detail.label, false);
} catch (NameNotFoundException e) {
Log.w(TAG, "Could not find " + mShowAppImmediatePkg, e);
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 2d402e53a49..e42f246436b 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -37,12 +37,13 @@ import android.util.Log;
import com.android.settings.InstrumentedPreferenceFragment;
import com.android.settings.SettingsActivity;
+import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settings.applications.ApplicationsState.AppEntry;
import java.util.ArrayList;
-public abstract class AppInfoBase extends InstrumentedPreferenceFragment
+public abstract class AppInfoBase extends SettingsPreferenceFragment
implements ApplicationsState.Callbacks {
public static final String ARG_PACKAGE_NAME = "package";
diff --git a/src/com/android/settings/applications/AppInfoWithHeader.java b/src/com/android/settings/applications/AppInfoWithHeader.java
index f7546f28761..f8feaf16bad 100644
--- a/src/com/android/settings/applications/AppInfoWithHeader.java
+++ b/src/com/android/settings/applications/AppInfoWithHeader.java
@@ -34,7 +34,7 @@ public abstract class AppInfoWithHeader extends AppInfoBase {
}
mCreated = true;
if (mPackageInfo == null) return;
- AppHeader.createAppHeader(getActivity(), mPackageInfo.applicationInfo.loadIcon(mPm),
- mPackageInfo.applicationInfo.loadLabel(mPm), null);
+ AppHeader.createAppHeader(this, mPackageInfo.applicationInfo.loadIcon(mPm),
+ mPackageInfo.applicationInfo.loadLabel(mPm), null, 0);
}
}
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index b55cc445566..3107efdfea0 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -45,6 +45,7 @@ import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
+import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.Spinner;
@@ -298,15 +299,14 @@ public class ManageApplications extends InstrumentedFragment
private void createHeader() {
Activity activity = getActivity();
- View content = activity.findViewById(R.id.main_content);
- ViewGroup contentParent = (ViewGroup) content.getParent();
+ FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header);
mSpinnerHeader = (ViewGroup) activity.getLayoutInflater()
- .inflate(R.layout.apps_filter_spinner, contentParent, false);
+ .inflate(R.layout.apps_filter_spinner, pinnedHeader, false);
mFilterSpinner = (Spinner) mSpinnerHeader.findViewById(R.id.filter_spinner);
mFilterAdapter = new FilterSpinnerAdapter(this);
mFilterSpinner.setAdapter(mFilterAdapter);
mFilterSpinner.setOnItemSelectedListener(this);
- contentParent.addView(mSpinnerHeader, 0);
+ pinnedHeader.addView(mSpinnerHeader, 0);
mFilterAdapter.enableFilter(getDefaultFilter());
if (mListType == LIST_TYPE_MAIN || mListType == LIST_TYPE_NOTIFICATION) {
@@ -333,7 +333,8 @@ public class ManageApplications extends InstrumentedFragment
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (mListType == LIST_TYPE_STORAGE) {
- AppHeader.createAppHeader(getActivity(), null, mVolumeName, null);
+ FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header);
+ AppHeader.createAppHeader(getActivity(), null, mVolumeName, null, pinnedHeader);
}
}
diff --git a/src/com/android/settings/applications/ProcessStatsDetail.java b/src/com/android/settings/applications/ProcessStatsDetail.java
index 191e7e97df1..55538bc99ae 100644
--- a/src/com/android/settings/applications/ProcessStatsDetail.java
+++ b/src/com/android/settings/applications/ProcessStatsDetail.java
@@ -112,7 +112,7 @@ public class ProcessStatsDetail extends SettingsPreferenceFragment
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- AppHeader.createAppHeader(getActivity(),
+ AppHeader.createAppHeader(this,
mApp.mUiTargetApp != null ? mApp.mUiTargetApp.loadIcon(mPm) : new ColorDrawable(0),
mApp.mUiLabel, null);
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
index 4aa935ab852..bac82022155 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
@@ -464,7 +464,7 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
appIcon = getActivity().getPackageManager().getDefaultActivityIcon();
}
- AppHeader.createAppHeader(getActivity(), appIcon, title, null,
+ AppHeader.createAppHeader(this, appIcon, title, null,
mDrainType != DrainType.APP ? android.R.color.white : 0);
}
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 883975a5a7d..28245c8c89d 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -84,7 +84,7 @@ public class AppNotificationSettings extends SettingsPreferenceFragment {
}
mCreated = true;
if (mAppRow == null) return;
- AppHeader.createAppHeader(getActivity(), mAppRow.icon, mAppRow.label,
+ AppHeader.createAppHeader(this, mAppRow.icon, mAppRow.label,
mAppRow.settingsIntent);
}