[Catalyst] Provide GetValueResult.metadata whenever possible

Fix: 394975570
Flag: com.android.settingslib.flags.settings_catalyst
Test: atest
Change-Id: Ifbe92902e0337f00d6b2154c7bad9fda460a4a78
This commit is contained in:
Jacky Wang
2025-02-08 12:32:48 +08:00
parent 089e6378b5
commit 02c378757f
2 changed files with 39 additions and 34 deletions

View File

@@ -101,9 +101,7 @@ fun transformFrameworkGetValueRequest(
/** Translate Catalyst GET VALUE result to Framework GET VALUE result */
fun transformCatalystGetValueResponse(
context: Context,
request: GetValueRequest,
response: PreferenceGetterResponse
context: Context, request: GetValueRequest, response: PreferenceGetterResponse
): GetValueResult? {
val coord = PreferenceCoordinate(request.screenKey, request.preferenceKey)
val errorResponse = response.errors[coord]
@@ -118,37 +116,32 @@ fun transformCatalystGetValueResponse(
return GetValueResult.Builder(errorCode).build()
}
valueResponse != null -> {
val resultBuilder = GetValueResult.Builder(GetValueResult.RESULT_OK)
resultBuilder.setMetadata(valueResponse.toMetadata(context, coord.screenKey))
val prefValue = valueResponse.value
when (prefValue.valueCase.number) {
PreferenceValueProto.BOOLEAN_VALUE_FIELD_NUMBER -> {
resultBuilder.setValue(
SettingsPreferenceValue.Builder(
SettingsPreferenceValue.TYPE_BOOLEAN
).setBooleanValue(prefValue.booleanValue)
.build()
)
return resultBuilder.build()
}
PreferenceValueProto.INT_VALUE_FIELD_NUMBER -> {
resultBuilder.setValue(
SettingsPreferenceValue.Builder(
SettingsPreferenceValue.TYPE_INT
).setIntValue(prefValue.intValue)
.build()
)
return resultBuilder.build()
}
}
return GetValueResult.Builder(
GetValueResult.RESULT_UNSUPPORTED
).build()
val metadata = valueResponse.toMetadata(context, coord.screenKey)
val value = valueResponse.value.toSettingsPreferenceValue()
return when (value) {
null -> GetValueResult.Builder(GetValueResult.RESULT_UNSUPPORTED)
else -> GetValueResult.Builder(GetValueResult.RESULT_OK).setValue(value)
}.setMetadata(metadata).build()
}
else -> return null
}
}
private fun PreferenceValueProto.toSettingsPreferenceValue(): SettingsPreferenceValue? =
when (valueCase.number) {
PreferenceValueProto.BOOLEAN_VALUE_FIELD_NUMBER -> {
SettingsPreferenceValue.Builder(
SettingsPreferenceValue.TYPE_BOOLEAN
).setBooleanValue(booleanValue)
}
PreferenceValueProto.INT_VALUE_FIELD_NUMBER -> {
SettingsPreferenceValue.Builder(
SettingsPreferenceValue.TYPE_INT
).setIntValue(intValue)
}
else -> null
}?.build()
/** Translate Framework SET VALUE request to Catalyst SET VALUE request */
fun transformFrameworkSetValueRequest(request: SetValueRequest): PreferenceSetterRequest? {
val valueProto = when (request.preferenceValue.type) {