expo-paste-input 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/android/build/.transforms/04cfbef6d6438014a0f56f30321e9943/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/pasteinput/ExpoPasteInputView$1.dex +0 -0
  2. package/android/build/.transforms/04cfbef6d6438014a0f56f30321e9943/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/pasteinput/ExpoPasteInputView$ClipboardPayload.dex +0 -0
  3. package/android/build/.transforms/04cfbef6d6438014a0f56f30321e9943/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/pasteinput/ExpoPasteInputView$createActionModeCallback$1.dex +0 -0
  4. package/android/build/.transforms/04cfbef6d6438014a0f56f30321e9943/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/pasteinput/ExpoPasteInputView.dex +0 -0
  5. package/android/build/.transforms/61052c0b101cc72f1be04cd5637e14e3/transformed/classes/classes_dex/classes.dex +0 -0
  6. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  7. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/pasteinput/ExpoPasteInputView$1.class +0 -0
  8. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/pasteinput/ExpoPasteInputView$ClipboardPayload.class +0 -0
  9. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/pasteinput/ExpoPasteInputView$createActionModeCallback$1.class +0 -0
  10. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/pasteinput/ExpoPasteInputView.class +0 -0
  11. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  12. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  13. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  14. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  15. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  16. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  17. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  18. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  19. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  20. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  21. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  22. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  23. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  24. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  25. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  26. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  27. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  28. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +1 -1
  29. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  30. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  31. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  32. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  33. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  34. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  35. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  36. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  37. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  38. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  39. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  40. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  41. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  42. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  43. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  44. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  45. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  46. package/android/build/tmp/kotlin-classes/debug/expo/modules/pasteinput/ExpoPasteInputView$1.class +0 -0
  47. package/android/build/tmp/kotlin-classes/debug/expo/modules/pasteinput/ExpoPasteInputView$ClipboardPayload.class +0 -0
  48. package/android/build/tmp/kotlin-classes/debug/expo/modules/pasteinput/ExpoPasteInputView$createActionModeCallback$1.class +0 -0
  49. package/android/build/tmp/kotlin-classes/debug/expo/modules/pasteinput/ExpoPasteInputView.class +0 -0
  50. package/android/src/main/java/expo/modules/pasteinput/ExpoPasteInputView.kt +71 -0
  51. package/package.json +1 -1
@@ -11,6 +11,7 @@ import android.view.View
11
11
  import android.view.ViewGroup
12
12
  import android.view.ActionMode
13
13
  import android.widget.EditText
14
+ import kotlin.math.max
14
15
  import androidx.core.view.ContentInfoCompat
15
16
  import androidx.core.view.OnReceiveContentListener
16
17
  import androidx.core.view.ViewCompat
@@ -59,6 +60,76 @@ class ExpoPasteInputView(context: Context, appContext: AppContext) : ExpoView(co
59
60
  }
60
61
  })
61
62
  }
63
+
64
+ /**
65
+ * Ensure this wrapper behaves like a normal container in React Native layouts.
66
+ *
67
+ * Without an explicit measure/layout pass-through, some parent layouts can end up
68
+ * treating this view as having near-zero height, collapsing the wrapped EditText.
69
+ */
70
+ override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
71
+ var maxChildWidth = 0
72
+ var maxChildHeight = 0
73
+ var childState = 0
74
+
75
+ for (i in 0 until childCount) {
76
+ val child = getChildAt(i)
77
+ if (child.visibility == View.GONE) continue
78
+
79
+ val lp = child.layoutParams
80
+ if (lp is MarginLayoutParams) {
81
+ measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureSpec, 0)
82
+ maxChildWidth = max(maxChildWidth, child.measuredWidth + lp.leftMargin + lp.rightMargin)
83
+ maxChildHeight = max(maxChildHeight, child.measuredHeight + lp.topMargin + lp.bottomMargin)
84
+ } else {
85
+ measureChild(child, widthMeasureSpec, heightMeasureSpec)
86
+ maxChildWidth = max(maxChildWidth, child.measuredWidth)
87
+ maxChildHeight = max(maxChildHeight, child.measuredHeight)
88
+ }
89
+
90
+ childState = View.combineMeasuredStates(childState, child.measuredState)
91
+ }
92
+
93
+ maxChildWidth += paddingLeft + paddingRight
94
+ maxChildHeight += paddingTop + paddingBottom
95
+
96
+ val measuredWidth = View.resolveSizeAndState(maxChildWidth, widthMeasureSpec, childState)
97
+ val measuredHeight =
98
+ View.resolveSizeAndState(maxChildHeight, heightMeasureSpec, childState shl View.MEASURED_HEIGHT_STATE_SHIFT)
99
+
100
+ setMeasuredDimension(measuredWidth, measuredHeight)
101
+ }
102
+
103
+ override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
104
+ val parentLeft = paddingLeft
105
+ val parentTop = paddingTop
106
+ val parentRight = r - l - paddingRight
107
+
108
+ for (i in 0 until childCount) {
109
+ val child = getChildAt(i)
110
+ if (child.visibility == View.GONE) continue
111
+
112
+ val lp = child.layoutParams
113
+ val left: Int
114
+ val top: Int
115
+ val right: Int
116
+ val bottom: Int
117
+
118
+ if (lp is MarginLayoutParams) {
119
+ left = parentLeft + lp.leftMargin
120
+ top = parentTop + lp.topMargin
121
+ right = (parentRight - lp.rightMargin).coerceAtLeast(left)
122
+ bottom = (top + child.measuredHeight).coerceAtMost(b - t - paddingBottom - lp.bottomMargin)
123
+ } else {
124
+ left = parentLeft
125
+ top = parentTop
126
+ right = parentRight.coerceAtLeast(left)
127
+ bottom = (top + child.measuredHeight).coerceAtMost(b - t - paddingBottom)
128
+ }
129
+
130
+ child.layout(left, top, right, bottom)
131
+ }
132
+ }
62
133
 
63
134
  // Pass through all touch events to children - never intercept
64
135
  override fun onInterceptTouchEvent(ev: android.view.MotionEvent?): Boolean {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-paste-input",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "A wrapper around React Native TextInput to paste images and GIFs from the clipboard (iOS, Android, Web)",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",