From 0a896ff0f61b98d913b044d396db44892f4e5110 Mon Sep 17 00:00:00 2001 From: Charlotte Lu Date: Tue, 5 Dec 2023 18:38:53 +0800 Subject: [PATCH] =?UTF-8?q?Telephony=20Issue:=20Apn=20config=20mmsc=20shou?= =?UTF-8?q?ld=20start=20with=20http=20but=20is=20=E5=95=8A.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test: Visual Test Fix: 313630772 Change-Id: I46dfabde31f0df7b4b0fd473aff24f9707987114 --- res/values/strings.xml | 2 ++ .../settings/network/apn/ApnEditPageProvider.kt | 1 + src/com/android/settings/network/apn/ApnStatus.kt | 12 +++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 71a7b30e451..6a7827502c5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3267,6 +3267,8 @@ MNC field must be 2 or 3 digits. Carrier does not allow adding APNs of type %s. + + MMSC field must be valid. Restoring default APN settings. diff --git a/src/com/android/settings/network/apn/ApnEditPageProvider.kt b/src/com/android/settings/network/apn/ApnEditPageProvider.kt index 5026958cba1..bb19c597d90 100644 --- a/src/com/android/settings/network/apn/ApnEditPageProvider.kt +++ b/src/com/android/settings/network/apn/ApnEditPageProvider.kt @@ -150,6 +150,7 @@ fun ApnPage(apnDataInit: ApnData, apnDataCur: MutableState, uriInit: Ur SettingsOutlinedTextField( value = apnData.mmsc, label = stringResource(R.string.apn_mmsc), + errorMessage = validateMMSC(apnData.mmsc, context), enabled = apnData.mmscEnabled ) { apnData = apnData.copy(mmsc = it) } SettingsOutlinedTextField( diff --git a/src/com/android/settings/network/apn/ApnStatus.kt b/src/com/android/settings/network/apn/ApnStatus.kt index d81a8e3e956..668ea9b112d 100644 --- a/src/com/android/settings/network/apn/ApnStatus.kt +++ b/src/com/android/settings/network/apn/ApnStatus.kt @@ -239,7 +239,12 @@ fun validateAndSaveApnData( if (apnData.customizedConfig.readOnlyApn) { return true } - val errorMsg = validateApnData(apnData, context) + var errorMsg = validateApnData(apnData, context) + if (errorMsg != null) { + //TODO: showError(this) + return false + } + errorMsg = validateMMSC(apnData.mmsc, context) if (errorMsg != null) { //TODO: showError(this) return false @@ -529,4 +534,9 @@ private fun getEditableApnType(apnData: ApnData): String { fun deleteApn(uri: Uri, context: Context) { val contentResolver = context.contentResolver contentResolver.delete(uri, null, null) +} + +fun validateMMSC(mmsc: String, context: Context): String? { + return if (mmsc.matches(Regex("^https?:\\/\\/.+"))) null + else context.resources.getString(R.string.error_mmsc_valid) } \ No newline at end of file