diff --git a/.github/workflows/deploy_foss_to_github.yml b/.github/workflows/deploy_foss_to_github.yml index 2ed03193..8ff0ffc9 100644 --- a/.github/workflows/deploy_foss_to_github.yml +++ b/.github/workflows/deploy_foss_to_github.yml @@ -55,7 +55,7 @@ jobs: # 4 - name: Draft Release - uses: ncipollo/release-action@v1.14.0 + uses: ncipollo/release-action@v1.18.0 with: allowUpdates: true artifacts: "app/build/outputs/apk/**/**/**/*.apk,app/build/outputs/mapping/**/**/*.txt" diff --git a/.github/workflows/deploy_foss_to_github_old.yml b/.github/workflows/deploy_foss_to_github_old.yml deleted file mode 100644 index 4c793ab6..00000000 --- a/.github/workflows/deploy_foss_to_github_old.yml +++ /dev/null @@ -1,75 +0,0 @@ -name: Deploy Foss to github - -#on: -# push: -# tags: -# - '[0-9]+.[0-9]+.[0-9]+' -on: workflow_dispatch - - -jobs: - build: - runs-on: ubuntu-latest - timeout-minutes: 120 - - steps: - - name: Enable KVM group perms - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - ls /dev/kvm - - - name: Checkout - uses: actions/checkout@v4 - - - name: Validate Gradle Wrapper - uses: gradle/wrapper-validation-action@v3 - - - name: Copy CI gradle.properties - run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: 21 - - - name: Install GMD image for baseline profile generation - run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager "system-images;android-33;aosp_atd;x86_64" - - - name: Accept Android licenses - run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --licenses || true - - - name: Build release variant including baseline profile generation - run: ./gradlew generateFossReliantReleaseBaselineProfile - -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile - -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" - -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true - -Pandroid.experimental.androidTest.numManagedDeviceShards=1 - -Pandroid.experimental.testOptions.managedDevices.maxConcurrentDevices=1 - - - name: Build release variant apk - run: ./gradlew :app:assembleFossReliantRelease - - - name: Sign APK - uses: r0adkll/sign-android-release@v1.0.4 - with: - releaseDirectory: app/build/outputs/apk/fossReliant/release - signingKeyBase64: ${{ secrets.SIGNING_KEY }} - alias: ${{ secrets.ALIAS }} - keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} - keyPassword: ${{ secrets.KEY_PASSWORD }} - env: - BUILD_TOOLS_VERSION: "34.0.0" - - - name: Draft Release - uses: ncipollo/release-action@v1.14.0 - with: - allowUpdates: true - artifacts: "app/build/outputs/apk/**/**/**/*.apk,app/build/outputs/mapping/**/**/*.txt" - token: ${{ secrets.TOKEN }} - generateReleaseNotes: true - bodyFile: distribution/whatsnew/whatsnew-en-US - prerelease: false - diff --git a/.github/workflows/deploy_foss_to_github_pre_release.yml b/.github/workflows/deploy_foss_to_github_pre_release.yml new file mode 100644 index 00000000..7286fad6 --- /dev/null +++ b/.github/workflows/deploy_foss_to_github_pre_release.yml @@ -0,0 +1,65 @@ +name: Deploy Foss to github Pre Release + +on: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+-*' + +## 2 +jobs: + ## 3 + build: + runs-on: ubuntu-latest + steps: + # 1 + - uses: actions/checkout@v4 + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 21 + # 2 + + - name: Setup Android SDK + uses: android-actions/setup-android@v2 + + - name: Accept Android licenses + run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --licenses || true + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + build-scan-publish: true + build-scan-terms-of-use-url: "https://gradle.com/terms-of-service" + build-scan-terms-of-use-agree: "yes" + + - name: Remove Firebase References + run: | + sed -i -e '/androidx.dev/d' settings.gradle.kts + sed -i -e '/with(target) {/,/^ }/d' -e '/CrashlyticsExtension/d' build-logic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt + sed -i -e '/libs.firebase/d' build-logic/convention/build.gradle.kts + + - name: Build release variant apk + run: ./gradlew assembleFossReliantRelease + + - name: Sign APK + uses: r0adkll/sign-android-release@v1.0.4 + with: + releaseDirectory: app/build/outputs/apk/fossReliant/release + signingKeyBase64: ${{ secrets.SIGNING_KEY }} + alias: ${{ secrets.ALIAS }} + keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} + keyPassword: ${{ secrets.KEY_PASSWORD }} + env: + BUILD_TOOLS_VERSION: "34.0.0" + + # 4 + - name: Draft Release + uses: ncipollo/release-action@v1.18.0 + with: + allowUpdates: true + artifacts: "app/build/outputs/apk/**/**/**/*.apk,app/build/outputs/mapping/**/**/*.txt" + token: ${{ secrets.TOKEN }} + generateReleaseNotes: true + bodyFile: distribution/whatsnew/whatsnew-en-US + prerelease: true diff --git a/.github/workflows/deploy_play_to_github.yml b/.github/workflows/deploy_play_to_github.yml index 35ad991a..2b5b6c6d 100644 --- a/.github/workflows/deploy_play_to_github.yml +++ b/.github/workflows/deploy_play_to_github.yml @@ -49,7 +49,7 @@ jobs: # 4 - name: Draft Release - uses: ncipollo/release-action@v1.14.0 + uses: ncipollo/release-action@v1.18.0 with: allowUpdates: true artifacts: "app/build/outputs/apk/**/**/**/*.apk,app/build/outputs/mapping/**/**/*.txt" diff --git a/.github/workflows/deploy_play_to_github_old.yml b/.github/workflows/deploy_play_to_github_old.yml deleted file mode 100644 index 093f9bb3..00000000 --- a/.github/workflows/deploy_play_to_github_old.yml +++ /dev/null @@ -1,75 +0,0 @@ -name: Deploy Play to github - -#on: -# push: -# tags: -# - '[0-9]+.[0-9]+.[0-9]+' -on: workflow_dispatch - - -jobs: - build: - runs-on: ubuntu-latest - timeout-minutes: 120 - - steps: - - name: Enable KVM group perms - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - ls /dev/kvm - - - name: Checkout - uses: actions/checkout@v4 - - - name: Validate Gradle Wrapper - uses: gradle/wrapper-validation-action@v3 - - - name: Copy CI gradle.properties - run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: 21 - - - name: Install GMD image for baseline profile generation - run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager "system-images;android-33;aosp_atd;x86_64" - - - name: Accept Android licenses - run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --licenses || true - - - name: Build release variant including baseline profile generation - run: ./gradlew generateGooglePlayReleaseBaselineProfile - -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile - -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" - -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true - -Pandroid.experimental.androidTest.numManagedDeviceShards=1 - -Pandroid.experimental.testOptions.managedDevices.maxConcurrentDevices=1 - - - name: Build release variant apk - run: ./gradlew :app:assembleGooglePlayRelease - - - name: Sign APK - uses: r0adkll/sign-android-release@v1.0.4 - with: - releaseDirectory: app/build/outputs/apk/googlePlay/release - signingKeyBase64: ${{ secrets.SIGNING_KEY }} - alias: ${{ secrets.ALIAS }} - keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} - keyPassword: ${{ secrets.KEY_PASSWORD }} - env: - BUILD_TOOLS_VERSION: "34.0.0" - - - name: Draft Release - uses: ncipollo/release-action@v1.14.0 - with: - allowUpdates: true - artifacts: "app/build/outputs/apk/**/**/**/*.apk,app/build/outputs/mapping/**/**/*.txt" - token: ${{ secrets.TOKEN }} - generateReleaseNotes: true - bodyFile: distribution/whatsnew/whatsnew-en-US - prerelease: false - diff --git a/.github/workflows/deploy_play_to_github_pre_release.yml b/.github/workflows/deploy_play_to_github_pre_release.yml new file mode 100644 index 00000000..81bbf598 --- /dev/null +++ b/.github/workflows/deploy_play_to_github_pre_release.yml @@ -0,0 +1,59 @@ +name: Deploy Play to github Pre Release + +on: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+-*' + +## 2 +jobs: + ## 3 + build: + runs-on: ubuntu-latest + steps: + # 1 + - uses: actions/checkout@v4 + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 21 + # 2 + + - name: Setup Android SDK + uses: android-actions/setup-android@v2 + + - name: Accept Android licenses + run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --licenses || true + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + build-scan-publish: true + build-scan-terms-of-use-url: "https://gradle.com/terms-of-service" + build-scan-terms-of-use-agree: "yes" + + - name: Build release variant apk + run: ./gradlew assembleGooglePlayRelease + + - name: Sign APK + uses: r0adkll/sign-android-release@v1.0.4 + with: + releaseDirectory: app/build/outputs/apk/googlePlay/release + signingKeyBase64: ${{ secrets.SIGNING_KEY }} + alias: ${{ secrets.ALIAS }} + keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} + keyPassword: ${{ secrets.KEY_PASSWORD }} + env: + BUILD_TOOLS_VERSION: "34.0.0" + + # 4 + - name: Draft Release + uses: ncipollo/release-action@v1.18.0 + with: + allowUpdates: true + artifacts: "app/build/outputs/apk/**/**/**/*.apk,app/build/outputs/mapping/**/**/*.txt" + token: ${{ secrets.TOKEN }} + generateReleaseNotes: true + bodyFile: distribution/whatsnew/whatsnew-en-US + prerelease: true diff --git a/.github/workflows/generate_baselineprofile.yml b/.github/workflows/generate_baselineprofile.yml index 75c07eb6..d2478b7e 100644 --- a/.github/workflows/generate_baselineprofile.yml +++ b/.github/workflows/generate_baselineprofile.yml @@ -3,7 +3,7 @@ name: Generate Baseline Profiles on: push: tags: - - 'b[0-9]+.[0-9]+.[0-9]+' + - '[0-9]+.[0-9]+.[0-9]+-*' jobs: @@ -49,7 +49,7 @@ jobs: -Pandroid.experimental.testOptions.managedDevices.maxConcurrentDevices=1 - name: Create Pull Request - uses: peter-evans/create-pull-request@v7.0.6 + uses: peter-evans/create-pull-request@v7.0.8 with: commit-message: Update baseline committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> diff --git a/.github/workflows/pr_agent.yml b/.github/workflows/pr_agent.yml index e09f910d..262aff9f 100644 --- a/.github/workflows/pr_agent.yml +++ b/.github/workflows/pr_agent.yml @@ -1,3 +1,5 @@ +name: Github Pr Agent + on: pull_request: types: [opened, reopened, ready_for_review] diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7d7cae91..b3c77bf0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -80,6 +80,7 @@ dependencies { implementation(projects.modules.designsystem) implementation(projects.modules.data) implementation(projects.modules.ui) + implementation(projects.modules.domain) implementation(projects.feature.main) @@ -87,9 +88,11 @@ dependencies { implementation(projects.feature.gallery) implementation(projects.feature.drawing) implementation(projects.feature.about) - implementation(projects.feature.labelscreen) - implementation(projects.feature.selectlabelscreen) + implementation(projects.feature.label) + implementation(projects.feature.selectlabel) implementation(projects.feature.setting) + implementation(projects.feature.search) + @@ -97,17 +100,17 @@ dependencies { implementation(libs.kotlinx.serialization.json) + implementation(libs.androidx.navigation3.runtime) + implementation(libs.androidx.navigation3.ui) + implementation(libs.androidx.lifecycle.viewmodel.navigation3) +// implementation(libs.androidx.material3.adaptive.navigation3) + implementation(libs.androidx.activity.compose) - implementation(libs.androidx.compose.material3.adaptive) - implementation(libs.androidx.compose.material3.adaptive.layout) - implementation(libs.androidx.compose.material3.adaptive.navigation) implementation(libs.androidx.compose.material3.windowSizeClass) implementation(libs.androidx.compose.runtime.tracing) implementation(libs.androidx.core.ktx) implementation(libs.androidx.core.splashscreen) - implementation(libs.androidx.hilt.navigation.compose) implementation(libs.androidx.lifecycle.runtimeCompose) - implementation(libs.androidx.navigation.compose) implementation(libs.androidx.profileinstaller) implementation(libs.androidx.tracing.ktx) implementation(libs.androidx.window.core) @@ -131,7 +134,6 @@ dependencies { androidTestImplementation(projects.modules.testing) androidTestImplementation(libs.androidx.test.espresso.core) - androidTestImplementation(libs.androidx.navigation.testing) androidTestImplementation(libs.androidx.compose.ui.test) androidTestImplementation(libs.hilt.android.testing) debugImplementation (libs.androidx.monitor) diff --git a/app/dependencies/fossReliantReleaseRuntimeClasspath.txt b/app/dependencies/fossReliantReleaseRuntimeClasspath.txt index abe6f003..309d6d44 100644 --- a/app/dependencies/fossReliantReleaseRuntimeClasspath.txt +++ b/app/dependencies/fossReliantReleaseRuntimeClasspath.txt @@ -1,6 +1,6 @@ -androidx.activity:activity-compose:1.10.1 -androidx.activity:activity-ktx:1.10.1 -androidx.activity:activity:1.10.1 +androidx.activity:activity-compose:1.12.0-alpha03 +androidx.activity:activity-ktx:1.12.0-alpha03 +androidx.activity:activity:1.12.0-alpha03 androidx.annotation:annotation-experimental:1.4.1 androidx.annotation:annotation-jvm:1.9.1 androidx.annotation:annotation:1.9.1 @@ -13,53 +13,47 @@ androidx.browser:browser:1.8.0 androidx.collection:collection-jvm:1.5.0 androidx.collection:collection-ktx:1.5.0 androidx.collection:collection:1.5.0 -androidx.compose.animation:animation-android:1.9.0-alpha04 -androidx.compose.animation:animation-core-android:1.9.0-alpha04 -androidx.compose.animation:animation-core:1.9.0-alpha04 -androidx.compose.animation:animation:1.9.0-alpha04 -androidx.compose.foundation:foundation-android:1.9.0-alpha04 -androidx.compose.foundation:foundation-layout-android:1.9.0-alpha04 -androidx.compose.foundation:foundation-layout:1.9.0-alpha04 -androidx.compose.foundation:foundation:1.9.0-alpha04 -androidx.compose.material3.adaptive:adaptive-android:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive-layout-android:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive-layout:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive-navigation-android:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive-navigation:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive:1.2.0-alpha06 -androidx.compose.material3:material3-android:1.4.0-alpha15 -androidx.compose.material3:material3-window-size-class-android:1.4.0-alpha15 -androidx.compose.material3:material3-window-size-class:1.4.0-alpha15 -androidx.compose.material3:material3:1.4.0-alpha15 +androidx.compose.animation:animation-android:1.9.0-beta01 +androidx.compose.animation:animation-core-android:1.9.0-beta01 +androidx.compose.animation:animation-core:1.9.0-beta01 +androidx.compose.animation:animation:1.9.0-beta01 +androidx.compose.foundation:foundation-android:1.9.0-beta01 +androidx.compose.foundation:foundation-layout-android:1.9.0-beta01 +androidx.compose.foundation:foundation-layout:1.9.0-beta01 +androidx.compose.foundation:foundation:1.9.0-beta01 +androidx.compose.material3:material3-android:1.4.0-alpha16 +androidx.compose.material3:material3-window-size-class-android:1.4.0-alpha16 +androidx.compose.material3:material3-window-size-class:1.4.0-alpha16 +androidx.compose.material3:material3:1.4.0-alpha16 androidx.compose.material:material-icons-core-android:1.7.8 androidx.compose.material:material-icons-core:1.7.8 androidx.compose.material:material-icons-extended-android:1.7.8 androidx.compose.material:material-icons-extended:1.7.8 -androidx.compose.material:material-ripple-android:1.9.0-alpha04 -androidx.compose.material:material-ripple:1.9.0-alpha04 -androidx.compose.runtime:runtime-android:1.9.0-alpha04 -androidx.compose.runtime:runtime-annotation-android:1.9.0-alpha04 -androidx.compose.runtime:runtime-annotation:1.9.0-alpha04 -androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha04 -androidx.compose.runtime:runtime-saveable:1.9.0-alpha04 -androidx.compose.runtime:runtime-tracing:1.9.0-alpha04 -androidx.compose.runtime:runtime:1.9.0-alpha04 -androidx.compose.ui:ui-android:1.9.0-alpha04 -androidx.compose.ui:ui-geometry-android:1.9.0-alpha04 -androidx.compose.ui:ui-geometry:1.9.0-alpha04 -androidx.compose.ui:ui-graphics-android:1.9.0-alpha04 -androidx.compose.ui:ui-graphics:1.9.0-alpha04 -androidx.compose.ui:ui-text-android:1.9.0-alpha04 -androidx.compose.ui:ui-text-google-fonts:1.9.0-alpha04 -androidx.compose.ui:ui-text:1.9.0-alpha04 -androidx.compose.ui:ui-tooling-preview-android:1.9.0-alpha04 -androidx.compose.ui:ui-tooling-preview:1.9.0-alpha04 -androidx.compose.ui:ui-unit-android:1.9.0-alpha04 -androidx.compose.ui:ui-unit:1.9.0-alpha04 -androidx.compose.ui:ui-util-android:1.9.0-alpha04 -androidx.compose.ui:ui-util:1.9.0-alpha04 -androidx.compose.ui:ui:1.9.0-alpha04 -androidx.compose:compose-bom-alpha:2025.06.00 +androidx.compose.material:material-ripple-android:1.9.0-beta01 +androidx.compose.material:material-ripple:1.9.0-beta01 +androidx.compose.runtime:runtime-android:1.9.0-beta01 +androidx.compose.runtime:runtime-annotation-android:1.9.0-beta01 +androidx.compose.runtime:runtime-annotation:1.9.0-beta01 +androidx.compose.runtime:runtime-saveable-android:1.9.0-beta01 +androidx.compose.runtime:runtime-saveable:1.9.0-beta01 +androidx.compose.runtime:runtime-tracing:1.9.0-beta01 +androidx.compose.runtime:runtime:1.9.0-beta01 +androidx.compose.ui:ui-android:1.9.0-beta01 +androidx.compose.ui:ui-geometry-android:1.9.0-beta01 +androidx.compose.ui:ui-geometry:1.9.0-beta01 +androidx.compose.ui:ui-graphics-android:1.9.0-beta01 +androidx.compose.ui:ui-graphics:1.9.0-beta01 +androidx.compose.ui:ui-text-android:1.9.0-beta01 +androidx.compose.ui:ui-text-google-fonts:1.9.0-beta01 +androidx.compose.ui:ui-text:1.9.0-beta01 +androidx.compose.ui:ui-tooling-preview-android:1.9.0-beta01 +androidx.compose.ui:ui-tooling-preview:1.9.0-beta01 +androidx.compose.ui:ui-unit-android:1.9.0-beta01 +androidx.compose.ui:ui-unit:1.9.0-beta01 +androidx.compose.ui:ui-util-android:1.9.0-beta01 +androidx.compose.ui:ui-util:1.9.0-beta01 +androidx.compose.ui:ui:1.9.0-beta01 +androidx.compose:compose-bom-alpha:2025.06.01 androidx.compose:compose-bom:2024.02.01 androidx.concurrent:concurrent-futures:1.1.0 androidx.core:core-ktx:1.16.0 @@ -69,12 +63,14 @@ androidx.core:core:1.16.0 androidx.cursoradapter:cursoradapter:1.0.0 androidx.customview:customview-poolingcontainer:1.0.0 androidx.customview:customview:1.0.0 -androidx.datastore:datastore-android:1.1.7 androidx.datastore:datastore-core-android:1.1.7 androidx.datastore:datastore-core-okio-jvm:1.1.7 androidx.datastore:datastore-core-okio:1.1.7 androidx.datastore:datastore-core:1.1.7 -androidx.datastore:datastore:1.1.7 +androidx.datastore:datastore-preferences-core-android:1.1.7 +androidx.datastore:datastore-preferences-core:1.1.7 +androidx.datastore:datastore-preferences-external-protobuf:1.1.7 +androidx.datastore:datastore-preferences-proto:1.1.7 androidx.drawerlayout:drawerlayout:1.0.0 androidx.emoji2:emoji2-views-helper:1.4.0 androidx.emoji2:emoji2:1.4.0 @@ -103,34 +99,43 @@ androidx.lifecycle:lifecycle-viewmodel-android:2.9.1 androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.1 androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1 androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.1 +androidx.lifecycle:lifecycle-viewmodel-navigation3-android:1.0.0-alpha02 +androidx.lifecycle:lifecycle-viewmodel-navigation3:1.0.0-alpha02 androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.1 androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1 androidx.lifecycle:lifecycle-viewmodel:2.9.1 androidx.loader:loader:1.0.0 androidx.metrics:metrics-performance:1.0.0-beta02 androidx.multidex:multidex:2.0.1 -androidx.navigation:navigation-common-android:2.9.0 -androidx.navigation:navigation-common:2.9.0 -androidx.navigation:navigation-compose-android:2.9.0 -androidx.navigation:navigation-compose:2.9.0 -androidx.navigation:navigation-runtime-android:2.9.0 -androidx.navigation:navigation-runtime:2.9.0 +androidx.navigation3:navigation3-runtime-android:1.0.0-alpha04 +androidx.navigation3:navigation3-runtime:1.0.0-alpha04 +androidx.navigation3:navigation3-ui-android:1.0.0-alpha04 +androidx.navigation3:navigation3-ui:1.0.0-alpha04 +androidx.navigation:navigation-common-ktx:2.5.1 +androidx.navigation:navigation-common:2.5.1 +androidx.navigation:navigation-compose:2.5.1 +androidx.navigation:navigation-runtime-ktx:2.5.1 +androidx.navigation:navigation-runtime:2.5.1 +androidx.navigationevent:navigationevent-android:1.0.0-alpha03 +androidx.navigationevent:navigationevent-compose-android:1.0.0-alpha03 +androidx.navigationevent:navigationevent-compose:1.0.0-alpha03 +androidx.navigationevent:navigationevent:1.0.0-alpha03 androidx.profileinstaller:profileinstaller:1.4.1 androidx.resourceinspection:resourceinspection-annotation:1.0.1 -androidx.room:room-common-jvm:2.7.1 -androidx.room:room-common:2.7.1 -androidx.room:room-ktx:2.7.1 -androidx.room:room-runtime-android:2.7.1 -androidx.room:room-runtime:2.7.1 +androidx.room:room-common-jvm:2.7.2 +androidx.room:room-common:2.7.2 +androidx.room:room-ktx:2.7.2 +androidx.room:room-runtime-android:2.7.2 +androidx.room:room-runtime:2.7.2 androidx.savedstate:savedstate-android:1.3.0 androidx.savedstate:savedstate-compose-android:1.3.0 androidx.savedstate:savedstate-compose:1.3.0 androidx.savedstate:savedstate-ktx:1.3.0 androidx.savedstate:savedstate:1.3.0 -androidx.sqlite:sqlite-android:2.5.0 -androidx.sqlite:sqlite-framework-android:2.5.0 -androidx.sqlite:sqlite-framework:2.5.0 -androidx.sqlite:sqlite:2.5.0 +androidx.sqlite:sqlite-android:2.5.1 +androidx.sqlite:sqlite-framework-android:2.5.1 +androidx.sqlite:sqlite-framework:2.5.1 +androidx.sqlite:sqlite:2.5.1 androidx.startup:startup-runtime:1.1.1 androidx.test:core:1.4.0 androidx.test:monitor:1.4.0 @@ -145,8 +150,8 @@ androidx.viewpager:viewpager:1.0.0 androidx.window:window-core-android:1.4.0 androidx.window:window-core:1.4.0 androidx.window:window:1.4.0 -com.airbnb.android:lottie-compose:6.6.6 -com.airbnb.android:lottie:6.6.6 +com.airbnb.android:lottie-compose:6.6.7 +com.airbnb.android:lottie:6.6.7 com.google.accompanist:accompanist-drawablepainter:0.37.3 com.google.code.findbugs:jsr305:3.0.2 com.google.dagger:dagger-lint-aar:2.56.2 @@ -159,8 +164,6 @@ com.google.guava:failureaccess:1.0.1 com.google.guava:guava:31.0.1-jre com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava com.google.j2objc:j2objc-annotations:1.3 -com.google.protobuf:protobuf-javalite:4.31.1 -com.google.protobuf:protobuf-kotlin-lite:4.31.1 com.jakewharton.timber:timber:5.0.1 com.squareup.okhttp3:okhttp:4.12.0 com.squareup.okio:okio-jvm:3.11.0 @@ -212,10 +215,10 @@ org.jetbrains.compose.ui:ui-util:1.8.0 org.jetbrains.compose.ui:ui:1.8.0 org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.21 org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.21 -org.jetbrains.kotlin:kotlin-stdlib-common:2.1.21 +org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -org.jetbrains.kotlin:kotlin-stdlib:2.1.21 +org.jetbrains.kotlin:kotlin-stdlib:2.2.0 org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0 org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0 org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2 @@ -223,12 +226,12 @@ org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2 org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.10.2 -org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.2 -org.jetbrains.kotlinx:kotlinx-datetime:0.6.2 -org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1 -org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1 -org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1 -org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1 -org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 +org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.0 +org.jetbrains.kotlinx:kotlinx-datetime:0.7.0 +org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0 +org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0 +org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0 +org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0 +org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0 org.jetbrains:annotations:23.0.0 org.jspecify:jspecify:1.0.0 diff --git a/app/dependencies/googlePlayReleaseRuntimeClasspath.txt b/app/dependencies/googlePlayReleaseRuntimeClasspath.txt index eb88c9c1..526c721c 100644 --- a/app/dependencies/googlePlayReleaseRuntimeClasspath.txt +++ b/app/dependencies/googlePlayReleaseRuntimeClasspath.txt @@ -1,6 +1,6 @@ -androidx.activity:activity-compose:1.10.1 -androidx.activity:activity-ktx:1.10.1 -androidx.activity:activity:1.10.1 +androidx.activity:activity-compose:1.12.0-alpha03 +androidx.activity:activity-ktx:1.12.0-alpha03 +androidx.activity:activity:1.12.0-alpha03 androidx.annotation:annotation-experimental:1.4.1 androidx.annotation:annotation-jvm:1.9.1 androidx.annotation:annotation:1.9.1 @@ -15,53 +15,47 @@ androidx.cardview:cardview:1.0.0 androidx.collection:collection-jvm:1.5.0 androidx.collection:collection-ktx:1.5.0 androidx.collection:collection:1.5.0 -androidx.compose.animation:animation-android:1.9.0-alpha04 -androidx.compose.animation:animation-core-android:1.9.0-alpha04 -androidx.compose.animation:animation-core:1.9.0-alpha04 -androidx.compose.animation:animation:1.9.0-alpha04 -androidx.compose.foundation:foundation-android:1.9.0-alpha04 -androidx.compose.foundation:foundation-layout-android:1.9.0-alpha04 -androidx.compose.foundation:foundation-layout:1.9.0-alpha04 -androidx.compose.foundation:foundation:1.9.0-alpha04 -androidx.compose.material3.adaptive:adaptive-android:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive-layout-android:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive-layout:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive-navigation-android:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive-navigation:1.2.0-alpha06 -androidx.compose.material3.adaptive:adaptive:1.2.0-alpha06 -androidx.compose.material3:material3-android:1.4.0-alpha15 -androidx.compose.material3:material3-window-size-class-android:1.4.0-alpha15 -androidx.compose.material3:material3-window-size-class:1.4.0-alpha15 -androidx.compose.material3:material3:1.4.0-alpha15 +androidx.compose.animation:animation-android:1.9.0-beta01 +androidx.compose.animation:animation-core-android:1.9.0-beta01 +androidx.compose.animation:animation-core:1.9.0-beta01 +androidx.compose.animation:animation:1.9.0-beta01 +androidx.compose.foundation:foundation-android:1.9.0-beta01 +androidx.compose.foundation:foundation-layout-android:1.9.0-beta01 +androidx.compose.foundation:foundation-layout:1.9.0-beta01 +androidx.compose.foundation:foundation:1.9.0-beta01 +androidx.compose.material3:material3-android:1.4.0-alpha16 +androidx.compose.material3:material3-window-size-class-android:1.4.0-alpha16 +androidx.compose.material3:material3-window-size-class:1.4.0-alpha16 +androidx.compose.material3:material3:1.4.0-alpha16 androidx.compose.material:material-icons-core-android:1.7.8 androidx.compose.material:material-icons-core:1.7.8 androidx.compose.material:material-icons-extended-android:1.7.8 androidx.compose.material:material-icons-extended:1.7.8 -androidx.compose.material:material-ripple-android:1.9.0-alpha04 -androidx.compose.material:material-ripple:1.9.0-alpha04 -androidx.compose.runtime:runtime-android:1.9.0-alpha04 -androidx.compose.runtime:runtime-annotation-android:1.9.0-alpha04 -androidx.compose.runtime:runtime-annotation:1.9.0-alpha04 -androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha04 -androidx.compose.runtime:runtime-saveable:1.9.0-alpha04 -androidx.compose.runtime:runtime-tracing:1.9.0-alpha04 -androidx.compose.runtime:runtime:1.9.0-alpha04 -androidx.compose.ui:ui-android:1.9.0-alpha04 -androidx.compose.ui:ui-geometry-android:1.9.0-alpha04 -androidx.compose.ui:ui-geometry:1.9.0-alpha04 -androidx.compose.ui:ui-graphics-android:1.9.0-alpha04 -androidx.compose.ui:ui-graphics:1.9.0-alpha04 -androidx.compose.ui:ui-text-android:1.9.0-alpha04 -androidx.compose.ui:ui-text-google-fonts:1.9.0-alpha04 -androidx.compose.ui:ui-text:1.9.0-alpha04 -androidx.compose.ui:ui-tooling-preview-android:1.9.0-alpha04 -androidx.compose.ui:ui-tooling-preview:1.9.0-alpha04 -androidx.compose.ui:ui-unit-android:1.9.0-alpha04 -androidx.compose.ui:ui-unit:1.9.0-alpha04 -androidx.compose.ui:ui-util-android:1.9.0-alpha04 -androidx.compose.ui:ui-util:1.9.0-alpha04 -androidx.compose.ui:ui:1.9.0-alpha04 -androidx.compose:compose-bom-alpha:2025.06.00 +androidx.compose.material:material-ripple-android:1.9.0-beta01 +androidx.compose.material:material-ripple:1.9.0-beta01 +androidx.compose.runtime:runtime-android:1.9.0-beta01 +androidx.compose.runtime:runtime-annotation-android:1.9.0-beta01 +androidx.compose.runtime:runtime-annotation:1.9.0-beta01 +androidx.compose.runtime:runtime-saveable-android:1.9.0-beta01 +androidx.compose.runtime:runtime-saveable:1.9.0-beta01 +androidx.compose.runtime:runtime-tracing:1.9.0-beta01 +androidx.compose.runtime:runtime:1.9.0-beta01 +androidx.compose.ui:ui-android:1.9.0-beta01 +androidx.compose.ui:ui-geometry-android:1.9.0-beta01 +androidx.compose.ui:ui-geometry:1.9.0-beta01 +androidx.compose.ui:ui-graphics-android:1.9.0-beta01 +androidx.compose.ui:ui-graphics:1.9.0-beta01 +androidx.compose.ui:ui-text-android:1.9.0-beta01 +androidx.compose.ui:ui-text-google-fonts:1.9.0-beta01 +androidx.compose.ui:ui-text:1.9.0-beta01 +androidx.compose.ui:ui-tooling-preview-android:1.9.0-beta01 +androidx.compose.ui:ui-tooling-preview:1.9.0-beta01 +androidx.compose.ui:ui-unit-android:1.9.0-beta01 +androidx.compose.ui:ui-unit:1.9.0-beta01 +androidx.compose.ui:ui-util-android:1.9.0-beta01 +androidx.compose.ui:ui-util:1.9.0-beta01 +androidx.compose.ui:ui:1.9.0-beta01 +androidx.compose:compose-bom-alpha:2025.06.01 androidx.compose:compose-bom:2024.02.01 androidx.concurrent:concurrent-futures:1.1.0 androidx.constraintlayout:constraintlayout-core:1.0.4 @@ -120,6 +114,8 @@ androidx.lifecycle:lifecycle-viewmodel-android:2.9.1 androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.1 androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1 androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.1 +androidx.lifecycle:lifecycle-viewmodel-navigation3-android:1.0.0-alpha02 +androidx.lifecycle:lifecycle-viewmodel-navigation3:1.0.0-alpha02 androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.1 androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1 androidx.lifecycle:lifecycle-viewmodel:2.9.1 @@ -128,32 +124,39 @@ androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 androidx.media:media:1.0.0 androidx.metrics:metrics-performance:1.0.0-beta02 androidx.multidex:multidex:2.0.1 -androidx.navigation:navigation-common-android:2.9.0 -androidx.navigation:navigation-common:2.9.0 -androidx.navigation:navigation-compose-android:2.9.0 -androidx.navigation:navigation-compose:2.9.0 -androidx.navigation:navigation-runtime-android:2.9.0 -androidx.navigation:navigation-runtime:2.9.0 +androidx.navigation3:navigation3-runtime-android:1.0.0-alpha04 +androidx.navigation3:navigation3-runtime:1.0.0-alpha04 +androidx.navigation3:navigation3-ui-android:1.0.0-alpha04 +androidx.navigation3:navigation3-ui:1.0.0-alpha04 +androidx.navigation:navigation-common-ktx:2.5.1 +androidx.navigation:navigation-common:2.5.1 +androidx.navigation:navigation-compose:2.5.1 +androidx.navigation:navigation-runtime-ktx:2.5.1 +androidx.navigation:navigation-runtime:2.5.1 +androidx.navigationevent:navigationevent-android:1.0.0-alpha03 +androidx.navigationevent:navigationevent-compose-android:1.0.0-alpha03 +androidx.navigationevent:navigationevent-compose:1.0.0-alpha03 +androidx.navigationevent:navigationevent:1.0.0-alpha03 androidx.print:print:1.0.0 androidx.privacysandbox.ads:ads-adservices-java:1.1.0-beta11 androidx.privacysandbox.ads:ads-adservices:1.1.0-beta11 androidx.profileinstaller:profileinstaller:1.4.1 androidx.resourceinspection:resourceinspection-annotation:1.0.1 -androidx.room:room-common-jvm:2.7.1 -androidx.room:room-common:2.7.1 -androidx.room:room-ktx:2.7.1 -androidx.room:room-runtime-android:2.7.1 -androidx.room:room-runtime:2.7.1 +androidx.room:room-common-jvm:2.7.2 +androidx.room:room-common:2.7.2 +androidx.room:room-ktx:2.7.2 +androidx.room:room-runtime-android:2.7.2 +androidx.room:room-runtime:2.7.2 androidx.savedstate:savedstate-android:1.3.0 androidx.savedstate:savedstate-compose-android:1.3.0 androidx.savedstate:savedstate-compose:1.3.0 androidx.savedstate:savedstate-ktx:1.3.0 androidx.savedstate:savedstate:1.3.0 androidx.slidingpanelayout:slidingpanelayout:1.0.0 -androidx.sqlite:sqlite-android:2.5.0 -androidx.sqlite:sqlite-framework-android:2.5.0 -androidx.sqlite:sqlite-framework:2.5.0 -androidx.sqlite:sqlite:2.5.0 +androidx.sqlite:sqlite-android:2.5.1 +androidx.sqlite:sqlite-framework-android:2.5.1 +androidx.sqlite:sqlite-framework:2.5.1 +androidx.sqlite:sqlite:2.5.1 androidx.startup:startup-runtime:1.1.1 androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 androidx.test:core:1.4.0 @@ -169,8 +172,8 @@ androidx.viewpager:viewpager:1.0.0 androidx.window:window-core-android:1.4.0 androidx.window:window-core:1.4.0 androidx.window:window:1.4.0 -com.airbnb.android:lottie-compose:6.6.6 -com.airbnb.android:lottie:6.6.6 +com.airbnb.android:lottie-compose:6.6.7 +com.airbnb.android:lottie:6.6.7 com.github.bumptech.glide:annotations:4.11.0 com.github.bumptech.glide:disklrucache:4.11.0 com.github.bumptech.glide:gifdecoder:4.11.0 @@ -189,12 +192,12 @@ com.google.android.gms:play-services-cloud-messaging:17.2.0 com.google.android.gms:play-services-drive:17.0.0 com.google.android.gms:play-services-fido:20.1.0 com.google.android.gms:play-services-games-v2:20.1.2 -com.google.android.gms:play-services-measurement-api:22.4.0 -com.google.android.gms:play-services-measurement-base:22.4.0 -com.google.android.gms:play-services-measurement-impl:22.4.0 -com.google.android.gms:play-services-measurement-sdk-api:22.4.0 -com.google.android.gms:play-services-measurement-sdk:22.4.0 -com.google.android.gms:play-services-measurement:22.4.0 +com.google.android.gms:play-services-measurement-api:22.5.0 +com.google.android.gms:play-services-measurement-base:22.5.0 +com.google.android.gms:play-services-measurement-impl:22.5.0 +com.google.android.gms:play-services-measurement-sdk-api:22.5.0 +com.google.android.gms:play-services-measurement-sdk:22.5.0 +com.google.android.gms:play-services-measurement:22.5.0 com.google.android.gms:play-services-mlkit-text-recognition-common:19.1.0 com.google.android.gms:play-services-mlkit-text-recognition:19.0.1 com.google.android.gms:play-services-stats:17.0.2 @@ -219,13 +222,13 @@ com.google.dagger:hilt-android:2.56.2 com.google.dagger:hilt-core:2.56.2 com.google.errorprone:error_prone_annotations:2.26.0 com.google.firebase:firebase-abt:21.1.1 -com.google.firebase:firebase-analytics-ktx:22.4.0 -com.google.firebase:firebase-analytics:22.4.0 +com.google.firebase:firebase-analytics-ktx:22.5.0 +com.google.firebase:firebase-analytics:22.5.0 com.google.firebase:firebase-annotations:16.2.0 com.google.firebase:firebase-appcheck-interop:17.0.0 com.google.firebase:firebase-auth-interop:20.0.0 com.google.firebase:firebase-auth:23.2.1 -com.google.firebase:firebase-bom:33.15.0 +com.google.firebase:firebase-bom:33.16.0 com.google.firebase:firebase-common-ktx:21.0.0 com.google.firebase:firebase-common:21.0.0 com.google.firebase:firebase-components:18.0.0 @@ -243,8 +246,8 @@ com.google.firebase:firebase-inappmessaging:21.0.2 com.google.firebase:firebase-installations-interop:17.2.0 com.google.firebase:firebase-installations:18.0.0 com.google.firebase:firebase-measurement-connector:20.0.1 -com.google.firebase:firebase-messaging-ktx:24.1.1 -com.google.firebase:firebase-messaging:24.1.1 +com.google.firebase:firebase-messaging-ktx:24.1.2 +com.google.firebase:firebase-messaging:24.1.2 com.google.firebase:firebase-perf-ktx:21.0.5 com.google.firebase:firebase-perf:21.0.5 com.google.firebase:firebase-sessions:2.1.2 @@ -255,8 +258,7 @@ com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava com.google.mlkit:common:18.11.0 com.google.mlkit:vision-common:17.3.0 com.google.mlkit:vision-interfaces:16.3.0 -com.google.protobuf:protobuf-javalite:4.31.1 -com.google.protobuf:protobuf-kotlin-lite:4.31.1 +com.google.protobuf:protobuf-javalite:3.25.5 com.jakewharton.timber:timber:5.0.1 com.squareup.okhttp3:okhttp:4.12.0 com.squareup.okio:okio-jvm:3.11.0 @@ -319,10 +321,10 @@ org.jetbrains.compose.ui:ui-util:1.8.0 org.jetbrains.compose.ui:ui:1.8.0 org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.21 org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.21 -org.jetbrains.kotlin:kotlin-stdlib-common:2.1.21 +org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -org.jetbrains.kotlin:kotlin-stdlib:2.1.21 +org.jetbrains.kotlin:kotlin-stdlib:2.2.0 org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0 org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0 org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2 @@ -331,13 +333,13 @@ org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2 org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.10.2 org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.10.2 -org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.2 -org.jetbrains.kotlinx:kotlinx-datetime:0.6.2 -org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1 -org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1 -org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1 -org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1 -org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 +org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.0 +org.jetbrains.kotlinx:kotlinx-datetime:0.7.0 +org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0 +org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0 +org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0 +org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0 +org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0 org.jetbrains:annotations:23.0.0 org.jspecify:jspecify:1.0.0 org.reactivestreams:reactive-streams:1.0.2 diff --git a/app/fossReliantRelease-badging.txt b/app/fossReliantRelease-badging.txt index 25d0970a..c52664ba 100644 --- a/app/fossReliantRelease-badging.txt +++ b/app/fossReliantRelease-badging.txt @@ -1,4 +1,4 @@ -package: name='com.mshdabiola.playnotepad.foss' versionCode='137' versionName='1.3.7' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15' +package: name='com.mshdabiola.playnotepad.foss' versionCode='137' versionName='1.3.7' platformBuildVersionName='16' platformBuildVersionCode='36' compileSdkVersion='36' compileSdkVersionCodename='16' minSdkVersion:'24' targetSdkVersion:'35' uses-permission: name='android.permission.RECORD_AUDIO' diff --git a/app/src/androidTest/java/com/mshdabiola/playnotepad/AppStateTest.kt b/app/src/androidTest/java/com/mshdabiola/playnotepad/AppStateTest.kt deleted file mode 100644 index 33be0a57..00000000 --- a/app/src/androidTest/java/com/mshdabiola/playnotepad/AppStateTest.kt +++ /dev/null @@ -1,105 +0,0 @@ -/* - *abiola 2022 - */ - -package com.mshdabiola.playnotepad - -import androidx.compose.material3.DrawerState -import androidx.compose.material3.DrawerValue -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.test.junit4.createComposeRule -import androidx.navigation.NavHostController -import androidx.navigation.compose.ComposeNavigator -import androidx.navigation.compose.composable -import androidx.navigation.createGraph -import androidx.navigation.testing.TestNavHostController -import com.mshdabiola.playnotepad.ui.NoteAppState -import com.mshdabiola.testing.util.TestNetworkMonitor -import kotlinx.coroutines.flow.collect -import kotlinx.coroutines.launch -import kotlinx.coroutines.test.UnconfinedTestDispatcher -import kotlinx.coroutines.test.runTest -import org.junit.Rule -import org.junit.Test -import kotlin.test.assertEquals - -class AppStateTest { - - @get:Rule - val composeTestRule = createComposeRule() - - private val networkMonitor = TestNetworkMonitor() - - // Subject under test. - private lateinit var state: NoteAppState - -// @Test -// fun notepadAppState_currentDestination() = runTest { -// var currentDestination: String? = null -// -// composeTestRule.setContent { -// val navController = rememberTestNavController() -// state = -// // remember(navController) { -// NoteAppState( -// navController = NavHostController(LocalContext.current), -// coroutineScope = backgroundScope, -// networkMonitor = networkMonitor, -// drawerState = DrawerState( -// initialValue = DrawerValue.Closed, -// confirmStateChange = { true }, -// ), -// ) -// // } -// -// // Update currentDestination whenever it changes -// currentDestination = state.currentRoute -// -// // Navigate to destination b once -// LaunchedEffect(Unit) { -// navController.setCurrentDestination("b") -// } -// } -// -// assertEquals("b", currentDestination) -// } - - @Test - fun notepadAppState_whenNetworkMonitorIsOffline_StateIsOffline() = runTest(UnconfinedTestDispatcher()) { - composeTestRule.setContent { - state = NoteAppState( - navController = NavHostController(LocalContext.current), - coroutineScope = backgroundScope, - networkMonitor = networkMonitor, - drawerState = DrawerState( - initialValue = DrawerValue.Closed, - confirmStateChange = { true }, - ), - ) - } - - backgroundScope.launch { state.isOffline.collect() } - networkMonitor.setConnected(false) - assertEquals( - true, - state.isOffline.value, - ) - } -} - -@Composable -private fun rememberTestNavController(): TestNavHostController { - val context = LocalContext.current - return remember { - TestNavHostController(context).apply { - navigatorProvider.addNavigator(ComposeNavigator()) - graph = createGraph(startDestination = "a") { - composable("a") { } - composable("b") { } - composable("c") { } - } - } - } -} diff --git a/app/src/androidTest/java/com/mshdabiola/playnotepad/NavigationTest.kt b/app/src/androidTest/kotlin/com/mshdabiola/playnotepad/NavigationTest.kt similarity index 91% rename from app/src/androidTest/java/com/mshdabiola/playnotepad/NavigationTest.kt rename to app/src/androidTest/kotlin/com/mshdabiola/playnotepad/NavigationTest.kt index ffca3f4a..b46bbe01 100644 --- a/app/src/androidTest/java/com/mshdabiola/playnotepad/NavigationTest.kt +++ b/app/src/androidTest/kotlin/com/mshdabiola/playnotepad/NavigationTest.kt @@ -4,6 +4,7 @@ package com.mshdabiola.playnotepad +import androidx.compose.ui.test.ExperimentalTestApi import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performClick @@ -61,11 +62,15 @@ class NavigationTest { } } + @OptIn(ExperimentalTestApi::class) @Test fun onAddButton_showDetails() { composeTestRule.apply { // GIVEN the user follows a topic onNodeWithTag("main:add").performClick() + onNodeWithTag("main:note").performClick() + +// v onNodeWithTag("detail:title").assertExists() // onNodeWithTag("detail:title").assertExists() } diff --git a/app/src/fossReliant/kotlin/com/mshdabiola/playnotepad/MainActivity.kt b/app/src/fossReliant/kotlin/com/mshdabiola/playnotepad/MainActivity.kt index ace69d85..d16b259c 100644 --- a/app/src/fossReliant/kotlin/com/mshdabiola/playnotepad/MainActivity.kt +++ b/app/src/fossReliant/kotlin/com/mshdabiola/playnotepad/MainActivity.kt @@ -26,7 +26,7 @@ import androidx.metrics.performance.JankStats import com.mshdabiola.analytics.AnalyticsHelper import com.mshdabiola.analytics.LocalAnalyticsHelper import com.mshdabiola.data.util.NetworkMonitor -import com.mshdabiola.designsystem.theme.SkTheme +import com.mshdabiola.designsystem.theme.NoteTheme import com.mshdabiola.model.DarkThemeConfig import com.mshdabiola.model.ThemeBrand import com.mshdabiola.playnotepad.ui.NoteApp @@ -97,7 +97,7 @@ class MainActivity : ComponentActivity() { ) CompositionLocalProvider(LocalAnalyticsHelper provides analyticsHelper) { - SkTheme( + NoteTheme( androidTheme = shouldUseAndroidTheme(uiState), darkTheme = darkTheme, disableDynamicTheming = shouldDisableDynamicTheming(uiState), diff --git a/app/src/main/java/com/mshdabiola/playnotepad/SharedActivityViewModel.kt b/app/src/main/java/com/mshdabiola/playnotepad/SharedActivityViewModel.kt deleted file mode 100644 index 50667fb0..00000000 --- a/app/src/main/java/com/mshdabiola/playnotepad/SharedActivityViewModel.kt +++ /dev/null @@ -1,165 +0,0 @@ -/* - *abiola 2022 - */ - -package com.mshdabiola.playnotepad - -import androidx.compose.foundation.text.input.TextFieldState -import androidx.compose.runtime.snapshotFlow -import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope -import com.mshdabiola.data.repository.ILabelRepository -import com.mshdabiola.data.repository.INotePadRepository -import com.mshdabiola.model.Contrast -import com.mshdabiola.model.DarkThemeConfig -import com.mshdabiola.model.Label -import com.mshdabiola.model.MainData -import com.mshdabiola.model.NoteImage -import com.mshdabiola.model.NotePad -import com.mshdabiola.model.ThemeBrand -import com.mshdabiola.model.UserData -import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.FlowPreview -import kotlinx.coroutines.async -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow -import kotlinx.coroutines.flow.collectLatest -import kotlinx.coroutines.flow.debounce -import kotlinx.coroutines.flow.first -import kotlinx.coroutines.flow.update -import kotlinx.coroutines.launch -import javax.inject.Inject - -@OptIn(FlowPreview::class) -@HiltViewModel -class SharedActivityViewModel @Inject constructor( - private val notePadRepository: INotePadRepository, - private val labelRepository: ILabelRepository, - -) : ViewModel() { - - private val _state = MutableStateFlow(SharedActivityUiState.Loading) - val state = _state.asStateFlow() - - val title = TextFieldState() - val content = TextFieldState() - - init { - viewModelScope.launch { - launch { - snapshotFlow { content.text } - .debounce(500) - .collectLatest { text -> - _state.update { - val success = it - - if (success is SharedActivityUiState.Success) { - success.copy(notepad = success.notepad.copy(detail = text.toString())) - } else { - it - } - } - save() - } - } - launch { - snapshotFlow { title.text } - .debounce(500) - .collectLatest { text -> - _state.update { - val success = it - - if (success is SharedActivityUiState.Success) { - success.copy(notepad = success.notepad.copy(title = text.toString())) - } else { - it - } - } - save() - } - } - } - } - - private fun save() { - viewModelScope.launch { - val st = state.value - if (st is SharedActivityUiState.Success) { - notePadRepository.upsert(st.notepad) - } - } - } - - fun toggleCheck(index: Int) { - val success = state.value as SharedActivityUiState.Success - val label = success.labels[index] - val labels = success.notepad.labels.toMutableList() - - if (labels.contains(label)) { - labels.remove(label) - } else { - labels.add(label) - } - _state.update { - success.copy(notepad = success.notepad.copy(labels = labels)) - } - save() - } - - fun newSharePost(title1: String, subject2: String, images: List) { - viewModelScope.launch { - println("images $images, title $title1, subject $subject2") - - val labels = async { - labelRepository.getAllLabels().first() - } - - title.edit { - this.append(title1) - } - content.edit { - append(subject2) - } - - val noteImage = images - .map { notePadRepository.saveImage(it) } - .map { NoteImage(id = it) } - - val notePad = NotePad( - title = title1, - detail = subject2, - images = noteImage, - ) - val id = notePadRepository.upsert(notePad) - - val newNote = notePadRepository.getOneNotePad(id).first()!! - _state.update { - SharedActivityUiState.Success( - labels = labels.await(), - notepad = newNote, - ) - } - } - } - - suspend fun delete() { - val success = state.value as SharedActivityUiState.Success - notePadRepository.delete(listOf(success.notepad)) - } -} - -sealed interface SharedActivityUiState { - data object Loading : SharedActivityUiState - data class Success( - val userData: UserData = UserData( - themeBrand = ThemeBrand.DEFAULT, - darkThemeConfig = DarkThemeConfig.LIGHT, - useDynamicColor = false, - shouldHideOnboarding = false, - contrast = Contrast.High, - mainData = MainData.Note, - ), - val notepad: NotePad = NotePad(), - val labels: List