Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
b8f9721
fix gender suggestions and I hate Detekt
bhanu-dev82 May 28, 2025
8ab1dc2
Merge branch 'main' into fix_gender_suggestion
bhanu-dev82 May 28, 2025
912d4ff
fixed a minor error
bhanu-dev82 May 28, 2025
1160ed3
Merge branch 'main' into fix_gender_suggestion
bhanu-dev82 May 29, 2025
619d0be
fix translate , plural command and gender suggestion
bhanu-dev82 May 29, 2025
e82a295
Merge branch 'main' into fix_gender_suggestion
bhanu-dev82 Jun 12, 2025
dc15b94
fixed gender, fix plural, fix caps error, remain databse
bhanu-dev82 Jun 13, 2025
37befcc
new database handleing managers (previously helpers)
bhanu-dev82 Jun 13, 2025
8b2b51a
fix data handeling
bhanu-dev82 Jun 13, 2025
8af2e12
littel fix
bhanu-dev82 Jun 13, 2025
1eb0af0
improved performance and refacoring
bhanu-dev82 Jun 15, 2025
d96a127
Merge branch 'main' into fix_gender_suggestion
bhanu-dev82 Jun 15, 2025
a10a8f4
fixed issue 1 and 2
bhanu-dev82 Jun 15, 2025
5203d13
fix issue 3 with Improvements to SuggestionHandler
bhanu-dev82 Jun 15, 2025
c406e59
fix missing variable
bhanu-dev82 Jun 15, 2025
5935050
Update comments and mark out build dependencies
andrewtavis Jun 16, 2025
b1c30c7
fix:Correct the format of build.gradle.kts
angrezichatterbox Jun 19, 2025
4f33e50
chore:update the gradle and dependencies
angrezichatterbox Jun 20, 2025
64bd185
chore:move the ui helpers to ui/helpers
angrezichatterbox Jun 20, 2025
d9a936c
chore:add documentation for helpers
angrezichatterbox Jun 20, 2025
93731e4
chore:Linting issues
angrezichatterbox Jun 20, 2025
82dfa83
feat:add emoji utils and move emoji functions
angrezichatterbox Jun 20, 2025
c097ff8
chore:move annotation text to annotation utils
angrezichatterbox Jun 20, 2025
8af49b4
chore:download the ksp version to supoort 2.0.0 kotlin version
angrezichatterbox Jun 21, 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
126 changes: 74 additions & 52 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,11 @@ jacoco {
toolVersion = "0.8.12"
}

val kotlinVersion by extra("2.0.0")
val junit5Version by extra("5.11.2")
val mockkVersion by extra("1.13.13")

android {
compileSdk = 34
compileSdk = 35

defaultConfig {
applicationId = "be.scri"
Expand Down Expand Up @@ -123,9 +122,10 @@ android {
toolVersion = "1.23.8"
buildUponDefaultConfig = true
allRules = false
config = rootProject.files("detekt.yml")
config.setFrom(rootProject.files("detekt.yml"))
}


kotlinter {
failBuildWhenCannotAutoFormat = false
ignoreFailures = false
Expand All @@ -142,7 +142,7 @@ android {
listOf(
// Data binding.
"**/R.class",
"**/R\$*.class",
"**/R$*.class",
"**/BuildConfig.*",
"**/Manifest*.*",
"**/*Test*.*",
Expand All @@ -156,9 +156,7 @@ android {
xml.required.set(true)
html.required.set(true)
}
// Set source directories to the main source directory.
sourceDirectories.setFrom(layout.projectDirectory.dir("src/main"))
// Set class directories to compiled Java and Kotlin classes, excluding specified exclusions.
classDirectories.setFrom(
files(
fileTree(layout.buildDirectory.dir("intermediates/javac/")) {
Expand All @@ -169,7 +167,6 @@ android {
},
),
)
// Collect execution data from .exec and .ec files generated during test execution.
executionData.setFrom(
files(
fileTree(layout.buildDirectory) { include(listOf("**/*.exec", "**/*.ec")) },
Expand All @@ -179,91 +176,116 @@ android {
}
}



dependencies {
detektPlugins("io.nlopez.compose.rules:detekt:0.4.17")
lintChecks("com.slack.lint.compose:compose-lint-checks:1.4.2")

// AndroidX dependencies
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("androidx.activity:activity-ktx:1.9.2")
implementation("androidx.navigation:navigation-fragment-ktx:2.8.4")
implementation("androidx.navigation:navigation-ui-ktx:2.8.4")
debugImplementation("androidx.fragment:fragment-testing:1.8.5")
// ==========================
// AndroidX Dependencies
// ==========================
implementation("androidx.appcompat:appcompat:1.7.1")
implementation("androidx.activity:activity-ktx:1.10.1")
implementation("androidx.navigation:navigation-fragment-ktx:2.9.0")
implementation("androidx.navigation:navigation-ui-ktx:2.9.0")
debugImplementation("androidx.fragment:fragment-testing:1.8.8")
implementation("androidx.test.ext:junit-ktx:1.2.1")

// Room database
ksp("androidx.room:room-compiler:2.6.1")
implementation("androidx.room:room-runtime:2.6.1")

// Kotlin dependencies
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0")

// Layout and UI components
implementation("androidx.constraintlayout:constraintlayout:2.2.0")
implementation("androidx.documentfile:documentfile:1.0.1")
// ==========================
// Room Database
// ==========================
ksp("androidx.room:room-compiler:2.7.2")
implementation("androidx.room:room-runtime:2.7.2")
implementation("androidx.room:room-ktx:2.7.2")

// ==========================
// Kotlin
// ==========================
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.0")

// ==========================
// Layout and UI
// ==========================
implementation("androidx.constraintlayout:constraintlayout:2.2.1")
implementation("androidx.documentfile:documentfile:1.1.0")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
implementation("androidx.exifinterface:exifinterface:1.3.7")
implementation("androidx.exifinterface:exifinterface:1.4.1")
implementation("androidx.biometric:biometric-ktx:1.2.0-alpha05")
implementation("com.google.android.material:material:1.12.0")
implementation("androidx.recyclerview:recyclerview:1.3.2")
implementation("androidx.recyclerview:recyclerview:1.4.0")
implementation("androidx.cardview:cardview:1.0.0")
implementation("androidx.viewpager2:viewpager2:1.1.0")
implementation("com.google.android.play:core:1.10.3")
implementation("androidx.navigation:navigation-compose:2.6.0")
implementation("com.google.android.play:core-ktx:1.8.1")
implementation("androidx.navigation:navigation-compose:2.9.0")

// Jetpack Compose BOM
// ==========================
// Jetpack Compose
// ==========================
val composeBom = platform("androidx.compose:compose-bom:2024.10.00")
implementation(composeBom)
androidTestImplementation(composeBom)
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.material:material:1.7.6")
implementation("com.google.android.material:material:1.12.0")
implementation("androidx.compose.material:material:1.8.3")
implementation("androidx.compose.ui:ui-tooling-preview")
debugImplementation("androidx.compose.ui:ui-tooling")
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-test-manifest")

// ==========================
// Activity Compose
// ==========================
implementation("androidx.activity:activity-compose")

// ==========================
// Navigation Compose
implementation("androidx.navigation:navigation-compose:$2.8.4")
// ==========================
implementation("androidx.navigation:navigation-compose:2.9.0")

// ==========================
// Unit Testing
// ==========================


// Testing libraries
testImplementation("org.junit.jupiter:junit-jupiter-api:$junit5Version")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junit5Version")
testImplementation("io.mockk:mockk:$mockkVersion")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3")

// For Instrumentation Tests
androidTestImplementation("androidx.compose.ui:ui-test-junit4:1.7.5")
debugImplementation("androidx.compose.ui:ui-test-manifest:1.7.5")
// ==========================
// Instrumentation Tests
// ==========================
androidTestImplementation("androidx.compose.ui:ui-test-junit4:1.8.3")
debugImplementation("androidx.compose.ui:ui-test-manifest:1.8.3")

// Espresso for UI tests
// ==========================
// UI Tests
// ==========================
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")

// Android testing framework
// ==========================
// Android Testing
// ==========================
androidTestImplementation("androidx.test:core-ktx:1.6.1")
androidTestImplementation("androidx.test.ext:junit-ktx:1.2.1")
androidTestImplementation("androidx.test.espresso:espresso-intents:3.6.1")

// JUnit 5 dependencies
testImplementation("org.junit.jupiter:junit-jupiter-api:$junit5Version")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junit5Version")

// AndroidJUnit4 is included
androidTestImplementation("androidx.test.ext:junit:1.2.1")
androidTestImplementation("androidx.test:runner:1.6.1")
androidTestImplementation("io.mockk:mockk-android:1.13.5")
androidTestImplementation("androidx.test:runner:1.6.2")
androidTestImplementation("io.mockk:mockk-android:1.13.13")

// ==========================
// Other
// ==========================

// Other libraries
api("joda-time:joda-time:2.10.13")
api("joda-time:joda-time:2.12.7")
api("com.github.tibbi:RecyclerView-FastScroller:e7d3e150c4")
api("com.github.tibbi:reprint:2cb206415d")
api("androidx.core:core-ktx:1.13.1")
api("com.google.code.gson:gson:2.10.1")
api("com.github.bumptech.glide:glide:4.14.2")
api("androidx.core:core-ktx:1.16.0")
api("com.google.code.gson:gson:2.11.0")
api("com.github.bumptech.glide:glide:4.16.0")
ksp("com.github.bumptech.glide:ksp:4.14.2")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
}

tasks.register<Copy>("moveFromi18n") {
Expand Down Expand Up @@ -317,7 +339,7 @@ tasks.register<JacocoReport>("jacocoTestReport") {

reports {
html.required.set(true)
xml.outputLocation.set(file("${buildDir}/reports/jacoco/jacoco.xml"))
xml.outputLocation.set(layout.buildDirectory.file("reports/jacoco/jacoco.xml"))
xml.required.set(true)
csv.required.set(true)
}
Expand Down
10 changes: 5 additions & 5 deletions app/src/main/assets/data-contracts/en.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"numbers": { "singular": "plural" },
"genders": {
"canonical": ["NOT_INCLUDED"],
"feminines": ["NOT_INCLUDED"],
"masculines": ["NOT_INCLUDED"],
"commons": ["NOT_INCLUDED"],
"neuters": ["NOT_INCLUDED"]
"canonical": [],
"feminines": [],
"masculines": [],
"commons": [],
"neuters": []
},
"conjugations": {
"1": {
Expand Down
69 changes: 37 additions & 32 deletions app/src/main/assets/data-contracts/ru.json
Original file line number Diff line number Diff line change
@@ -1,39 +1,44 @@
{
"numbers": { "nominativeSingular": "nominativePlural" },
"numbers": {
"nominativeSingular": "nominativePlural"
},
"genders": {
"canonical": ["gender"],
"feminines": [],
"masculines": [],
"commons": [],
"neuters": []
"canonical": ["gender"],
"feminines": [],
"masculines": [],
"commons": [],
"neuters": []
},
"conjugations": {
"1": {
"title": "Настоящее",
"1": {
"title": "Настоящее",
"Simple": {
"я": "indicativePresentFirstPersonSingular",
"ты": "indicativePresentFirstPersonPlural",
"он/она/оно": "indicativePresentSecondPersonSingular",
"мы": "indicativePresentSecondPersonPlural",
"вы": "indicativePresentThirdPersonSingular",
"они": "indicativePresentThirdPersonPlural"
}
}
},
"2": {
"title": "Прошедшее",
"1": {
"title": "Прошедшее",
"Simple": {
"я/ты/она": "feminineIndicativePast",
"я/ты/он": "masculineIndicativePast",
"оно": "neuterIndicativePast",
"мы/вы/они": "indicativePastPlural"
}
"title": "Настоящее (Present)",
"conjugationTypes": {
"1": {
"title": "Indicative Present",
"conjugationForms": {
"я (I)": "indicativePresentFirstPersonSingular",
"ты (you, sing.)": "indicativePresentSecondPersonSingular",
"он/она/оно (he/she/it)": "indicativePresentThirdPersonSingular",
"мы (we)": "indicativePresentFirstPersonPlural",
"вы (you, pl.)": "indicativePresentSecondPersonPlural",
"они (they)": "indicativePresentThirdPersonPlural"
}
}
}
},
"2": {
"title": "Прошедшее (Past)",
"conjugationTypes": {
"1": {
"title": "Indicative Past",
"conjugationForms": {
"я/ты/она (I/you/she, fem.)": "feminineIndicativePast",
"я/ты/он (I/you/he, masc.)": "masculineIndicativePast",
"оно (it, neut.)": "neuterIndicativePast",
"мы/вы/они (we/you/they)": "indicativePastPlural"
}
}
}
}
}
}
}

}
37 changes: 26 additions & 11 deletions app/src/main/assets/data-contracts/sv.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,35 @@
"commons": [],
"neuters": []
},
"conjugations": {
"conjugations": {
"1": {
"title": "Aktiv",
"1": { "imperativ": "imperative" },
"2": { "presens": "activePresent" },
"3": { "dåtid": "activePreterite" },
"4": { "liggande": "activeSupine" }
"title": "Aktiv (Active Voice)",
"conjugationTypes": {
"1": {
"title": "Active Forms",
"conjugationForms": {
"infinitiv": "activeInfinitive",
"imperativ": "imperative",
"presens": "activePresent",
"preteritum (dåtid)": "activePreterite",
"supinum (liggande)": "activeSupine"
}
}
}
},
"2": {
"title": "Passiv",
"1": { "infinitiv": "passiveInfinitive" },
"2": { "presens": "passivePresent" },
"3": { "liggande": "passivePreterite" },
"4": { "liggande": "passiveSupine" }
"title": "Passiv (Passive Voice)",
"conjugationTypes": {
"1": {
"title": "Passive Forms",
"conjugationForms": {
"infinitiv": "passiveInfinitive",
"presens": "passivePresent",
"preteritum (dåtid)": "passivePreterite",
"supinum (liggande)": "passiveSupine"
}
}
}
}
}
}
Loading
Loading