diff options
author | Amith Yamasani <yamasani@google.com> | 2009-10-29 19:27:12 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-10-29 19:27:12 -0700 |
commit | a8a974bd171ccbc3b35b18c3e73a23d22834d05e (patch) | |
tree | 66b4302a8103e0ba9d25addbb51df78a60633793 | |
parent | 7bb19a892cdf94d017a2046b374f977d47d20597 (diff) | |
parent | dd45a47bde9cdb9c27cb3ac3529a34f9789782ec (diff) | |
download | packages_apps_settings-a8a974bd171ccbc3b35b18c3e73a23d22834d05e.zip packages_apps_settings-a8a974bd171ccbc3b35b18c3e73a23d22834d05e.tar.gz packages_apps_settings-a8a974bd171ccbc3b35b18c3e73a23d22834d05e.tar.bz2 |
am dd45a47b: Merge change I4d31288f into eclair
Merge commit 'dd45a47bde9cdb9c27cb3ac3529a34f9789782ec' into eclair-mr2
* commit 'dd45a47bde9cdb9c27cb3ac3529a34f9789782ec':
Fix for 1974140. Delete entry if not valid on hitting home.
-rw-r--r-- | AndroidManifest.xml | 2 | ||||
-rw-r--r-- | res/values/strings.xml | 3 | ||||
-rw-r--r-- | src/com/android/settings/ApnEditor.java | 24 |
3 files changed, 22 insertions, 7 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index a77728c..c22d115 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -105,7 +105,7 @@ <activity android:name="ApnSettings" android:label="@string/apn_settings" android:configChanges="orientation|keyboardHidden" - android:launchMode="singleInstance" + android:launchMode="singleTask" > <intent-filter> <action android:name="android.intent.action.MAIN" /> diff --git a/res/values/strings.xml b/res/values/strings.xml index 9475346..08d6e1c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2129,4 +2129,7 @@ found in the list of installed applications.</string> <string name="backup_erase_dialog_title">Settings backup</string> <!-- 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> + + <!-- Name to assign to a Network Access Point that was saved without a name --> + <string name="untitled_apn">Untitled</string> </resources> diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java index 0e7ab5e..62856d1 100644 --- a/src/com/android/settings/ApnEditor.java +++ b/src/com/android/settings/ApnEditor.java @@ -150,7 +150,7 @@ public class ApnEditor extends PreferenceActivity if (action.equals(Intent.ACTION_EDIT)) { mUri = intent.getData(); } else if (action.equals(Intent.ACTION_INSERT)) { - if (mFirstTime) { + if (mFirstTime || icicle.getInt(SAVED_POS) == 0) { mUri = getContentResolver().insert(intent.getData(), new ContentValues()); } else { mUri = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, @@ -185,12 +185,14 @@ public class ApnEditor extends PreferenceActivity @Override public void onResume() { super.onResume(); - getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); + getPreferenceScreen().getSharedPreferences() + .registerOnSharedPreferenceChangeListener(this); } @Override public void onPause() { - getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); + getPreferenceScreen().getSharedPreferences() + .unregisterOnSharedPreferenceChangeListener(this); super.onPause(); } @@ -328,8 +330,9 @@ public class ApnEditor extends PreferenceActivity @Override protected void onSaveInstanceState(Bundle icicle) { super.onSaveInstanceState(icicle); - validateAndSave(true); - icicle.putInt(SAVED_POS, mCursor.getInt(ID_INDEX)); + if (validateAndSave(true)) { + icicle.putInt(SAVED_POS, mCursor.getInt(ID_INDEX)); + } } /** @@ -366,9 +369,18 @@ public class ApnEditor extends PreferenceActivity 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(); - 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.PROXY, checkNotSet(mProxy.getText())); values.put(Telephony.Carriers.PORT, checkNotSet(mPort.getText())); |