diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 58f144143..ee7142803 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -32,7 +32,7 @@ jobs: restore-keys: xcode-cache-deriveddata-${{ github.workflow }}-${{ matrix.organization }}- - name: Build Android - run: ./gradlew copyBrandingToCommonResources assemble${{ matrix.type }} -Porganization=${{ matrix.organization }} + run: ./gradlew copyBrandingToCommonResources assembleFull${{ matrix.type }} -Porganization=${{ matrix.organization }} - name: Build iOS App run: bundle exec fastlane ios build organization:${{ matrix.organization }} diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index 3e6981dd1..7625f7813 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -109,7 +109,7 @@ kotlin { // See https://github.com/getsentry/sentry-kotlin-multiplatform?tab=readme-ov-file#cocoa-sdk-version-compatibility-table pod("Sentry") { - version = "8.53.2" + version = "8.55.1" extraOpts += listOf("-compiler-option", "-fmodules") } @@ -120,7 +120,6 @@ kotlin { androidMain.dependencies { implementation(compose.preview) implementation(libs.bundles.android) - implementation("org.ooni:oonimkall:3.27.0-android:@aar") implementation(libs.bundles.mobile) } commonMain { @@ -295,6 +294,9 @@ android { create("full") { dimension = "license" } + create("xperimental") { + dimension = "license" + } create("fdroid") { dimension = "license" // Our APK is too large and F-Droid asked for a split by ABI @@ -335,6 +337,9 @@ android { coreLibraryDesugaring(libs.android.desugar.jdk) debugImplementation(compose.uiTooling) "fullImplementation"(libs.bundles.full.android) + "fullImplementation"("org.ooni:oonimkall:3.27.0-android:@aar") + "fdroidImplementation"("org.ooni:oonimkall:3.27.0-android:@aar") + "xperimentalImplementation"(files("libs/android-oonimkall.aar")) androidTestUtil(libs.android.orchestrator) } dependenciesInfo { diff --git a/composeApp/composeApp.podspec b/composeApp/composeApp.podspec index 6b0f4e40e..5054b43f7 100644 --- a/composeApp/composeApp.podspec +++ b/composeApp/composeApp.podspec @@ -9,7 +9,7 @@ Pod::Spec.new do |spec| spec.vendored_frameworks = 'build/cocoapods/framework/composeApp.framework' spec.libraries = 'c++' spec.ios.deployment_target = '14.0' - spec.dependency 'Sentry', '8.53.2' + spec.dependency 'Sentry', '8.55.1' if !Dir.exist?('build/cocoapods/framework/composeApp.framework') || Dir.empty?('build/cocoapods/framework/composeApp.framework') raise " diff --git a/composeApp/libs/.gitignore b/composeApp/libs/.gitignore new file mode 100644 index 000000000..5ba26bc17 --- /dev/null +++ b/composeApp/libs/.gitignore @@ -0,0 +1,2 @@ +*.aar +*.jar diff --git a/composeApp/src/androidXperimental/kotlin/org/ooni/probe/config/AndroidUpdateMonitoring.kt b/composeApp/src/androidXperimental/kotlin/org/ooni/probe/config/AndroidUpdateMonitoring.kt new file mode 100644 index 000000000..41409c366 --- /dev/null +++ b/composeApp/src/androidXperimental/kotlin/org/ooni/probe/config/AndroidUpdateMonitoring.kt @@ -0,0 +1,7 @@ +package org.ooni.probe.config + +import android.app.Activity + +class AndroidUpdateMonitoring : UpdateMonitoring { + override fun onResume(activity: Activity) {} +} diff --git a/composeApp/src/androidXperimental/kotlin/org/ooni/probe/config/FlavorConfig.kt b/composeApp/src/androidXperimental/kotlin/org/ooni/probe/config/FlavorConfig.kt new file mode 100644 index 000000000..e6e0db97e --- /dev/null +++ b/composeApp/src/androidXperimental/kotlin/org/ooni/probe/config/FlavorConfig.kt @@ -0,0 +1,3 @@ +package org.ooni.probe.config + +class FlavorConfig : FlavorConfigInterface diff --git a/composeApp/src/androidXperimental/kotlin/org/ooni/probe/shared/monitoring/Instrumentation.android.kt b/composeApp/src/androidXperimental/kotlin/org/ooni/probe/shared/monitoring/Instrumentation.android.kt new file mode 100644 index 000000000..0119a35fb --- /dev/null +++ b/composeApp/src/androidXperimental/kotlin/org/ooni/probe/shared/monitoring/Instrumentation.android.kt @@ -0,0 +1,10 @@ +package org.ooni.probe.shared.monitoring + +actual object Instrumentation { + actual suspend fun withTransaction( + operation: String, + name: String?, + data: Map, + block: suspend () -> T, + ): T = block() +} diff --git a/composeApp/src/androidXperimental/kotlin/org/ooni/probe/ui/shared/AppReview.kt b/composeApp/src/androidXperimental/kotlin/org/ooni/probe/ui/shared/AppReview.kt new file mode 100644 index 000000000..51c769f6c --- /dev/null +++ b/composeApp/src/androidXperimental/kotlin/org/ooni/probe/ui/shared/AppReview.kt @@ -0,0 +1,10 @@ +package org.ooni.probe.ui.shared + +import android.app.Activity + +fun showAppReview( + activity: Activity, + onShown: suspend () -> Unit, +) { + // Not supported +} diff --git a/composeApp/src/iosMain/kotlin/org/ooni/probe/shared/monitoring/Instrumentation.ios.kt b/composeApp/src/iosMain/kotlin/org/ooni/probe/shared/monitoring/Instrumentation.ios.kt index 204479545..bce6dda28 100644 --- a/composeApp/src/iosMain/kotlin/org/ooni/probe/shared/monitoring/Instrumentation.ios.kt +++ b/composeApp/src/iosMain/kotlin/org/ooni/probe/shared/monitoring/Instrumentation.ios.kt @@ -11,7 +11,7 @@ actual object Instrumentation { ): T { if (!SentrySDK.isEnabled()) return block() - val span = SentrySDK.span + val span = SentrySDK.span() return if (span == null) { val transaction = SentrySDK.startTransactionWithName( name = name ?: operation, diff --git a/iosApp/Podfile.lock b/iosApp/Podfile.lock index ca94faa93..2451b03d5 100644 --- a/iosApp/Podfile.lock +++ b/iosApp/Podfile.lock @@ -1,15 +1,15 @@ PODS: - composeApp (1.0.0): - - Sentry (= 8.53.2) + - Sentry (= 8.55.1) - libcrypto (2025.09.09-110535) - libevent (2025.09.09-110535) - libssl (2025.09.09-110535) - libtor (2025.09.09-110535) - libz (2025.09.09-110535) - oonimkall (2025.09.09-110535) - - Sentry (8.53.2): - - Sentry/Core (= 8.53.2) - - Sentry/Core (8.53.2) + - Sentry (8.55.1): + - Sentry/Core (= 8.55.1) + - Sentry/Core (8.55.1) - Siren (6.1.3) - sqlite3 (3.42.0): - sqlite3/common (= 3.42.0) @@ -49,14 +49,14 @@ EXTERNAL SOURCES: :podspec: https://github.com/ooni/probe-cli/releases/download/v3.27.0/oonimkall.podspec SPEC CHECKSUMS: - composeApp: d6ffaab10d64ae941321376308fdaad2ed621d93 + composeApp: 23f1c8946d30f151e633bdcf3c7db996ae3be9ce libcrypto: 6fe6cdcad3c473ed4b3ccfe12a95f30840de48e7 libevent: c8df42a11d8217584f940cdfe4aed60fd056572e libssl: 7d9f469af78e11cb2b207211b85bcd415d903ae8 libtor: 08056abb8cd5fa1c7c7e5cd21e22e4436b699b73 libz: d695d2d4082e5b71e6a988188eb8b5b2b18b43fc oonimkall: 9d00aecca34685d6fd6252139703be7793bb6ba8 - Sentry: 59993bffde4a1ac297ba6d268dc4bbce068d7c1b + Sentry: 6c92b12db0634612f6a66757890fea97e788fe12 Siren: c0f6012f61196b73455202db07730f6454a4beb0 sqlite3: f163dbbb7aa3339ad8fc622782c2d9d7b72f7e9c