Skip to content

refactor: Phase 1 - Move data layer, services, and app base classes to MVVM structure - #13

Merged
CodingWithTashi merged 34 commits into
mainfrom
feat/revamp-design
Jun 18, 2026
Merged

CodingWithTashi merged 34 commits into
mainfrom
feat/revamp-design

fixed: build issue fixed

2d92638
Select commit
Loading
Failed to load commit list.
SonarQubeCloud / SonarCloud Code Analysis failed Jun 16, 2026 in 31s

Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Annotations

Check warning on line 200 in botok/src/main/java/com/kharagedition/botok/chunks/ChunkFramework.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Rename this local variable to match the regular expression ^`?[_a-z][a-zA-Z0-9]*`?$

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXQlU-ZdVsHs2dBU&open=AZ65PXQlU-ZdVsHs2dBU&pullRequest=13

Check warning on line 158 in botok/src/main/java/com/kharagedition/botok/textunits/SylComponents.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Merge this "if" statement with the nested one.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXScU-ZdVsHs2dB9&open=AZ65PXScU-ZdVsHs2dB9&pullRequest=13

Check failure on line 72 in app/src/main/java/com/kharagedition/tibetankeyboard/app/TibetanKeyboardApp.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Add a nested comment explaining why this function is empty or complete the implementation.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ7SgS17-XVhL67q49zU&open=AZ7SgS17-XVhL67q49zU&pullRequest=13

Check failure on line 73 in app/src/main/java/com/kharagedition/tibetankeyboard/app/TibetanKeyboardApp.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Add a nested comment explaining why this function is empty or complete the implementation.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ7SgS17-XVhL67q49zV&open=AZ7SgS17-XVhL67q49zV&pullRequest=13

Check warning on line 44 in botok/src/main/java/com/kharagedition/botok/third_party/cql/TokenExpression.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Move "return" statements from all branches before "if" statement.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXRDU-ZdVsHs2dBZ&open=AZ65PXRDU-ZdVsHs2dBZ&pullRequest=13

Check failure on line 161 in botok/src/main/java/com/kharagedition/botok/tries/Trie.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXUQU-ZdVsHs2dCM&open=AZ65PXUQU-ZdVsHs2dCM&pullRequest=13

Check warning on line 147 in botok/src/main/java/com/kharagedition/botok/tokenizers/Token.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove this unchecked cast.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXReU-ZdVsHs2dBf&open=AZ65PXReU-ZdVsHs2dBf&pullRequest=13

Check failure on line 215 in botok/src/main/java/com/kharagedition/botok/tokenizers/WordTokenizer.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this method to reduce its Cognitive Complexity from 22 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXRrU-ZdVsHs2dBm&open=AZ65PXRrU-ZdVsHs2dBm&pullRequest=13

Check warning on line 117 in botok/src/main/java/com/kharagedition/botok/modifytokens/TokenSplit.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Map values should be accessed safely. Using the non-null assertion operator here can throw a NullPointerException.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXT_U-ZdVsHs2dCG&open=AZ65PXT_U-ZdVsHs2dCG&pullRequest=13

Check failure on line 116 in botok/src/main/java/com/kharagedition/botok/tokenizers/WordTokenizer.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this method to reduce its Cognitive Complexity from 28 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXRrU-ZdVsHs2dBk&open=AZ65PXRrU-ZdVsHs2dBk&pullRequest=13

Check failure on line 171 in botok/src/main/java/com/kharagedition/botok/tokenizers/Tokenize.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this method to reduce its Cognitive Complexity from 28 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXSMU-ZdVsHs2dB1&open=AZ65PXSMU-ZdVsHs2dB1&pullRequest=13

Check warning on line 201 in botok/src/main/java/com/kharagedition/botok/chunks/ChunkFramework.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Rename this local variable to match the regular expression ^`?[_a-z][a-zA-Z0-9]*`?$

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXQlU-ZdVsHs2dBV&open=AZ65PXQlU-ZdVsHs2dBV&pullRequest=13

Check failure on line 176 in botok/src/main/java/com/kharagedition/botok/tokenizers/WordTokenizer.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXRrU-ZdVsHs2dBl&open=AZ65PXRrU-ZdVsHs2dBl&pullRequest=13

Check warning on line 79 in botok/src/main/java/com/kharagedition/botok/tries/BasicTrie.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace this if expression with require(!(word.isEmpty())) { "\"word\" must be non-null string" }.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXUeU-ZdVsHs2dCO&open=AZ65PXUeU-ZdVsHs2dCO&pullRequest=13

Check failure on line 117 in botok/src/main/java/com/kharagedition/botok/third_party/cql/TokenExpression.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this method to reduce its Cognitive Complexity from 30 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXRDU-ZdVsHs2dBY&open=AZ65PXRDU-ZdVsHs2dBY&pullRequest=13

Check warning on line 210 in botok/src/main/java/com/kharagedition/botok/tokenizers/SentenceTokenizer.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove this variable, which is assigned but never accessed.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXR6U-ZdVsHs2dBp&open=AZ65PXR6U-ZdVsHs2dBp&pullRequest=13

Check warning on line 145 in botok/src/main/java/com/kharagedition/botok/tokenizers/Token.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove this unchecked cast.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXReU-ZdVsHs2dBe&open=AZ65PXReU-ZdVsHs2dBe&pullRequest=13

Check failure on line 28 in botok/src/main/java/com/kharagedition/botok/tokenizers/SentenceTokenizer.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Define a constant instead of duplicating this literal "\u0F66" 3 times.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXR6U-ZdVsHs2dBv&open=AZ65PXR6U-ZdVsHs2dBv&pullRequest=13

Check warning on line 86 in botok/src/main/java/com/kharagedition/botok/text/PipelineBase.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove this useless cast.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXU5U-ZdVsHs2dCW&open=AZ65PXU5U-ZdVsHs2dCW&pullRequest=13

Check failure on line 188 in botok/src/main/java/com/kharagedition/botok/utils/CorpusNormalization.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Define a constant instead of duplicating this literal "\u0F0B" 5 times.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXS7U-ZdVsHs2dB_&open=AZ65PXS7U-ZdVsHs2dB_&pullRequest=13

Check warning on line 229 in app/src/main/java/com/kharagedition/tibetankeyboard/ui/home/HomeActivity.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Either remove or fill this block of code.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXZ2U-ZdVsHs2dCe&open=AZ65PXZ2U-ZdVsHs2dCe&pullRequest=13

Check warning on line 31 in botok/src/main/java/com/kharagedition/botok/modifytokens/ReplacingMatcher.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove this unchecked cast.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXTVU-ZdVsHs2dCC&open=AZ65PXTVU-ZdVsHs2dCC&pullRequest=13

Check warning on line 116 in botok/src/main/java/com/kharagedition/botok/tries/BasicTrie.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace this if expression with require(!(word.isEmpty())) { "\"word\" must be non-null string" }.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXUeU-ZdVsHs2dCP&open=AZ65PXUeU-ZdVsHs2dCP&pullRequest=13

Check warning on line 168 in botok/src/main/java/com/kharagedition/botok/text/PipelineBase.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Map values should be accessed safely. Using the non-null assertion operator here can throw a NullPointerException.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXU5U-ZdVsHs2dCU&open=AZ65PXU5U-ZdVsHs2dCU&pullRequest=13

Check warning on line 84 in botok/src/main/java/com/kharagedition/botok/text/PipelineBase.kt

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove this unchecked cast.

See more on https://sonarcloud.io/project/issues?id=CodingWithTashi_Tibetan-Keyboard&issues=AZ65PXU5U-ZdVsHs2dCV&open=AZ65PXU5U-ZdVsHs2dCV&pullRequest=13