Fix app headers in settings
Use SettingsPreferenceFragment's method for pinned headers where
possible, and add a frame within the fragment for them to live in
otherwise so that this view doesn't end up on the activity.
Bug: 20886475
Change-Id: I985eb1497744ea50bfabed862e5088eb89df5b61
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index 27a486c..7eec3df 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -112,6 +112,7 @@
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.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 @@
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 @@
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);