Merge "apn insert exception for duplicate apn entry" into main

This commit is contained in:
Charlotte Lu
2024-01-23 07:20:07 +00:00
committed by Android (Google) Code Review
3 changed files with 15 additions and 14 deletions

View File

@@ -145,12 +145,7 @@ fun ApnPage(apnDataInit: ApnData, apnDataCur: MutableState<ApnData>, uriInit: Ur
) {
Column {
if (apnData.validEnabled) {
apnData = apnData.copy(
networkType = ApnNetworkTypes.getNetworkType(
networkTypeSelectedOptionsState
)
)
valid = validateApnData(uriInit, apnData, context)
valid = validateApnData(apnData, context)
valid?.let {
Text(
text = it,

View File

@@ -20,7 +20,6 @@ import android.content.ContentValues
import android.content.Context
import android.net.Uri
import android.provider.Telephony
import android.telephony.TelephonyManager
import android.util.Log
import com.android.settings.R
import com.android.settingslib.utils.ThreadUtils
@@ -200,14 +199,21 @@ fun updateApnDataToDatabase(
}
}
fun isItemExist(uri: Uri, apnData: ApnData, context: Context): String? {
val contentValueMap = apnData.getContentValueMap(context)
contentValueMap.remove(Telephony.Carriers.CARRIER_ENABLED)
fun isItemExist(apnData: ApnData, context: Context): String? {
var contentValueMap = apnData.getContentValueMap(context)
val removedList = arrayListOf(
Telephony.Carriers.NAME, Telephony.Carriers.USER,
Telephony.Carriers.SERVER, Telephony.Carriers.PASSWORD, Telephony.Carriers.AUTH_TYPE,
Telephony.Carriers.TYPE, Telephony.Carriers.NETWORK_TYPE_BITMASK,
Telephony.Carriers.CARRIER_ENABLED
)
contentValueMap =
contentValueMap.filterNot { removedList.contains(it.key) } as MutableMap<String, Any>
val list = contentValueMap.entries.toList()
val selection = list.joinToString(" AND ") { "${it.key} = ?" }
val selectionArgs: Array<String> = list.map { it.value.toString() }.toTypedArray()
context.contentResolver.query(
uri,
Telephony.Carriers.CONTENT_URI,
sProjection,
selection /* selection */,
selectionArgs /* selectionArgs */,

View File

@@ -173,7 +173,7 @@ fun validateAndSaveApnData(
context: Context,
uriInit: Uri
): String? {
val errorMsg = validateApnData(uriInit, newApnData, context)
val errorMsg = validateApnData(newApnData, context)
if (errorMsg != null) {
return errorMsg
}
@@ -194,7 +194,7 @@ fun validateAndSaveApnData(
*
* @return An error message if the apn data is invalid, otherwise return null.
*/
fun validateApnData(uri: Uri, apnData: ApnData, context: Context): String? {
fun validateApnData(apnData: ApnData, context: Context): String? {
var errorMsg: String?
val name = apnData.name
val apn = apnData.apn
@@ -206,7 +206,7 @@ fun validateApnData(uri: Uri, apnData: ApnData, context: Context): String? {
validateMMSC(true, apnData.mmsc, context)
}
if (errorMsg == null) {
errorMsg = isItemExist(uri, apnData, context)
errorMsg = isItemExist(apnData, context)
}
if (errorMsg == null) {
errorMsg = validateAPNType(