Skip to content

Commit 1986d8b

Browse files
committed
up android/ios app versions
2 parents 27ffb6e + fa5dfce commit 1986d8b

85 files changed

Lines changed: 1057 additions & 855 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

android-compose-app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ android {
2121
applicationId = "com.softartdev.noteroom"
2222
minSdk = libs.versions.minSdk.get().toInt()
2323
targetSdk = libs.versions.targetSdk.get().toInt()
24-
versionCode = 832
25-
versionName = "8.3.2"
24+
versionCode = 833
25+
versionName = "8.3.3"
2626
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2727
testInstrumentationRunnerArguments["clearPackageData"] = "true"
2828
vectorDrawables.useSupportLibrary = true

android-compose-app/src/androidTest/java/com/softartdev/notedelight/CryptInstrumentedTest.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import android.text.SpannableStringBuilder
44
import androidx.test.ext.junit.runners.AndroidJUnit4
55
import androidx.test.filters.MediumTest
66
import com.softartdev.notedelight.shared.PlatformSQLiteState
7-
import com.softartdev.notedelight.shared.database.DatabaseRepo
7+
import com.softartdev.notedelight.shared.db.SafeRepo
88
import org.junit.Assert.assertEquals
99
import org.junit.Test
1010
import org.junit.runner.RunWith
@@ -14,17 +14,17 @@ import org.koin.java.KoinJavaComponent.inject
1414
@RunWith(AndroidJUnit4::class)
1515
class CryptInstrumentedTest {
1616

17-
private val dbRepo: DatabaseRepo by inject(DatabaseRepo::class.java)
17+
private val safeRepo: SafeRepo by inject(SafeRepo::class.java)
1818
private val password = "password"
1919

2020
@Test
2121
fun cryptTest() {
22-
assertEquals(PlatformSQLiteState.DOES_NOT_EXIST, dbRepo.databaseState)
23-
dbRepo.buildDatabaseInstanceIfNeed()
24-
assertEquals(PlatformSQLiteState.UNENCRYPTED, dbRepo.databaseState)
25-
dbRepo.encrypt(SpannableStringBuilder(password))
26-
assertEquals(PlatformSQLiteState.ENCRYPTED, dbRepo.databaseState)
27-
dbRepo.decrypt(SpannableStringBuilder(password))
28-
assertEquals(PlatformSQLiteState.UNENCRYPTED, dbRepo.databaseState)
22+
assertEquals(PlatformSQLiteState.DOES_NOT_EXIST, safeRepo.databaseState)
23+
safeRepo.buildDbIfNeed()
24+
assertEquals(PlatformSQLiteState.UNENCRYPTED, safeRepo.databaseState)
25+
safeRepo.encrypt(SpannableStringBuilder(password))
26+
assertEquals(PlatformSQLiteState.ENCRYPTED, safeRepo.databaseState)
27+
safeRepo.decrypt(SpannableStringBuilder(password))
28+
assertEquals(PlatformSQLiteState.UNENCRYPTED, safeRepo.databaseState)
2929
}
3030
}

android-compose-app/src/androidTest/java/com/softartdev/notedelight/CryptUseCaseInstrumentedTest.kt

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package com.softartdev.notedelight
22

33
import androidx.test.ext.junit.runners.AndroidJUnit4
44
import androidx.test.filters.MediumTest
5-
import com.softartdev.notedelight.shared.data.CryptUseCase
6-
import com.softartdev.notedelight.shared.database.DatabaseRepo
5+
import com.softartdev.notedelight.shared.PlatformSQLiteState
6+
import com.softartdev.notedelight.shared.db.SafeRepo
7+
import com.softartdev.notedelight.shared.usecase.crypt.ChangePasswordUseCase
8+
import com.softartdev.notedelight.shared.usecase.crypt.CheckPasswordUseCase
79
import kotlinx.coroutines.runBlocking
810
import org.junit.Assert.assertFalse
911
import org.junit.Assert.assertTrue
@@ -15,19 +17,23 @@ import org.koin.java.KoinJavaComponent.inject
1517
@RunWith(AndroidJUnit4::class)
1618
class CryptUseCaseInstrumentedTest {
1719

18-
private val dbRepo: DatabaseRepo by inject(DatabaseRepo::class.java)
19-
private val cryptUseCase = CryptUseCase(dbRepo)
20+
private val safeRepo: SafeRepo by inject(SafeRepo::class.java)
21+
private val changePasswordUseCase = ChangePasswordUseCase(safeRepo)
22+
private val checkPasswordUseCase = CheckPasswordUseCase(safeRepo)
2023
private val password = "password"
2124

25+
private val dbIsEncrypted: Boolean
26+
get() = safeRepo.databaseState == PlatformSQLiteState.ENCRYPTED
27+
2228
@Test
2329
fun cryptTest() = runBlocking {
24-
dbRepo.buildDatabaseInstanceIfNeed()
25-
assertFalse(cryptUseCase.dbIsEncrypted())
26-
cryptUseCase.changePassword(null, password)
27-
assertTrue(cryptUseCase.dbIsEncrypted())
28-
dbRepo.closeDatabase()
29-
assertFalse(cryptUseCase.checkPassword("incorrect password"))
30-
assertTrue(cryptUseCase.checkPassword(password))
30+
safeRepo.buildDbIfNeed()
31+
assertFalse(dbIsEncrypted)
32+
changePasswordUseCase(null, password)
33+
assertTrue(dbIsEncrypted)
34+
safeRepo.closeDatabase()
35+
assertFalse(checkPasswordUseCase("incorrect password"))
36+
assertTrue(checkPasswordUseCase(password))
3137
}
3238

3339
}

android-compose-app/src/androidTest/java/com/softartdev/notedelight/SqlDelightCipherInstrumentedTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ import app.cash.sqldelight.db.SqlDriver
1212
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
1313
import com.commonsware.cwac.saferoom.SQLCipherUtils
1414
import com.commonsware.cwac.saferoom.SafeHelperFactory
15-
import com.softartdev.notedelight.shared.database.DatabaseRepo.Companion.DB_NAME
16-
import com.softartdev.notedelight.shared.database.TestSchema
17-
import com.softartdev.notedelight.shared.database.TestSchema.firstNote
18-
import com.softartdev.notedelight.shared.database.TestSchema.secondNote
19-
import com.softartdev.notedelight.shared.database.TestSchema.thirdNote
20-
import com.softartdev.notedelight.shared.database.createQueryWrapper
15+
import com.softartdev.notedelight.shared.db.SafeRepo.Companion.DB_NAME
16+
import com.softartdev.notedelight.shared.db.TestSchema
17+
import com.softartdev.notedelight.shared.db.TestSchema.firstNote
18+
import com.softartdev.notedelight.shared.db.TestSchema.secondNote
19+
import com.softartdev.notedelight.shared.db.TestSchema.thirdNote
20+
import com.softartdev.notedelight.shared.db.createQueryWrapper
2121
import com.softartdev.notedelight.shared.db.Note
2222
import com.softartdev.notedelight.shared.db.NoteDb
2323
import org.junit.Assert.assertEquals

build.gradle.kts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,15 @@ plugins {
1212
alias(libs.plugins.gms).apply(false)
1313
alias(libs.plugins.crashlytics).apply(false)
1414
}
15+
16+
extra["hasXcode15"] = hasXcode15() //TODO: remove after update Kotlin >= 1.9.10
17+
18+
fun hasXcode15(): Boolean = try {
19+
val process: Process = ProcessBuilder("xcodebuild", "-version").start()
20+
process.inputStream.bufferedReader().use { reader ->
21+
process.waitFor() == 0 && reader.readText().startsWith("Xcode 15.")
22+
}
23+
} catch (t: Throwable) {
24+
t.printStackTrace()
25+
false
26+
}

desktop-compose-app/src/jvmTest/kotlin/com/softartdev/notedelight/ui/DesktopUiTests.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import androidx.compose.ui.test.performClick
1010
import com.arkivanov.decompose.DefaultComponentContext
1111
import com.arkivanov.essenty.lifecycle.LifecycleRegistry
1212
import com.softartdev.notedelight.RootComponent
13-
import com.softartdev.notedelight.shared.database.DatabaseRepo
13+
import com.softartdev.notedelight.shared.db.NoteDAO
1414
import com.softartdev.notedelight.shared.di.allModules
1515
import com.softartdev.notedelight.shared.runOnUiThread
1616
import io.github.aakira.napier.Napier
@@ -39,8 +39,8 @@ class DesktopUiTests : AbstractUiTests() {
3939
val root = runOnUiThread {
4040
RootComponent(componentContext = DefaultComponentContext(lifecycle))
4141
}
42-
val dbRepo: DatabaseRepo = get(DatabaseRepo::class.java)
43-
dbRepo.noteQueries.deleteAll()
42+
val noteDAO: NoteDAO = get(NoteDAO::class.java)
43+
noteDAO.deleteAll()
4444
super.setUp()
4545
composeTestRule.setContent { MainRootUI(root) }
4646
}

gradle/libs.versions.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ targetSdk = "34"
44
minSdk = "21"
55

66
kotlin = "1.8.22"
7-
agp = "8.1.1"
7+
agp = "8.1.3"
88
gms = "4.3.15"
99
crashlytics = "2.9.8"
1010
compose = "1.5.3"
1111
composeCompiler = "1.4.8"
1212
coroutines = "1.7.3"
1313
sqlDelight = "2.0.0"
14-
androidxSqlite = "2.3.1"
14+
androidxSqlite = "2.4.0"
1515
saferoom = "1.3.0"
1616
androidSqlCipher = "4.5.4"
1717
iosSqlCipher = "4.5.4"
@@ -21,9 +21,9 @@ koin = "3.4.3"
2121
kotlinx-datetime = "0.4.1"
2222
napier = "2.6.1"
2323
mokoResources = "0.23.0"
24-
materialThemePrefs = "0.5.7"
25-
androidxActivityCompose = "1.7.2"
26-
androidxComposeTest = "1.5.0"
24+
materialThemePrefs = "0.5.9"
25+
androidxActivityCompose = "1.8.0"
26+
androidxComposeTest = "1.5.4"
2727
androidxCoreSplashscreen = "1.0.1"
2828
androidxLegacySupport = "1.0.0"
2929
androidxPreference = "1.2.1"
@@ -33,8 +33,8 @@ androidxArch = "2.2.0"
3333
androidxTestExt = "1.1.5"
3434
androidxTest = "1.5.2"
3535
androidxTestOrchestrator = "1.4.2"
36-
googleAndroidMaterial = "1.9.0"
37-
firebase = "32.3.0"
36+
googleAndroidMaterial = "1.10.0"
37+
firebase = "32.5.0"
3838
leakCanary = "2.12"
3939
junit = "4.13.2"
4040
mockito = "5.2.0"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Sun Aug 20 23:56:40 GET 2023
1+
#Sun Oct 08 00:47:42 GET 2023
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

ios-compose-kit/build.gradle.kts

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
import org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode
2-
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
3-
41
plugins {
52
alias(libs.plugins.kotlin.multiplatform)
63
alias(libs.plugins.kotlin.cocoapods)
@@ -24,14 +21,9 @@ kotlin {
2421
pod("SQLCipher", libs.versions.iosSqlCipher.get())
2522
framework {
2623
baseName = "iosComposeKit"
27-
embedBitcodeMode.set(BitcodeEmbeddingMode.DISABLE)
28-
freeCompilerArgs += listOf(
29-
"-linker-option", "-framework", "-linker-option", "Metal",
30-
"-linker-option", "-framework", "-linker-option", "CoreText",
31-
"-linker-option", "-framework", "-linker-option", "CoreGraphics",
32-
)
24+
isStatic = true
25+
if (rootProject.extra["hasXcode15"] == true) linkerOpts += "-ld64" //TODO: remove after update Kotlin >= 1.9.10
3326
export(project(":shared"))
34-
// export(project(":shared-compose-ui"))
3527
export(libs.mokoResources)
3628
export(libs.koin.core)
3729
}
@@ -59,10 +51,4 @@ kotlin {
5951
iosSimulatorArm64Main.dependsOn(this)
6052
}
6153
}
62-
targets.withType<KotlinNativeTarget> {
63-
binaries.all {
64-
// TODO: the current compose binary surprises LLVM, so disable checks for now.
65-
freeCompilerArgs += "-Xdisable-phases=VerifyBitcode"
66-
}
67-
}
6854
}

iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)