avoid stopping app in case of accessing empty db

When accessing empty database, Setting App is stopped, sometimes.
To avoid stopping app, check null for cursor

Change-Id: I71ec067f502d12a9215a9abdbe9e23fc07af17bb
This commit is contained in:
Hyejin Kim
2013-02-14 15:49:19 +09:00
committed by Sungmin Choi
parent bbe409d3ce
commit 88c80b10a2

View File

@@ -164,43 +164,45 @@ public class ApnSettings extends PreferenceActivity implements
"_id", "name", "apn", "type"}, where, null, "_id", "name", "apn", "type"}, where, null,
Telephony.Carriers.DEFAULT_SORT_ORDER); Telephony.Carriers.DEFAULT_SORT_ORDER);
PreferenceGroup apnList = (PreferenceGroup) findPreference("apn_list"); if (cursor != null) {
apnList.removeAll(); PreferenceGroup apnList = (PreferenceGroup) findPreference("apn_list");
apnList.removeAll();
ArrayList<Preference> mmsApnList = new ArrayList<Preference>(); ArrayList<Preference> mmsApnList = new ArrayList<Preference>();
mSelectedKey = getSelectedApnKey(); mSelectedKey = getSelectedApnKey();
cursor.moveToFirst(); cursor.moveToFirst();
while (!cursor.isAfterLast()) { while (!cursor.isAfterLast()) {
String name = cursor.getString(NAME_INDEX); String name = cursor.getString(NAME_INDEX);
String apn = cursor.getString(APN_INDEX); String apn = cursor.getString(APN_INDEX);
String key = cursor.getString(ID_INDEX); String key = cursor.getString(ID_INDEX);
String type = cursor.getString(TYPES_INDEX); String type = cursor.getString(TYPES_INDEX);
ApnPreference pref = new ApnPreference(this); ApnPreference pref = new ApnPreference(this);
pref.setKey(key); pref.setKey(key);
pref.setTitle(name); pref.setTitle(name);
pref.setSummary(apn); pref.setSummary(apn);
pref.setPersistent(false); pref.setPersistent(false);
pref.setOnPreferenceChangeListener(this); pref.setOnPreferenceChangeListener(this);
boolean selectable = ((type == null) || !type.equals("mms")); boolean selectable = ((type == null) || !type.equals("mms"));
pref.setSelectable(selectable); pref.setSelectable(selectable);
if (selectable) { if (selectable) {
if ((mSelectedKey != null) && mSelectedKey.equals(key)) { if ((mSelectedKey != null) && mSelectedKey.equals(key)) {
pref.setChecked(); pref.setChecked();
}
apnList.addPreference(pref);
} else {
mmsApnList.add(pref);
} }
apnList.addPreference(pref); cursor.moveToNext();
} else {
mmsApnList.add(pref);
} }
cursor.moveToNext(); cursor.close();
}
cursor.close();
for (Preference preference : mmsApnList) { for (Preference preference : mmsApnList) {
apnList.addPreference(preference); apnList.addPreference(preference);
}
} }
} }