mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-11-10 08:33:54 +01:00
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:
@@ -1,15 +1,15 @@
|
||||
import 'package:cake_wallet/bitcoin/bitcoin.dart';
|
||||
import 'package:cake_wallet/ethereum/ethereum.dart';
|
||||
import 'package:cake_wallet/haven/haven.dart';
|
||||
import 'package:cake_wallet/core/validator.dart';
|
||||
import 'package:cake_wallet/entities/mnemonic_item.dart';
|
||||
import 'package:cake_wallet/ethereum/ethereum.dart';
|
||||
import 'package:cake_wallet/haven/haven.dart';
|
||||
import 'package:cake_wallet/monero/monero.dart';
|
||||
import 'package:cake_wallet/nano/nano.dart';
|
||||
import 'package:cake_wallet/polygon/polygon.dart';
|
||||
import 'package:cake_wallet/solana/solana.dart';
|
||||
import 'package:cake_wallet/tron/tron.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
import 'package:cake_wallet/monero/monero.dart';
|
||||
import 'package:cake_wallet/nano/nano.dart';
|
||||
import 'package:cake_wallet/utils/language_list.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
|
||||
class SeedValidator extends Validator<MnemonicItem> {
|
||||
SeedValidator({required this.type, required this.language})
|
||||
@@ -41,13 +41,16 @@ class SeedValidator extends Validator<MnemonicItem> {
|
||||
return polygon!.getPolygonWordList(language);
|
||||
case WalletType.solana:
|
||||
return solana!.getSolanaWordList(language);
|
||||
case WalletType.tron:
|
||||
case WalletType.tron:
|
||||
return tron!.getTronWordList(language);
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
static bool needsNormalization(String language) =>
|
||||
["POLYSEED_French", "POLYSEED_Spanish"].contains(language);
|
||||
|
||||
static List<String> getBitcoinWordList(String language) {
|
||||
assert(language.toLowerCase() == LanguageList.english.toLowerCase());
|
||||
return bitcoin!.getWordList();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user