0001-Fix-issue-with.patch
| 1 | From 52a2885e28309631edab2fe653c956600107394b Mon Sep 17 00:00:00 2001 |
| 2 | From: Julien Lepiller <julien@lepiller.eu> |
| 3 | Date: Sat, 25 Jun 2022 15:57:04 +0200 |
| 4 | Subject: [PATCH 1/2] =?UTF-8?q?Fix=20issue=20with=20=E3=80=85?= |
| 5 | MIME-Version: 1.0 |
| 6 | Content-Type: text/plain; charset=UTF-8 |
| 7 | Content-Transfer-Encoding: 8bit |
| 8 | |
| 9 | --- |
| 10 | .idea/gradle.xml | 3 +-- |
| 11 | .idea/runConfigurations.xml | 12 ---------- |
| 12 | .../java/eu/lepiller/nani/result/Result.java | 23 +++++++++++++------ |
| 13 | 3 files changed, 17 insertions(+), 21 deletions(-) |
| 14 | delete mode 100644 .idea/runConfigurations.xml |
| 15 | |
| 16 | diff --git a/.idea/gradle.xml b/.idea/gradle.xml |
| 17 | index 91df564..dffceeb 100644 |
| 18 | --- a/.idea/gradle.xml |
| 19 | +++ b/.idea/gradle.xml |
| 20 | @@ -4,7 +4,7 @@ |
| 21 | <component name="GradleSettings"> |
| 22 | <option name="linkedExternalProjectsSettings"> |
| 23 | <GradleProjectSettings> |
| 24 | - <option name="testRunner" value="PLATFORM" /> |
| 25 | + <option name="testRunner" value="GRADLE" /> |
| 26 | <option name="distributionType" value="DEFAULT_WRAPPED" /> |
| 27 | <option name="externalProjectPath" value="$PROJECT_DIR$" /> |
| 28 | <option name="modules"> |
| 29 | @@ -14,7 +14,6 @@ |
| 30 | <option value="$PROJECT_DIR$/rubytextview" /> |
| 31 | </set> |
| 32 | </option> |
| 33 | - <option name="resolveModulePerSourceSet" value="false" /> |
| 34 | </GradleProjectSettings> |
| 35 | </option> |
| 36 | </component> |
| 37 | diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml |
| 38 | deleted file mode 100644 |
| 39 | index 7f68460..0000000 |
| 40 | --- a/.idea/runConfigurations.xml |
| 41 | +++ /dev/null |
| 42 | @@ -1,12 +0,0 @@ |
| 43 | -<?xml version="1.0" encoding="UTF-8"?> |
| 44 | -<project version="4"> |
| 45 | - <component name="RunConfigurationProducerService"> |
| 46 | - <option name="ignoredProducers"> |
| 47 | - <set> |
| 48 | - <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> |
| 49 | - <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> |
| 50 | - <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> |
| 51 | - </set> |
| 52 | - </option> |
| 53 | - </component> |
| 54 | -</project> |
| 55 | \ No newline at end of file |
| 56 | diff --git a/app/src/main/java/eu/lepiller/nani/result/Result.java b/app/src/main/java/eu/lepiller/nani/result/Result.java |
| 57 | index ed1cfb5..ff7e87c 100644 |
| 58 | --- a/app/src/main/java/eu/lepiller/nani/result/Result.java |
| 59 | +++ b/app/src/main/java/eu/lepiller/nani/result/Result.java |
| 60 | @@ -1,5 +1,6 @@ |
| 61 | package eu.lepiller.nani.result; |
| 62 | |
| 63 | +import android.os.Build; |
| 64 | import android.util.Log; |
| 65 | |
| 66 | import com.moji4j.MojiConverter; |
| 67 | @@ -9,8 +10,7 @@ import java.util.List; |
| 68 | import java.util.regex.Matcher; |
| 69 | import java.util.regex.Pattern; |
| 70 | |
| 71 | -import static java.lang.Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS; |
| 72 | -import static java.lang.Character.UnicodeBlock.KATAKANA; |
| 73 | +import static java.lang.Character.UnicodeBlock.*; |
| 74 | |
| 75 | public class Result { |
| 76 | public static class Source { |
| 77 | @@ -133,6 +133,16 @@ public class Result { |
| 78 | return null; |
| 79 | } |
| 80 | |
| 81 | + private static boolean isKanji(char c) { |
| 82 | + Character.UnicodeBlock b = of(c); |
| 83 | + return b == CJK_UNIFIED_IDEOGRAPHS || |
| 84 | + b == CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || |
| 85 | + b == CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B || |
| 86 | + (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && b == CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C) || |
| 87 | + (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && b == CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D) || |
| 88 | + b == CJK_SYMBOLS_AND_PUNCTUATION; |
| 89 | + } |
| 90 | + |
| 91 | public String getKanjiFurigana() { |
| 92 | String txt = getKanji(); |
| 93 | String reading = getReading(); |
| 94 | @@ -142,12 +152,12 @@ public class Result { |
| 95 | ArrayList<String> portions = new ArrayList<>(); |
| 96 | |
| 97 | StringBuilder current = new StringBuilder(); |
| 98 | - Character.UnicodeBlock b = CJK_UNIFIED_IDEOGRAPHS; |
| 99 | + boolean currentBlockIsKanji = true; |
| 100 | |
| 101 | MojiConverter converter = new MojiConverter(); |
| 102 | for(int i=0; i<txt.length(); i++) { |
| 103 | - Character.UnicodeBlock b2 = Character.UnicodeBlock.of(txt.charAt(i)); |
| 104 | - if(b == b2) { |
| 105 | + boolean currentCharIsKanji = isKanji(txt.charAt(i)); |
| 106 | + if(currentBlockIsKanji == currentCharIsKanji) { |
| 107 | // if the headwork contains katakana, convert it to hiragana to match pronunciation |
| 108 | // better. |
| 109 | current.append(txt.charAt(i)); |
| 110 | @@ -158,8 +168,7 @@ public class Result { |
| 111 | current = new StringBuilder(); |
| 112 | current.append(txt.charAt(i)); |
| 113 | } |
| 114 | - |
| 115 | - b = b2; |
| 116 | + currentBlockIsKanji = currentCharIsKanji; |
| 117 | } |
| 118 | String str = current.toString(); |
| 119 | if(!str.isEmpty()) |
| 120 | -- |
| 121 | 2.36.1 |
| 122 | |
| 123 |