Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ccac2b9a authored by Charlotte Lu's avatar Charlotte Lu Committed by Android (Google) Code Review
Browse files

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

parents 3d342502 1c9921a2
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -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,
+11 −5
Original line number Diff line number Diff line
@@ -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 */,
+3 −3
Original line number Diff line number Diff line
@@ -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(