added option to choose more emoji reactions #55
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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,
|
||||
Pupsi marked this conversation as resolved
Outdated
|
||||
child: null,
|
||||
),
|
||||
const Text('Emoji auswählen'),
|
||||
],
|
||||
Pupsi marked this conversation as resolved
MineTec
commented
wofür existiert diese column? wofür existiert diese column?
|
||||
),
|
||||
children: [
|
||||
Column(
|
||||
children: [
|
||||
emojis.EmojiPicker(
|
||||
onBackspacePressed: () {
|
||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
ist onBackspacePressed nullable? Falls ja den parameter nicht angeben. Ansonsten das null statement weg und die curly braces einfach leer lassen. In diesem Fall dürfen die curlybraces auch in der selben Zeile stehen "{ }" ist onBackspacePressed nullable? Falls ja den parameter nicht angeben.
Ansonsten das null statement weg und die curly braces einfach leer lassen. In diesem Fall dürfen die curlybraces auch in der selben Zeile stehen "{ }"
|
||||
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,
|
||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
width ist nullable, daher brauchst du keinen platzhalter wie 1 angeben. Parameter die Null sind können ganz weggelassen werden. width ist nullable, daher brauchst du keinen platzhalter wie 1 angeben. Parameter die Null sind können ganz weggelassen werden.
|
||||
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(
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user
hight und child müssen nicht angegeben werden