about summary refs log tree commit diff
path: root/modules/expo-emoji-picker/android/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'modules/expo-emoji-picker/android/src/main')
-rw-r--r--modules/expo-emoji-picker/android/src/main/AndroidManifest.xml2
-rw-r--r--modules/expo-emoji-picker/android/src/main/java/expo/community/modules/emojipicker/EmojiPickerModule.kt15
-rw-r--r--modules/expo-emoji-picker/android/src/main/java/expo/community/modules/emojipicker/EmojiPickerModuleView.kt40
3 files changed, 57 insertions, 0 deletions
diff --git a/modules/expo-emoji-picker/android/src/main/AndroidManifest.xml b/modules/expo-emoji-picker/android/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..bdae66c8f
--- /dev/null
+++ b/modules/expo-emoji-picker/android/src/main/AndroidManifest.xml
@@ -0,0 +1,2 @@
+<manifest>
+</manifest>
diff --git a/modules/expo-emoji-picker/android/src/main/java/expo/community/modules/emojipicker/EmojiPickerModule.kt b/modules/expo-emoji-picker/android/src/main/java/expo/community/modules/emojipicker/EmojiPickerModule.kt
new file mode 100644
index 000000000..ebdc7a35e
--- /dev/null
+++ b/modules/expo-emoji-picker/android/src/main/java/expo/community/modules/emojipicker/EmojiPickerModule.kt
@@ -0,0 +1,15 @@
+package expo.community.modules.emojipicker
+
+import expo.modules.kotlin.modules.Module
+import expo.modules.kotlin.modules.ModuleDefinition
+import java.net.URL
+
+class EmojiPickerModule : Module() {
+    override fun definition() = ModuleDefinition {
+        Name("EmojiPicker")
+
+        View(EmojiPickerModuleView::class) {
+            Events("onEmojiSelected")
+        }
+    }
+}
diff --git a/modules/expo-emoji-picker/android/src/main/java/expo/community/modules/emojipicker/EmojiPickerModuleView.kt b/modules/expo-emoji-picker/android/src/main/java/expo/community/modules/emojipicker/EmojiPickerModuleView.kt
new file mode 100644
index 000000000..a6e5a066f
--- /dev/null
+++ b/modules/expo-emoji-picker/android/src/main/java/expo/community/modules/emojipicker/EmojiPickerModuleView.kt
@@ -0,0 +1,40 @@
+package expo.community.modules.emojipicker
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.content.res.Configuration
+import androidx.emoji2.emojipicker.EmojiPickerView
+import expo.modules.kotlin.AppContext
+import expo.modules.kotlin.viewevent.EventDispatcher
+import expo.modules.kotlin.views.ExpoView
+
+
+@SuppressLint("ViewConstructor")
+class EmojiPickerModuleView(context: Context, appContext: AppContext) :
+    ExpoView(context, appContext) {
+    private var emojiView: EmojiPickerView = EmojiPickerView(context)
+    private val onEmojiSelected by EventDispatcher()
+
+    init {
+        setupView()
+    }
+
+    private fun setupView() {
+        addView(
+            emojiView, LayoutParams(
+                LayoutParams.MATCH_PARENT,
+                LayoutParams.MATCH_PARENT
+            )
+        )
+
+        emojiView.setOnEmojiPickedListener { emoji ->
+            onEmojiSelected(mapOf("emoji" to emoji.emoji))
+        }
+    }
+
+    override fun onConfigurationChanged(newConfig: Configuration?) {
+        super.onConfigurationChanged(newConfig)
+        removeView(emojiView)
+        setupView()
+    }
+}