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

Commit 4b751f13 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "use SharedPreferences to save verify results"

parents a2f9e65a 4978d1ad
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -67,6 +67,10 @@ class DomainVerificationReceiverV1 : BaseDomainVerificationReceiver() {
            }
        }

        //clear sp before enqueue unique work since policy is REPLACE
        val deContext = context.createDeviceProtectedStorageContext()
        val editor = deContext?.getSharedPreferences(packageName, Context.MODE_PRIVATE)?.edit()
        editor?.clear()?.apply()
        WorkManager.getInstance(context)
            .beginUniqueWork(
                "$PACKAGE_WORK_PREFIX_V1$packageName",
+26 −5
Original line number Diff line number Diff line
@@ -41,10 +41,8 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :
                    Data.Builder()
                        .putInt(VERIFICATION_ID_KEY, verificationId)
                        .apply {
                            if (DEBUG) {
                            putString(PACKAGE_NAME_KEY, packageName)
                        }
                        }
                        .build()
                )
                .build()
@@ -52,6 +50,18 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :

    override suspend fun doWork() = coroutineScope {
        if (!AndroidUtils.isReceiverV1Enabled(appContext)) {
            //clear sp and commit here
            val inputData = params.inputData
            val packageName = inputData.getString(PACKAGE_NAME_KEY)
            val deContext = appContext.createDeviceProtectedStorageContext()
            val sp = deContext?.getSharedPreferences(packageName, Context.MODE_PRIVATE)
            val editor = sp?.edit()
            editor?.clear()?.commit()
            //delete sp file
            val retOfDel = deContext?.deleteSharedPreferences(packageName)
            if (DEBUG) {
                Log.d(TAG, "delete sp for $packageName return $retOfDel")
            }
            return@coroutineScope Result.success()
        }

@@ -59,7 +69,10 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :
        val verificationId = inputData.getInt(VERIFICATION_ID_KEY, -1)
        val successfulHosts = mutableListOf<String>()
        val failedHosts = mutableListOf<String>()
        inputData.keyValueMap.entries.forEach { (key, _) ->
        val packageName = inputData.getString(PACKAGE_NAME_KEY)
        val deContext = appContext.createDeviceProtectedStorageContext()
        val sp = deContext?.getSharedPreferences(packageName, Context.MODE_PRIVATE)
        sp?.all?.entries?.forEach { (key, _) ->
            when {
                key.startsWith(SingleV1RequestWorker.HOST_SUCCESS_PREFIX) ->
                    successfulHosts += key.removePrefix(SingleV1RequestWorker.HOST_SUCCESS_PREFIX)
@@ -69,7 +82,6 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :
        }

        if (DEBUG) {
            val packageName = inputData.getString(PACKAGE_NAME_KEY)
            Log.d(
                TAG, "Domain verification v1 request for $packageName: " +
                        "success = $successfulHosts, failed = $failedHosts"
@@ -84,6 +96,15 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :

        appContext.packageManager.verifyIntentFilter(verificationId, resultCode, failedHosts)

        //clear sp and commit here
        val editor = sp?.edit()
        editor?.clear()?.commit()
        //delete sp file
        val retOfDel = deContext?.deleteSharedPreferences(packageName)
        if (DEBUG) {
            Log.d(TAG, "delete sp for $packageName return $retOfDel")
        }

        Result.success()
    }
}
+12 −10
Original line number Diff line number Diff line
@@ -71,16 +71,18 @@ class SingleV1RequestWorker(appContext: Context, params: WorkerParameters) :

        // Coerce failure results into success so that final collection task gets a chance to run
        when (result) {
            is Result.Success -> Result.success(
                Data.Builder()
                    .putInt("$HOST_SUCCESS_PREFIX$host", status.value)
                    .build()
            )
            is Result.Failure -> Result.success(
                Data.Builder()
                    .putInt("$HOST_FAILURE_PREFIX$host", status.value)
                    .build()
            )
            is Result.Success -> {
                val deContext = appContext.createDeviceProtectedStorageContext()
                val sp = deContext?.getSharedPreferences(packageName, Context.MODE_PRIVATE)
                sp?.edit()?.putInt("$HOST_SUCCESS_PREFIX$host", status.value)?.apply()
                Result.success()
            }
            is Result.Failure -> {
                val deContext = appContext.createDeviceProtectedStorageContext()
                val sp = deContext?.getSharedPreferences(packageName, Context.MODE_PRIVATE)
                sp?.edit()?.putInt("$HOST_FAILURE_PREFIX$host", status.value)?.apply()
                Result.success()
            }
            else -> result
        }
    }