diff --git a/android/app/build.gradle b/android/app/build.gradle
index be61a9d..5d92285 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -45,7 +45,7 @@ android {
         applicationId "eu.mhsl.marianum.mobile.client"
         // You can update the following values to match your application needs.
         // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
-        minSdkVersion 19
+        minSdkVersion 21
         targetSdkVersion flutter.targetSdkVersion
         versionCode flutterVersionCode.toInteger()
         versionName flutterVersionName
diff --git a/android/settings.gradle b/android/settings.gradle
index 1d6d19b..767b939 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -20,7 +20,7 @@ pluginManagement {
 plugins {
     id "dev.flutter.flutter-plugin-loader" version "1.0.0"
     id "com.android.application" version "7.3.0" apply false
-    id "org.jetbrains.kotlin.android" version "1.7.10" apply false
+    id "org.jetbrains.kotlin.android" version "1.8.10" apply false
 }
 
 include ":app"
diff --git a/lib/view/pages/talk/components/chatBubble.dart b/lib/view/pages/talk/components/chatBubble.dart
index 0c902db..0e80bf3 100644
--- a/lib/view/pages/talk/components/chatBubble.dart
+++ b/lib/view/pages/talk/components/chatBubble.dart
@@ -1,5 +1,6 @@
 import 'package:better_open_file/better_open_file.dart';
 import 'package:bubble/bubble.dart';
+import 'package:emoji_picker_flutter/emoji_picker_flutter.dart' as emojis;
 import 'package:flowder/flowder.dart';
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
@@ -49,6 +50,8 @@ class ChatBubble extends StatefulWidget {
 }
 
 class _ChatBubbleState extends State<ChatBubble> {
+  final TextEditingController _emojiInput = TextEditingController();
+
   BubbleStyle getSystemStyle() {
     return BubbleStyle(
       color: AppTheme.isDarkMode(context) ? const Color(0xff182229) : Colors.white,
@@ -184,7 +187,7 @@ class _ChatBubbleState extends State<ChatBubble> {
           ),
           onLongPress: () {
             showDialog(context: context, builder: (context) {
-              List<String> commonReactions = ['πŸ‘', 'πŸ‘Ž', 'πŸ˜†', '❀️', 'πŸ‘€', 'πŸ€”'];
+              List<String> commonReactions = ['πŸ‘', 'πŸ‘Ž', 'πŸ˜†', '❀️', '😎'];
               bool canReact = widget.bubbleData.messageType == GetRoomResponseObjectMessageType.comment;
               return SimpleDialog(
                 children: [
@@ -210,18 +213,102 @@ class _ChatBubbleState extends State<ChatBubble> {
                                     params: ReactMessageParams(e),
                                   ).run().then((value) => widget.refetch(renew: true));
                                 },
-                                child: Text(e)),
+                                child: Text(e),
+                              ),
+                            ),
+                            IconButton(
+                              onPressed: () {
+                                showDialog(context: context, builder: (context) {
+                                  return SimpleDialog(
+                                    contentPadding: const EdgeInsets.all(15),
+                                    titlePadding: const EdgeInsets.only(left: 6, top: 15),
+                                    title: Row(
+                                      mainAxisAlignment: MainAxisAlignment.start,
+                                      children: [
+                                        IconButton(
+                                          onPressed: () {
+                                            Navigator.of(context).pop();
+                                          },
+                                          icon: const Icon(Icons.arrow_back),
+                                        ),
+                                        const SizedBox(
+                                          width: 10,
+                                          height: 0,
+                                          child: null,
+                                        ),
+                                        const Text('Emoji auswΓ€hlen'),
+                                      ],
+                                    ),
+                                    children: [
+                                      Column(
+                                        children: [
+                                          emojis.EmojiPicker(
+                                            onBackspacePressed: () {
+                                              null;
+                                            },
+                                            config: emojis.Config(
+                                              height: 256,
+                                              swapCategoryAndBottomBar: true,
+                                              emojiViewConfig: emojis.EmojiViewConfig(
+                                                backgroundColor: Theme.of(context).canvasColor,
+                                                recentsLimit: 67,
+                                                emojiSizeMax: 20,
+                                              ),
+                                              bottomActionBarConfig: emojis.BottomActionBarConfig(
+                                                showBackspaceButton: false,
+                                                backgroundColor: Theme.of(context).hoverColor.withAlpha(50),
+                                                buttonColor: Theme.of(context).dividerColor.withAlpha(70),
+                                              ),
+                                              categoryViewConfig: emojis.CategoryViewConfig(
+                                                backgroundColor: Theme.of(context).hoverColor,
+                                                iconColorSelected: Theme.of(context).primaryColor,
+                                                indicatorColor: Theme.of(context).primaryColor,
+                                              ),
+                                              searchViewConfig: emojis.SearchViewConfig(
+                                                backgroundColor: Theme.of(context).dividerColor,
+                                                buttonColor: Theme.of(context).dividerColor,
+                                                hintText: 'Suchen',
+                                                buttonIconColor: Colors.white,
+                                              ),
+                                            ),
+                                            onEmojiSelected: (emojis.Category? category, emojis.Emoji emoji) {
+                                              Navigator.of(context).pop();
+                                              Navigator.of(context).pop();
+                                              ReactMessage(
+                                                chatToken: widget.chatData.token,
+                                                messageId: widget.bubbleData.id,
+                                                params: ReactMessageParams(emoji.emoji),
+                                              ).run().then((value) => widget.refetch(renew: true));
+                                            },
+                                          ),
+                                          const SizedBox(
+                                            width: 1,
+                                            height: 25,
+                                            child: null,
+                                          )
+                                        ],
+                                      ),
+                                    ],
+                                  );
+                                });
+                              },
+                              style: IconButton.styleFrom(
+                                padding: EdgeInsets.zero,
+                                tapTargetSize: MaterialTapTargetSize.shrinkWrap,
+                                minimumSize: const Size(40, 40),
+                              ),
+                              icon: const Icon(Icons.add_circle_outline_outlined),
                             ),
                           ],
                         ),
                         const Divider(),
                       ],
-                    )
+                    ),
                   ),
                   Visibility(
                     visible: canReact,
                     child: ListTile(
-                      leading: const Icon(Icons.add_reaction_outlined),
+                      leading: const Icon(Icons.emoji_emotions_outlined),
                       title: const Text('Reaktionen'),
                       onTap: () {
                         Navigator.of(context).push(MaterialPageRoute(builder: (context) => MessageReactions(
diff --git a/pubspec.yaml b/pubspec.yaml
index 2bce963..b800e58 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -97,6 +97,7 @@ dependencies:
   rrule: ^0.2.16
   time_range_picker: ^2.2.0
   in_app_review: ^2.0.8
+  emoji_picker_flutter: ^2.1.1
 
 dev_dependencies:
   flutter_test: