summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2022-04-11 20:12:29 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-04-11 20:12:29 +0000
commit1da0782b9a4a1b5101b50150f5ce04ec5ad871f0 (patch)
treeac208b1a13ddbef366db57ff09ddda472dc95faf
parenta0c6fe477be5debb71126aab86b6ed7b0d5e9293 (diff)
parent7c6c22dbc788e72719950d51db255cfad6b13913 (diff)
Merge "Catch if an invalid constant is sent" into tm-dev am: 8c3195cb27 am: 7c6c22dbc7
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17667709 Change-Id: Ie843a5395d1cac0d3ca942dfe0f1fde1dcec327d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ChipStateReceiver.kt18
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt14
2 files changed, 26 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ChipStateReceiver.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ChipStateReceiver.kt
index a0e803f6bb8d..40ea1e6e87df 100644
--- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ChipStateReceiver.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ChipStateReceiver.kt
@@ -17,6 +17,7 @@
package com.android.systemui.media.taptotransfer.receiver
import android.app.StatusBarManager
+import android.util.Log
import com.android.internal.logging.UiEventLogger
/**
@@ -25,15 +26,15 @@ import com.android.internal.logging.UiEventLogger
*/
enum class ChipStateReceiver(
@StatusBarManager.MediaTransferSenderState val stateInt: Int,
- val uiEvent: UiEventLogger.UiEventEnum,
+ val uiEvent: UiEventLogger.UiEventEnum
) {
CLOSE_TO_SENDER(
StatusBarManager.MEDIA_TRANSFER_RECEIVER_STATE_CLOSE_TO_SENDER,
- MediaTttReceiverUiEvents.MEDIA_TTT_RECEIVER_CLOSE_TO_SENDER,
+ MediaTttReceiverUiEvents.MEDIA_TTT_RECEIVER_CLOSE_TO_SENDER
),
FAR_FROM_SENDER(
StatusBarManager.MEDIA_TRANSFER_RECEIVER_STATE_FAR_FROM_SENDER,
- MediaTttReceiverUiEvents.MEDIA_TTT_RECEIVER_FAR_FROM_SENDER,
+ MediaTttReceiverUiEvents.MEDIA_TTT_RECEIVER_FAR_FROM_SENDER
);
companion object {
@@ -43,8 +44,13 @@ enum class ChipStateReceiver(
*/
fun getReceiverStateFromId(
@StatusBarManager.MediaTransferReceiverState displayState: Int
- ) : ChipStateReceiver = values().first { it.stateInt == displayState }
-
+ ): ChipStateReceiver? =
+ try {
+ values().first { it.stateInt == displayState }
+ } catch (e: NoSuchElementException) {
+ Log.e(TAG, "Could not find requested state $displayState", e)
+ null
+ }
/**
* Returns the state int from [StatusBarManager] associated with the given sender state
@@ -56,3 +62,5 @@ enum class ChipStateReceiver(
fun getReceiverStateIdFromName(name: String): Int = valueOf(name).stateInt
}
}
+
+private const val TAG = "ChipStateReceiver"
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt
index 067607f9b8ae..9edc4f4c71c3 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt
@@ -102,7 +102,7 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
TapGestureDetector(context),
powerManager,
Handler.getMain(),
- receiverUiEventLogger,
+ receiverUiEventLogger
)
val callbackCaptor = ArgumentCaptor.forClass(CommandQueue.Callbacks::class.java)
@@ -206,6 +206,18 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
assertThat(chipView.getAppIconView().measuredHeight).isEqualTo(expectedSize)
}
+ @Test
+ fun commandQueueCallback_invalidStateParam_noChipShown() {
+ commandQueueCallback.updateMediaTapToTransferReceiverDisplay(
+ StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_SUCCEEDED,
+ routeInfo,
+ null,
+ APP_NAME
+ )
+
+ verify(windowManager, never()).addView(any(), any())
+ }
+
private fun getChipView(): ViewGroup {
val viewCaptor = ArgumentCaptor.forClass(View::class.java)
verify(windowManager).addView(viewCaptor.capture(), any())