Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
51047e3
Add Hilt
firemaples Dec 24, 2022
89ddfbb
Test injection with View & ViewModel
firemaples Jan 4, 2024
86b7876
Move navigation logic to StateNavigator
firemaples Jan 4, 2024
fa370bc
Add Compose support
firemaples Jan 4, 2024
3653203
Implement views with states on MainBar
firemaples Jan 5, 2024
81dcd13
Save last main bar position
firemaples Jan 5, 2024
9ab6365
Open language selection panel
firemaples Jan 6, 2024
7191b70
Implement MainBarMenu
firemaples Jan 6, 2024
f1d2f67
Implement MainBar button actions
firemaples Jan 6, 2024
dcb67dd
Finish MainBar
firemaples Jan 6, 2024
d93af10
Fix last circled scope not saved
firemaples Jan 6, 2024
03a07c1
Move state operations out from FloatingViewCoordinator
firemaples Jan 6, 2024
2c2cc06
Fix hide action
firemaples Jan 6, 2024
324d3bc
Setup detekt for Compose
firemaples Jan 10, 2024
b394ae6
Draw result view UI & state
firemaples Jan 10, 2024
02a5118
Display result view data
firemaples Jan 12, 2024
b61a54d
Implement basic result view buttons
firemaples Jan 12, 2024
c86c28f
Update the states and implement the font size subscribing on ResultView
firemaples Jan 14, 2024
0ae34a4
Implement WordSelectionText
firemaples Jan 14, 2024
efd53b1
Implement hiding OCR area after translated
firemaples Jan 14, 2024
7904cbe
Update state transition log
firemaples Jan 21, 2024
a2634ae
Clean up unused code on result view
firemaples Jan 21, 2024
99a5b4a
Update animation on main bar and result view
firemaples Jan 21, 2024
2ff47c2
Add [All] selection to WordSelectionText
firemaples Jan 21, 2024
988e885
Adjust result view layout
firemaples Jan 21, 2024
75d5337
Fix result view size and position
firemaples Jan 21, 2024
b81d86b
Add result panel position animation
firemaples Jan 21, 2024
a0a0cba
Round the selected area
firemaples Jan 21, 2024
7a62a9c
Fix Google Translate language in text search view
firemaples Jan 28, 2024
b5b1534
Add missing end blank lines
firemaples Feb 3, 2024
1abfb87
Comment out old result view
firemaples Feb 3, 2024
853fd95
Make state navigation centralized
firemaples Feb 3, 2024
ae80024
Correct use case naming
firemaples Feb 3, 2024
70a92f6
Merge pull request #424 from firemaples/refactor/restructure
firemaples Feb 3, 2024
8998a64
Request post notification permission
firemaples Feb 3, 2024
8d453ff
Merge pull request #430 from firemaples/fix/request-post-notification
firemaples Feb 3, 2024
d43cfa8
Bump to v4.0.0
firemaples Feb 3, 2024
a65e9f1
Use Compose Material Theme
firemaples Feb 4, 2024
bd5aacd
Merge pull request #431 from firemaples/refactor/update-app-theme
firemaples Feb 4, 2024
1969d8c
Update MainBar button tint color
firemaples Feb 4, 2024
2e2c059
Merge pull request #432 from firemaples/refactor/update-app-theme
firemaples Feb 4, 2024
60e0652
Add option for limit the max width of result panel
firemaples Feb 10, 2024
4d68f61
Merge pull request #435 from firemaples/feature/option-for-result-vie…
firemaples Feb 10, 2024
f19ccf3
Mark Lifecycle on destroy before detach floating view
firemaples Feb 10, 2024
7a5d8f6
Merge pull request #436 from firemaples/fix/mark-lifecycle-destroy-be…
firemaples Feb 10, 2024
aa899b0
Make the translator icon smaller
firemaples Feb 10, 2024
bfc166d
Merge pull request #437 from firemaples/fix/make-the-translator-icon-…
firemaples Feb 10, 2024
7d5ec69
Bump to v4.0.1
firemaples Feb 10, 2024
60480ad
Make MainBar holding its visible state
firemaples Feb 11, 2024
fb83004
Merge pull request #438 from firemaples/fix/state-transitions
firemaples Feb 11, 2024
082ede4
Bump to v4.0.2
firemaples Feb 11, 2024
27a4d7d
Temporarily remove the animations on the result view
firemaples Feb 17, 2024
627992c
Merge pull request #440 from firemaples/fix/temporary-remove-animations
firemaples Feb 17, 2024
565c3ed
Bump to v4.0.3
firemaples Feb 17, 2024
d5fe0c0
Upgrade target version to 34
firemaples Feb 11, 2024
fbae4a5
Bump compose version to 2024.02.02
firemaples Mar 20, 2024
530de19
Fix compose view not responding issue
firemaples Mar 20, 2024
25658db
Trigger CI on refactor branch
firemaples Mar 20, 2024
b010d7c
Merge pull request #445 from firemaples/misc/upgrade-target-version-34
firemaples Mar 20, 2024
597db4b
Refactor screen circling view to compose
firemaples Mar 20, 2024
97b60dd
Merge pull request #446 from firemaples/refactor/refactor-screen-circ…
firemaples Mar 20, 2024
894a948
Update ResultViewContent.kt
uomar8 Feb 17, 2024
2e686b5
Set default TextStyle to align the text direction with text content
firemaples Mar 20, 2024
738a2c5
Use LocalTextStyle instead of TextStyle.Default
firemaples Mar 20, 2024
6af8179
Merge pull request #441 from uomar8/Text-direction
firemaples Mar 20, 2024
5673da6
Bump to v4.0.4
firemaples Mar 20, 2024
f4cf81e
Remove the default ripple effect on the result window background
firemaples Mar 27, 2024
6ae3558
Merge pull request #447 from firemaples/fix/remove-ripple-effect-on-r…
firemaples Mar 27, 2024
4ba63d3
Bump to v4.0.5
firemaples Mar 27, 2024
6858840
Add temporarily removed animation on result view back
firemaples Apr 6, 2024
1c79453
Merge pull request #449 from firemaples/misc/add-result-view-animatio…
firemaples Apr 6, 2024
edcb755
Reschedule main bar fade out after closing the menu
firemaples Apr 6, 2024
b47738f
Merge pull request #450 from firemaples/fix/reschedule-fade-out-after…
firemaples Apr 6, 2024
241159c
Use customized compose menu list
firemaples Apr 8, 2024
7bf1efb
Merge pull request #453 from firemaples/refactor/refactor-menu-view
firemaples Apr 9, 2024
7571d92
Bump to v4.0.6
firemaples Apr 10, 2024
e82ba87
Bump AGP version to 8.9.1
firemaples Mar 29, 2025
1d09c20
Fix CI script
firemaples Mar 29, 2025
3385f05
empty commit
firemaples Mar 29, 2025
5067be0
Merge pull request #478 from firemaples/misc/bump-AGP-8.9.1
firemaples Mar 29, 2025
6af4fde
Auto copy after text is recognized
firemaples May 10, 2025
810064f
Merge pull request #479 from firemaples/fix/477-autocopy-recognized-r…
firemaples May 10, 2025
dfe0a38
Update dependency com.google.gms:google-services to v4.4.2
renovate[bot] May 10, 2025
4092ca2
Update dependency com.google.mlkit:language-id to v17.0.6
renovate[bot] May 10, 2025
eab79e7
Update dependency androidx.test.ext:junit to v1.2.1
renovate[bot] May 10, 2025
2a8f1a7
Merge pull request #481 from firemaples/renovate/com.google.mlkit-lan…
firemaples May 10, 2025
541cba2
Merge pull request #480 from firemaples/renovate/com.google.gms-googl…
firemaples May 10, 2025
98dc379
Merge pull request #474 from firemaples/renovate/androidx.test.ext-ju…
firemaples May 10, 2025
6ac5cac
Update dependency com.google.mlkit:text-recognition to v16.0.1
renovate[bot] May 10, 2025
72f1a4a
Update dependency com.google.mlkit:text-recognition-chinese to v16.0.1
renovate[bot] May 10, 2025
994e9ba
Update dependency com.google.mlkit:text-recognition-devanagari to v16…
renovate[bot] May 10, 2025
c4c03a1
Merge pull request #482 from firemaples/renovate/com.google.mlkit-tex…
firemaples May 10, 2025
9918dac
Merge pull request #483 from firemaples/renovate/com.google.mlkit-tex…
firemaples May 10, 2025
80e75d6
Merge pull request #484 from firemaples/renovate/com.google.mlkit-tex…
firemaples May 10, 2025
87fb178
Update dependency com.google.mlkit:text-recognition-japanese to v16.0.1
renovate[bot] May 10, 2025
942f2ed
Update dependency com.google.mlkit:text-recognition-korean to v16.0.1
renovate[bot] May 10, 2025
1a1104d
Update dependency com.google.mlkit:translate to v17.0.3
renovate[bot] May 10, 2025
5a73d47
Merge pull request #485 from firemaples/renovate/com.google.mlkit-tex…
firemaples May 10, 2025
4bfd7e9
Merge pull request #486 from firemaples/renovate/com.google.mlkit-tex…
firemaples May 10, 2025
086540e
Merge pull request #487 from firemaples/renovate/com.google.mlkit-tra…
firemaples May 10, 2025
bdf0aee
Update dependency androidx.compose:compose-bom to v2024.12.01
renovate[bot] May 10, 2025
5eb7d62
Merge pull request #490 from firemaples/renovate/androidx.compose-com…
firemaples May 10, 2025
7186058
Update dependency androidx.test.espresso:espresso-core to v3.6.1
renovate[bot] May 10, 2025
e8fd88a
Update dependency androidx.webkit:webkit to v1.13.0
renovate[bot] May 10, 2025
5a82660
Update dependency com.google.android.material:material to v1.12.0
renovate[bot] May 10, 2025
6311537
Update dependency com.google.code.gson:gson to v2.13.1
renovate[bot] May 10, 2025
18dbd6b
Merge pull request #399 from firemaples/renovate/com.google.android.m…
firemaples May 10, 2025
0d43f02
Merge pull request #398 from firemaples/renovate/androidx.webkit-webk…
firemaples May 10, 2025
85433d9
Merge pull request #476 from firemaples/renovate/com.google.code.gson…
firemaples May 10, 2025
18c0305
Merge pull request #473 from firemaples/renovate/androidx.test.espres…
firemaples May 10, 2025
f2138c7
Update dependency io.gitlab.arturbosch.detekt:detekt-gradle-plugin to…
renovate[bot] May 10, 2025
bca7faf
Update dependency androidx.datastore:datastore-preferences to v1.1.6
renovate[bot] May 10, 2025
727568c
Merge pull request #493 from firemaples/renovate/androidx.datastore-d…
firemaples May 10, 2025
4652018
Merge pull request #464 from firemaples/renovate/io.gitlab.arturbosch…
firemaples May 10, 2025
6c0e7bf
Update dependency pl.droidsonroids.gif:android-gif-drawable to v1.2.29
renovate[bot] May 10, 2025
81b5261
Update dependency androidx.appcompat:appcompat to v1.7.0
renovate[bot] May 10, 2025
40a249b
Update dependency androidx.constraintlayout:constraintlayout to v2.2.1
renovate[bot] May 10, 2025
4a2fc76
Merge pull request #465 from firemaples/renovate/pl.droidsonroids.gif…
firemaples May 10, 2025
3a929d7
Merge pull request #491 from firemaples/renovate/androidx.constraintl…
firemaples May 10, 2025
e456c6e
Merge pull request #489 from firemaples/renovate/androidx.appcompat-a…
firemaples May 10, 2025
cfbb743
Update dependency com.github.MikeOrtiz:TouchImageView to v3.7.1
renovate[bot] May 10, 2025
594d445
Merge pull request #499 from firemaples/renovate/com.github.mikeortiz…
firemaples May 10, 2025
b904fb7
Update dependency com.google.android.gms:play-services-ads to v22.6.0
renovate[bot] May 10, 2025
2e0faca
Merge pull request #501 from firemaples/renovate/com.google.android.g…
firemaples May 10, 2025
3775804
Update dependency com.google.ads.mediation:facebook to v6.20.0.0
renovate[bot] May 10, 2025
cc0f3b9
Update dependency com.google.dagger:hilt-compiler to v2.56.2
renovate[bot] May 10, 2025
31a3a3e
Update build.gradle
firemaples May 10, 2025
0b4fb81
Merge pull request #503 from firemaples/renovate/com.google.dagger-hi…
firemaples May 10, 2025
eec08ed
Update dependency com.google.dagger:hilt-android to v2.56.2
renovate[bot] May 10, 2025
dd363d9
Merge pull request #502 from firemaples/renovate/com.google.dagger-hi…
firemaples May 10, 2025
77e2494
Unify dependency versions
firemaples May 10, 2025
0ac289a
Merge pull request #500 from firemaples/renovate/com.google.ads.media…
firemaples May 10, 2025
34ce6fa
Update dependency com.google.firebase:firebase-bom to v32.8.1
renovate[bot] May 10, 2025
bf35445
Update dependency io.nlopez.compose.rules:detekt to v0.4.22
renovate[bot] May 10, 2025
2d946eb
Merge pull request #504 from firemaples/renovate/com.google.firebase-…
firemaples May 11, 2025
9ff3c3e
Merge pull request #505 from firemaples/renovate/io.nlopez.compose.ru…
firemaples May 11, 2025
8edad06
Update kotlinx-coroutines monorepo to v1.10.2
renovate[bot] May 11, 2025
9dbc716
Update plugin com.google.dagger.hilt.android to v2.56.2
renovate[bot] May 11, 2025
e410600
Update retrofit monorepo to v2.11.0
renovate[bot] May 11, 2025
48e7946
Merge pull request #510 from firemaples/renovate/com.google.dagger.hi…
firemaples May 11, 2025
30f0a08
Merge pull request #511 from firemaples/renovate/retrofit-monorepo
firemaples May 11, 2025
09da75c
Merge pull request #506 from firemaples/renovate/kotlinx-coroutines-m…
firemaples May 11, 2025
75caead
Update plugin com.google.devtools.ksp to v2.1.20-2.0.1
renovate[bot] May 11, 2025
5fb0e44
Merge pull request #488 from firemaples/renovate/ksp-monorepo
firemaples May 11, 2025
6a4bf1e
Update actions/setup-java action to v4
renovate[bot] May 11, 2025
7f87fde
Update dependency com.google.firebase:firebase-bom to v33
renovate[bot] May 11, 2025
ef30a12
Merge pull request #515 from firemaples/renovate/com.google.firebase-…
firemaples May 11, 2025
a4d3cd2
Merge pull request #512 from firemaples/renovate/actions-setup-java-4.x
firemaples May 11, 2025
6ed48a7
Update dependency com.google.firebase:firebase-crashlytics-gradle to v3
renovate[bot] May 11, 2025
8045f06
Merge pull request #516 from firemaples/renovate/com.google.firebase-…
firemaples May 12, 2025
8d78708
Update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v2.1.21
renovate[bot] May 13, 2025
c020908
Update plugin org.jetbrains.kotlin.plugin.compose to v2.1.21
renovate[bot] May 13, 2025
a1ec1d2
Merge pull request #517 from firemaples/renovate/kotlin-monorepo
firemaples May 18, 2025
9b9ddf7
Merge pull request #518 from firemaples/renovate/org.jetbrains.kotlin…
firemaples May 18, 2025
d6ed86d
Update plugin com.google.devtools.ksp to v2.1.21-2.0.1
renovate[bot] May 18, 2025
88cc3cc
Update retrofit monorepo to v2.12.0
renovate[bot] May 18, 2025
070fc6f
Merge pull request #519 from firemaples/renovate/ksp-monorepo
firemaples May 18, 2025
82bc44a
Merge pull request #520 from firemaples/renovate/retrofit-monorepo
firemaples May 18, 2025
05a81a4
Update retrofit monorepo to v3
renovate[bot] May 18, 2025
3c04e03
Update dependency cz.adaptech.tesseract4android:tesseract4android to …
renovate[bot] May 18, 2025
5f18c06
Merge pull request #402 from firemaples/renovate/cz.adaptech.tesserac…
firemaples May 18, 2025
d727c12
Merge pull request #521 from firemaples/renovate/major-retrofit-monorepo
firemaples May 18, 2025
51ff1a3
Fix Moshi converter
firemaples May 18, 2025
c370734
Merge pull request #494 from firemaples/dep/update-dependencies
firemaples May 18, 2025
daf462d
Add R8 rules to proguard-rules.pro
firemaples May 18, 2025
49e4edb
Fix Android lint error
firemaples May 18, 2025
6a5d210
Update the target SDK to 35
firemaples May 18, 2025
13866e9
Update dependency androidx.core:core-ktx to v1.16.0
renovate[bot] May 18, 2025
73d417e
Update dependency androidx.work:work-runtime-ktx to v2.10.1
renovate[bot] May 18, 2025
d526a2d
Update lifecycle_version to v2.9.0
renovate[bot] May 18, 2025
bcc631f
Update nav_version to v2.9.0
renovate[bot] May 18, 2025
f1b2843
Update dependency androidx.compose:compose-bom to v2025
renovate[bot] May 18, 2025
b4eebce
Remove unused rules after upgrading target SDK to 35
firemaples May 18, 2025
dd37199
Merge pull request #528 from firemaples/renovate/androidx.compose-com…
firemaples May 18, 2025
509ad6d
Merge pull request #527 from firemaples/renovate/nav_version
firemaples May 18, 2025
2ed3e28
Merge pull request #526 from firemaples/renovate/lifecycle_version
firemaples May 18, 2025
cb8de38
Merge pull request #524 from firemaples/renovate/androidx.work-work-r…
firemaples May 18, 2025
8826763
Merge pull request #523 from firemaples/renovate/androidx.core-core-k…
firemaples May 18, 2025
8faffa7
Bump com.google.android.gms:play-services-ads to 23.6.0
firemaples May 18, 2025
c5899be
Merge pull request #530 from firemaples/dep/update-dependencies
firemaples May 18, 2025
a5e8de7
Merge pull request #522 from firemaples/misc/upgrade-target-sdk-35
firemaples May 18, 2025
71860c6
Support edge-to-edge
firemaples May 18, 2025
51da5ac
Downgrade androidx.datastore:datastore-preferences back to 1.0.0
firemaples May 18, 2025
1505397
Bump to 4.0.9
firemaples May 18, 2025
6242337
Remove usage of removeLast() based on PlayStore consoles checker
firemaples May 18, 2025
e6b3526
Merge pull request #531 from firemaples/misc/fix-removeLast
firemaples May 18, 2025
b2514d0
Bump to v4.0.10
firemaples May 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches: [ "master", "dep/**" ]
pull_request:
branches: [ "master", "dep/**" ]
branches: [ "master", "dep/**", "refactor/**" ]

jobs:
build:
Expand All @@ -14,7 +14,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: set up JDK 17
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
Expand All @@ -25,7 +25,7 @@ jobs:
- name: Build with Gradle
run: ./gradlew assembleDevDebug
- name: Upload debug APK
uses: actions/upload-artifact@v3.1.3
uses: actions/upload-artifact@v4
with:
name: main-dev-debug.apk
path: main/build/outputs/apk/dev/debug/main-dev-debug.apk
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,4 @@ google-services.json
!main/src/dev/google-services.json
config_ad.xml
!main/src/main/res/values/config_ad.xml
.kotlin/
27 changes: 22 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.nav_version = "2.6.0" // require SDK 34 from 2.7.0
ext.nav_version = "2.9.0" // require SDK 34 from 2.7.0
ext.hilt_version = "2.56.2"
ext.coroutines_version = "1.10.2"
ext.lifecycle_version = "2.9.0"
ext.text_recognition_version = "16.0.1"
ext.kotpref_version = "2.13.2"
ext.retrofit2_version = "3.0.0"
ext.moshi_version = "1.15.2"

repositories {
google()
gradlePluginPortal()
mavenCentral()
maven {
url "https://jitpack.io"
Expand All @@ -13,20 +22,28 @@ buildscript {
}
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.3'
classpath 'com.android.tools.build:gradle:8.9.1'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:4.4.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10"
classpath 'com.google.gms:google-services:4.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.21"
classpath 'com.google.firebase:perf-plugin:1.4.2'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.3'

// Refactor
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

// Detekt
classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.23.8"
}
}

plugins {
id 'com.google.dagger.hilt.android' version '2.56.2' apply false
id 'com.google.devtools.ksp' version '2.1.21-2.0.1' apply false
}

allprojects {
repositories {
google()
Expand Down
85 changes: 85 additions & 0 deletions detekt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# From https://mrmans0n.github.io/compose-rules/detekt/
Compose:
ComposableAnnotationNaming:
active: true
ComposableNaming:
active: true
# -- You can optionally disable the checks in this rule for regex matches against the composable name (e.g. molecule presenters)
# allowedComposableFunctionNames: .*Presenter,.*MoleculePresenter
ComposableParamOrder:
active: true
# -- You can optionally have a list of types to be treated as lambdas (e.g. typedefs or fun interfaces not picked up automatically)
# treatAsLambda: MyLambdaType
CompositionLocalAllowlist:
active: true
# -- You can optionally define a list of CompositionLocals that are allowed here
# allowedCompositionLocals: LocalSomething,LocalSomethingElse
CompositionLocalNaming:
active: true
ContentEmitterReturningValues:
active: true
# -- You can optionally add your own composables here
# contentEmitters: MyComposable,MyOtherComposable
DefaultsVisibility:
active: true
ModifierClickableOrder:
active: true
# -- You can optionally add your own Modifier types
# customModifiers: BananaModifier,PotatoModifier
ModifierComposable:
active: true
# -- You can optionally add your own Modifier types
# customModifiers: BananaModifier,PotatoModifier
ModifierMissing:
active: true
# -- You can optionally control the visibility of which composables to check for here
# -- Possible values are: `only_public`, `public_and_internal` and `all` (default is `only_public`)
# checkModifiersForVisibility: only_public
# -- You can optionally add your own Modifier types
# customModifiers: BananaModifier,PotatoModifier
ModifierNaming:
active: true
# -- You can optionally add your own Modifier types
# customModifiers: BananaModifier,PotatoModifier
ModifierNotUsedAtRoot:
active: true
# -- You can optionally add your own composables here
# contentEmitters: MyComposable,MyOtherComposable
# -- You can optionally add your own Modifier types
# customModifiers: BananaModifier,PotatoModifier
ModifierReused:
active: true
# -- You can optionally add your own Modifier types
# customModifiers: BananaModifier,PotatoModifier
ModifierWithoutDefault:
active: true
MultipleEmitters:
active: true
# -- You can optionally add your own composables here that will count as content emitters
# contentEmitters: MyComposable,MyOtherComposable
# -- You can add composables here that you don't want to count as content emitters (e.g. custom dialogs or modals)
# contentEmittersDenylist: MyNonEmitterComposable
MutableParams:
active: true
MutableStateParam:
active: true
PreviewAnnotationNaming:
active: true
PreviewPublic:
active: true
RememberMissing:
active: true
RememberContentMissing:
active: true
UnstableCollections:
active: true
ViewModelForwarding:
active: true
# -- You can optionally use this rule on things other than types ending in "ViewModel" or "Presenter" (which are the defaults). You can add your own via a regex here:
# allowedStateHolderNames: .*ViewModel,.*Presenter
# -- You can optionally add an allowlist for Composable names that won't be affected by this rule
# allowedForwarding: .*Content,.*FancyStuff
ViewModelInjection:
active: true
# -- You can optionally add your own ViewModel factories here
# viewModelFactories: hiltViewModel,potatoViewModel
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
111 changes: 70 additions & 41 deletions main/build.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'com.google.devtools.ksp'
id 'androidx.navigation.safeargs.kotlin'
id 'com.google.gms.google-services'
id 'com.google.firebase.crashlytics'
id 'com.google.firebase.firebase-perf'
id 'com.google.dagger.hilt.android'
id "io.gitlab.arturbosch.detekt"
id("org.jetbrains.kotlin.plugin.compose") version "2.1.21"
}

def buildParams = getGradle().getStartParameter().toString().toLowerCase()
Expand All @@ -20,15 +23,14 @@ task ensureFiles {
}

android {
compileSdk 33
buildToolsVersion = "33.0.1"
compileSdk 35

defaultConfig {
applicationId "tw.firemaples.onscreenocr"
minSdkVersion 21
targetSdkVersion 33
versionCode 117
versionName "3.1.25"
targetSdkVersion 35
versionCode 128
versionName "4.0.10"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Expand Down Expand Up @@ -91,7 +93,11 @@ android {
jvmTarget = '17'
}
buildFeatures {
viewBinding true
viewBinding true //TODO remove after full migrating to compose
compose true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.15"
}
packagingOptions {
jniLibs {
Expand All @@ -101,26 +107,29 @@ android {
}

dependencies {
detektPlugins "io.nlopez.compose.rules:detekt:0.4.22"

implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')

implementation 'androidx.core:core-ktx:1.10.1'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.core:core-ktx:1.16.0'
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'com.google.android.material:material:1.12.0'
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.2'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version"
implementation "androidx.preference:preference-ktx:1.2.1"
implementation 'androidx.webkit:webkit:1.7.0'
implementation 'androidx.webkit:webkit:1.13.0'
//noinspection GradleDynamicVersion
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'

implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
// For using coroutines in tests
// For runBlockingTest, CoroutineDispatcher etc.
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3'
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_version"
// For InstantTaskExecutorRule
testImplementation "androidx.arch.core:core-testing:2.2.0"

Expand All @@ -136,10 +145,27 @@ dependencies {
androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

// required to avoid crash on Android 12 API 31
implementation 'androidx.work:work-runtime-ktx:2.8.1'
implementation 'androidx.work:work-runtime-ktx:2.10.1'

// Compose
def composeBom = platform('androidx.compose:compose-bom:2025.05.00')
implementation composeBom
androidTestImplementation composeBom
// Material Design 3
implementation 'androidx.compose.material3:material3'
// Android Studio Preview support
implementation 'androidx.compose.ui:ui-tooling-preview'
debugImplementation 'androidx.compose.ui:ui-tooling'
// UI Tests
androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
debugImplementation 'androidx.compose.ui:ui-test-manifest'

// Hilt
implementation "com.google.dagger:hilt-android:$hilt_version"
ksp "com.google.dagger:hilt-compiler:$hilt_version"

// Firebase
implementation platform('com.google.firebase:firebase-bom:32.6.0')
implementation platform('com.google.firebase:firebase-bom:33.13.0')
implementation 'com.google.firebase:firebase-crashlytics'
implementation 'com.google.firebase:firebase-analytics'
// implementation 'com.google.firebase:firebase-core'
Expand All @@ -148,49 +174,52 @@ dependencies {

// Google MLKit - Text recognition v2
// To recognize Latin script
implementation 'com.google.mlkit:text-recognition:16.0.0'
implementation "com.google.mlkit:text-recognition:$text_recognition_version"
// To recognize Chinese script
implementation 'com.google.mlkit:text-recognition-chinese:16.0.0'
implementation "com.google.mlkit:text-recognition-chinese:$text_recognition_version"
// To recognize Devanagari script
implementation 'com.google.mlkit:text-recognition-devanagari:16.0.0'
implementation "com.google.mlkit:text-recognition-devanagari:$text_recognition_version"
// To recognize Japanese script
implementation 'com.google.mlkit:text-recognition-japanese:16.0.0'
implementation "com.google.mlkit:text-recognition-japanese:$text_recognition_version"
// To recognize Korean script
implementation 'com.google.mlkit:text-recognition-korean:16.0.0'
implementation "com.google.mlkit:text-recognition-korean:$text_recognition_version"

// Google MLKit - Text translate
implementation 'com.google.mlkit:translate:17.0.2'
implementation 'com.google.mlkit:translate:17.0.3'

// Google MLKit - Identify Languages
implementation 'com.google.mlkit:language-id:17.0.4'
implementation 'com.google.mlkit:language-id:17.0.6'

// Kotpref
// core
implementation 'com.chibatching.kotpref:kotpref:2.13.2'
implementation "com.chibatching.kotpref:kotpref:$kotpref_version"
// optional, auto initialization module
implementation 'com.chibatching.kotpref:initializer:2.13.2'
implementation "com.chibatching.kotpref:initializer:$kotpref_version"
// optional, support saving enum value and ordinal
implementation 'com.chibatching.kotpref:enum-support:2.13.2'
implementation "com.chibatching.kotpref:enum-support:$kotpref_version"
// optional, support saving json string through Gson
implementation 'com.chibatching.kotpref:gson-support:2.13.2'
implementation 'com.google.code.gson:gson:2.10.1'
implementation "com.chibatching.kotpref:gson-support:$kotpref_version"
implementation 'com.google.code.gson:gson:2.13.1'
// optional, support LiveData observable preference
implementation 'com.chibatching.kotpref:livedata-support:2.13.2'
implementation "com.chibatching.kotpref:livedata-support:$kotpref_version"
// implementation 'androidx.lifecycle:lifecycle-livedata:2.2.0'
// // experimental, preference screen build dsl
// implementation 'com.chibatching.kotpref:preference-screen-dsl:2.13.1'

// Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-moshi:2.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
implementation "com.squareup.retrofit2:retrofit:$retrofit2_version"
implementation "com.squareup.retrofit2:converter-moshi:$retrofit2_version"
implementation "com.squareup.okhttp3:logging-interceptor:4.12.0"
// Moshi
ksp("com.squareup.moshi:moshi-kotlin-codegen:$moshi_version")
implementation "com.squareup.moshi:moshi-kotlin:$moshi_version"

// Tesseract
implementation 'cz.adaptech.tesseract4android:tesseract4android:4.5.0'
implementation 'cz.adaptech.tesseract4android:tesseract4android:4.8.0'
// implementation 'cz.adaptech:tesseract4android:4.1.0'

// koral--/android-gif-drawable
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.28'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.29'

// // Ad network mediation - Mopub
// implementation('com.mopub:mopub-sdk:+@aar') {
Expand All @@ -210,9 +239,9 @@ dependencies {
// implementation 'com.mopub.mediation:adcolony:4.5.0.1'

// Admob
implementation 'com.google.android.gms:play-services-ads:22.5.0'
implementation 'com.google.android.gms:play-services-ads:23.6.0'
// Facebook Ad network
implementation 'com.google.ads.mediation:facebook:6.16.0.0'
implementation 'com.google.ads.mediation:facebook:6.19.0.0'
// Adcolony Ad network
implementation 'com.google.ads.mediation:adcolony:4.8.0.2'
// To fix build failed with issue
Expand All @@ -221,5 +250,5 @@ dependencies {
implementation 'com.facebook.infer.annotation:infer-annotation:0.18.0'

// TouchImageView
implementation 'com.github.MikeOrtiz:TouchImageView:3.6'
implementation 'com.github.MikeOrtiz:TouchImageView:3.7.1'
}
Loading