Merge "Fix incorrect updating of headers in Settings" into jb-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9938ac8a6e
@@ -52,6 +52,7 @@ import android.view.View;
|
|||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.BaseAdapter;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.ListAdapter;
|
import android.widget.ListAdapter;
|
||||||
@@ -71,6 +72,7 @@ public class Settings extends PreferenceActivity
|
|||||||
implements ButtonBarHandler, OnAccountsUpdateListener {
|
implements ButtonBarHandler, OnAccountsUpdateListener {
|
||||||
|
|
||||||
private static final String LOG_TAG = "Settings";
|
private static final String LOG_TAG = "Settings";
|
||||||
|
|
||||||
private static final String META_DATA_KEY_HEADER_ID =
|
private static final String META_DATA_KEY_HEADER_ID =
|
||||||
"com.android.settings.TOP_LEVEL_HEADER_ID";
|
"com.android.settings.TOP_LEVEL_HEADER_ID";
|
||||||
private static final String META_DATA_KEY_FRAGMENT_CLASS =
|
private static final String META_DATA_KEY_FRAGMENT_CLASS =
|
||||||
@@ -108,7 +110,6 @@ public class Settings extends PreferenceActivity
|
|||||||
// TODO: Update Call Settings based on airplane mode state.
|
// TODO: Update Call Settings based on airplane mode state.
|
||||||
|
|
||||||
protected HashMap<Integer, Integer> mHeaderIndexMap = new HashMap<Integer, Integer>();
|
protected HashMap<Integer, Integer> mHeaderIndexMap = new HashMap<Integer, Integer>();
|
||||||
private List<Header> mHeaders;
|
|
||||||
|
|
||||||
private AuthenticatorHelper mAuthenticatorHelper;
|
private AuthenticatorHelper mAuthenticatorHelper;
|
||||||
private Header mLastHeader;
|
private Header mLastHeader;
|
||||||
@@ -189,6 +190,7 @@ public class Settings extends PreferenceActivity
|
|||||||
if (listAdapter instanceof HeaderAdapter) {
|
if (listAdapter instanceof HeaderAdapter) {
|
||||||
((HeaderAdapter) listAdapter).resume();
|
((HeaderAdapter) listAdapter).resume();
|
||||||
}
|
}
|
||||||
|
invalidateHeaders();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -369,8 +371,6 @@ public class Settings extends PreferenceActivity
|
|||||||
loadHeadersFromResource(R.xml.settings_headers, headers);
|
loadHeadersFromResource(R.xml.settings_headers, headers);
|
||||||
|
|
||||||
updateHeaderList(headers);
|
updateHeaderList(headers);
|
||||||
|
|
||||||
mHeaders = headers;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateHeaderList(List<Header> target) {
|
private void updateHeaderList(List<Header> target) {
|
||||||
@@ -730,19 +730,13 @@ public class Settings extends PreferenceActivity
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setListAdapter(ListAdapter adapter) {
|
public void setListAdapter(ListAdapter adapter) {
|
||||||
if (mHeaders == null) {
|
if (adapter == null) {
|
||||||
mHeaders = new ArrayList<Header>();
|
super.setListAdapter(null);
|
||||||
// When the saved state provides the list of headers, onBuildHeaders is not called
|
} else {
|
||||||
// Copy the list of Headers from the adapter, preserving their order
|
super.setListAdapter(new HeaderAdapter(this, getHeaders(), mAuthenticatorHelper));
|
||||||
for (int i = 0; i < adapter.getCount(); i++) {
|
|
||||||
mHeaders.add((Header) adapter.getItem(i));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore the adapter provided by PreferenceActivity and substitute ours instead
|
|
||||||
super.setListAdapter(new HeaderAdapter(this, mHeaders, mAuthenticatorHelper));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAccountsUpdated(Account[] accounts) {
|
public void onAccountsUpdated(Account[] accounts) {
|
||||||
mAuthenticatorHelper.onAccountsUpdated(this, accounts);
|
mAuthenticatorHelper.onAccountsUpdated(this, accounts);
|
||||||
|
Reference in New Issue
Block a user