Fix for 1974140. Delete entry if not valid on hitting home.
If user doesn't enter an APN or name, then delete the entry on hitting home. And if user has enough information but doesn't enter a name, then set the name to "Untitled" to avoid blank APNs in the list.
This commit is contained in:
@@ -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" />
|
||||||
|
@@ -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>
|
||||||
|
@@ -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,8 +330,9 @@ 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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -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()));
|
||||||
|
Reference in New Issue
Block a user