Merge change I4d31288f into eclair

* changes:
  Fix for 1974140. Delete entry if not valid on hitting home.
This commit is contained in:
Android (Google) Code Review
2009-10-29 09:28:35 -04:00
3 changed files with 22 additions and 7 deletions

View File

@@ -105,7 +105,7 @@
<activity android:name="ApnSettings" android:label="@string/apn_settings" <activity android:name="ApnSettings" android:label="@string/apn_settings"
android:configChanges="orientation|keyboardHidden" android:configChanges="orientation|keyboardHidden"
android:launchMode="singleInstance" android:launchMode="singleTask"
> >
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />

View File

@@ -2144,4 +2144,7 @@ found in the list of installed applications.</string>
<string name="backup_erase_dialog_title">Settings backup</string> <string name="backup_erase_dialog_title">Settings backup</string>
<!-- Dialog title for confirmation to erase backup data from server --> <!-- Dialog title for confirmation to erase backup data from server -->
<string name="backup_erase_dialog_message">Are you sure you want to stop backing up your settings and erase all copies on Google servers?</string> <string name="backup_erase_dialog_message">Are you sure you want to stop backing up your settings and erase all copies on Google servers?</string>
<!-- Name to assign to a Network Access Point that was saved without a name -->
<string name="untitled_apn">Untitled</string>
</resources> </resources>

View File

@@ -150,7 +150,7 @@ public class ApnEditor extends PreferenceActivity
if (action.equals(Intent.ACTION_EDIT)) { if (action.equals(Intent.ACTION_EDIT)) {
mUri = intent.getData(); mUri = intent.getData();
} else if (action.equals(Intent.ACTION_INSERT)) { } else if (action.equals(Intent.ACTION_INSERT)) {
if (mFirstTime) { if (mFirstTime || icicle.getInt(SAVED_POS) == 0) {
mUri = getContentResolver().insert(intent.getData(), new ContentValues()); mUri = getContentResolver().insert(intent.getData(), new ContentValues());
} else { } else {
mUri = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, mUri = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI,
@@ -185,12 +185,14 @@ public class ApnEditor extends PreferenceActivity
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
} }
@Override @Override
public void onPause() { public void onPause() {
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
super.onPause(); super.onPause();
} }
@@ -328,9 +330,10 @@ public class ApnEditor extends PreferenceActivity
@Override @Override
protected void onSaveInstanceState(Bundle icicle) { protected void onSaveInstanceState(Bundle icicle) {
super.onSaveInstanceState(icicle); super.onSaveInstanceState(icicle);
validateAndSave(true); if (validateAndSave(true)) {
icicle.putInt(SAVED_POS, mCursor.getInt(ID_INDEX)); icicle.putInt(SAVED_POS, mCursor.getInt(ID_INDEX));
} }
}
/** /**
* Check the key fields' validity and save if valid. * Check the key fields' validity and save if valid.
@@ -366,9 +369,18 @@ public class ApnEditor extends PreferenceActivity
return false; return false;
} }
// If it's a new APN and a name or apn haven't been entered, then erase the entry
if (force && mNewApn && name.length() < 1 && apn.length() < 1) {
getContentResolver().delete(mUri, null, null);
return false;
}
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put(Telephony.Carriers.NAME, name); // Add a dummy name "Untitled", if the user exits the screen without adding a name but
// entered other information worth keeping.
values.put(Telephony.Carriers.NAME,
name.length() < 1 ? getResources().getString(R.string.untitled_apn) : name);
values.put(Telephony.Carriers.APN, apn); values.put(Telephony.Carriers.APN, apn);
values.put(Telephony.Carriers.PROXY, checkNotSet(mProxy.getText())); values.put(Telephony.Carriers.PROXY, checkNotSet(mProxy.getText()));
values.put(Telephony.Carriers.PORT, checkNotSet(mPort.getText())); values.put(Telephony.Carriers.PORT, checkNotSet(mPort.getText()));