fix for emojis not showing correctly in input bar

pull/1077/head
Gabby Gurdin 2 years ago
parent 25d0fe2fb7
commit f6a8583246

@ -465,8 +465,9 @@ class InputBar extends StatelessWidget {
// show suggestions after 50ms idle time (default is 300) // show suggestions after 50ms idle time (default is 300)
// #Pangea // #Pangea
key: controller!.choreographer.inputLayerLinkAndKey.key, key: controller!.choreographer.inputLayerLinkAndKey.key,
// Pangea# // builder: (context, controller, focusNode) => TextField(
builder: (context, controller, focusNode) => TextField( builder: (context, _, focusNode) => TextField(
// Pangea#
controller: controller, controller: controller,
focusNode: focusNode, focusNode: focusNode,
contentInsertionConfiguration: ContentInsertionConfiguration( contentInsertionConfiguration: ContentInsertionConfiguration(
@ -494,9 +495,9 @@ class InputBar extends StatelessWidget {
}, },
// #Pangea // #Pangea
onTap: () { onTap: () {
this.controller!.onInputTap( controller!.onInputTap(
context, context,
fNode: focusNode, fNode: focusNode,
); );
}, },
// Pangea# // Pangea#

@ -1,11 +1,9 @@
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/widgets/mxc_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.dart'; import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/utils/url_launcher.dart';
import 'package:fluffychat/widgets/mxc_image.dart';
import '../../widgets/avatar.dart'; import '../../widgets/avatar.dart';
class StickerPickerDialog extends StatefulWidget { class StickerPickerDialog extends StatefulWidget {
@ -130,15 +128,17 @@ class StickerPickerDialogState extends State<StickerPickerDialog> {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Text(L10n.of(context)!.noEmotesFound), Text(L10n.of(context)!.noEmotesFound),
const SizedBox(height: 12), // #Pangea
OutlinedButton.icon( // const SizedBox(height: 12),
onPressed: () => UrlLauncher( // OutlinedButton.icon(
context, // onPressed: () => UrlLauncher(
'https://matrix.to/#/#fluffychat-stickers:janian.de', // context,
).launchUrl(), // 'https://matrix.to/#/#fluffychat-stickers:janian.de',
icon: const Icon(Icons.explore_outlined), // ).launchUrl(),
label: Text(L10n.of(context)!.discover), // icon: const Icon(Icons.explore_outlined),
), // label: Text(L10n.of(context)!.discover),
// ),
// Pangea#
], ],
), ),
), ),

@ -943,6 +943,7 @@ extension PangeaRoom on Room {
return (eventsDefaultPowerLevel ?? 0) >= return (eventsDefaultPowerLevel ?? 0) >=
ClassDefaultValues.powerLevelOfAdmin; ClassDefaultValues.powerLevelOfAdmin;
} }
if (spaceChildren.isEmpty) return false;
for (final child in spaceChildren) { for (final child in spaceChildren) {
if (child.roomId == null) continue; if (child.roomId == null) continue;
final Room? room = client.getRoomById(child.roomId!); final Room? room = client.getRoomById(child.roomId!);

@ -5,6 +5,7 @@ import 'package:fluffychat/pangea/models/pangea_token_model.dart';
import 'package:fluffychat/pangea/models/span_card_model.dart'; import 'package:fluffychat/pangea/models/span_card_model.dart';
import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart';
import 'package:fluffychat/pangea/utils/overlay.dart'; import 'package:fluffychat/pangea/utils/overlay.dart';
import 'package:fluffychat/pangea/widgets/igc/span_card.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -12,7 +13,6 @@ import 'package:matrix/matrix.dart';
import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:sentry_flutter/sentry_flutter.dart';
import '../constants/model_keys.dart'; import '../constants/model_keys.dart';
import '../widgets/igc/span_card.dart';
import 'language_detection_model.dart'; import 'language_detection_model.dart';
// import 'package:language_tool/language_tool.dart'; // import 'package:language_tool/language_tool.dart';
@ -285,10 +285,9 @@ class IGCTextData {
String matchText; String matchText;
try { try {
matchText = originalInput.substring( final int start = matchTokens[tokenIndex].token.text.offset;
matchTokens[tokenIndex].token.text.offset, final int end = matchTokens[nextTokenIndex - 1].token.end;
matchTokens[nextTokenIndex - 1].token.end, matchText = originalInput.characters.getRange(start, end).toString();
);
} catch (err) { } catch (err) {
return [ return [
TextSpan( TextSpan(
@ -318,12 +317,14 @@ class IGCTextData {
), ),
); );
final String beforeNextToken = originalInput.substring( final String beforeNextToken = originalInput.characters
matchTokens[nextTokenIndex - 1].token.end, .getRange(
nextTokenIndex < matchTokens.length matchTokens[nextTokenIndex - 1].token.end,
? matchTokens[nextTokenIndex].token.text.offset nextTokenIndex < matchTokens.length
: originalInput.length, ? matchTokens[nextTokenIndex].token.text.offset
); : originalInput.length,
)
.toString();
if (beforeNextToken.isNotEmpty) { if (beforeNextToken.isNotEmpty) {
items.add( items.add(

Loading…
Cancel
Save