[go: nahoru, domu]

[Text Selection] Cancel Selection by Press.

Bug: 143796457
Test: ./gradlew test

Change-Id: Idac24b373411ee7f1ddbb3ed35d1a792f947a3f9
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/text/SelectionManager.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/text/SelectionManager.kt
index d2a0d4b..243df45 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/text/SelectionManager.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/text/SelectionManager.kt
@@ -102,6 +102,14 @@
         }
     }
 
+    // This is for PressGestureDetector to cancel the selection.
+    fun onRelease() {
+        // Call mergeSelections with an out of boundary input to inform all text widgets to
+        // cancel their individual selection.
+        mergeSelections(PxPosition(-1.px, -1.px), PxPosition(-1.px, -1.px))
+        onSelectionChange(null)
+    }
+
     val longPressDragObserver = object : LongPressDragObserver {
         override fun onLongPress(pxPosition: PxPosition) {
             if (draggingHandle) return