diff --git a/lib/ui/common_widgets.dart b/lib/ui/common_widgets.dart index 7dd83db..dd5d90c 100644 --- a/lib/ui/common_widgets.dart +++ b/lib/ui/common_widgets.dart @@ -15,6 +15,8 @@ import 'package:provider/provider.dart'; import 'package:sodium_libs/sodium_libs_sumo.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:video_player/video_player.dart'; +import 'package:flutter_bidi_text/flutter_bidi_text.dart'; + import '../utils/common.dart'; import '../utils/enums.dart'; @@ -674,11 +676,11 @@ class _WidgetTextWithLinksState extends State { @override Widget build(BuildContext context) { return Consumer(builder: (context, controller, child) { - return RichText( + return BidiRichText( text: TextSpan( children: _buildTextWithLinks(context, controller, widget.text), ), - textAlign: widget.align == null ? TextAlign.left : widget.align!, + textAlign: widget.align == null ? TextAlign.start : widget.align!, ); }); } diff --git a/lib/ui/pages/page_edit_note.dart b/lib/ui/pages/page_edit_note.dart index f2adbe4..019ac10 100644 --- a/lib/ui/pages/page_edit_note.dart +++ b/lib/ui/pages/page_edit_note.dart @@ -2,6 +2,8 @@ import 'package:flutter/material.dart'; import 'package:ntsapp/utils/enums.dart'; import 'package:ntsapp/models/model_item.dart'; import 'package:ntsapp/services/service_events.dart'; +import 'package:flutter_bidi_text/flutter_bidi_text.dart'; + import '../../utils/common.dart'; @@ -79,7 +81,7 @@ class _PageEditNoteState extends State { body: Padding( padding: const EdgeInsets.all(16.0), child: SingleChildScrollView( - child: TextField( + child: BidiTextField( controller: controller, keyboardType: TextInputType.multiline, textCapitalization: TextCapitalization.sentences, diff --git a/lib/ui/pages/page_items.dart b/lib/ui/pages/page_items.dart index d6d7372..32f4289 100644 --- a/lib/ui/pages/page_items.dart +++ b/lib/ui/pages/page_items.dart @@ -23,6 +23,8 @@ import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; import 'package:share_plus/share_plus.dart'; import 'package:siri_wave/siri_wave.dart'; import 'package:url_launcher/url_launcher.dart'; +import 'package:flutter_bidi_text/flutter_bidi_text.dart'; + import '../../utils/common.dart'; import '../../models/model_item.dart'; @@ -2010,7 +2012,7 @@ class _PageItemsState extends State { ], ), ), - TextField( + BidiTextField( controller: _textController, focusNode: _textControllerFocus, maxLines: 10, diff --git a/lib/ui/widgets_item.dart b/lib/ui/widgets_item.dart index 31abe37..4ea4a18 100644 --- a/lib/ui/widgets_item.dart +++ b/lib/ui/widgets_item.dart @@ -5,6 +5,8 @@ import 'package:lucide_icons/lucide_icons.dart'; import 'package:ntsapp/utils/enums.dart'; import 'package:path/path.dart' as path; import 'package:sodium_libs/sodium_libs_sumo.dart'; +import 'package:flutter_bidi_text/flutter_bidi_text.dart'; + import '../utils/common.dart'; import 'common_widgets.dart'; @@ -784,7 +786,7 @@ class NotePreviewSummary extends StatelessWidget { const SizedBox(width: 5), */ expanded == true ? Expanded( - child: Text( + child: BidiText( _getMessageText(), maxLines: 1, overflow: TextOverflow.ellipsis, // Ellipsis for long text @@ -795,7 +797,7 @@ class NotePreviewSummary extends StatelessWidget { ), ) : Flexible( - child: Text( + child: BidiText( _getMessageText(), maxLines: 1, overflow: TextOverflow.ellipsis, // Ellipsis for long text diff --git a/pubspec.yaml b/pubspec.yaml index f6191a2..88aeac4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -63,6 +63,7 @@ dependencies: video_player: ^2.9.2 window_size: ^0.1.0 workmanager: ^0.7.0 + flutter_bidi_text: ^1.0.0 dev_dependencies: flutter_test: