Merge "avoid stopping app in case of accessing empty db"

This commit is contained in:
Wink Saville
2013-02-20 23:07:59 +00:00
committed by Gerrit Code Review

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);
}
} }
} }
@@ -330,7 +332,7 @@ public class ApnSettings extends PreferenceActivity implements
switch (msg.what) { switch (msg.what) {
case EVENT_RESTORE_DEFAULTAPN_START: case EVENT_RESTORE_DEFAULTAPN_START:
ContentResolver resolver = getContentResolver(); ContentResolver resolver = getContentResolver();
resolver.delete(DEFAULTAPN_URI, null, null); resolver.delete(DEFAULTAPN_URI, null, null);
mRestoreApnUiHandler mRestoreApnUiHandler
.sendEmptyMessage(EVENT_RESTORE_DEFAULTAPN_COMPLETE); .sendEmptyMessage(EVENT_RESTORE_DEFAULTAPN_COMPLETE);
break; break;