diff --git a/ai/gradle.lockfile b/ai/gradle.lockfile
new file mode 100644
index 0000000..3a91a64
--- /dev/null
+++ b/ai/gradle.lockfile
@@ -0,0 +1,201 @@
+# This is a Gradle generated file for dependency locking.
+# Manual edits can break the build and are not advised.
+# This file is expected to be part of source control.
+androidx.activity:activity:1.8.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation-experimental:1.4.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation-jvm:1.8.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation:1.8.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat-resources:1.6.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat-resources:1.7.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.appcompat:appcompat:1.6.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat:1.7.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.arch.core:core-common:2.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.arch.core:core-runtime:2.1.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+androidx.arch.core:core-runtime:2.2.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.cardview:cardview:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.collection:collection-jvm:1.4.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.collection:collection:1.1.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+androidx.collection:collection:1.4.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.concurrent:concurrent-futures-ktx:1.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.concurrent:concurrent-futures:1.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.concurrent:concurrent-futures:1.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout-core:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.constraintlayout:constraintlayout-solver:2.0.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout:2.0.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout:2.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.coordinatorlayout:coordinatorlayout:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core-ktx:1.17.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core-ktx:1.18.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.core:core-viewtree:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core:1.17.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core:1.18.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.cursoradapter:cursoradapter:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.customview:customview:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.documentfile:documentfile:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.drawerlayout:drawerlayout:1.1.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.dynamicanimation:dynamicanimation:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.dynamicanimation:dynamicanimation:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.emoji2:emoji2-views-helper:1.2.0=releaseUnitTestRuntimeClasspath
+androidx.emoji2:emoji2-views-helper:1.3.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.emoji2:emoji2:1.2.0=releaseUnitTestRuntimeClasspath
+androidx.emoji2:emoji2:1.3.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.fragment:fragment:1.3.6=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.fragment:fragment:1.5.4=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.graphics:graphics-shapes-android:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath
+androidx.graphics:graphics-shapes-desktop:1.0.1=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.graphics:graphics-shapes:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.interpolator:interpolator:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.legacy:legacy-support-core-utils:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-common:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-livedata-core:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-livedata:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-process:2.6.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-runtime:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.loader:loader:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.localbroadcastmanager:localbroadcastmanager:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.print:print:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.profileinstaller:profileinstaller:1.3.0=releaseUnitTestRuntimeClasspath
+androidx.profileinstaller:profileinstaller:1.3.1=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.recyclerview:recyclerview:1.1.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.recyclerview:recyclerview:1.2.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.resourceinspection:resourceinspection-annotation:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.savedstate:savedstate:1.2.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.startup:startup-runtime:1.1.1=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.test.espresso:espresso-core:3.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.espresso:espresso-idling-resource:3.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.ext:junit:1.3.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.services:storage:1.6.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:core:1.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:monitor:1.8.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:runner:1.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.tracing:tracing:1.1.0=debugAndroidTestCompileClasspath
+androidx.tracing:tracing:1.2.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.transition:transition:1.2.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.transition:transition:1.5.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.vectordrawable:vectordrawable-animated:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.vectordrawable:vectordrawable:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.versionedparcelable:versionedparcelable:1.1.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.viewpager2:viewpager2:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.viewpager:viewpager:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+ch.qos.logback:logback-classic:1.3.14=ktlint
+ch.qos.logback:logback-core:1.3.14=ktlint
+com.github.ajalt.clikt:clikt-jvm:5.0.2=ktlint
+com.github.ajalt.clikt:clikt:5.0.2=ktlint
+com.google.android.material:material:1.10.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+com.google.android.material:material:1.13.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.code.findbugs:jsr305:3.0.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.15.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.30.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+com.google.guava:listenablefuture:1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+com.pinterest.ktlint:ktlint-cli-reporter-baseline:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-checkstyle:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-core:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-format:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-html:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-json:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-plain-summary:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-plain:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-sarif:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-ruleset-core:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-cli:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-logger:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-rule-engine-core:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-rule-engine:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-ruleset-standard:1.5.0=ktlint,ktlintRuleset
+dev.drewhamilton.poko:poko-annotations-jvm:0.17.1=detekt
+dev.drewhamilton.poko:poko-annotations-jvm:0.18.0=ktlint,ktlintRuleset
+dev.drewhamilton.poko:poko-annotations:0.17.1=detekt
+dev.drewhamilton.poko:poko-annotations:0.18.0=ktlint,ktlintRuleset
+io.github.davidburstrom.contester:contester-breakpoint:0.2.0=detekt
+io.github.detekt.sarif4k:sarif4k-jvm:0.6.0=detekt,ktlint,ktlintReporter
+io.github.detekt.sarif4k:sarif4k:0.6.0=detekt,ktlint,ktlintReporter
+io.github.oshai:kotlin-logging-jvm:7.0.3=ktlint,ktlintReporter,ktlintRuleset
+io.github.oshai:kotlin-logging:5.1.0=ktlint,ktlintReporter
+io.gitlab.arturbosch.detekt:detekt-api:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-cli:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-core:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-metrics:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-parser:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-psi-utils:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-html:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-md:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-sarif:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-txt:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-xml:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-complexity:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-coroutines:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-documentation:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-empty:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-errorprone:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-exceptions:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-naming:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-performance:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-style:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-tooling:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-utils:1.23.8=detekt
+javax.inject:javax.inject:1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+junit:junit:4.13.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.ec4j.core:ec4j-core:1.1.0=ktlint,ktlintRuleset
+org.hamcrest:hamcrest-core:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.hamcrest:hamcrest-library:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+org.jcommander:jcommander:1.85=detekt
+org.jetbrains.intellij.deps:trove4j:1.0.20200330=detekt,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-bom:1.8.22=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-reflect:2.0.21=detekt
+org.jetbrains.kotlin:kotlin-script-runtime:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-script-runtime:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.0.21=detekt
+org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0=ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-common:2.3.20=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0=detekt,ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0=detekt,ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib:2.0.21=detekt,kotlinCompilerClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.1.0=ktlint,ktlintReporter,ktlintRuleset
+org.jetbrains.kotlin:kotlin-stdlib:2.3.20=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kotlinBuildToolsApiClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4=detekt,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-datetime:0.6.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.3=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.3=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.3=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kover-jvm-agent:0.9.7=koverJvmAgent,koverJvmReporter
+org.jetbrains:annotations:13.0=detekt,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,ktlint,ktlintReporter,ktlintRuleset
+org.jetbrains:annotations:23.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jspecify:jspecify:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.slf4j:slf4j-api:2.0.7=ktlint
+org.snakeyaml:snakeyaml-engine:2.7=detekt
+empty=androidApis,debugAnnotationProcessorClasspath,debugUnitTestAnnotationProcessorClasspath,detektPlugins,kotlinCompilerPluginClasspath,kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease,kotlinCompilerPluginClasspathReleaseUnitTest,koverExternalArtifacts,lintChecks,lintPublish,releaseAnnotationProcessorClasspath,releaseUnitTestAnnotationProcessorClasspath
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 1bbae64..bbf180c 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -3,6 +3,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.compose)
+ id("com.google.gms.google-services")
}
android {
@@ -57,6 +58,11 @@ android {
}
}
}
+
+ lint {
+ lintConfig = file("lint.xml")
+ abortOnError = true
+ }
}
kotlin {
@@ -86,4 +92,6 @@ dependencies {
debugImplementation(libs.androidx.compose.ui.test.manifest)
implementation(libs.androidx.compose.material.icons.core)
implementation(libs.androidx.compose.material.icons.extended)
+ implementation(platform(libs.firebase.bom))
+ implementation(libs.firebase.analytics)
}
diff --git a/app/google-services.json b/app/google-services.json
new file mode 100644
index 0000000..3ec8b6d
--- /dev/null
+++ b/app/google-services.json
@@ -0,0 +1,29 @@
+{
+ "project_info": {
+ "project_number": "267244224775",
+ "project_id": "openvino-notes",
+ "storage_bucket": "openvino-notes.firebasestorage.app"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:267244224775:android:fb17f8492f57205ffec5a2",
+ "android_client_info": {
+ "package_name": "com.itlab.notes"
+ }
+ },
+ "oauth_client": [],
+ "api_key": [
+ {
+ "current_key": "AIzaSyDLAUPgzEm2R49WU4iGidAUj5b1jBb6FjQ"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": []
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/app/gradle.lockfile b/app/gradle.lockfile
new file mode 100644
index 0000000..aa6b957
--- /dev/null
+++ b/app/gradle.lockfile
@@ -0,0 +1,428 @@
+# This is a Gradle generated file for dependency locking.
+# Manual edits can break the build and are not advised.
+# This file is expected to be part of source control.
+androidx.activity:activity-compose:1.12.4=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.activity:activity-compose:1.13.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.activity:activity-ktx:1.12.4=releaseUnitTestRuntimeClasspath
+androidx.activity:activity-ktx:1.13.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.activity:activity:1.12.4=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.activity:activity:1.13.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.annotation:annotation-experimental:1.4.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation-jvm:1.9.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation:1.9.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat-resources:1.6.1=releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat-resources:1.7.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.appcompat:appcompat:1.6.1=releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat:1.7.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.arch.core:core-common:2.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.arch.core:core-runtime:2.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.asynclayoutinflater:asynclayoutinflater:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.autofill:autofill:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.browser:browser:1.4.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.cardview:cardview:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.collection:collection-jvm:1.5.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.collection:collection-ktx:1.5.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.collection:collection:1.5.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.animation:animation-android:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.animation:animation-android:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.animation:animation-core-android:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.animation:animation-core-android:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.animation:animation-core:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.animation:animation-core:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.animation:animation:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.animation:animation:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.foundation:foundation-android:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.foundation:foundation-android:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.foundation:foundation-layout-android:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.foundation:foundation-layout-android:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.foundation:foundation-layout:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.foundation:foundation-layout:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.foundation:foundation:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.foundation:foundation:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.material3:material3-android:1.3.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.material3:material3-android:1.4.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.material3:material3:1.3.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.material3:material3:1.4.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.material:material-android:1.10.5=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath
+androidx.compose.material:material-icons-core-android:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.material:material-icons-core-android:1.7.8=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath
+androidx.compose.material:material-icons-core-desktop:1.7.8=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.compose.material:material-icons-core:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.material:material-icons-core:1.7.8=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.material:material-icons-extended-android:1.7.8=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath
+androidx.compose.material:material-icons-extended-desktop:1.7.8=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.compose.material:material-icons-extended:1.7.8=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.material:material-ripple-android:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.material:material-ripple-android:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.material:material-ripple:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.material:material-ripple:1.7.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.material:material:1.10.5=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath
+androidx.compose.runtime:runtime-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.runtime:runtime-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.runtime:runtime-annotation-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.runtime:runtime-annotation-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.runtime:runtime-annotation:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.runtime:runtime-annotation:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.runtime:runtime-retain-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.runtime:runtime-retain:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.runtime:runtime-saveable-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.runtime:runtime-saveable-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.runtime:runtime-saveable:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.runtime:runtime-saveable:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.runtime:runtime:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.runtime:runtime:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-geometry-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-geometry-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-geometry:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-geometry:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-graphics-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-graphics-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-graphics:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-graphics:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-test-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.compose.ui:ui-test-junit4-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.compose.ui:ui-test-junit4:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.compose.ui:ui-test-manifest:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.compose.ui:ui-test:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.compose.ui:ui-text-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-text-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-text:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-text:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-tooling-android:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.compose.ui:ui-tooling-data-android:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.compose.ui:ui-tooling-data:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.compose.ui:ui-tooling-preview-android:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-tooling-preview-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-tooling-preview:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-tooling-preview:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-tooling:1.10.5=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.compose.ui:ui-unit-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-unit-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-unit:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-unit:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-util-android:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-util-android:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui-util:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui-util:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose.ui:ui:1.10.5=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.compose.ui:ui:1.9.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose:compose-bom:2024.09.00=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.compose:compose-bom:2026.03.00=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.concurrent:concurrent-futures-ktx:1.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.concurrent:concurrent-futures:1.1.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.concurrent:concurrent-futures:1.2.0=debugAndroidTestCompileClasspath
+androidx.constraintlayout:constraintlayout-core:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.constraintlayout:constraintlayout-solver:2.0.1=releaseUnitTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout:2.0.1=releaseUnitTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout:2.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.coordinatorlayout:coordinatorlayout:1.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core-ktx:1.17.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core-ktx:1.18.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.core:core-viewtree:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core:1.17.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core:1.18.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.credentials:credentials-play-services-auth:1.2.0-rc01=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.credentials:credentials:1.2.0-rc01=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.cursoradapter:cursoradapter:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.customview:customview-poolingcontainer:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.customview:customview:1.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+androidx.customview:customview:1.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.datastore:datastore-android:1.1.7=debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-core-android:1.1.7=debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-core-jvm:1.1.7=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.datastore:datastore-core-okio-jvm:1.1.7=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-core-okio:1.1.7=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-core:1.1.7=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-jvm:1.1.7=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.datastore:datastore-preferences-android:1.1.7=debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences-core-android:1.1.7=debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences-core-jvm:1.1.7=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.datastore:datastore-preferences-core:1.1.7=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences-external-protobuf:1.1.7=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences-jvm:1.1.7=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.datastore:datastore-preferences-proto:1.1.7=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences:1.1.7=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore:1.1.7=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.documentfile:documentfile:1.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.drawerlayout:drawerlayout:1.1.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.dynamicanimation:dynamicanimation:1.0.0=releaseUnitTestRuntimeClasspath
+androidx.dynamicanimation:dynamicanimation:1.1.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.emoji2:emoji2-views-helper:1.4.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.emoji2:emoji2:1.4.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.fragment:fragment:1.1.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+androidx.fragment:fragment:1.3.6=releaseUnitTestRuntimeClasspath
+androidx.fragment:fragment:1.5.4=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.graphics:graphics-path:1.0.1=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.graphics:graphics-shapes-android:1.0.1=debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+androidx.graphics:graphics-shapes-desktop:1.0.1=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.graphics:graphics-shapes:1.0.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.interpolator:interpolator:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.legacy:legacy-support-core-ui:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.legacy:legacy-support-core-utils:1.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.legacy:legacy-support-v4:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.lifecycle:lifecycle-common-java8:2.10.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-common-jvm:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-common:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-extensions:2.2.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.lifecycle:lifecycle-livedata-core-ktx:2.10.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-livedata-core:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-livedata:2.10.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-process:2.10.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-runtime-android:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-runtime-compose-android:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-runtime-compose:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-runtime-ktx-android:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-runtime-ktx:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-runtime:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-service:2.10.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel-android:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel-ktx:2.10.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel-savedstate:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel:2.10.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.loader:loader:1.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.localbroadcastmanager:localbroadcastmanager:1.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.media:media:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.navigationevent:navigationevent-android:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.navigationevent:navigationevent-android:1.0.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.navigationevent:navigationevent-compose-android:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.navigationevent:navigationevent-compose-android:1.0.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.navigationevent:navigationevent-compose:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.navigationevent:navigationevent-compose:1.0.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.navigationevent:navigationevent:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.navigationevent:navigationevent:1.0.2=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.print:print:1.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.privacysandbox.ads:ads-adservices-java:1.1.0-beta11=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.privacysandbox.ads:ads-adservices:1.1.0-beta11=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.profileinstaller:profileinstaller:1.4.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.recyclerview:recyclerview:1.1.0=releaseUnitTestRuntimeClasspath
+androidx.recyclerview:recyclerview:1.2.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.resourceinspection:resourceinspection-annotation:1.0.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.room:room-common-jvm:2.7.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.room:room-common:2.7.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.room:room-ktx:2.7.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.room:room-runtime-android:2.7.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.room:room-runtime:2.7.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.savedstate:savedstate-android:1.4.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.savedstate:savedstate-compose-android:1.4.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.savedstate:savedstate-compose:1.4.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.savedstate:savedstate-ktx:1.4.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.savedstate:savedstate:1.4.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.slidingpanelayout:slidingpanelayout:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.sqlite:sqlite-android:2.5.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.sqlite:sqlite-framework-android:2.5.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.sqlite:sqlite-framework:2.5.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.sqlite:sqlite:2.5.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.startup:startup-runtime:1.1.1=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.swiperefreshlayout:swiperefreshlayout:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.test.espresso:espresso-core:3.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.espresso:espresso-idling-resource:3.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.ext:junit:1.3.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.services:storage:1.6.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:core:1.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:monitor:1.8.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:runner:1.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.tracing:tracing:1.1.0=debugAndroidTestCompileClasspath
+androidx.tracing:tracing:1.2.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.transition:transition:1.2.0=releaseUnitTestRuntimeClasspath
+androidx.transition:transition:1.6.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.vectordrawable:vectordrawable-animated:1.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.vectordrawable:vectordrawable:1.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.versionedparcelable:versionedparcelable:1.1.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.viewpager2:viewpager2:1.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.viewpager:viewpager:1.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.window:window-core-android:1.5.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.window:window-core:1.5.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.window:window:1.5.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.work:work-runtime-ktx:2.9.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.work:work-runtime:2.9.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+ch.qos.logback:logback-classic:1.3.14=ktlint
+ch.qos.logback:logback-core:1.3.14=ktlint
+com.firebaseui:firebase-ui-auth:8.0.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.github.ajalt.clikt:clikt-jvm:5.0.2=ktlint
+com.github.ajalt.clikt:clikt:5.0.2=ktlint
+com.google.android.gms:play-services-ads-identifier:18.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-auth-api-phone:18.0.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-auth-base:18.0.4=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-auth:20.7.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-base:18.5.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+com.google.android.gms:play-services-base:18.9.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-basement:18.9.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-fido:20.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-api:23.2.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-base:23.2.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-impl:23.2.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-sdk-api:23.2.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-sdk:23.2.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement:23.2.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-stats:17.0.2=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-tasks:18.4.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.libraries.identity.googleid:googleid:1.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.material:material:1.10.0=releaseUnitTestRuntimeClasspath
+com.google.android.material:material:1.13.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.play:core-common:2.0.3=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.play:integrity:1.3.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.recaptcha:recaptcha:18.6.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android:annotations:4.1.1.4=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.code.findbugs:jsr305:3.0.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.code.gson:gson:2.10.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.11.0=debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+com.google.errorprone:error_prone_annotations:2.15.0=releaseUnitTestRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.26.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.30.0=debugAndroidTestCompileClasspath
+com.google.firebase:firebase-analytics:23.2.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-annotations:17.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-appcheck-interop:17.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-appcheck:19.0.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-auth-interop:20.0.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-auth:24.0.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-bom:34.12.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-common:22.0.1=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-components:19.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-database-collection:18.0.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-firestore:26.2.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-installations-interop:17.3.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-installations:19.1.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-measurement-connector:19.0.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-storage:22.0.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:protolite-well-known-types:18.0.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.guava:failureaccess:1.0.1=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.guava:guava:31.1-android=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+com.google.guava:guava:32.1.3-android=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.guava:listenablefuture:1.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.j2objc:j2objc-annotations:1.3=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+com.google.protobuf:protobuf-javalite:3.25.5=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.re2j:re2j:1.6=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.jakewharton.timber:timber:5.0.1=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.pinterest.ktlint:ktlint-cli-reporter-baseline:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-checkstyle:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-core:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-format:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-html:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-json:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-plain-summary:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-plain:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-sarif:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-ruleset-core:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-cli:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-logger:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-rule-engine-core:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-rule-engine:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-ruleset-standard:1.5.0=ktlint,ktlintRuleset
+com.squareup.okio:okio-jvm:3.4.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.squareup.okio:okio:3.4.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+dev.drewhamilton.poko:poko-annotations-jvm:0.17.1=detekt
+dev.drewhamilton.poko:poko-annotations-jvm:0.18.0=ktlint,ktlintRuleset
+dev.drewhamilton.poko:poko-annotations:0.17.1=detekt
+dev.drewhamilton.poko:poko-annotations:0.18.0=ktlint,ktlintRuleset
+io.github.davidburstrom.contester:contester-breakpoint:0.2.0=detekt
+io.github.detekt.sarif4k:sarif4k-jvm:0.6.0=detekt,ktlint,ktlintReporter
+io.github.detekt.sarif4k:sarif4k:0.6.0=detekt,ktlint,ktlintReporter
+io.github.oshai:kotlin-logging-jvm:7.0.3=ktlint,ktlintReporter,ktlintRuleset
+io.github.oshai:kotlin-logging:5.1.0=ktlint,ktlintReporter
+io.gitlab.arturbosch.detekt:detekt-api:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-cli:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-core:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-metrics:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-parser:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-psi-utils:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-html:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-md:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-sarif:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-txt:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-xml:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-complexity:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-coroutines:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-documentation:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-empty:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-errorprone:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-exceptions:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-naming:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-performance:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-style:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-tooling:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-utils:1.23.8=detekt
+io.grpc:grpc-android:1.62.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-api:1.62.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-context:1.62.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-core:1.62.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-okhttp:1.62.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-protobuf-lite:1.62.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-stub:1.62.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-util:1.62.2=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.perfmark:perfmark-api:0.26.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+javax.inject:javax.inject:1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+junit:junit:4.13.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.checkerframework:checker-qual:3.12.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+org.checkerframework:checker-qual:3.37.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.codehaus.mojo:animal-sniffer-annotations:1.23=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.ec4j.core:ec4j-core:1.1.0=ktlint,ktlintRuleset
+org.hamcrest:hamcrest-core:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.hamcrest:hamcrest-library:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+org.jcommander:jcommander:1.85=detekt
+org.jetbrains.intellij.deps:trove4j:1.0.20200330=detekt,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.9.22=debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-bom:1.8.22=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable:2.0.21=kotlinCompilerPluginClasspathReleaseUnitTest
+org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable:2.3.20=kotlin-extension,kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease
+org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.22=debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-reflect:2.0.21=detekt
+org.jetbrains.kotlin:kotlin-script-runtime:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-script-runtime:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.0.21=detekt,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0=ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-common:2.3.20=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0=detekt,ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0=detekt,ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.0.21=detekt,kotlinCompilerClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.1.0=ktlint,ktlintReporter,ktlintRuleset
+org.jetbrains.kotlin:kotlin-stdlib:2.3.20=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kotlinBuildToolsApiClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4=detekt,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.9.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-datetime:0.6.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.3=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kover-jvm-agent:0.9.7=koverJvmAgent,koverJvmReporter
+org.jetbrains:annotations:13.0=detekt,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,ktlint,ktlintReporter,ktlintRuleset
+org.jetbrains:annotations:23.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jspecify:jspecify:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.slf4j:slf4j-api:2.0.7=ktlint
+org.snakeyaml:snakeyaml-engine:2.7=detekt
+empty=androidApis,debugAnnotationProcessorClasspath,debugReverseMetadataValues,debugUnitTestAnnotationProcessorClasspath,detektPlugins,kotlinCompilerPluginClasspath,koverExternalArtifacts,lintChecks,releaseAnnotationProcessorClasspath,releaseReverseMetadataValues,releaseUnitTestAnnotationProcessorClasspath
diff --git a/app/lint.xml b/app/lint.xml
new file mode 100644
index 0000000..1146fe8
--- /dev/null
+++ b/app/lint.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3f41043..161467b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,16 +11,16 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Notes">
+
-
-
\ No newline at end of file
+
diff --git a/build.gradle.kts b/build.gradle.kts
index ba7114d..02923db 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -15,6 +15,7 @@ plugins {
alias(libs.plugins.detekt)
alias(libs.plugins.kover)
kotlin("plugin.serialization") version "2.3.20" apply false
+ id("com.google.gms.google-services") version "4.4.4" apply false
}
configure {
diff --git a/data/build.gradle.kts b/data/build.gradle.kts
index d7aab12..7a0819e 100644
--- a/data/build.gradle.kts
+++ b/data/build.gradle.kts
@@ -31,6 +31,11 @@ android {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
+
+ lint {
+ lintConfig = file("lint.xml")
+ abortOnError = true
+ }
}
kotlin {
@@ -40,16 +45,24 @@ kotlin {
}
dependencies {
+ implementation(platform(libs.firebase.bom))
implementation(project(":domain"))
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
implementation(libs.room.runtime)
implementation(libs.room.ktx)
+ implementation(libs.kotlinx.coroutines.play.services)
+ implementation(libs.firebase.firestore)
+ implementation(libs.firebase.storage)
+ implementation(libs.firebase.auth)
+ implementation(libs.firebase.ui.auth)
+ implementation(libs.androidx.work.runtime.ktx)
ksp(libs.room.compiler)
implementation(libs.kotlinx.datetime)
implementation(libs.kotlinx.serialization.json)
implementation(libs.timber)
+ implementation(libs.firebase.analytics)
testImplementation(libs.junit)
testImplementation(libs.junit)
testImplementation(libs.kotlinx.coroutines.test)
diff --git a/data/gradle.lockfile b/data/gradle.lockfile
new file mode 100644
index 0000000..e6fc498
--- /dev/null
+++ b/data/gradle.lockfile
@@ -0,0 +1,398 @@
+# This is a Gradle generated file for dependency locking.
+# Manual edits can break the build and are not advised.
+# This file is expected to be part of source control.
+androidx.activity:activity:1.8.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation-experimental:1.4.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation-jvm:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation-jvm:1.9.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.annotation:annotation:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation:1.9.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.appcompat:appcompat-resources:1.6.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat-resources:1.7.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.appcompat:appcompat:1.6.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat:1.7.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.arch.core:core-common:2.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.arch.core:core-runtime:2.1.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+androidx.arch.core:core-runtime:2.2.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.asynclayoutinflater:asynclayoutinflater:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.browser:browser:1.4.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.cardview:cardview:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.collection:collection-jvm:1.4.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.collection:collection:1.4.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.concurrent:concurrent-futures-ktx:1.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.concurrent:concurrent-futures:1.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.concurrent:concurrent-futures:1.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout-core:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.constraintlayout:constraintlayout-solver:2.0.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout:2.0.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout:2.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.coordinatorlayout:coordinatorlayout:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core-ktx:1.17.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core-ktx:1.18.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.core:core-viewtree:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core:1.17.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core:1.18.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.credentials:credentials-play-services-auth:1.2.0-rc01=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.credentials:credentials:1.2.0-rc01=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.cursoradapter:cursoradapter:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.customview:customview:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.datastore:datastore-android:1.1.7=debugAndroidTestRuntimeClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-core-android:1.1.7=debugAndroidTestRuntimeClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-core-jvm:1.1.7=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.datastore:datastore-core-okio-jvm:1.1.7=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-core-okio:1.1.7=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-core:1.1.7=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-jvm:1.1.7=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.datastore:datastore-preferences-android:1.1.7=debugAndroidTestRuntimeClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences-core-android:1.1.7=debugAndroidTestRuntimeClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences-core-jvm:1.1.7=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.datastore:datastore-preferences-core:1.1.7=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences-external-protobuf:1.1.7=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences-jvm:1.1.7=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.datastore:datastore-preferences-proto:1.1.7=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore-preferences:1.1.7=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.datastore:datastore:1.1.7=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.documentfile:documentfile:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.drawerlayout:drawerlayout:1.1.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.dynamicanimation:dynamicanimation:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.dynamicanimation:dynamicanimation:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.emoji2:emoji2-views-helper:1.2.0=releaseUnitTestRuntimeClasspath
+androidx.emoji2:emoji2-views-helper:1.3.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.emoji2:emoji2:1.2.0=releaseUnitTestRuntimeClasspath
+androidx.emoji2:emoji2:1.3.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.fragment:fragment:1.3.6=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.fragment:fragment:1.5.4=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.graphics:graphics-shapes-android:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath
+androidx.graphics:graphics-shapes-desktop:1.0.1=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.graphics:graphics-shapes:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.interpolator:interpolator:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.legacy:legacy-support-core-ui:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.legacy:legacy-support-core-utils:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.legacy:legacy-support-v4:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.lifecycle:lifecycle-common:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-extensions:2.2.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.lifecycle:lifecycle-livedata-core:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-livedata:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-process:2.6.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-runtime:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-service:2.6.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.loader:loader:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.localbroadcastmanager:localbroadcastmanager:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.media:media:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.print:print:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.privacysandbox.ads:ads-adservices-java:1.1.0-beta11=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.privacysandbox.ads:ads-adservices:1.1.0-beta11=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.profileinstaller:profileinstaller:1.3.0=releaseUnitTestRuntimeClasspath
+androidx.profileinstaller:profileinstaller:1.3.1=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.recyclerview:recyclerview:1.1.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.recyclerview:recyclerview:1.2.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.resourceinspection:resourceinspection-annotation:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.room:room-common-jvm:2.7.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.room:room-common:2.7.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.room:room-compiler-processing:2.7.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+androidx.room:room-compiler:2.7.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+androidx.room:room-external-antlr:2.7.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+androidx.room:room-ktx:2.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.room:room-migration-jvm:2.7.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+androidx.room:room-migration:2.7.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+androidx.room:room-runtime-android:2.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.room:room-runtime:2.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.savedstate:savedstate:1.2.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.slidingpanelayout:slidingpanelayout:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.sqlite:sqlite-android:2.5.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.sqlite:sqlite-framework-android:2.5.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.sqlite:sqlite-framework:2.5.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.sqlite:sqlite:2.5.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.startup:startup-runtime:1.1.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.swiperefreshlayout:swiperefreshlayout:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.test.espresso:espresso-core:3.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.espresso:espresso-idling-resource:3.5.1=debugUnitTestRuntimeClasspath
+androidx.test.espresso:espresso-idling-resource:3.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.ext:junit:1.1.5=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.test.ext:junit:1.3.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.services:storage:1.4.2=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.test.services:storage:1.6.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:annotation:1.0.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.test:core:1.5.0=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.test:core:1.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:monitor:1.6.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+androidx.test:monitor:1.8.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:runner:1.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.tracing:tracing:1.0.0=debugUnitTestCompileClasspath
+androidx.tracing:tracing:1.1.0=debugAndroidTestCompileClasspath
+androidx.tracing:tracing:1.2.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.transition:transition:1.2.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.transition:transition:1.5.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.vectordrawable:vectordrawable-animated:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.vectordrawable:vectordrawable:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.versionedparcelable:versionedparcelable:1.1.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.viewpager2:viewpager2:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.viewpager:viewpager:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.work:work-runtime-ktx:2.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.work:work-runtime:2.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+ch.qos.logback:logback-classic:1.3.14=ktlint
+ch.qos.logback:logback-core:1.3.14=ktlint
+com.almworks.sqlite4java:sqlite4java:1.0.392=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+com.firebaseui:firebase-ui-auth:8.0.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.github.ajalt.clikt:clikt-jvm:5.0.2=ktlint
+com.github.ajalt.clikt:clikt:5.0.2=ktlint
+com.google.android.gms:play-services-ads-identifier:18.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-auth-api-phone:18.0.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-auth-base:18.0.4=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-auth:20.3.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+com.google.android.gms:play-services-auth:20.7.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-base:18.5.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+com.google.android.gms:play-services-base:18.9.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-basement:18.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-fido:20.1.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-api:23.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-base:23.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-impl:23.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-sdk-api:23.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement-sdk:23.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-measurement:23.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-stats:17.0.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.gms:play-services-tasks:18.4.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.libraries.identity.googleid:googleid:1.1.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.material:material:1.10.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+com.google.android.material:material:1.13.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.play:core-common:2.0.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.play:integrity:1.3.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android.recaptcha:recaptcha:18.6.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.android:annotations:4.1.1.4=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.auto.value:auto-value-annotations:1.10.4=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+com.google.auto.value:auto-value-annotations:1.6.3=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.google.auto:auto-common:1.2.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.google.code.findbugs:jsr305:3.0.2=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.code.gson:gson:2.10.1=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.devtools.ksp:symbol-processing-api:2.0.10-1.0.24=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.google.devtools.ksp:symbol-processing:2.3.6=kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease
+com.google.errorprone:error_prone_annotation:2.19.1=debugUnitTestRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.11.0=debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+com.google.errorprone:error_prone_annotations:2.15.0=releaseUnitTestRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.26.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.26.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.google.errorprone:error_prone_annotations:2.30.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+com.google.firebase:firebase-analytics:23.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-annotations:17.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-appcheck-interop:17.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-appcheck:19.0.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-auth-interop:20.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-auth:24.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-bom:34.12.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-common:22.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-components:19.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-database-collection:18.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-firestore:26.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-installations-interop:17.3.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-installations:19.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-measurement-connector:19.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:firebase-storage:22.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.firebase:protolite-well-known-types:18.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.guava:failureaccess:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.guava:failureaccess:1.0.2=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.google.guava:guava:31.1-android=debugAndroidTestCompileClasspath,debugCompileClasspath,releaseCompileClasspath
+com.google.guava:guava:31.1-jre=debugUnitTestCompileClasspath
+com.google.guava:guava:32.1.3-android=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.guava:guava:33.2.1-jre=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.google.guava:listenablefuture:1.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.j2objc:j2objc-annotations:1.3=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+com.google.protobuf:protobuf-javalite:3.25.5=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.re2j:re2j:1.6=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.ibm.icu:icu4j:74.2=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+com.intellij:annotations:12.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.jakewharton.timber:timber:5.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.pinterest.ktlint:ktlint-cli-reporter-baseline:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-checkstyle:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-core:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-format:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-html:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-json:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-plain-summary:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-plain:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-sarif:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-ruleset-core:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-cli:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-logger:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-rule-engine-core:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-rule-engine:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-ruleset-standard:1.5.0=ktlint,ktlintRuleset
+com.squareup.okio:okio-jvm:3.4.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.squareup.okio:okio:3.4.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.squareup:javapoet:1.13.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.squareup:kotlinpoet-javapoet:1.17.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.squareup:kotlinpoet-jvm:1.17.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+com.squareup:kotlinpoet:1.17.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+commons-codec:commons-codec:1.15=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+dev.drewhamilton.poko:poko-annotations-jvm:0.17.1=detekt
+dev.drewhamilton.poko:poko-annotations-jvm:0.18.0=ktlint,ktlintRuleset
+dev.drewhamilton.poko:poko-annotations:0.17.1=detekt
+dev.drewhamilton.poko:poko-annotations:0.18.0=ktlint,ktlintRuleset
+io.github.davidburstrom.contester:contester-breakpoint:0.2.0=detekt
+io.github.detekt.sarif4k:sarif4k-jvm:0.6.0=detekt,ktlint,ktlintReporter
+io.github.detekt.sarif4k:sarif4k:0.6.0=detekt,ktlint,ktlintReporter
+io.github.oshai:kotlin-logging-jvm:7.0.3=ktlint,ktlintReporter,ktlintRuleset
+io.github.oshai:kotlin-logging:5.1.0=ktlint,ktlintReporter
+io.gitlab.arturbosch.detekt:detekt-api:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-cli:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-core:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-metrics:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-parser:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-psi-utils:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-html:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-md:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-sarif:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-txt:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-xml:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-complexity:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-coroutines:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-documentation:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-empty:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-errorprone:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-exceptions:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-naming:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-performance:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-style:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-tooling:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-utils:1.23.8=detekt
+io.grpc:grpc-android:1.62.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-api:1.62.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-context:1.62.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-core:1.62.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-okhttp:1.62.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-protobuf-lite:1.62.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-stub:1.62.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.grpc:grpc-util:1.62.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+io.mockk:mockk-agent-api-jvm:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.mockk:mockk-agent-api:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.mockk:mockk-agent-jvm:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.mockk:mockk-agent:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.mockk:mockk-core-jvm:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.mockk:mockk-core:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.mockk:mockk-dsl-jvm:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.mockk:mockk-dsl:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.mockk:mockk-jvm:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.mockk:mockk:1.13.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+io.perfmark:perfmark-api:0.26.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+javax.annotation:javax.annotation-api:1.3.2=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+javax.inject:javax.inject:1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+junit:junit:4.13.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+net.bytebuddy:byte-buddy-agent:1.14.6=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+net.bytebuddy:byte-buddy:1.14.6=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.bouncycastle:bcprov-jdk18on:1.77=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.checkerframework:checker-qual:3.12.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+org.checkerframework:checker-qual:3.37.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.checkerframework:checker-qual:3.42.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+org.codehaus.mojo:animal-sniffer-annotations:1.23=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.conscrypt:conscrypt-openjdk-uber:2.5.2=debugUnitTestRuntimeClasspath
+org.ec4j.core:ec4j-core:1.1.0=ktlint,ktlintRuleset
+org.hamcrest:hamcrest-core:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.hamcrest:hamcrest-library:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+org.jcommander:jcommander:1.85=detekt
+org.jetbrains.intellij.deps:trove4j:1.0.20200330=detekt,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.9.22=debugAndroidTestRuntimeClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-bom:1.8.22=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-metadata-jvm:2.1.10=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.22=debugAndroidTestRuntimeClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-reflect:1.9.10=debugUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.9.24=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+org.jetbrains.kotlin:kotlin-reflect:2.0.21=detekt
+org.jetbrains.kotlin:kotlin-script-runtime:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-script-runtime:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-serialization-compiler-plugin-embeddable:2.3.20=kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease
+org.jetbrains.kotlin:kotlin-stdlib-common:2.0.21=detekt
+org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0=ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-common:2.1.10=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.3.20=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0=detekt,ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0=detekt,ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.24=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.0.21=detekt,kotlinCompilerClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.1.0=ktlint,ktlintReporter,ktlintRuleset
+org.jetbrains.kotlin:kotlin-stdlib:2.1.10=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.3.20=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kotlinBuildToolsApiClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4=detekt,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.9.0=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-datetime:0.6.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.3=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.3=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.3=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kover-jvm-agent:0.9.7=koverJvmAgent
+org.jetbrains:annotations:13.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,detekt,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,ktlint,ktlintReporter,ktlintRuleset
+org.jetbrains:annotations:23.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jspecify:jspecify:1.0.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.junit.jupiter:junit-jupiter-api:5.8.2=debugUnitTestRuntimeClasspath
+org.junit.jupiter:junit-jupiter-engine:5.8.2=debugUnitTestRuntimeClasspath
+org.junit.jupiter:junit-jupiter-params:5.8.2=debugUnitTestRuntimeClasspath
+org.junit.jupiter:junit-jupiter:5.8.2=debugUnitTestRuntimeClasspath
+org.junit.platform:junit-platform-commons:1.8.2=debugUnitTestRuntimeClasspath
+org.junit.platform:junit-platform-engine:1.8.2=debugUnitTestRuntimeClasspath
+org.junit:junit-bom:5.8.2=debugUnitTestRuntimeClasspath
+org.objenesis:objenesis:3.3=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.opentest4j:opentest4j:1.2.0=debugUnitTestRuntimeClasspath
+org.ow2.asm:asm-analysis:9.7=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.ow2.asm:asm-commons:9.7=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.ow2.asm:asm-tree:9.7=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.ow2.asm:asm-util:9.7=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.ow2.asm:asm:9.7=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:annotations:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:junit:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:nativeruntime-dist-compat:1.0.9=debugUnitTestRuntimeClasspath
+org.robolectric:nativeruntime:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:pluginapi:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:plugins-maven-dependency-resolver:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:resources:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:robolectric:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:sandbox:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:shadowapi:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:shadows-framework:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:shadows-versioning:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:utils-reflector:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.robolectric:utils:4.12.1=debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath
+org.slf4j:slf4j-api:2.0.7=ktlint
+org.snakeyaml:snakeyaml-engine:2.7=detekt
+org.xerial:sqlite-jdbc:3.41.2.2=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,kspDebugKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
+empty=_agp_internal_debugUnitTest_kspClasspath,androidApis,debugAnnotationProcessorClasspath,debugUnitTestAnnotationProcessorClasspath,detektPlugins,kotlinCompilerPluginClasspath,kotlinCompilerPluginClasspathReleaseUnitTest,lintChecks,lintPublish,releaseAnnotationProcessorClasspath,releaseUnitTestAnnotationProcessorClasspath
diff --git a/data/lint.xml b/data/lint.xml
new file mode 100644
index 0000000..1146fe8
--- /dev/null
+++ b/data/lint.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/data/src/main/java/com/itlab/data/cloud/AuthManager.kt b/data/src/main/java/com/itlab/data/cloud/AuthManager.kt
new file mode 100644
index 0000000..50f5c0b
--- /dev/null
+++ b/data/src/main/java/com/itlab/data/cloud/AuthManager.kt
@@ -0,0 +1,28 @@
+package com.itlab.data.cloud
+
+import android.content.Context
+import android.content.Intent
+import com.firebase.ui.auth.AuthUI
+import com.google.firebase.auth.FirebaseAuth
+
+class AuthManager(
+ private val auth: FirebaseAuth,
+) {
+ fun getSignInIntent(): Intent =
+ AuthUI
+ .getInstance()
+ .createSignInIntentBuilder()
+ .setAvailableProviders(
+ listOf(
+ AuthUI.IdpConfig.EmailBuilder().build(),
+ AuthUI.IdpConfig.GoogleBuilder().build(),
+ ),
+ ).setIsSmartLockEnabled(false)
+ .build()
+
+ fun getCurrentUserId(): String? = auth.currentUser?.uid
+
+ fun signOut(context: Context) {
+ AuthUI.getInstance().signOut(context)
+ }
+}
diff --git a/data/src/main/java/com/itlab/data/cloud/FirebaseCloudDataSource.kt b/data/src/main/java/com/itlab/data/cloud/FirebaseCloudDataSource.kt
new file mode 100644
index 0000000..3b609e7
--- /dev/null
+++ b/data/src/main/java/com/itlab/data/cloud/FirebaseCloudDataSource.kt
@@ -0,0 +1,101 @@
+package com.itlab.data.cloud
+
+import com.google.firebase.storage.FirebaseStorage
+import com.itlab.domain.cloud.CloudDataSource
+import com.itlab.domain.cloud.CloudNoteMetadata
+import com.itlab.domain.cloud.Result
+import kotlinx.coroutines.CancellationException
+import kotlinx.coroutines.tasks.await
+import kotlinx.datetime.Instant
+import java.io.File
+
+class FirebaseCloudDataSource(
+ private val storage: FirebaseStorage = FirebaseStorage.getInstance(),
+) : CloudDataSource {
+ private val rootRef = storage.reference
+
+ override suspend fun listNoteMetadata(userId: String): Result> =
+ safeCall {
+ val listRef = rootRef.child("users/$userId/notes")
+ val result = listRef.listAll().await()
+
+ val metadataList =
+ result.items.map { itemRef ->
+ val metadata = itemRef.metadata.await()
+ CloudNoteMetadata(
+ key = itemRef.path,
+ updatedAt = Instant.fromEpochMilliseconds(metadata.updatedTimeMillis),
+ )
+ }
+ metadataList
+ }
+
+ override suspend fun downloadNote(key: String): Result =
+ safeCall {
+ val fileRef = rootRef.child(key)
+ val bytes = fileRef.getBytes(MAX_NOTE_SIZE).await()
+ String(bytes)
+ }
+
+ override suspend fun uploadNote(
+ key: String,
+ json: String,
+ ): Result =
+ safeCall {
+ val fileRef = rootRef.child(key)
+ fileRef.putBytes(json.toByteArray()).await()
+ Unit
+ }
+
+ override suspend fun deleteNote(key: String): Result =
+ safeCall {
+ rootRef.child(key).delete().await()
+ Unit
+ }
+
+ override suspend fun uploadMedia(
+ key: String,
+ file: File,
+ ): Result =
+ safeCall {
+ val fileRef = rootRef.child(key)
+ file.inputStream().use { stream ->
+ fileRef.putStream(stream).await()
+ }
+ Unit
+ }
+
+ override suspend fun downloadMedia(
+ key: String,
+ destination: File,
+ ): Result =
+ safeCall {
+ val fileRef = rootRef.child(key)
+ fileRef.getFile(destination).await()
+ Unit
+ }
+
+ override suspend fun deleteMedia(key: String): Result =
+ safeCall {
+ rootRef.child(key).delete().await()
+ Unit
+ }
+
+ @Suppress("TooGenericExceptionCaught")
+ private suspend inline fun safeCall(crossinline block: suspend () -> T): Result =
+ try {
+ Result.Success(block())
+ } catch (e: CancellationException) {
+ throw e
+ } catch (e: com.google.firebase.FirebaseException) {
+ Result.Error(e)
+ } catch (e: java.io.IOException) {
+ Result.Error(e)
+ } catch (e: Exception) {
+ Result.Error(e)
+ }
+
+ companion object {
+ private const val MAX_NOTE_SIZE = 5 * 1024 * 1024L // 5MB
+ }
+}
diff --git a/data/src/main/java/com/itlab/data/cloud/SyncManagerImpl.kt b/data/src/main/java/com/itlab/data/cloud/SyncManagerImpl.kt
new file mode 100644
index 0000000..21897de
--- /dev/null
+++ b/data/src/main/java/com/itlab/data/cloud/SyncManagerImpl.kt
@@ -0,0 +1,115 @@
+package com.itlab.data.cloud
+
+import com.itlab.data.dao.NoteDao
+import com.itlab.data.mapper.NoteEntityJsonConverter
+import com.itlab.domain.cloud.CloudDataSource
+import com.itlab.domain.cloud.Result
+import com.itlab.domain.cloud.SyncManager
+import com.itlab.domain.cloud.SyncState
+import kotlinx.coroutines.CancellationException
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.first
+import kotlinx.serialization.SerializationException
+import timber.log.Timber
+import java.io.IOException
+
+class SyncManagerImpl(
+ private val noteDao: NoteDao,
+ private val cloudDataSource: CloudDataSource,
+ private val jsonConverter: NoteEntityJsonConverter,
+) : SyncManager {
+ private val _syncState = MutableStateFlow(SyncState.Idle)
+ override val syncState: StateFlow = _syncState.asStateFlow()
+
+ override suspend fun sync(userId: String) {
+ _syncState.value = SyncState.Syncing
+
+ try {
+ pushChanges(userId)
+ pullUpdates(userId)
+
+ _syncState.value = SyncState.Success
+ } catch (e: kotlinx.coroutines.CancellationException) {
+ throw e
+ } catch (e: CancellationException) {
+ throw e
+ } catch (e: IOException) {
+ handleError("Network error during sync", e)
+ throw e
+ } catch (e: SerializationException) {
+ handleError("Data parsing error", e)
+ throw e
+ } catch (e: IllegalStateException) {
+ handleError("Invalid state during sync", e)
+ throw e
+ }
+ }
+
+ private fun handleError(
+ message: String,
+ e: Exception,
+ ) {
+ Timber.e(e, message)
+ _syncState.value = SyncState.Error(e.message ?: "Unknown error")
+ }
+
+ override suspend fun pushChanges(userId: String) {
+ val unsyncedEntities = noteDao.getUnsyncedNotes()
+
+ for (entity in unsyncedEntities) {
+ val json = with(jsonConverter) { entity.toJson() }
+
+ val result = cloudDataSource.uploadNote(entity.id, json)
+
+ when (result) {
+ is Result.Success -> {
+ val syncedEntity = entity.copy(isSynced = true)
+ noteDao.update(syncedEntity)
+ }
+ is Result.Error -> {
+ Timber.e(result.exception, "Couldn't upload the note ${entity.id}")
+ throw result.exception
+ }
+ }
+ }
+ }
+
+ override suspend fun pullUpdates(userId: String) {
+ val metadataResult = cloudDataSource.listNoteMetadata(userId)
+
+ val remoteMetadata =
+ when (metadataResult) {
+ is Result.Success -> metadataResult.data
+ is Result.Error -> throw metadataResult.exception
+ }
+
+ val localNotes = noteDao.getAllNotes().first()
+ val localIds = localNotes.map { it.id }
+
+ val toDownload =
+ remoteMetadata.filter { cloudMeta ->
+ cloudMeta.key !in localIds
+ }
+
+ for (meta in toDownload) {
+ val downloadResult = cloudDataSource.downloadNote(meta.key)
+
+ when (downloadResult) {
+ is Result.Success -> {
+ val entity =
+ jsonConverter.toEntity(
+ jsonString = downloadResult.data,
+ userId = userId,
+ )
+ noteDao.insert(entity)
+ }
+ is Result.Error -> {
+ Timber.e(downloadResult.exception, "Couldn't download the note ${meta.key}")
+ throw downloadResult.exception
+ }
+ }
+ }
+ }
+}
diff --git a/data/src/main/java/com/itlab/data/cloud/SyncWorker.kt b/data/src/main/java/com/itlab/data/cloud/SyncWorker.kt
new file mode 100644
index 0000000..d43f06a
--- /dev/null
+++ b/data/src/main/java/com/itlab/data/cloud/SyncWorker.kt
@@ -0,0 +1,40 @@
+package com.itlab.data.cloud
+
+import android.content.Context
+import androidx.work.CoroutineWorker
+import androidx.work.WorkerParameters
+import com.itlab.data.cloud.AuthManager
+import com.itlab.domain.cloud.SyncManager
+import kotlinx.coroutines.CancellationException
+import timber.log.Timber
+
+class SyncWorker(
+ context: Context,
+ params: WorkerParameters,
+ private val syncManager: SyncManager,
+ private val authManager: AuthManager,
+) : CoroutineWorker(context, params) {
+ @Suppress("TooGenericExceptionCaught")
+ override suspend fun doWork(): Result {
+ val userId =
+ authManager.getCurrentUserId() ?: run {
+ Timber.e("Sync failed: User is not authorized")
+ return Result.failure()
+ }
+ return try {
+ Timber.d("Starting sync for user: $userId")
+ syncManager.sync(userId)
+
+ Timber.d("Sync completed successfully")
+ Result.success()
+ } catch (e: CancellationException) {
+ throw e
+ } catch (e: java.io.IOException) {
+ Timber.e(e, "Sync retryable error: %s", e.message)
+ Result.retry()
+ } catch (e: Exception) {
+ Timber.e(e, "Sync fatal error: %s", e.message)
+ Result.failure()
+ }
+ }
+}
diff --git a/data/src/main/java/com/itlab/data/dao/NoteDao.kt b/data/src/main/java/com/itlab/data/dao/NoteDao.kt
index 48e273f..3da3c37 100644
--- a/data/src/main/java/com/itlab/data/dao/NoteDao.kt
+++ b/data/src/main/java/com/itlab/data/dao/NoteDao.kt
@@ -11,7 +11,7 @@ import kotlinx.coroutines.flow.Flow
@Dao
interface NoteDao {
- @Query("SELECT * FROM notes ORDER BY updatedAt DESC")
+ @Query("SELECT * FROM notes WHERE isDeleted = 0 ORDER BY updatedAt DESC")
fun getAllNotes(): Flow>
@Query("SELECT * FROM notes WHERE id = :noteId")
@@ -20,6 +20,15 @@ interface NoteDao {
@Query("SELECT * FROM notes WHERE folderId = :folderId ORDER BY updatedAt DESC")
fun getNotesByFolder(folderId: String): Flow>
+ @Query("SELECT * FROM notes WHERE isSynced = 0 AND isDeleted = 0")
+ suspend fun getUnsyncedNotes(): List
+
+ @Query("SELECT * FROM notes WHERE isDeleted = 1")
+ suspend fun getDeletedNotes(): List
+
+ @Query("DELETE FROM notes WHERE id = :id")
+ suspend fun hardDeleteById(id: String)
+
@Insert
suspend fun insert(note: NoteEntity)
@@ -31,7 +40,4 @@ interface NoteDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertAll(notes: List)
-
- @Query("SELECT * FROM notes WHERE isSynced = 0")
- suspend fun getUnsyncedNotes(): List
}
diff --git a/data/src/main/java/com/itlab/data/entity/FolderEntity.kt b/data/src/main/java/com/itlab/data/entity/FolderEntity.kt
index 943bb82..82d4ab8 100644
--- a/data/src/main/java/com/itlab/data/entity/FolderEntity.kt
+++ b/data/src/main/java/com/itlab/data/entity/FolderEntity.kt
@@ -10,5 +10,7 @@ data class FolderEntity(
val name: String,
val createdAt: Instant,
val updatedAt: Instant,
+ val isSynced: Boolean = false,
+ val isDeleted: Boolean = false,
val metadata: Map,
)
diff --git a/data/src/main/java/com/itlab/data/entity/MediaEntity.kt b/data/src/main/java/com/itlab/data/entity/MediaEntity.kt
index 70a4805..90fe3d7 100644
--- a/data/src/main/java/com/itlab/data/entity/MediaEntity.kt
+++ b/data/src/main/java/com/itlab/data/entity/MediaEntity.kt
@@ -25,5 +25,6 @@ data class MediaEntity(
val remoteUrl: String?,
val localPath: String?,
val mimeType: String,
+ val isSynced: Boolean = false,
val size: Long? = null,
)
diff --git a/data/src/main/java/com/itlab/data/entity/NoteEntity.kt b/data/src/main/java/com/itlab/data/entity/NoteEntity.kt
index b3926fe..3679c9f 100644
--- a/data/src/main/java/com/itlab/data/entity/NoteEntity.kt
+++ b/data/src/main/java/com/itlab/data/entity/NoteEntity.kt
@@ -8,6 +8,7 @@ import kotlinx.datetime.Instant
data class NoteEntity(
@PrimaryKey
val id: String,
+ val userId: String,
val title: String,
val content: String,
val folderId: String? = null,
@@ -16,5 +17,6 @@ data class NoteEntity(
val tags: String? = null,
val isFavorite: Boolean = false,
val isSynced: Boolean = false,
+ val isDeleted: Boolean = false,
val summary: String? = null,
)
diff --git a/data/src/main/java/com/itlab/data/mapper/ContentItemMapper.kt b/data/src/main/java/com/itlab/data/mapper/ContentItemMapper.kt
new file mode 100644
index 0000000..3ecfd29
--- /dev/null
+++ b/data/src/main/java/com/itlab/data/mapper/ContentItemMapper.kt
@@ -0,0 +1,32 @@
+package com.itlab.data.mapper
+
+import com.itlab.data.model.ContentItemDto
+import com.itlab.data.model.DataSourceDto
+import com.itlab.data.model.TextFormatDto
+import com.itlab.domain.model.ContentItem
+import com.itlab.domain.model.DataSource
+import com.itlab.domain.model.TextFormat
+
+fun ContentItem.toDto(): ContentItemDto =
+ when (this) {
+ is ContentItem.Text -> ContentItemDto.Text(text, format.toDto())
+ is ContentItem.Image -> ContentItemDto.Image(source.toDto(), mimeType, width, height)
+ is ContentItem.File -> ContentItemDto.File(source.toDto(), mimeType, name, size)
+ is ContentItem.Link -> ContentItemDto.Link(url, title)
+ }
+
+fun ContentItemDto.toDomain(): ContentItem =
+ when (this) {
+ is ContentItemDto.Text -> ContentItem.Text(text, format.toDomain())
+ is ContentItemDto.Image -> ContentItem.Image(source.toDomain(), mimeType, width, height)
+ is ContentItemDto.File -> ContentItem.File(source.toDomain(), mimeType, name, size)
+ is ContentItemDto.Link -> ContentItem.Link(url, title)
+ }
+
+fun DataSource.toDto() = DataSourceDto(localPath, remoteUrl)
+
+fun DataSourceDto.toDomain() = DataSource(localPath, remoteUrl)
+
+fun TextFormat.toDto() = TextFormatDto.valueOf(this.name)
+
+fun TextFormatDto.toDomain() = TextFormat.valueOf(this.name)
diff --git a/data/src/main/java/com/itlab/data/mapper/NoteEntityJsonConverter.kt b/data/src/main/java/com/itlab/data/mapper/NoteEntityJsonConverter.kt
new file mode 100644
index 0000000..98168f0
--- /dev/null
+++ b/data/src/main/java/com/itlab/data/mapper/NoteEntityJsonConverter.kt
@@ -0,0 +1,64 @@
+package com.itlab.data.mapper
+
+import com.itlab.data.entity.NoteEntity
+import com.itlab.data.model.NoteBodyDto
+import com.itlab.data.model.NoteDto
+import com.itlab.data.model.NoteMetaDto
+import kotlinx.serialization.encodeToString
+import kotlinx.serialization.json.Json
+
+class NoteEntityJsonConverter(
+ private val json: Json =
+ Json {
+ ignoreUnknownKeys = true
+ encodeDefaults = true
+ },
+) {
+ fun NoteEntity.toDto(): NoteDto =
+ NoteDto(
+ id = id,
+ folderId = folderId,
+ body =
+ NoteBodyDto(
+ title = title,
+ content = content,
+ summary = summary,
+ ),
+ metadata =
+ NoteMetaDto(
+ createdAt = createdAt.toEpochMilliseconds(),
+ updatedAt = updatedAt.toEpochMilliseconds(),
+ tags = tags,
+ isFavorite = isFavorite,
+ ),
+ )
+
+ fun NoteEntity.toJson(): String {
+ val dto = this.toDto()
+ return json.encodeToString(dto)
+ }
+
+ fun toEntity(
+ jsonString: String,
+ userId: String,
+ ): NoteEntity {
+ val dto = json.decodeFromString(jsonString)
+ return dto.toEntity(userId)
+ }
+
+ fun NoteDto.toEntity(userId: String): NoteEntity =
+ NoteEntity(
+ id = id,
+ userId = userId,
+ title = body.title,
+ content = body.content,
+ folderId = folderId,
+ createdAt = kotlinx.datetime.Instant.fromEpochMilliseconds(metadata.createdAt),
+ updatedAt = kotlinx.datetime.Instant.fromEpochMilliseconds(metadata.updatedAt),
+ tags = metadata.tags,
+ isFavorite = metadata.isFavorite,
+ isSynced = true,
+ isDeleted = false,
+ summary = body.summary,
+ )
+}
diff --git a/data/src/main/java/com/itlab/data/mapper/NoteMapper.kt b/data/src/main/java/com/itlab/data/mapper/NoteMapper.kt
index 5033a15..8d0fea6 100644
--- a/data/src/main/java/com/itlab/data/mapper/NoteMapper.kt
+++ b/data/src/main/java/com/itlab/data/mapper/NoteMapper.kt
@@ -2,8 +2,12 @@ package com.itlab.data.mapper
import com.itlab.data.entity.MediaEntity
import com.itlab.data.entity.NoteEntity
+import com.itlab.data.mapper.toDomain
+import com.itlab.data.mapper.toDto
+import com.itlab.data.model.ContentItemDto
import com.itlab.domain.model.ContentItem
import com.itlab.domain.model.Note
+import com.itlab.domain.model.SyncState
import kotlinx.serialization.SerializationException
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
@@ -28,14 +32,15 @@ class NoteMapper(
val noteEntity =
NoteEntity(
id = noteId,
+ userId = note.userId,
title = note.title,
folderId = note.folderId,
- content = json.encodeToString(note.contentItems),
+ content = serializeContent(note.contentItems),
createdAt = note.createdAt,
updatedAt = note.updatedAt,
tags = json.encodeToString(note.tags),
isFavorite = note.isFavorite,
- isSynced = false,
+ isSynced = note.syncStatus == SyncState.SYNCED,
summary = note.summary,
)
@@ -45,7 +50,7 @@ class NoteMapper(
fun toDomain(entity: NoteEntity): Note {
val items =
try {
- json.decodeFromString>(entity.content)
+ deserializeContent(entity.content)
} catch (e: SerializationException) {
Timber.e(e, "Note content mapping failed for entity: ${entity.id}")
emptyList()
@@ -61,6 +66,7 @@ class NoteMapper(
return Note(
id = entity.id,
+ userId = entity.userId,
title = entity.title,
contentItems = items,
folderId = entity.folderId,
@@ -68,6 +74,8 @@ class NoteMapper(
updatedAt = entity.updatedAt,
tags = tags,
isFavorite = entity.isFavorite,
+ syncStatus = if (entity.isSynced) SyncState.SYNCED else SyncState.PENDING,
+ summary = entity.summary,
)
}
@@ -92,4 +100,14 @@ class NoteMapper(
size = (item as? ContentItem.File)?.size,
)
}
+
+ fun serializeContent(items: List): String {
+ val dtos = items.map { it.toDto() }
+ return json.encodeToString(dtos)
+ }
+
+ fun deserializeContent(jsonString: String): List {
+ val dtos = json.decodeFromString>(jsonString)
+ return dtos.map { it.toDomain() }
+ }
}
diff --git a/data/src/main/java/com/itlab/data/model/ContentItemDto.kt b/data/src/main/java/com/itlab/data/model/ContentItemDto.kt
new file mode 100644
index 0000000..ce3e985
--- /dev/null
+++ b/data/src/main/java/com/itlab/data/model/ContentItemDto.kt
@@ -0,0 +1,53 @@
+package com.itlab.data.model
+
+import kotlinx.serialization.SerialName
+import kotlinx.serialization.Serializable
+
+@Serializable
+sealed class ContentItemDto {
+ @Serializable
+ data class Text(
+ val text: String,
+ val format: TextFormatDto = TextFormatDto.PLAIN,
+ ) : ContentItemDto()
+
+ @Serializable
+ data class Image(
+ val source: DataSourceDto,
+ val mimeType: String,
+ val width: Int? = null,
+ val height: Int? = null,
+ ) : ContentItemDto()
+
+ @Serializable
+ data class File(
+ val source: DataSourceDto,
+ val mimeType: String,
+ val name: String,
+ val size: Long? = null,
+ ) : ContentItemDto()
+
+ @Serializable
+ data class Link(
+ val url: String,
+ val title: String? = null,
+ ) : ContentItemDto()
+}
+
+@Serializable
+enum class TextFormatDto {
+ @SerialName("PLAIN")
+ PLAIN,
+
+ @SerialName("MARKDOWN")
+ MARKDOWN,
+
+ @SerialName("HTML")
+ HTML,
+}
+
+@Serializable
+data class DataSourceDto(
+ val localPath: String? = null,
+ val remoteUrl: String? = null,
+)
diff --git a/data/src/main/java/com/itlab/data/model/NoteDto.kt b/data/src/main/java/com/itlab/data/model/NoteDto.kt
new file mode 100644
index 0000000..91b4bc7
--- /dev/null
+++ b/data/src/main/java/com/itlab/data/model/NoteDto.kt
@@ -0,0 +1,26 @@
+package com.itlab.data.model
+
+import kotlinx.serialization.Serializable
+
+@Serializable
+data class NoteDto(
+ val id: String,
+ val folderId: String?,
+ val body: NoteBodyDto,
+ val metadata: NoteMetaDto,
+)
+
+@Serializable
+data class NoteBodyDto(
+ val title: String,
+ val content: String,
+ val summary: String?,
+)
+
+@Serializable
+data class NoteMetaDto(
+ val createdAt: Long,
+ val updatedAt: Long,
+ val tags: String?,
+ val isFavorite: Boolean,
+)
diff --git a/data/src/test/java/com/itlab/data/dao/MediaDaoTest.kt b/data/src/test/java/com/itlab/data/dao/MediaDaoTest.kt
index d88e3a6..94d45b5 100644
--- a/data/src/test/java/com/itlab/data/dao/MediaDaoTest.kt
+++ b/data/src/test/java/com/itlab/data/dao/MediaDaoTest.kt
@@ -23,7 +23,7 @@ class MediaDaoTest {
private lateinit var database: AppDatabase
private lateinit var mediaDao: MediaDao
private lateinit var noteDao: NoteDao
-
+ private val testUserId = "test_user_1"
val testTime = Instant.parse("2026-03-24T12:00:00Z")
private suspend fun insertParentNote(id: String) {
@@ -35,6 +35,7 @@ class MediaDaoTest {
createdAt = testTime,
updatedAt = kotlinx.datetime.Instant.fromEpochMilliseconds(0),
isSynced = true,
+ userId = testUserId,
)
noteDao.insert(note)
}
diff --git a/data/src/test/java/com/itlab/data/dao/NoteDaoTest.kt b/data/src/test/java/com/itlab/data/dao/NoteDaoTest.kt
index 5da39f6..bc0cfc9 100644
--- a/data/src/test/java/com/itlab/data/dao/NoteDaoTest.kt
+++ b/data/src/test/java/com/itlab/data/dao/NoteDaoTest.kt
@@ -24,6 +24,7 @@ class NoteDaoTest {
private lateinit var database: AppDatabase
private lateinit var noteDao: NoteDao
+ private val testUserId = "test_user_1"
val testTime = Instant.parse("2026-03-24T12:00:00Z")
private fun createNote(
@@ -38,6 +39,7 @@ class NoteDaoTest {
createdAt = testTime,
updatedAt = updatedAt,
isSynced = isSynced,
+ userId = testUserId,
)
@Before
diff --git a/data/src/test/java/com/itlab/data/entity/NoteEntityTest.kt b/data/src/test/java/com/itlab/data/entity/NoteEntityTest.kt
index 22ca791..b88c058 100644
--- a/data/src/test/java/com/itlab/data/entity/NoteEntityTest.kt
+++ b/data/src/test/java/com/itlab/data/entity/NoteEntityTest.kt
@@ -15,6 +15,7 @@ class NoteEntityTest {
val note =
NoteEntity(
id = "note_1",
+ userId = "user_1",
title = "Test Title",
content = "Test Content",
createdAt = testTime,
@@ -23,6 +24,7 @@ class NoteEntityTest {
)
assertEquals("note_1", note.id)
+ assertEquals("user_1", note.userId)
assertEquals("Test Title", note.title)
assertEquals("Test Content", note.content)
assertFalse(note.isSynced)
@@ -37,6 +39,7 @@ class NoteEntityTest {
val note =
NoteEntity(
id = "note_2",
+ userId = "user_2",
title = "Title 2",
content = "Content 2",
createdAt = customTime,
@@ -44,6 +47,7 @@ class NoteEntityTest {
isSynced = true,
)
+ assertEquals("user_2", note.userId)
assertEquals(customTime, note.createdAt)
assertEquals(customTime, note.updatedAt)
assertTrue(note.isSynced)
@@ -54,12 +58,14 @@ class NoteEntityTest {
val note =
NoteEntity(
id = "1",
+ userId = "user_1",
title = "Title",
content = "Content",
createdAt = testTime,
updatedAt = testTime,
)
assertEquals("1", note.id)
+ assertEquals("user_1", note.userId)
assertEquals("Title", note.title)
assertEquals(false, note.isSynced)
}
@@ -67,6 +73,7 @@ class NoteEntityTest {
@Test
fun `note equality and hashcode`() {
val id = "1"
+ val userId = "user_1"
val title = "A"
val content = "B"
val timestamp = kotlinx.datetime.Instant.fromEpochMilliseconds(123456789L)
@@ -74,6 +81,7 @@ class NoteEntityTest {
val note1 =
NoteEntity(
id = id,
+ userId = userId,
title = title,
content = content,
isSynced = false,
@@ -83,6 +91,7 @@ class NoteEntityTest {
val note2 =
NoteEntity(
id = id,
+ userId = userId,
title = title,
content = content,
isSynced = false,
@@ -99,6 +108,7 @@ class NoteEntityTest {
val note =
NoteEntity(
"1",
+ "user_1",
"Old",
"Text",
createdAt = testTime,
@@ -107,6 +117,7 @@ class NoteEntityTest {
val updated = note.copy(title = "New", isSynced = true)
assertEquals("New", updated.title)
+ assertEquals("user_1", updated.userId)
assertEquals(true, updated.isSynced)
assertEquals("1", updated.id)
}
diff --git a/data/src/test/java/com/itlab/data/mapper/NoteMapperTest.kt b/data/src/test/java/com/itlab/data/mapper/NoteMapperTest.kt
index e549755..68d2033 100644
--- a/data/src/test/java/com/itlab/data/mapper/NoteMapperTest.kt
+++ b/data/src/test/java/com/itlab/data/mapper/NoteMapperTest.kt
@@ -15,12 +15,14 @@ import org.junit.Test
class NoteMapperTest {
private val mapper = NoteMapper()
+ private val testUserId = "test-user-id"
val testTime = Instant.parse("2026-03-24T12:00:00Z")
@Test
fun `toEntities should map all content types and media correctly`() {
val note =
Note(
+ userId = testUserId,
title = "Business",
tags = setOf("money", "market"),
contentItems =
@@ -45,6 +47,7 @@ class NoteMapperTest {
val (entity, media) = mapper.toEntities(note)
assertEquals(note.id, entity.id)
+ assertEquals(testUserId, entity.userId)
assertEquals("Business", entity.title)
assertTrue(entity.isFavorite)
assertFalse(entity.isSynced)
@@ -55,7 +58,7 @@ class NoteMapperTest {
assertEquals("[\"money\",\"market\"]", entity.tags)
- val decodedItems = Json.decodeFromString>(entity.content)
+ val decodedItems = mapper.deserializeContent((entity.content))
assertEquals(note.contentItems, decodedItems)
@@ -83,6 +86,7 @@ class NoteMapperTest {
val corruptedEntity =
NoteEntity(
id = "test-id",
+ userId = testUserId,
title = "Broken Note",
content = "!!not a json!!",
tags = "{broken_tags}",
@@ -94,6 +98,7 @@ class NoteMapperTest {
assertTrue(result.contentItems.isEmpty())
assertTrue(result.tags.isEmpty())
+ assertEquals(testUserId, result.userId)
assertEquals("Broken Note", result.title)
}
@@ -122,9 +127,10 @@ class NoteMapperTest {
val entity =
NoteEntity(
id = "uuid-123",
+ userId = testUserId,
title = "Test Note",
folderId = "fuid-100",
- content = json.encodeToString>(originalItems),
+ content = mapper.serializeContent(originalItems),
tags = json.encodeToString>(originalTags),
isFavorite = true,
createdAt = testTime,
@@ -134,6 +140,7 @@ class NoteMapperTest {
val resultNote = mapper.toDomain(entity)
assertEquals("uuid-123", resultNote.id)
+ assertEquals(testUserId, resultNote.userId)
assertEquals("Test Note", resultNote.title)
assertEquals("fuid-100", resultNote.folderId)
assertTrue(resultNote.isFavorite)
@@ -147,6 +154,7 @@ class NoteMapperTest {
val entityWithNullTags =
NoteEntity(
id = "test-null-tags",
+ userId = testUserId,
title = "Note with NULL tags",
content = "[]",
tags = null,
diff --git a/data/src/test/java/com/itlab/data/repository/NotesRepositoryImplTest.kt b/data/src/test/java/com/itlab/data/repository/NotesRepositoryImplTest.kt
index 2afec51..8db1b5c 100644
--- a/data/src/test/java/com/itlab/data/repository/NotesRepositoryImplTest.kt
+++ b/data/src/test/java/com/itlab/data/repository/NotesRepositoryImplTest.kt
@@ -30,12 +30,14 @@ class NotesRepositoryImplTest {
private val mediaDao = mockk(relaxed = true)
private val mapper = NoteMapper()
private val repository = NotesRepositoryImpl(noteDao, mediaDao, mapper)
+ private val testUserId = "test_user_1"
@Test
fun `createNote inserts note and media if exists`() =
runTest {
val note =
Note(
+ userId = testUserId,
id = "note_1",
title = "Test",
contentItems = emptyList(),
@@ -54,6 +56,7 @@ class NotesRepositoryImplTest {
runTest {
val note =
Note(
+ userId = testUserId,
id = "note_1",
title = "Updated",
createdAt = Clock.System.now(),
@@ -113,6 +116,7 @@ class NotesRepositoryImplTest {
val noteWithMedia =
Note(
+ userId = testUserId,
id = "note_123",
title = "Note with Image",
contentItems = listOf(imageItem),
@@ -130,7 +134,13 @@ class NotesRepositoryImplTest {
@Test
fun `updateNote without media should only call update and delete`() =
runTest {
- val noteWithoutMedia = Note(id = "2", title = "No Media", contentItems = emptyList())
+ val noteWithoutMedia =
+ Note(
+ userId = testUserId,
+ id = "2",
+ title = "No Media",
+ contentItems = emptyList(),
+ )
repository.updateNote(noteWithoutMedia)
@@ -230,6 +240,7 @@ class NotesRepositoryImplTest {
)
val noteWithMedia =
Note(
+ userId = testUserId,
id = "note_with_pic",
title = "Vacation",
contentItems = listOf(imageItem),
diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts
index f9bed20..e21acc5 100644
--- a/domain/build.gradle.kts
+++ b/domain/build.gradle.kts
@@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.android.library)
- kotlin("plugin.serialization")
+ alias(libs.plugins.kotlin.serialization)
}
android {
@@ -40,6 +40,7 @@ kotlin {
}
dependencies {
+ api(libs.kotlinx.coroutines.core)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
diff --git a/domain/gradle.lockfile b/domain/gradle.lockfile
new file mode 100644
index 0000000..8189abf
--- /dev/null
+++ b/domain/gradle.lockfile
@@ -0,0 +1,202 @@
+# This is a Gradle generated file for dependency locking.
+# Manual edits can break the build and are not advised.
+# This file is expected to be part of source control.
+androidx.activity:activity:1.8.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation-experimental:1.4.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation-jvm:1.8.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.annotation:annotation:1.8.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat-resources:1.6.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat-resources:1.7.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.appcompat:appcompat:1.6.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.appcompat:appcompat:1.7.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.arch.core:core-common:2.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.arch.core:core-runtime:2.1.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+androidx.arch.core:core-runtime:2.2.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.cardview:cardview:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.collection:collection-jvm:1.4.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.collection:collection:1.1.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugUnitTestCompileClasspath,releaseCompileClasspath
+androidx.collection:collection:1.4.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.concurrent:concurrent-futures-ktx:1.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.concurrent:concurrent-futures:1.1.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.concurrent:concurrent-futures:1.2.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout-core:1.0.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.constraintlayout:constraintlayout-solver:2.0.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout:2.0.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.constraintlayout:constraintlayout:2.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.coordinatorlayout:coordinatorlayout:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core-ktx:1.17.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core-ktx:1.18.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.core:core-viewtree:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core:1.17.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.core:core:1.18.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.cursoradapter:cursoradapter:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.customview:customview:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.documentfile:documentfile:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.drawerlayout:drawerlayout:1.1.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.dynamicanimation:dynamicanimation:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.dynamicanimation:dynamicanimation:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.emoji2:emoji2-views-helper:1.2.0=releaseUnitTestRuntimeClasspath
+androidx.emoji2:emoji2-views-helper:1.3.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.emoji2:emoji2:1.2.0=releaseUnitTestRuntimeClasspath
+androidx.emoji2:emoji2:1.3.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.fragment:fragment:1.3.6=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.fragment:fragment:1.5.4=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.graphics:graphics-shapes-android:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath
+androidx.graphics:graphics-shapes-desktop:1.0.1=debugLintChecksClasspath,releaseLintChecksClasspath
+androidx.graphics:graphics-shapes:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.interpolator:interpolator:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.legacy:legacy-support-core-utils:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-common:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-livedata-core:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-livedata:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-process:2.6.2=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-runtime:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.lifecycle:lifecycle-viewmodel:2.6.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.loader:loader:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.localbroadcastmanager:localbroadcastmanager:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.print:print:1.0.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.profileinstaller:profileinstaller:1.3.0=releaseUnitTestRuntimeClasspath
+androidx.profileinstaller:profileinstaller:1.3.1=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.recyclerview:recyclerview:1.1.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.recyclerview:recyclerview:1.2.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.resourceinspection:resourceinspection-annotation:1.0.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.savedstate:savedstate:1.2.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.startup:startup-runtime:1.1.1=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.test.espresso:espresso-core:3.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.espresso:espresso-idling-resource:3.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.ext:junit:1.3.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test.services:storage:1.6.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:core:1.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:monitor:1.8.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.test:runner:1.7.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+androidx.tracing:tracing:1.1.0=debugAndroidTestCompileClasspath
+androidx.tracing:tracing:1.2.0=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+androidx.transition:transition:1.2.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.transition:transition:1.5.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+androidx.vectordrawable:vectordrawable-animated:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.vectordrawable:vectordrawable:1.1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.versionedparcelable:versionedparcelable:1.1.1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.viewpager2:viewpager2:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+androidx.viewpager:viewpager:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+ch.qos.logback:logback-classic:1.3.14=ktlint
+ch.qos.logback:logback-core:1.3.14=ktlint
+com.github.ajalt.clikt:clikt-jvm:5.0.2=ktlint
+com.github.ajalt.clikt:clikt:5.0.2=ktlint
+com.google.android.material:material:1.10.0=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+com.google.android.material:material:1.13.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+com.google.code.findbugs:jsr305:3.0.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.15.0=debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+com.google.errorprone:error_prone_annotations:2.30.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+com.google.guava:listenablefuture:1.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+com.pinterest.ktlint:ktlint-cli-reporter-baseline:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-checkstyle:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-core:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-format:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-html:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-json:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-plain-summary:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-plain:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-reporter-sarif:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-cli-ruleset-core:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-cli:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-logger:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-rule-engine-core:1.5.0=ktlint,ktlintRuleset
+com.pinterest.ktlint:ktlint-rule-engine:1.5.0=ktlint
+com.pinterest.ktlint:ktlint-ruleset-standard:1.5.0=ktlint,ktlintRuleset
+dev.drewhamilton.poko:poko-annotations-jvm:0.17.1=detekt
+dev.drewhamilton.poko:poko-annotations-jvm:0.18.0=ktlint,ktlintRuleset
+dev.drewhamilton.poko:poko-annotations:0.17.1=detekt
+dev.drewhamilton.poko:poko-annotations:0.18.0=ktlint,ktlintRuleset
+io.github.davidburstrom.contester:contester-breakpoint:0.2.0=detekt
+io.github.detekt.sarif4k:sarif4k-jvm:0.6.0=detekt,ktlint,ktlintReporter
+io.github.detekt.sarif4k:sarif4k:0.6.0=detekt,ktlint,ktlintReporter
+io.github.oshai:kotlin-logging-jvm:7.0.3=ktlint,ktlintReporter,ktlintRuleset
+io.github.oshai:kotlin-logging:5.1.0=ktlint,ktlintReporter
+io.gitlab.arturbosch.detekt:detekt-api:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-cli:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-core:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-metrics:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-parser:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-psi-utils:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-html:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-md:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-sarif:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-txt:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-report-xml:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-complexity:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-coroutines:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-documentation:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-empty:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-errorprone:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-exceptions:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-naming:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-performance:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules-style:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-rules:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-tooling:1.23.8=detekt
+io.gitlab.arturbosch.detekt:detekt-utils:1.23.8=detekt
+javax.inject:javax.inject:1=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+junit:junit:4.13.2=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.ec4j.core:ec4j-core:1.1.0=ktlint,ktlintRuleset
+org.hamcrest:hamcrest-core:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.hamcrest:hamcrest-library:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath
+org.jcommander:jcommander:1.85=detekt
+org.jetbrains.intellij.deps:trove4j:1.0.20200330=detekt,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-bom:1.8.22=debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-reflect:2.0.21=detekt
+org.jetbrains.kotlin:kotlin-script-runtime:2.0.21=detekt,kotlinCompilerClasspath
+org.jetbrains.kotlin:kotlin-script-runtime:2.1.0=ktlint,ktlintRuleset
+org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlin:kotlin-serialization-compiler-plugin-embeddable:2.3.20=kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease
+org.jetbrains.kotlin:kotlin-stdlib-common:2.0.21=detekt
+org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0=ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-common:2.3.20=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0=detekt,ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0=detekt,ktlintReporter
+org.jetbrains.kotlin:kotlin-stdlib:2.0.21=detekt,kotlinCompilerClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.1.0=ktlint,ktlintReporter,ktlintRuleset
+org.jetbrains.kotlin:kotlin-stdlib:2.3.20=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,kotlinBuildToolsApiClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4=detekt,kotlinCompilerClasspath,ktlint,ktlintRuleset
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1=releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-datetime:0.6.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.1=detekt
+org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1=detekt,ktlintReporter
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
+org.jetbrains.kotlinx:kover-jvm-agent:0.9.7=koverJvmAgent,koverJvmReporter
+org.jetbrains:annotations:13.0=detekt,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,ktlint,ktlintReporter,ktlintRuleset
+org.jetbrains:annotations:23.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.jspecify:jspecify:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
+org.slf4j:slf4j-api:2.0.7=ktlint
+org.snakeyaml:snakeyaml-engine:2.7=detekt
+empty=androidApis,debugAnnotationProcessorClasspath,debugUnitTestAnnotationProcessorClasspath,detektPlugins,kotlinCompilerPluginClasspath,kotlinCompilerPluginClasspathReleaseUnitTest,koverExternalArtifacts,lintChecks,lintPublish,releaseAnnotationProcessorClasspath,releaseUnitTestAnnotationProcessorClasspath
diff --git a/domain/src/main/java/com/itlab/domain/cloud/CloudDataSource.kt b/domain/src/main/java/com/itlab/domain/cloud/CloudDataSource.kt
new file mode 100644
index 0000000..d84f86d
--- /dev/null
+++ b/domain/src/main/java/com/itlab/domain/cloud/CloudDataSource.kt
@@ -0,0 +1,44 @@
+package com.itlab.domain.cloud
+
+import kotlinx.datetime.Instant
+import java.io.File
+
+sealed interface Result {
+ data class Success(
+ val data: T,
+ ) : Result
+
+ data class Error(
+ val exception: Throwable,
+ ) : Result
+}
+
+interface CloudDataSource {
+ suspend fun listNoteMetadata(userId: String): Result>
+
+ suspend fun downloadNote(key: String): Result
+
+ suspend fun uploadNote(
+ key: String,
+ json: String,
+ ): Result
+
+ suspend fun deleteNote(key: String): Result
+
+ suspend fun uploadMedia(
+ key: String,
+ file: File,
+ ): Result
+
+ suspend fun downloadMedia(
+ key: String,
+ destination: File,
+ ): Result
+
+ suspend fun deleteMedia(key: String): Result
+}
+
+data class CloudNoteMetadata(
+ val key: String,
+ val updatedAt: Instant,
+)
diff --git a/domain/src/main/java/com/itlab/domain/cloud/SyncManager.kt b/domain/src/main/java/com/itlab/domain/cloud/SyncManager.kt
new file mode 100644
index 0000000..3da4c89
--- /dev/null
+++ b/domain/src/main/java/com/itlab/domain/cloud/SyncManager.kt
@@ -0,0 +1,25 @@
+package com.itlab.domain.cloud
+
+import kotlinx.coroutines.flow.StateFlow
+
+interface SyncManager {
+ val syncState: StateFlow
+
+ suspend fun sync(userId: String)
+
+ suspend fun pushChanges(userId: String)
+
+ suspend fun pullUpdates(userId: String)
+}
+
+sealed class SyncState {
+ object Idle : SyncState()
+
+ object Syncing : SyncState()
+
+ data class Error(
+ val message: String,
+ ) : SyncState()
+
+ object Success : SyncState()
+}
diff --git a/domain/src/main/java/com/itlab/domain/model/Note.kt b/domain/src/main/java/com/itlab/domain/model/Note.kt
index c05d641..199c4d3 100644
--- a/domain/src/main/java/com/itlab/domain/model/Note.kt
+++ b/domain/src/main/java/com/itlab/domain/model/Note.kt
@@ -2,10 +2,12 @@ package com.itlab.domain.model
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
-import kotlinx.serialization.Serializable
+import java.util.Collections.emptyList
+import java.util.Collections.emptySet
import java.util.UUID
data class Note(
+ val userId: String,
val id: String = UUID.randomUUID().toString(),
val title: String = "",
val folderId: String? = null,
@@ -15,9 +17,9 @@ data class Note(
val tags: Set = emptySet(),
val isFavorite: Boolean = false,
val summary: String? = null,
+ val syncStatus: SyncState = SyncState.PENDING,
)
-@Serializable
data class DataSource(
val localPath: String? = null,
val remoteUrl: String? = null,
@@ -25,15 +27,12 @@ data class DataSource(
val displayPath: String? get() = localPath ?: remoteUrl
}
-@Serializable
sealed class ContentItem {
- @Serializable
data class Text(
val text: String,
val format: TextFormat = TextFormat.PLAIN,
) : ContentItem()
- @Serializable
data class Image(
val source: DataSource,
val mimeType: String,
@@ -41,7 +40,6 @@ sealed class ContentItem {
val height: Int? = null,
) : ContentItem()
- @Serializable
data class File(
val source: DataSource,
val mimeType: String,
@@ -49,16 +47,21 @@ sealed class ContentItem {
val size: Long? = null,
) : ContentItem()
- @Serializable
data class Link(
val url: String,
val title: String? = null,
) : ContentItem()
}
-@Serializable
enum class TextFormat {
PLAIN,
MARKDOWN,
HTML,
}
+
+enum class SyncState {
+ SYNCED,
+ PENDING,
+ SYNCING,
+ ERROR,
+}
diff --git a/domain/src/test/java/com/itlab/domain/AIUseCasesTest.kt b/domain/src/test/java/com/itlab/domain/AIUseCasesTest.kt
index 97d4c3b..2d6fd1d 100644
--- a/domain/src/test/java/com/itlab/domain/AIUseCasesTest.kt
+++ b/domain/src/test/java/com/itlab/domain/AIUseCasesTest.kt
@@ -18,6 +18,8 @@ import org.junit.Assert.fail
import org.junit.Test
class AIUseCasesTest {
+ private val testUserId = "test_user_1"
+
private class FakeNotesRepo : NotesRepository {
private val store = mutableMapOf()
private val flow = MutableStateFlow>(emptyList())
@@ -84,6 +86,7 @@ class AIUseCasesTest {
Note(
id = "n1",
title = "Test",
+ userId = testUserId,
contentItems =
listOf(
ContentItem.Text("Hello"),
@@ -127,6 +130,7 @@ class AIUseCasesTest {
Note(
id = "n2",
title = "Tags",
+ userId = testUserId,
contentItems =
listOf(
ContentItem.Text("First line"),
@@ -183,6 +187,7 @@ class AIUseCasesTest {
id = "n3",
title = "Summary",
summary = "old summary",
+ userId = testUserId,
)
repo.createNote(note)
@@ -218,6 +223,7 @@ class AIUseCasesTest {
id = "n4",
title = "Tags",
tags = setOf("old"),
+ userId = testUserId,
)
repo.createNote(note)
diff --git a/domain/src/test/java/com/itlab/domain/NoteTest.kt b/domain/src/test/java/com/itlab/domain/NoteTest.kt
index 5d9e5e5..5542eda 100644
--- a/domain/src/test/java/com/itlab/domain/NoteTest.kt
+++ b/domain/src/test/java/com/itlab/domain/NoteTest.kt
@@ -8,9 +8,11 @@ import org.junit.Assert.assertTrue
import org.junit.Test
class NoteTest {
+ private val testUserId = "test_user_1"
+
@Test
fun note_creation() {
- val note = Note(title = "Hello")
+ val note = Note(title = "Hello", userId = testUserId)
assertEquals("Hello", note.title)
assertTrue(note.contentItems.isEmpty())
@@ -18,7 +20,7 @@ class NoteTest {
@Test
fun note_copy() {
- val note = Note(title = "A")
+ val note = Note(title = "A", userId = testUserId)
val updated = note.copy(title = "B")
diff --git a/domain/src/test/java/com/itlab/domain/NoteUseCasesTest.kt b/domain/src/test/java/com/itlab/domain/NoteUseCasesTest.kt
index be3d572..9563b23 100644
--- a/domain/src/test/java/com/itlab/domain/NoteUseCasesTest.kt
+++ b/domain/src/test/java/com/itlab/domain/NoteUseCasesTest.kt
@@ -18,6 +18,8 @@ import org.junit.Assert.assertNull
import org.junit.Test
class NoteUseCasesTest {
+ private val testUserId = "test_user_1"
+
private class FakeNotesRepo : NotesRepository {
private val store = mutableMapOf()
private val flow = MutableStateFlow>(emptyList())
@@ -77,7 +79,7 @@ class NoteUseCasesTest {
val delete = DeleteNoteUseCase(repo)
val get = GetNoteUseCase(repo)
- val note = Note(id = "n1", title = "A")
+ val note = Note(id = "n1", title = "A", userId = testUserId)
create(note)
@@ -105,7 +107,7 @@ class NoteUseCasesTest {
val folder = NoteFolder(id = "f1", name = "Folder")
folderRepo.createFolder(folder)
- val note = Note(id = "n1", title = "Note")
+ val note = Note(id = "n1", title = "Note", userId = testUserId)
createNote(note)
move("f1", "n1")
@@ -122,7 +124,7 @@ class NoteUseCasesTest {
val observe = ObserveNotesUseCase(repo)
val create = CreateNoteUseCase(repo)
- create(Note(id = "n1", title = "Test"))
+ create(Note(id = "n1", title = "Test", userId = testUserId))
val list = observe().first()
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index edd42bd..b8dcd97 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,5 +1,6 @@
[versions]
agp = "9.1.0"
+firebaseBom = "34.12.0"
kotlin = "2.3.20"
coreKtx = "1.18.0"
junit = "4.13.2"
@@ -21,9 +22,13 @@ kotlinxSerializationJson = "1.6.3"
robolectric = "4.16.1"
coroutinesTest = "1.7.3"
coreTesting = "2.2.0"
+kotlinxCoroutines = "1.7.3"
+workManager = "2.9.0"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
+firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics" }
+firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
@@ -52,6 +57,13 @@ mockk = { group = "io.mockk", name = "mockk", version = "1.13.10" }
robolectric = { group = "org.robolectric", name = "robolectric", version = "4.12.1" }
androidx-test-core = { group = "androidx.test", name = "core", version = "1.5.0" }
androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version = "1.1.5" }
+kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutinesTest" }
+kotlinx-coroutines-play-services = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-play-services", version.ref = "kotlinxCoroutines" }
+firebase-firestore = { group = "com.google.firebase", name = "firebase-firestore" }
+firebase-storage = { group = "com.google.firebase", name = "firebase-storage" }
+firebase-auth = { group = "com.google.firebase", name = "firebase-auth" }
+firebase-ui-auth = { group = "com.firebaseui", name = "firebase-ui-auth", version = "8.0.2" }
+androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "workManager" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
@@ -61,4 +73,4 @@ detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlintGradle" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
\ No newline at end of file
+ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 4868b8d..df6ab8c 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -4,10 +4,6 @@
true
false
-
-
-
-
@@ -16,6 +12,10 @@
+
+
+
+
@@ -180,6 +180,11 @@
+
+
+
+
+
@@ -639,6 +644,11 @@
+
+
+
+
+
@@ -647,6 +657,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1415,6 +1475,11 @@
+
+
+
+
+
@@ -2353,6 +2418,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2361,6 +2442,14 @@
+
+
+
+
+
+
+
+
@@ -2385,6 +2474,14 @@
+
+
+
+
+
+
+
+
@@ -2393,6 +2490,14 @@
+
+
+
+
+
+
+
+
@@ -2401,6 +2506,14 @@
+
+
+
+
+
+
+
+
@@ -2409,6 +2522,14 @@
+
+
+
+
+
+
+
+
@@ -3653,6 +3774,14 @@
+
+
+
+
+
+
+
+
@@ -3677,6 +3806,11 @@
+
+
+
+
+
@@ -3692,6 +3826,11 @@
+
+
+
+
+
@@ -3821,6 +3960,14 @@
+
+
+
+
+
+
+
+
@@ -3829,6 +3976,14 @@
+
+
+
+
+
+
+
+
@@ -3897,6 +4052,11 @@
+
+
+
+
+
@@ -3907,6 +4067,11 @@
+
+
+
+
+
@@ -3984,6 +4149,14 @@
+
+
+
+
+
+
+
+
@@ -4021,6 +4194,11 @@
+
+
+
+
+
@@ -4052,6 +4230,14 @@
+
+
+
+
+
+
+
+
@@ -4325,6 +4511,14 @@
+
+
+
+
+
+
+
+
@@ -4333,6 +4527,11 @@
+
+
+
+
+
@@ -5226,6 +5425,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5489,6 +5753,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5726,6 +6011,14 @@
+
+
+
+
+
+
+
+
@@ -5755,6 +6048,14 @@
+
+
+
+
+
+
+
+
@@ -5896,6 +6197,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -6476,6 +6790,14 @@
+
+
+
+
+
+
+
+
@@ -6628,6 +6950,11 @@
+
+
+
+
+
@@ -7153,6 +7480,9 @@
+
+
+
@@ -7393,6 +7723,11 @@
+
+
+
+
+
@@ -7401,6 +7736,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7425,16 +7808,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7459,6 +7871,14 @@
+
+
+
+
+
+
+
+
@@ -7480,6 +7900,14 @@
+
+
+
+
+
+
+
+
@@ -7496,6 +7924,14 @@
+
+
+
+
+
+
+
+
@@ -7520,6 +7956,14 @@
+
+
+
+
+
+
+
+
@@ -7536,6 +7980,14 @@
+
+
+
+
+
+
+
+
@@ -7544,6 +7996,14 @@
+
+
+
+
+
+
+
+
@@ -7552,6 +8012,14 @@
+
+
+
+
+
+
+
+
@@ -7568,6 +8036,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7576,6 +8060,14 @@
+
+
+
+
+
+
+
+
@@ -7584,6 +8076,14 @@
+
+
+
+
+
+
+
+
@@ -7592,6 +8092,14 @@
+
+
+
+
+
+
+
+
@@ -7600,6 +8108,14 @@
+
+
+
+
+
+
+
+
@@ -7608,6 +8124,14 @@
+
+
+
+
+
+
+
+
@@ -7616,6 +8140,14 @@
+
+
+
+
+
+
+
+
@@ -7624,6 +8156,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7632,6 +8180,14 @@
+
+
+
+
+
+
+
+
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 92ed943..dbc3ce4 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionSha256Sum=60ea723356d81263e8002fec0fcf9e2b0eee0c0850c7a3d7ab0a63f2ccc601f3
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true