Code cleaning
- remove duplicate reference to current header (mCurHeader) in favor of mCurrentHeader - clean onSaveInstanceState() Change-Id: Ia9322471f0b0d13d51e105c8fd625774d8867fdc
This commit is contained in:
@@ -131,8 +131,8 @@ public class SettingsActivity extends Activity
|
|||||||
private static final String LOG_TAG = "Settings";
|
private static final String LOG_TAG = "Settings";
|
||||||
|
|
||||||
// Constants for state save/restore
|
// Constants for state save/restore
|
||||||
private static final String HEADERS_TAG = ":settings:headers";
|
private static final String SAVE_KEY_HEADERS_TAG = ":settings:headers";
|
||||||
private static final String CUR_HEADER_TAG = ":settings:cur_header";
|
private static final String SAVE_KEY_CURRENT_HEADER_TAG = ":settings:cur_header";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When starting this activity, the invoking Intent can contain this extra
|
* When starting this activity, the invoking Intent can contain this extra
|
||||||
@@ -191,13 +191,12 @@ public class SettingsActivity extends Activity
|
|||||||
|
|
||||||
private static final String EXTRA_UI_OPTIONS = "settings:ui_options";
|
private static final String EXTRA_UI_OPTIONS = "settings:ui_options";
|
||||||
|
|
||||||
private static final String SAVE_KEY_CURRENT_HEADER = "com.android.settings.CURRENT_HEADER";
|
|
||||||
|
|
||||||
private static boolean sShowNoHomeNotice = false;
|
private static boolean sShowNoHomeNotice = false;
|
||||||
|
|
||||||
private String mFragmentClass;
|
private String mFragmentClass;
|
||||||
private int mTopLevelHeaderId;
|
private int mTopLevelHeaderId;
|
||||||
private Header mFirstHeader;
|
private Header mFirstHeader;
|
||||||
|
private Header mSelectedHeader;
|
||||||
private Header mCurrentHeader;
|
private Header mCurrentHeader;
|
||||||
|
|
||||||
// Show only these settings for restricted users
|
// Show only these settings for restricted users
|
||||||
@@ -312,7 +311,6 @@ public class SettingsActivity extends Activity
|
|||||||
};
|
};
|
||||||
|
|
||||||
private final ArrayList<Header> mHeaders = new ArrayList<Header>();
|
private final ArrayList<Header> mHeaders = new ArrayList<Header>();
|
||||||
private Header mCurHeader;
|
|
||||||
private HeaderAdapter mHeaderAdapter;
|
private HeaderAdapter mHeaderAdapter;
|
||||||
|
|
||||||
private class TitlePair extends Pair<Integer, CharSequence> {
|
private class TitlePair extends Pair<Integer, CharSequence> {
|
||||||
@@ -338,8 +336,8 @@ public class SettingsActivity extends Activity
|
|||||||
mHeaders.clear();
|
mHeaders.clear();
|
||||||
onBuildHeaders(mHeaders);
|
onBuildHeaders(mHeaders);
|
||||||
mHeaderAdapter.notifyDataSetChanged();
|
mHeaderAdapter.notifyDataSetChanged();
|
||||||
if (mCurHeader != null) {
|
if (mCurrentHeader != null) {
|
||||||
Header mappedHeader = findBestMatchingHeader(mCurHeader, mHeaders);
|
Header mappedHeader = findBestMatchingHeader(mCurrentHeader, mHeaders);
|
||||||
if (mappedHeader != null) {
|
if (mappedHeader != null) {
|
||||||
setSelectedHeader(mappedHeader);
|
setSelectedHeader(mappedHeader);
|
||||||
}
|
}
|
||||||
@@ -384,7 +382,7 @@ public class SettingsActivity extends Activity
|
|||||||
mDrawerToggle.onDrawerClosed(drawerView);
|
mDrawerToggle.onDrawerClosed(drawerView);
|
||||||
// Cannot process clicks when the App is finishing
|
// Cannot process clicks when the App is finishing
|
||||||
if (isFinishing()) return;
|
if (isFinishing()) return;
|
||||||
onHeaderClick(mCurrentHeader);
|
onHeaderClick(mSelectedHeader);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -406,26 +404,26 @@ public class SettingsActivity extends Activity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Header findBestMatchingHeader(Header cur, ArrayList<Header> from) {
|
private Header findBestMatchingHeader(Header current, ArrayList<Header> from) {
|
||||||
ArrayList<Header> matches = new ArrayList<Header>();
|
ArrayList<Header> matches = new ArrayList<Header>();
|
||||||
for (int j=0; j<from.size(); j++) {
|
for (int j=0; j<from.size(); j++) {
|
||||||
Header oh = from.get(j);
|
Header oh = from.get(j);
|
||||||
if (cur == oh || (cur.id != HEADER_ID_UNDEFINED && cur.id == oh.id)) {
|
if (current == oh || (current.id != HEADER_ID_UNDEFINED && current.id == oh.id)) {
|
||||||
// Must be this one.
|
// Must be this one.
|
||||||
matches.clear();
|
matches.clear();
|
||||||
matches.add(oh);
|
matches.add(oh);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (cur.fragment != null) {
|
if (current.fragment != null) {
|
||||||
if (cur.fragment.equals(oh.fragment)) {
|
if (current.fragment.equals(oh.fragment)) {
|
||||||
matches.add(oh);
|
matches.add(oh);
|
||||||
}
|
}
|
||||||
} else if (cur.intent != null) {
|
} else if (current.intent != null) {
|
||||||
if (cur.intent.equals(oh.intent)) {
|
if (current.intent.equals(oh.intent)) {
|
||||||
matches.add(oh);
|
matches.add(oh);
|
||||||
}
|
}
|
||||||
} else if (cur.title != null) {
|
} else if (current.title != null) {
|
||||||
if (cur.title.equals(oh.title)) {
|
if (current.title.equals(oh.title)) {
|
||||||
matches.add(oh);
|
matches.add(oh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -436,14 +434,14 @@ public class SettingsActivity extends Activity
|
|||||||
} else if (NM > 1) {
|
} else if (NM > 1) {
|
||||||
for (int j=0; j<NM; j++) {
|
for (int j=0; j<NM; j++) {
|
||||||
Header oh = matches.get(j);
|
Header oh = matches.get(j);
|
||||||
if (cur.fragmentArguments != null &&
|
if (current.fragmentArguments != null &&
|
||||||
cur.fragmentArguments.equals(oh.fragmentArguments)) {
|
current.fragmentArguments.equals(oh.fragmentArguments)) {
|
||||||
return oh;
|
return oh;
|
||||||
}
|
}
|
||||||
if (cur.extras != null && cur.extras.equals(oh.extras)) {
|
if (current.extras != null && current.extras.equals(oh.extras)) {
|
||||||
return oh;
|
return oh;
|
||||||
}
|
}
|
||||||
if (cur.title != null && cur.title.equals(oh.title)) {
|
if (current.title != null && current.title.equals(oh.title)) {
|
||||||
return oh;
|
return oh;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -530,10 +528,11 @@ public class SettingsActivity extends Activity
|
|||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
// We are restarting from a previous saved state; used that to
|
// We are restarting from a previous saved state; used that to
|
||||||
// initialize, instead of starting fresh.
|
// initialize, instead of starting fresh.
|
||||||
ArrayList<Header> headers = savedInstanceState.getParcelableArrayList(HEADERS_TAG);
|
ArrayList<Header> headers =
|
||||||
|
savedInstanceState.getParcelableArrayList(SAVE_KEY_HEADERS_TAG);
|
||||||
if (headers != null) {
|
if (headers != null) {
|
||||||
mHeaders.addAll(headers);
|
mHeaders.addAll(headers);
|
||||||
int curHeader = savedInstanceState.getInt(CUR_HEADER_TAG,
|
int curHeader = savedInstanceState.getInt(SAVE_KEY_CURRENT_HEADER_TAG,
|
||||||
(int) HEADER_ID_UNDEFINED);
|
(int) HEADER_ID_UNDEFINED);
|
||||||
if (curHeader >= 0 && curHeader < mHeaders.size()) {
|
if (curHeader >= 0 && curHeader < mHeaders.size()) {
|
||||||
setSelectedHeader(mHeaders.get(curHeader));
|
setSelectedHeader(mHeaders.get(curHeader));
|
||||||
@@ -627,11 +626,6 @@ public class SettingsActivity extends Activity
|
|||||||
if (!onIsHidingHeaders()) {
|
if (!onIsHidingHeaders()) {
|
||||||
highlightHeader(mTopLevelHeaderId);
|
highlightHeader(mTopLevelHeaderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve any saved state
|
|
||||||
if (savedInstanceState != null) {
|
|
||||||
mCurrentHeader = savedInstanceState.getParcelable(SAVE_KEY_CURRENT_HEADER);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -674,19 +668,14 @@ public class SettingsActivity extends Activity
|
|||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
|
|
||||||
if (mHeaders.size() > 0) {
|
if (mHeaders.size() > 0) {
|
||||||
outState.putParcelableArrayList(HEADERS_TAG, mHeaders);
|
outState.putParcelableArrayList(SAVE_KEY_HEADERS_TAG, mHeaders);
|
||||||
if (mCurHeader != null) {
|
if (mCurrentHeader != null) {
|
||||||
int index = mHeaders.indexOf(mCurHeader);
|
int index = mHeaders.indexOf(mCurrentHeader);
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
outState.putInt(CUR_HEADER_TAG, index);
|
outState.putInt(SAVE_KEY_CURRENT_HEADER_TAG, index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save the current fragment, if it is the same as originally launched
|
|
||||||
if (mCurrentHeader != null) {
|
|
||||||
outState.putParcelable(SAVE_KEY_CURRENT_HEADER, mCurrentHeader);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -754,7 +743,7 @@ public class SettingsActivity extends Activity
|
|||||||
* @param validate true means that the fragment's Header needs to be validated
|
* @param validate true means that the fragment's Header needs to be validated
|
||||||
*/
|
*/
|
||||||
private void switchToHeader(Header header, boolean validate) {
|
private void switchToHeader(Header header, boolean validate) {
|
||||||
if (mCurHeader == header) {
|
if (mCurrentHeader == header) {
|
||||||
// This is the header we are currently displaying. Just make sure
|
// This is the header we are currently displaying. Just make sure
|
||||||
// to pop the stack up to its root state.
|
// to pop the stack up to its root state.
|
||||||
getFragmentManager().popBackStack(BACK_STACK_PREFS,
|
getFragmentManager().popBackStack(BACK_STACK_PREFS,
|
||||||
@@ -779,7 +768,7 @@ public class SettingsActivity extends Activity
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setSelectedHeader(Header header) {
|
private void setSelectedHeader(Header header) {
|
||||||
mCurHeader = header;
|
mCurrentHeader = header;
|
||||||
int index = mHeaders.indexOf(header);
|
int index = mHeaders.indexOf(header);
|
||||||
if (mDrawer != null) {
|
if (mDrawer != null) {
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
@@ -797,7 +786,6 @@ public class SettingsActivity extends Activity
|
|||||||
header.fragment = fragmentClass;
|
header.fragment = fragmentClass;
|
||||||
header.title = getTitle();
|
header.title = getTitle();
|
||||||
header.fragmentArguments = getIntent().getExtras();
|
header.fragmentArguments = getIntent().getExtras();
|
||||||
mCurrentHeader = header;
|
|
||||||
return header;
|
return header;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1589,7 +1577,7 @@ public class SettingsActivity extends Activity
|
|||||||
}
|
}
|
||||||
Object item = mHeaderAdapter.getItem(position);
|
Object item = mHeaderAdapter.getItem(position);
|
||||||
if (item instanceof Header) {
|
if (item instanceof Header) {
|
||||||
mCurrentHeader = (Header) item;
|
mSelectedHeader = (Header) item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user