[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:
@@ -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) {
|
||||
|
||||
@@ -60,9 +60,10 @@ class PreferenceServiceRequestTransformerTest {
|
||||
|
||||
@get:Rule val checkFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
|
||||
|
||||
private val context: Context = ApplicationProvider.getApplicationContext()
|
||||
|
||||
@Test
|
||||
fun transformCatalystGetMetadataResponse_emptyGraph_returnsFrameworkResponseWithError() {
|
||||
val context: Context = ApplicationProvider.getApplicationContext()
|
||||
val graphProto = PreferenceGraphProto.newBuilder().build()
|
||||
val fResult = transformCatalystGetMetadataResponse(context, graphProto)
|
||||
with(fResult) {
|
||||
@@ -73,7 +74,6 @@ class PreferenceServiceRequestTransformerTest {
|
||||
|
||||
@Test
|
||||
fun transformCatalystGetMetadataResponse_populatedGraph_returnsFrameworkResponseWithSuccess() {
|
||||
val context: Context = ApplicationProvider.getApplicationContext()
|
||||
val screen = preferenceScreenProto {
|
||||
root = preferenceGroupProto {
|
||||
addAllPreferences(
|
||||
@@ -143,7 +143,6 @@ class PreferenceServiceRequestTransformerTest {
|
||||
|
||||
@Test
|
||||
fun transformCatalystGetValueResponse_success_returnsValidFrameworkResponse() {
|
||||
val context: Context = ApplicationProvider.getApplicationContext()
|
||||
val fRequest = GetValueRequest.Builder("screen", "key").build()
|
||||
val cResult =
|
||||
PreferenceGetterResponse(
|
||||
@@ -202,9 +201,23 @@ class PreferenceServiceRequestTransformerTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun transformCatalystGetValueResponse_success_noValue() {
|
||||
val fRequest = GetValueRequest.Builder("screen", "key").build()
|
||||
val cResult = PreferenceGetterResponse(
|
||||
emptyMap(),
|
||||
mapOf(PreferenceCoordinate(
|
||||
fRequest.screenKey,
|
||||
fRequest.preferenceKey
|
||||
) to preferenceProto { key = "key" }),
|
||||
)
|
||||
val fResult = transformCatalystGetValueResponse(context, fRequest, cResult)!!
|
||||
assertThat(fResult.resultCode).isEqualTo(GetValueResult.RESULT_UNSUPPORTED)
|
||||
assertThat(fResult.metadata).isNotNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun transformCatalystGetValueResponse_failure_returnsValidFrameworkResponse() {
|
||||
val context: Context = ApplicationProvider.getApplicationContext()
|
||||
val fRequest = GetValueRequest.Builder("screen", "key").build()
|
||||
val cResult =
|
||||
PreferenceGetterResponse(
|
||||
@@ -224,7 +237,6 @@ class PreferenceServiceRequestTransformerTest {
|
||||
|
||||
@Test
|
||||
fun transformCatalystGetValueResponse_invalidResponse_returnsNull() {
|
||||
val context: Context = ApplicationProvider.getApplicationContext()
|
||||
val fRequest = GetValueRequest.Builder("screen", "key").build()
|
||||
val cResult = PreferenceGetterResponse(emptyMap(), emptyMap())
|
||||
val fResult = transformCatalystGetValueResponse(context, fRequest, cResult)
|
||||
|
||||
Reference in New Issue
Block a user