diff --git a/lib/models/word_search/word_search_result.dart b/lib/models/word_search/word_search_result.dart index 9640a88..9e79658 100644 --- a/lib/models/word_search/word_search_result.dart +++ b/lib/models/word_search/word_search_result.dart @@ -1,5 +1,6 @@ import 'package:jadb/models/common/jlpt_level.dart'; import 'package:jadb/models/jmdict/jmdict_kanji_info.dart'; +import 'package:jadb/models/jmdict/jmdict_misc.dart'; import 'package:jadb/models/jmdict/jmdict_reading_info.dart'; import 'package:jadb/models/word_search/word_search_match_span.dart'; import 'package:jadb/models/word_search/word_search_ruby.dart'; @@ -45,6 +46,13 @@ class WordSearchResult { /// the original searchword. List? matchSpans; + /// Whether the first item in [japanese] contains kanji that likely is rare. + bool get hasUnusualKanji => + (japanese.first.furigana != null && + kanjiInfo[japanese.first.base] == JMdictKanjiInfo.rK) || + senses.where((sense) => sense.misc.contains(JMdictMisc.onlyKana)).length > + (senses.length / 2); + /// All contents of [japanese], transliterated to romaji List get romaji => japanese .map((word) => transliterateKanaToLatin(word.furigana ?? word.base))