Normalize text to fix french (#1504)

* Normalize text to fix french

* Normalize text to fix french

* Fix French?

* Fix French?

* Fix French?

* Polyseed v0.0.5
This commit is contained in:
Konstantin Ullrich
2024-06-24 19:38:32 +03:00
committed by GitHub
parent aacd7ce6b3
commit 7dd15914d0
11 changed files with 153 additions and 137 deletions
+7 -5
View File
@@ -1,11 +1,11 @@
import 'package:cake_wallet/core/seed_validator.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:cake_wallet/src/widgets/validable_annotated_editable_text.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:cake_wallet/core/seed_validator.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class SeedWidget extends StatefulWidget {
SeedWidget({
@@ -23,7 +23,6 @@ class SeedWidget extends StatefulWidget {
}
class SeedWidgetState extends State<SeedWidget> {
SeedWidgetState(String language, this.type)
: controller = TextEditingController(),
focusNode = FocusNode(),
@@ -46,6 +45,7 @@ class SeedWidgetState extends State<SeedWidget> {
final FocusNode focusNode;
final WalletType type;
List<String> words;
bool normalizeSeed = false;
bool _showPlaceholder;
String get text => controller.text;
@@ -60,6 +60,7 @@ class SeedWidgetState extends State<SeedWidget> {
void changeSeedLanguage(String language) {
setState(() {
words = SeedValidator.getWordList(type: type, language: language);
normalizeSeed = SeedValidator.needsNormalization(language);
});
}
@@ -97,6 +98,7 @@ class SeedWidgetState extends State<SeedWidget> {
focusNode: focusNode,
controller: controller,
words: words,
normalizeSeed: normalizeSeed,
textStyle: TextStyle(
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
backgroundColor: Colors.transparent,
@@ -1,6 +1,6 @@
import 'package:cw_core/utils/text_normalizer.dart';
import 'package:flutter/material.dart';
extension Compare<T> on Comparable<T> {
bool operator <=(T other) => compareTo(other) <= 0;
bool operator >=(T other) => compareTo(other) >= 0;
@@ -39,6 +39,7 @@ class ValidatableAnnotatedEditableText extends EditableText {
required this.validStyle,
required this.invalidStyle,
required this.words,
this.normalizeSeed = false,
TextStyle textStyle = const TextStyle(
color: Colors.black,
backgroundColor: Colors.transparent,
@@ -74,6 +75,7 @@ class ValidatableAnnotatedEditableText extends EditableText {
showSelectionHandles: true,
showCursor: true);
final bool normalizeSeed;
final List<String> words;
final TextStyle validStyle;
final TextStyle invalidStyle;
@@ -137,7 +139,8 @@ class ValidatableAnnotatedEditableTextState extends EditableTextState {
return result;
}
bool validate(String source) => widget.words.indexOf(source) >= 0;
bool validate(String source) =>
widget.words.indexOf(widget.normalizeSeed ? normalizeText(source) : source) >= 0;
List<TextRange> range(String pattern, String source) {
final result = <TextRange>[];
@@ -173,4 +176,4 @@ class ValidatableAnnotatedEditableTextState extends EditableTextState {
return TextSpan(style: widget.style, text: text);
}
}
}