From a9b8a78758ce3cb16a6241e5b521ff87b882bffc Mon Sep 17 00:00:00 2001 From: h7x4 Date: Thu, 2 Apr 2026 15:47:22 +0900 Subject: [PATCH] word_search_result: add getter for unusual kanji flag --- lib/models/word_search/word_search_result.dart | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/models/word_search/word_search_result.dart b/lib/models/word_search/word_search_result.dart index 9640a88..5cad6f5 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.map((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))