Skip to content

Commit 25b86dc

Browse files
Amith YamasaniAndroid Git Automerger
authored andcommitted
am fb6dc4f: Merge "Fix some crashes in the sample" into jb-mr2-dev
* commit 'fb6dc4fedf1034e61a792d24094b7f74854f70d4': Fix some crashes in the sample
2 parents 0db0ae5 + fb6dc4f commit 25b86dc

File tree

2 files changed

+34
-18
lines changed

2 files changed

+34
-18
lines changed

samples/AppLimits/res/values/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
<string name="choice_entry_title">Test choice type</string>
2222
<string name="multi_entry_title">Test multi-select type</string>
2323

24-
2524
<string-array name="multi_entry_entries">
2625
<item>Ice Cream</item>
2726
<item>Jelly Bean</item>

samples/AppLimits/src/com/example/android/applimits/CustomRestrictionsActivity.java

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import java.util.ArrayList;
3030
import java.util.HashSet;
31+
import java.util.List;
3132
import java.util.Set;
3233

3334
public class CustomRestrictionsActivity extends PreferenceActivity
@@ -37,7 +38,7 @@ public class CustomRestrictionsActivity extends PreferenceActivity
3738
private static final String KEY_CHOICE_PREF = "choice";
3839
private static final String KEY_MULTI_PREF = "multi";
3940

40-
ArrayList<RestrictionEntry> mRestrictions;
41+
List<RestrictionEntry> mRestrictions;
4142

4243
CheckBoxPreference mCustomPref;
4344
ListPreference mChoicePref;
@@ -59,40 +60,56 @@ public void onCreate(Bundle savedInstanceState) {
5960
mRestrictions = savedInstanceState.getParcelableArrayList(Intent.EXTRA_RESTRICTIONS);
6061
}
6162

63+
if (mRestrictions == null) {
64+
mRestrictions = new ArrayList<RestrictionEntry>(getApplicationRestrictions());
65+
}
66+
6267
this.addPreferencesFromResource(R.xml.custom_prefs);
6368
mCustomPref = (CheckBoxPreference) findPreference(KEY_CUSTOM_PREF);
6469
mChoicePref = (ListPreference) findPreference(KEY_CHOICE_PREF);
6570
mMultiPref = (MultiSelectListPreference) findPreference(KEY_MULTI_PREF);
6671

6772
// Transfer the saved values into the preference hierarchy
68-
for (RestrictionEntry entry : mRestrictions) {
69-
if (entry.getKey().equals(GetRestrictionsReceiver.KEY_CUSTOM)) {
70-
mCustomPref.setChecked(entry.getSelectedState());
71-
mCustomEntry = entry;
72-
} else if (entry.getKey().equals(GetRestrictionsReceiver.KEY_CHOICE)) {
73-
mChoicePref.setValue(entry.getSelectedString());
74-
mChoiceEntry = entry;
75-
} else if (entry.getKey().equals(GetRestrictionsReceiver.KEY_MULTI_SELECT)) {
76-
HashSet<String> set = new HashSet<String>();
77-
for (String value : entry.getAllSelectedStrings()) {
78-
set.add(value);
73+
if (mRestrictions != null) {
74+
for (RestrictionEntry entry : mRestrictions) {
75+
if (entry.getKey().equals(GetRestrictionsReceiver.KEY_CUSTOM)) {
76+
mCustomPref.setChecked(entry.getSelectedState());
77+
mCustomEntry = entry;
78+
} else if (entry.getKey().equals(GetRestrictionsReceiver.KEY_CHOICE)) {
79+
mChoicePref.setValue(entry.getSelectedString());
80+
mChoiceEntry = entry;
81+
} else if (entry.getKey().equals(GetRestrictionsReceiver.KEY_MULTI_SELECT)) {
82+
HashSet<String> set = new HashSet<String>();
83+
for (String value : entry.getAllSelectedStrings()) {
84+
set.add(value);
85+
}
86+
mMultiPref.setValues(set);
87+
mMultiEntry = entry;
7988
}
80-
mMultiPref.setValues(set);
81-
mMultiEntry = entry;
8289
}
90+
} else {
91+
mRestrictions = new ArrayList<RestrictionEntry>();
92+
mCustomEntry = new RestrictionEntry(GetRestrictionsReceiver.KEY_CUSTOM, false);
93+
mChoiceEntry = new RestrictionEntry(GetRestrictionsReceiver.KEY_CHOICE, (String) null);
94+
mMultiEntry = new RestrictionEntry(GetRestrictionsReceiver.KEY_MULTI_SELECT,
95+
new String[0]);
96+
mRestrictions.add(mCustomEntry);
97+
mRestrictions.add(mChoiceEntry);
98+
mRestrictions.add(mMultiEntry);
8399
}
84100
mCustomPref.setOnPreferenceChangeListener(this);
85101
mChoicePref.setOnPreferenceChangeListener(this);
86102
mMultiPref.setOnPreferenceChangeListener(this);
87103
Intent intent = new Intent(getIntent());
88104
intent.putParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS,
89-
mRestrictions);
105+
new ArrayList<RestrictionEntry>(mRestrictions));
90106
setResult(RESULT_OK, intent);
91107
}
92108

93109
public void onSaveInstanceState(Bundle outState) {
94110
super.onSaveInstanceState(outState);
95-
outState.putParcelableArrayList(Intent.EXTRA_RESTRICTIONS, mRestrictions);
111+
outState.putParcelableArrayList(Intent.EXTRA_RESTRICTIONS,
112+
new ArrayList<RestrictionEntry>(mRestrictions));
96113
}
97114

98115
@Override
@@ -111,7 +128,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) {
111128
}
112129
Intent intent = new Intent(getIntent());
113130
intent.putParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS,
114-
mRestrictions);
131+
new ArrayList<RestrictionEntry>(mRestrictions));
115132
setResult(RESULT_OK, intent);
116133
return true;
117134
}

0 commit comments

Comments
 (0)