diff options
author | Jorge Ruesga <jorge@ruesga.com> | 2014-03-09 22:54:43 +0100 |
---|---|---|
committer | Jorge Ruesga <jorge@ruesga.com> | 2014-03-09 22:54:43 +0100 |
commit | a5d4a78d0831d0385df0da57378ee41c95234fb1 (patch) | |
tree | 68b3a22f1617a1f26522691d263f734d9cf61a85 | |
parent | 99a7b0f03ce98a21c6dc44e7606643b99c2910d7 (diff) | |
download | android_packages_apps_Trebuchet-a5d4a78d0831d0385df0da57378ee41c95234fb1.tar.gz android_packages_apps_Trebuchet-a5d4a78d0831d0385df0da57378ee41c95234fb1.tar.bz2 android_packages_apps_Trebuchet-a5d4a78d0831d0385df0da57378ee41c95234fb1.zip |
trebuchet: build headers from internal adapter instance
Trebuchet will be killed if any of its settings changed, so if it is accessed from recents
then the PreferencesActivity is rebuilt from its saved instance and the headers are not filled
by onBuildHeaders, because this is not called.
Just ensure we build the headers from the internal adapter.
Change-Id: I3159daadd715d5cbc0d9bcd377d8bbe51f638d32
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
-rw-r--r-- | src/com/android/launcher3/settings/SettingsActivity.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/com/android/launcher3/settings/SettingsActivity.java b/src/com/android/launcher3/settings/SettingsActivity.java index 466a01f67..182a6bff8 100644 --- a/src/com/android/launcher3/settings/SettingsActivity.java +++ b/src/com/android/launcher3/settings/SettingsActivity.java @@ -31,6 +31,7 @@ import android.widget.ListAdapter; import android.widget.TextView; import com.android.launcher3.R; +import java.util.ArrayList; import java.util.List; public class SettingsActivity extends PreferenceActivity @@ -38,7 +39,6 @@ public class SettingsActivity extends PreferenceActivity private static final String TAG = "Launcher3.SettingsActivity"; private SharedPreferences mSettings; - private List<Header> mHeaders; @Override protected void onCreate(Bundle savedInstanceState) { @@ -90,7 +90,6 @@ public class SettingsActivity extends PreferenceActivity public void onBuildHeaders(List<Header> target) { loadHeadersFromResource(R.xml.preferences_headers, target); updateHeaders(target); - mHeaders = target; } private void updateHeaders(List<Header> headers) { @@ -115,7 +114,8 @@ public class SettingsActivity extends PreferenceActivity if (adapter == null) { super.setListAdapter(null); } else { - super.setListAdapter(new HeaderAdapter(this, mHeaders)); + List<Header> headers = getHeadersFromAdapter(adapter); + super.setListAdapter(new HeaderAdapter(this, headers)); } } @@ -126,6 +126,15 @@ public class SettingsActivity extends PreferenceActivity editor.commit(); } + private List<Header> getHeadersFromAdapter(ListAdapter adapter) { + List<Header> headers = new ArrayList<Header>(); + int count = adapter.getCount(); + for (int i = 0; i < count; i++) { + headers.add((Header)adapter.getItem(i)); + } + return headers; + } + public static class HomescreenFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { |