Merge "use SharedPreferences to save verify results" am: 4b751f130e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2110186 Change-Id: I41fbad27095af9621f154ec8f813fac12f8dd8bf Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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)
|
WorkManager.getInstance(context)
|
||||||
.beginUniqueWork(
|
.beginUniqueWork(
|
||||||
"$PACKAGE_WORK_PREFIX_V1$packageName",
|
"$PACKAGE_WORK_PREFIX_V1$packageName",
|
||||||
|
|||||||
@@ -41,9 +41,7 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :
|
|||||||
Data.Builder()
|
Data.Builder()
|
||||||
.putInt(VERIFICATION_ID_KEY, verificationId)
|
.putInt(VERIFICATION_ID_KEY, verificationId)
|
||||||
.apply {
|
.apply {
|
||||||
if (DEBUG) {
|
putString(PACKAGE_NAME_KEY, packageName)
|
||||||
putString(PACKAGE_NAME_KEY, packageName)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.build()
|
.build()
|
||||||
)
|
)
|
||||||
@@ -52,6 +50,18 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :
|
|||||||
|
|
||||||
override suspend fun doWork() = coroutineScope {
|
override suspend fun doWork() = coroutineScope {
|
||||||
if (!AndroidUtils.isReceiverV1Enabled(appContext)) {
|
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()
|
return@coroutineScope Result.success()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,7 +69,10 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :
|
|||||||
val verificationId = inputData.getInt(VERIFICATION_ID_KEY, -1)
|
val verificationId = inputData.getInt(VERIFICATION_ID_KEY, -1)
|
||||||
val successfulHosts = mutableListOf<String>()
|
val successfulHosts = mutableListOf<String>()
|
||||||
val failedHosts = 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 {
|
when {
|
||||||
key.startsWith(SingleV1RequestWorker.HOST_SUCCESS_PREFIX) ->
|
key.startsWith(SingleV1RequestWorker.HOST_SUCCESS_PREFIX) ->
|
||||||
successfulHosts += key.removePrefix(SingleV1RequestWorker.HOST_SUCCESS_PREFIX)
|
successfulHosts += key.removePrefix(SingleV1RequestWorker.HOST_SUCCESS_PREFIX)
|
||||||
@@ -69,7 +82,6 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
val packageName = inputData.getString(PACKAGE_NAME_KEY)
|
|
||||||
Log.d(
|
Log.d(
|
||||||
TAG, "Domain verification v1 request for $packageName: " +
|
TAG, "Domain verification v1 request for $packageName: " +
|
||||||
"success = $successfulHosts, failed = $failedHosts"
|
"success = $successfulHosts, failed = $failedHosts"
|
||||||
@@ -84,6 +96,15 @@ class CollectV1Worker(appContext: Context, params: WorkerParameters) :
|
|||||||
|
|
||||||
appContext.packageManager.verifyIntentFilter(verificationId, resultCode, failedHosts)
|
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()
|
Result.success()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
// Coerce failure results into success so that final collection task gets a chance to run
|
||||||
when (result) {
|
when (result) {
|
||||||
is Result.Success -> Result.success(
|
is Result.Success -> {
|
||||||
Data.Builder()
|
val deContext = appContext.createDeviceProtectedStorageContext()
|
||||||
.putInt("$HOST_SUCCESS_PREFIX$host", status.value)
|
val sp = deContext?.getSharedPreferences(packageName, Context.MODE_PRIVATE)
|
||||||
.build()
|
sp?.edit()?.putInt("$HOST_SUCCESS_PREFIX$host", status.value)?.apply()
|
||||||
)
|
Result.success()
|
||||||
is Result.Failure -> Result.success(
|
}
|
||||||
Data.Builder()
|
is Result.Failure -> {
|
||||||
.putInt("$HOST_FAILURE_PREFIX$host", status.value)
|
val deContext = appContext.createDeviceProtectedStorageContext()
|
||||||
.build()
|
val sp = deContext?.getSharedPreferences(packageName, Context.MODE_PRIVATE)
|
||||||
)
|
sp?.edit()?.putInt("$HOST_FAILURE_PREFIX$host", status.value)?.apply()
|
||||||
|
Result.success()
|
||||||
|
}
|
||||||
else -> result
|
else -> result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user