mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-09-19 04:59:59 +00:00
Merge 3bdaf2ae5904a5dcd2058dfb85dd5659c07330a5 into c127eb83ab94c069c32d37530d2faecd381cd2a8
This commit is contained in:
commit
7fa5bfe4dc
@ -4,6 +4,8 @@ plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.parcelize)
|
||||
alias(libs.plugins.kotlin.compose)
|
||||
alias(libs.plugins.ksp)
|
||||
alias(libs.plugins.hilt)
|
||||
}
|
||||
|
||||
val githubReleaseCertSha256 = providers
|
||||
@ -141,7 +143,12 @@ dependencies {
|
||||
|
||||
// Navigation
|
||||
implementation(libs.androidx.navigation.compose)
|
||||
|
||||
|
||||
// Dependency injection
|
||||
implementation(libs.hilt.android)
|
||||
implementation(libs.androidx.hilt.navigation.compose)
|
||||
ksp(libs.hilt.compiler)
|
||||
|
||||
// Permissions
|
||||
implementation(libs.accompanist.permissions)
|
||||
|
||||
@ -191,6 +198,10 @@ dependencies {
|
||||
implementation(libs.androidx.exifinterface)
|
||||
|
||||
// Testing
|
||||
implementation(libs.androidx.navigation3.runtime)
|
||||
implementation(libs.androidx.navigation3.ui)
|
||||
implementation(libs.androidx.lifecycle.viewmodel.navigation3)
|
||||
|
||||
testImplementation(libs.bundles.testing)
|
||||
androidTestImplementation(platform(libs.androidx.compose.bom))
|
||||
androidTestImplementation(libs.bundles.compose.testing)
|
||||
|
||||
@ -93,6 +93,9 @@ androidx.emoji2:emoji2:1.4.0=debugAndroidTestLintChecksClasspath,debugAndroidTes
|
||||
androidx.exifinterface:exifinterface:1.4.2=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.fragment:fragment:1.5.4=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.graphics:graphics-path:1.0.1=debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.hilt:hilt-lifecycle-viewmodel-compose:1.4.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.hilt:hilt-lifecycle-viewmodel:1.4.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.hilt:hilt-navigation-compose:1.4.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.interpolator:interpolator:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.legacy:legacy-support-core-utils:1.0.0=debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.lifecycle:lifecycle-common-java8:2.11.0=debugAndroidTestLintChecksClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
@ -113,21 +116,27 @@ androidx.lifecycle:lifecycle-viewmodel-android:2.11.0=debugAndroidTestCompileCla
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.11.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose:2.11.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.lifecycle:lifecycle-viewmodel-ktx:2.11.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.lifecycle:lifecycle-viewmodel-navigation3-android:2.11.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.lifecycle:lifecycle-viewmodel-navigation3:2.11.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.11.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.11.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.lifecycle:lifecycle-viewmodel:2.11.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.loader:loader:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.localbroadcastmanager:localbroadcastmanager:1.0.0=debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation3:navigation3-runtime-android:1.1.6=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation3:navigation3-runtime:1.1.6=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation3:navigation3-ui-android:1.1.6=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation3:navigation3-ui:1.1.6=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation:navigation-common-android:2.9.8=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation:navigation-common:2.9.8=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation:navigation-compose-android:2.9.8=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation:navigation-compose:2.9.8=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation:navigation-runtime-android:2.9.8=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigation:navigation-runtime:2.9.8=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigationevent:navigationevent-android:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigationevent:navigationevent-compose-android:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigationevent:navigationevent-compose:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigationevent:navigationevent:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigationevent:navigationevent-android:1.1.2=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigationevent:navigationevent-compose-android:1.1.2=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigationevent:navigationevent-compose:1.1.2=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.navigationevent:navigationevent:1.1.2=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.print:print:1.0.0=debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.profileinstaller:profileinstaller:1.4.0=debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
androidx.resourceinspection:resourceinspection-annotation:1.0.1=debugAndroidTestLintChecksClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
@ -236,33 +245,46 @@ com.google.auto.service:auto-service:1.1.1=unified-test-platform-android-device-
|
||||
com.google.auto.value:auto-value-annotations:1.11.0=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
com.google.auto.value:auto-value-annotations:1.6.3=debugAndroidTestLintChecksClasspath,debugLintChecksClasspath,debugRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.auto:auto-common:1.2.1=unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
com.google.code.findbugs:jsr305:3.0.2=androidLintTool,debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-core,unified-test-platform-gradle-work-action,unified-test-platform-launcher
|
||||
com.google.code.findbugs:jsr305:3.0.2=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,androidLintTool,debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-core,unified-test-platform-gradle-work-action,unified-test-platform-launcher
|
||||
com.google.code.gson:gson:2.10.1=unified-test-platform-core,unified-test-platform-gradle-work-action
|
||||
com.google.code.gson:gson:2.11.0=androidLintTool,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
com.google.code.gson:gson:2.14.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.code.gson:gson:2.8.9=unified-test-platform-android-driver-instrumentation,unified-test-platform-launcher
|
||||
com.google.crypto.tink:tink-android:1.23.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.crypto.tink:tink:1.18.0=unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-gradle-work-action
|
||||
com.google.dagger:dagger-compiler:2.60.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.google.dagger:dagger-lint-aar:2.60.1=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.dagger:dagger-spi:2.60.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.google.dagger:dagger:2.48=unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-core,unified-test-platform-gradle-work-action
|
||||
com.google.dagger:dagger:2.59=debugAndroidTestLintChecksClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.dagger:dagger:2.60.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.dagger:hilt-android-compiler:2.60.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.google.dagger:hilt-android:2.60.1=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.dagger:hilt-compiler:2.60.1=hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease
|
||||
com.google.dagger:hilt-core:2.60.1=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.devtools.ksp:symbol-processing-api:2.3.11=kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugAndroidTest,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease,kspPluginClasspath,kspPluginClasspathNonEmbeddable
|
||||
com.google.devtools.ksp:symbol-processing-api:2.3.7=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.google.errorprone:error_prone_annotation:2.38.0=debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
com.google.errorprone:error_prone_annotations:2.23.0=unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-core,unified-test-platform-launcher
|
||||
com.google.errorprone:error_prone_annotations:2.36.0=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
com.google.errorprone:error_prone_annotations:2.47.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.google.errorprone:error_prone_annotations:2.48.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.firebase:firebase-annotations:16.0.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.firebase:firebase-components:16.1.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.firebase:firebase-encoders-json:17.1.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.firebase:firebase-encoders:16.1.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.googlejavaformat:google-java-format:1.33.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.google.guava:failureaccess:1.0.1=unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-core,unified-test-platform-launcher
|
||||
com.google.guava:failureaccess:1.0.2=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
com.google.guava:failureaccess:1.0.3=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
com.google.guava:failureaccess:1.0.3=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.google.guava:guava:32.0.1-jre=unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-core,unified-test-platform-launcher
|
||||
com.google.guava:guava:33.4.0-jre=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
com.google.guava:guava:33.4.8-jre=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
com.google.guava:guava:33.6.0-jre=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.google.guava:listenablefuture:1.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=androidLintTool,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-core,unified-test-platform-gradle-work-action,unified-test-platform-launcher
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,androidLintTool,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-core,unified-test-platform-gradle-work-action,unified-test-platform-launcher
|
||||
com.google.j2objc:j2objc-annotations:2.8=unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-core,unified-test-platform-launcher
|
||||
com.google.j2objc:j2objc-annotations:3.0.0=androidLintTool,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
com.google.j2objc:j2objc-annotations:3.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.google.jimfs:jimfs:1.1=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
com.google.mlkit:barcode-scanning-common:17.0.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.google.mlkit:barcode-scanning:17.3.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
@ -288,7 +310,9 @@ com.squareup.okhttp3:okhttp-android:5.4.0=debugAndroidTestCompileClasspath,debug
|
||||
com.squareup.okhttp3:okhttp:5.4.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.squareup.okio:okio-jvm:3.17.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.squareup.okio:okio:3.17.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
com.squareup:javapoet:1.13.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.squareup:javawriter:2.1.1=debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath
|
||||
com.squareup:kotlinpoet:1.11.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
com.sun.istack:istack-commons-runtime:3.0.8=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
com.sun.xml.fastinfoset:FastInfoset:1.2.16=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
commons-codec:commons-codec:1.17.1=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
@ -337,15 +361,16 @@ io.opencensus:opencensus-proto:0.2.0=unified-test-platform-core,unified-test-pla
|
||||
io.perfmark:perfmark-api:0.26.0=unified-test-platform-core
|
||||
io.perfmark:perfmark-api:0.27.0=unified-test-platform-android-test-plugin-host-emulator-control
|
||||
jakarta.activation:jakarta.activation-api:1.2.1=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
jakarta.inject:jakarta.inject-api:2.0.1=debugAndroidTestLintChecksClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
jakarta.inject:jakarta.inject-api:2.0.1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
javax.annotation:javax.annotation-api:1.3.2=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,unified-test-platform-android-test-plugin-host-emulator-control
|
||||
javax.inject:javax.inject:1=androidLintTool,debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-core,unified-test-platform-gradle-work-action
|
||||
javax.inject:javax.inject:1=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,androidLintTool,debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-core,unified-test-platform-gradle-work-action
|
||||
junit:junit:4.13.2=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy-agent:1.17.7=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy:1.17.7=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
net.java.dev.jna:jna-platform:5.6.0=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
net.java.dev.jna:jna:5.6.0=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
net.ltgt.gradle.incap:incap:0.2=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
net.sf.kxml:kxml2:2.3.0=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
no.nordicsemi.android:ble:2.11.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.apache.commons:commons-compress:1.27.1=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
@ -357,6 +382,7 @@ org.bouncycastle:bcpkix-jdk18on:1.79=androidLintTool,unified-test-platform-andro
|
||||
org.bouncycastle:bcprov-jdk18on:1.79=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
org.bouncycastle:bcprov-jdk18on:1.85=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.bouncycastle:bcutil-jdk18on:1.79=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
org.checkerframework:checker-compat-qual:2.5.3=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
org.checkerframework:checker-qual:3.33.0=unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-core,unified-test-platform-launcher
|
||||
org.checkerframework:checker-qual:3.43.0=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
org.codehaus.groovy:groovy:3.0.22=androidLintTool
|
||||
@ -385,9 +411,10 @@ org.jetbrains.kotlin:kotlin-daemon-client:2.4.0=kotlinAbiValidationCompatClasspa
|
||||
org.jetbrains.kotlin:kotlin-daemon-client:2.4.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.4.0=kotlinAbiValidationCompatClasspath
|
||||
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.4.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugAndroidTest,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease
|
||||
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.21=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
org.jetbrains.kotlin:kotlin-parcelize-compiler:2.4.10=kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugAndroidTest,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease
|
||||
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.4.10=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugRuntimeClasspathCopy,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseRuntimeClasspathCopy
|
||||
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinAbiValidationCompatClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugAndroidTest,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease
|
||||
org.jetbrains.kotlin:kotlin-reflect:1.6.10=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kotlinAbiValidationCompatClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugAndroidTest,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
org.jetbrains.kotlin:kotlin-reflect:1.8.21=unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-core,unified-test-platform-gradle-work-action,unified-test-platform-launcher
|
||||
org.jetbrains.kotlin:kotlin-reflect:2.1.20=debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-reflect:2.2.10=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
@ -397,9 +424,11 @@ org.jetbrains.kotlin:kotlin-stdlib-common:1.8.21=unified-test-platform-android-t
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:1.9.0=unified-test-platform-android-driver-instrumentation,unified-test-platform-launcher
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.10=unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-gradle-work-action
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.4.10=debugAndroidTestLintChecksClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-core,unified-test-platform-launcher
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22=debugAndroidTestLintChecksClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.10=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-core,unified-test-platform-launcher
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22=debugAndroidTestLintChecksClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.10=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
@ -407,6 +436,8 @@ org.jetbrains.kotlin:kotlin-stdlib:1.8.21=unified-test-platform-android-test-plu
|
||||
org.jetbrains.kotlin:kotlin-stdlib:1.9.0=unified-test-platform-android-driver-instrumentation,unified-test-platform-launcher
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.10=androidLintTool,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-gradle-work-action
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=composeMappingProducerClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kspPluginClasspath,kspPluginClasspathNonEmbeddable
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.3.21=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.4.0=kotlinAbiValidationCompatClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.4.10=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugRuntimeClasspathCopy,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugAndroidTest,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,releaseRuntimeClasspathCopy
|
||||
org.jetbrains.kotlin:kotlin-tooling-core:2.4.10=kotlinAbiValidationCompatClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
@ -430,9 +461,9 @@ org.jetbrains.kotlinx:kotlinx-coroutines-test:1.11.0=debugAndroidTestCompileClas
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.jetbrains:annotations:13.0=composeMappingProducerClasspath,debugRuntimeClasspathCopy,kotlinAbiValidationCompatClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugAndroidTest,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease,releaseRuntimeClasspathCopy
|
||||
org.jetbrains:annotations:13.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,composeMappingProducerClasspath,debugRuntimeClasspathCopy,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kotlinAbiValidationCompatClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathDebug,kotlinCompilerPluginClasspathDebugAndroidTest,kotlinCompilerPluginClasspathDebugUnitTest,kotlinCompilerPluginClasspathRelease,kspDebugKotlinProcessorClasspath,kspPluginClasspath,kspPluginClasspathNonEmbeddable,kspReleaseKotlinProcessorClasspath,releaseRuntimeClasspathCopy
|
||||
org.jetbrains:annotations:23.0.0=androidLintTool,debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath,unified-test-platform-android-device-provider-ddmlib,unified-test-platform-android-driver-instrumentation,unified-test-platform-android-test-plugin,unified-test-platform-android-test-plugin-host-additional-test-output,unified-test-platform-android-test-plugin-host-apk-installer,unified-test-platform-android-test-plugin-host-coverage,unified-test-platform-android-test-plugin-host-device-info,unified-test-platform-android-test-plugin-host-emulator-control,unified-test-platform-android-test-plugin-host-logcat,unified-test-platform-android-test-plugin-result-listener-gradle,unified-test-platform-core,unified-test-platform-gradle-work-action,unified-test-platform-launcher
|
||||
org.jspecify:jspecify:1.0.0=debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.jspecify:jspecify:1.0.0=_agp_internal_debug_kspClasspath,_agp_internal_release_kspClasspath,debugAndroidTestCompileClasspath,debugAndroidTestLintChecksClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugLintChecksClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath,hiltAnnotationProcessorDebug,hiltAnnotationProcessorDebugAndroidTest,hiltAnnotationProcessorDebugUnitTest,hiltAnnotationProcessorRelease,kspDebugKotlinProcessorClasspath,kspReleaseKotlinProcessorClasspath,releaseCompileClasspath,releaseLintChecksClasspath,releaseRuntimeClasspath
|
||||
org.jvnet.staxex:stax-ex:1.8.1=androidLintTool,unified-test-platform-android-test-plugin-result-listener-gradle
|
||||
org.mockito.kotlin:mockito-kotlin:6.3.0=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
org.mockito:mockito-core:5.23.0=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
@ -461,4 +492,4 @@ org.robolectric:shadows-framework:4.15=debugUnitTestCompileClasspath,debugUnitTe
|
||||
org.robolectric:utils-reflector:4.15=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
org.robolectric:utils:4.15=debugUnitTestCompileClasspath,debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
org.yaml:snakeyaml:2.4=debugUnitTestLintChecksClasspath,debugUnitTestRuntimeClasspath
|
||||
empty=androidApis,androidJdkImage,androidTestUtil,coreLibraryDesugaring,debugAndroidTestAnnotationProcessorClasspath,debugAndroidTestImplementationDependenciesMetadata,debugAnnotationProcessorClasspath,debugImplementationDependenciesMetadata,debugReverseMetadataValues,debugUnitTestAnnotationProcessorClasspath,debugUnitTestImplementationDependenciesMetadata,kotlinCompilerPluginClasspath,lintChecks,lintPublish,releaseAnnotationProcessorClasspath,releaseImplementationDependenciesMetadata,releaseReverseMetadataValues
|
||||
empty=_agp_internal_debugAndroidTest_kspClasspath,_agp_internal_debugUnitTest_kspClasspath,androidApis,androidJdkImage,androidTestUtil,coreLibraryDesugaring,debugAndroidTestAnnotationProcessorClasspath,debugAndroidTestImplementationDependenciesMetadata,debugAnnotationProcessorClasspath,debugImplementationDependenciesMetadata,debugReverseMetadataValues,debugUnitTestAnnotationProcessorClasspath,debugUnitTestImplementationDependenciesMetadata,hiltCompileOnlyDebug,hiltCompileOnlyDebugAndroidTest,hiltCompileOnlyDebugUnitTest,hiltCompileOnlyRelease,kotlinCompilerPluginClasspath,kspDebugAndroidTestKotlinProcessorClasspath,kspDebugUnitTestKotlinProcessorClasspath,lintChecks,lintPublish,releaseAnnotationProcessorClasspath,releaseImplementationDependenciesMetadata,releaseReverseMetadataValues
|
||||
|
||||
@ -4,10 +4,12 @@ import android.app.Application
|
||||
import com.bitchat.android.nostr.RelayDirectory
|
||||
import com.bitchat.android.ui.theme.ThemePreferenceManager
|
||||
import com.bitchat.android.net.ArtiTorManager
|
||||
import dagger.hilt.android.HiltAndroidApp
|
||||
|
||||
/**
|
||||
* Main application class for bitchat Android
|
||||
*/
|
||||
@HiltAndroidApp
|
||||
class BitchatApplication : Application() {
|
||||
|
||||
override fun onCreate() {
|
||||
|
||||
@ -4,7 +4,7 @@ import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.viewModels
|
||||
@ -14,9 +14,7 @@ import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import com.bitchat.android.mesh.BluetoothMeshService
|
||||
@ -45,10 +43,19 @@ import com.bitchat.android.ui.OrientationAwareActivity
|
||||
import com.bitchat.android.ui.theme.BitchatTheme
|
||||
import com.bitchat.android.wifiaware.WifiAwareController
|
||||
import com.bitchat.android.nostr.PoWPreferenceManager
|
||||
import com.bitchat.android.navigation.AppNavigator
|
||||
import com.bitchat.android.navigation.BitchatNavDisplay
|
||||
import com.bitchat.android.navigation.ChatRoute
|
||||
import com.bitchat.android.navigation.EntryProviderInstaller
|
||||
import com.bitchat.android.navigation.OnboardingRoute
|
||||
import com.bitchat.android.navigation.rootRouteFor
|
||||
import com.bitchat.android.services.VerificationService
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MainActivity : OrientationAwareActivity() {
|
||||
|
||||
private lateinit var permissionManager: PermissionManager
|
||||
@ -62,15 +69,18 @@ class MainActivity : OrientationAwareActivity() {
|
||||
private lateinit var unifiedMeshService: MeshService
|
||||
private val mainViewModel: MainViewModel by viewModels()
|
||||
private var pendingMeshForegroundServiceStart = false
|
||||
private val chatViewModel: ChatViewModel by viewModels {
|
||||
object : ViewModelProvider.Factory {
|
||||
override fun <T : androidx.lifecycle.ViewModel> create(modelClass: Class<T>): T {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
return ChatViewModel(application, meshService, unifiedMeshService) as T
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val chatViewModel: ChatViewModel by viewModels()
|
||||
|
||||
// Held by ActivityRetainedComponent, so the back stack outlives configuration
|
||||
// changes without being rebuilt here.
|
||||
@Inject
|
||||
lateinit var navigator: AppNavigator
|
||||
|
||||
// Watches the adapter for the whole Activity, not for as long as some
|
||||
// composable happens to stay on screen. Scoping it to a destination is what
|
||||
// let a Bluetooth switch-off go unnoticed once chat became its own route.
|
||||
private var bluetoothStateReceiver: android.content.BroadcastReceiver? = null
|
||||
|
||||
private val forceFinishReceiver = object : android.content.BroadcastReceiver() {
|
||||
override fun onReceive(context: android.content.Context, intent: android.content.Intent) {
|
||||
if (intent.action == com.bitchat.android.util.AppConstants.UI.ACTION_FORCE_FINISH) {
|
||||
@ -160,14 +170,78 @@ class MainActivity : OrientationAwareActivity() {
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
containerColor = MaterialTheme.colorScheme.background
|
||||
) { innerPadding ->
|
||||
OnboardingFlowScreen(modifier = Modifier
|
||||
// Only onboarding takes the scaffold insets; ChatScreen applies
|
||||
// its own status, navigation and IME padding.
|
||||
val onboardingModifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(innerPadding)
|
||||
)
|
||||
val onboardingState by mainViewModel.onboardingState.collectAsState()
|
||||
val root = rootRouteFor(onboardingState)
|
||||
|
||||
// Seeds the stack on its first run and re-roots it on every
|
||||
// later crossing between onboarding and chat. Keyed on root, so
|
||||
// it stays quiet between onboarding steps. resetTo rather than
|
||||
// goTo: onboarding must not be reachable with Back once the app
|
||||
// is in. Compares the root of the stack, not its top, so pushing
|
||||
// a destination onto chat does not read as a crossing.
|
||||
LaunchedEffect(root) {
|
||||
if (navigator.backStack.firstOrNull() != root) {
|
||||
navigator.resetTo(root)
|
||||
}
|
||||
}
|
||||
|
||||
val entries: EntryProviderInstaller = {
|
||||
entry<OnboardingRoute> { OnboardingFlowScreen(onboardingModifier) }
|
||||
entry<ChatRoute> { ChatScreen(viewModel = chatViewModel) }
|
||||
}
|
||||
|
||||
// NavDisplay rejects an empty back stack and the effect above does
|
||||
// not run until after this composition, so the host waits a frame
|
||||
// for it. Gate on the stack itself: root is non-null immediately,
|
||||
// so gating on that would compose with nothing to show.
|
||||
if (navigator.backStack.isNotEmpty()) {
|
||||
BitchatNavDisplay(
|
||||
navigator = navigator,
|
||||
entryInstallers = setOf(entries),
|
||||
onExit = { finish() },
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
)
|
||||
}
|
||||
|
||||
// Chat still drives its overlays with booleans rather than routes,
|
||||
// and NavDisplay enables its own handler only while something sits
|
||||
// beneath the current scene, which at the root destination is never.
|
||||
// So the press has to be claimed here. Composed after NavDisplay:
|
||||
// among enabled handlers the last one composed wins, so overlays
|
||||
// unwind before routes pop. Called unconditionally and gated by
|
||||
// enabled, because a conditional call would reorder composition.
|
||||
// Removed once the overlays become routes.
|
||||
val canHandleBack by chatViewModel.canHandleBack.collectAsState()
|
||||
BackHandler(
|
||||
enabled = navigator.backStack.lastOrNull() == ChatRoute && canHandleBack
|
||||
) {
|
||||
// enabled trails the state by a dispatch and a recomposition, so a
|
||||
// second quick press can arrive with nothing left to unwind. Forward
|
||||
// it rather than swallowing it: pop a route if there is one, and
|
||||
// otherwise leave, which is what the press would have done anyway.
|
||||
if (!chatViewModel.handleBackPressed() && !navigator.goBack()) finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bluetoothStateReceiver = bluetoothStatusManager.monitorBluetoothState(
|
||||
context = this,
|
||||
bluetoothStatusManager = bluetoothStatusManager,
|
||||
onBluetoothStateChanged = { status ->
|
||||
if (status == BluetoothStatus.ENABLED &&
|
||||
mainViewModel.onboardingState.value == OnboardingState.BLUETOOTH_CHECK
|
||||
) {
|
||||
checkBluetoothAndProceed()
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// Collect state changes in a lifecycle-aware manner
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||
@ -197,7 +271,6 @@ class MainActivity : OrientationAwareActivity() {
|
||||
|
||||
@Composable
|
||||
private fun OnboardingFlowScreen(modifier: Modifier = Modifier) {
|
||||
val context = LocalContext.current
|
||||
val onboardingState by mainViewModel.onboardingState.collectAsState()
|
||||
val bluetoothStatus by mainViewModel.bluetoothStatus.collectAsState()
|
||||
val locationStatus by mainViewModel.locationStatus.collectAsState()
|
||||
@ -207,27 +280,6 @@ class MainActivity : OrientationAwareActivity() {
|
||||
val isLocationLoading by mainViewModel.isLocationLoading.collectAsState()
|
||||
val isBatteryOptimizationLoading by mainViewModel.isBatteryOptimizationLoading.collectAsState()
|
||||
|
||||
DisposableEffect(context, bluetoothStatusManager) {
|
||||
|
||||
val receiver = bluetoothStatusManager.monitorBluetoothState(
|
||||
context = context,
|
||||
bluetoothStatusManager = bluetoothStatusManager,
|
||||
onBluetoothStateChanged = { status ->
|
||||
if (status == BluetoothStatus.ENABLED && onboardingState == OnboardingState.BLUETOOTH_CHECK) {
|
||||
checkBluetoothAndProceed()
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
onDispose {
|
||||
try {
|
||||
context.unregisterReceiver(receiver)
|
||||
} catch (e: IllegalStateException) {
|
||||
Log.w("BluetoothStatusUI", "Receiver was not registered")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
when (onboardingState) {
|
||||
OnboardingState.PERMISSION_REQUESTING -> {
|
||||
InitializingScreen(modifier)
|
||||
@ -312,27 +364,12 @@ class MainActivity : OrientationAwareActivity() {
|
||||
)
|
||||
}
|
||||
|
||||
OnboardingState.CHECKING, OnboardingState.INITIALIZING, OnboardingState.COMPLETE -> {
|
||||
// Set up back navigation handling for the chat screen
|
||||
val backCallback = object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
// Let ChatViewModel handle navigation state
|
||||
val handled = chatViewModel.handleBackPressed()
|
||||
if (!handled) {
|
||||
// If ChatViewModel doesn't handle it, disable this callback
|
||||
// and let the system handle it (which will exit the app)
|
||||
this.isEnabled = false
|
||||
onBackPressedDispatcher.onBackPressed()
|
||||
this.isEnabled = true
|
||||
}
|
||||
}
|
||||
}
|
||||
// CHECKING, INITIALIZING and COMPLETE are handled by ChatRoute, so this
|
||||
// composable is only ever shown for the onboarding steps themselves.
|
||||
OnboardingState.CHECKING,
|
||||
OnboardingState.INITIALIZING,
|
||||
OnboardingState.COMPLETE -> Unit
|
||||
|
||||
// Add the callback - this will be automatically removed when the activity is destroyed
|
||||
onBackPressedDispatcher.addCallback(this, backCallback)
|
||||
ChatScreen(viewModel = chatViewModel)
|
||||
}
|
||||
|
||||
OnboardingState.ERROR -> {
|
||||
InitializationErrorScreen(
|
||||
modifier = modifier,
|
||||
@ -864,6 +901,10 @@ class MainActivity : OrientationAwareActivity() {
|
||||
super.onDestroy()
|
||||
|
||||
try { unregisterReceiver(forceFinishReceiver) } catch (_: Exception) { }
|
||||
bluetoothStateReceiver?.let {
|
||||
try { unregisterReceiver(it) } catch (_: IllegalArgumentException) { }
|
||||
}
|
||||
bluetoothStateReceiver = null
|
||||
|
||||
// Cleanup location status manager
|
||||
try {
|
||||
|
||||
@ -5,11 +5,14 @@ import com.bitchat.android.onboarding.BluetoothStatus
|
||||
import com.bitchat.android.onboarding.LocationStatus
|
||||
import com.bitchat.android.onboarding.OnboardingState
|
||||
import com.bitchat.android.onboarding.BatteryOptimizationStatus
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import javax.inject.Inject
|
||||
|
||||
class MainViewModel : ViewModel() {
|
||||
@HiltViewModel
|
||||
class MainViewModel @Inject constructor() : ViewModel() {
|
||||
|
||||
private val _onboardingState = MutableStateFlow(OnboardingState.CHECKING)
|
||||
val onboardingState: StateFlow<OnboardingState> = _onboardingState.asStateFlow()
|
||||
|
||||
36
app/src/main/java/com/bitchat/android/di/MeshModule.kt
Normal file
36
app/src/main/java/com/bitchat/android/di/MeshModule.kt
Normal file
@ -0,0 +1,36 @@
|
||||
package com.bitchat.android.di
|
||||
|
||||
import android.content.Context
|
||||
import com.bitchat.android.mesh.BluetoothMeshService
|
||||
import com.bitchat.android.mesh.MeshService
|
||||
import com.bitchat.android.service.MeshServiceHolder
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
|
||||
/**
|
||||
* Bridges the process-wide mesh instances into the injection graph.
|
||||
*
|
||||
* [MeshServiceHolder] remains the single source of truth: it is shared with the
|
||||
* foreground service, it synchronises creation, and it supports replacing the
|
||||
* mesh service after a panic clear. These bindings are therefore deliberately
|
||||
* unscoped — each injection re-reads the holder. Caching them with @Singleton
|
||||
* would pin the first instance for the process lifetime and hand out a stale
|
||||
* mesh service after a replacement.
|
||||
*/
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object MeshModule {
|
||||
|
||||
@Provides
|
||||
fun provideBluetoothMeshService(
|
||||
@ApplicationContext context: Context
|
||||
): BluetoothMeshService = MeshServiceHolder.getOrCreate(context)
|
||||
|
||||
@Provides
|
||||
fun provideMeshService(
|
||||
@ApplicationContext context: Context
|
||||
): MeshService = MeshServiceHolder.getUnifiedOrCreate(context)
|
||||
}
|
||||
@ -39,6 +39,7 @@ import com.bitchat.android.R
|
||||
import com.bitchat.android.ui.theme.BitchatFontFamily
|
||||
import com.bitchat.android.ui.theme.BitchatTheme
|
||||
import com.bitchat.android.util.UniversalApkManager
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import com.google.accompanist.permissions.ExperimentalPermissionsApi
|
||||
import com.google.accompanist.permissions.rememberMultiplePermissionsState
|
||||
import java.io.File
|
||||
@ -47,6 +48,7 @@ import java.io.File
|
||||
* Activity for managing Wi-Fi P2P hotspot for offline APK sharing.
|
||||
* Pure Compose implementation, no fragments.
|
||||
*/
|
||||
@AndroidEntryPoint
|
||||
class HotspotActivity : ComponentActivity() {
|
||||
|
||||
companion object {
|
||||
|
||||
@ -7,6 +7,8 @@ import android.util.Log
|
||||
import androidx.lifecycle.AndroidViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.bitchat.android.wifiaware.WifiAwareController
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
@ -16,7 +18,10 @@ import java.io.File
|
||||
/**
|
||||
* ViewModel for managing hotspot state and lifecycle.
|
||||
*/
|
||||
class HotspotViewModel(application: Application) : AndroidViewModel(application) {
|
||||
@HiltViewModel
|
||||
class HotspotViewModel @Inject constructor(
|
||||
application: Application
|
||||
) : AndroidViewModel(application) {
|
||||
|
||||
companion object {
|
||||
private const val TAG = "HotspotViewModel"
|
||||
|
||||
@ -0,0 +1,65 @@
|
||||
package com.bitchat.android.navigation
|
||||
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.mutableStateListOf
|
||||
import androidx.compose.runtime.snapshots.SnapshotStateList
|
||||
import androidx.navigation3.runtime.NavKey
|
||||
import dagger.hilt.android.scopes.ActivityRetainedScoped
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
* Single-stack navigator backed by a [SnapshotStateList] that NavDisplay observes.
|
||||
*
|
||||
* Scoped to [dagger.hilt.android.components.ActivityRetainedComponent], which is
|
||||
* what makes the back stack survive configuration changes — there is no
|
||||
* rememberNavBackStack here, and so no requirement that keys be serializable.
|
||||
*
|
||||
* The stack is *not* restored across process death. Nothing needs that yet:
|
||||
* onboarding re-derives its state on launch. When it is needed, the move is
|
||||
* kotlinx-serialization plus rememberNavBackStack, which is why keys are kept as
|
||||
* plain data objects that would be trivial to annotate.
|
||||
*
|
||||
* Deliberately single-stack. The multi-back-stack pattern exists to serve bottom
|
||||
* navigation; this app has no tabs, so it would be a map that only ever holds
|
||||
* one key.
|
||||
*/
|
||||
@Stable
|
||||
@ActivityRetainedScoped
|
||||
class AppNavigator @Inject constructor() : Navigator {
|
||||
|
||||
val backStack: SnapshotStateList<NavKey> = mutableStateListOf()
|
||||
|
||||
override fun goTo(dest: NavKey) {
|
||||
// A same-frame double tap pushes the same key twice. Dedup at the source
|
||||
// rather than guarding every call site.
|
||||
if (backStack.lastOrNull() != dest) backStack.add(dest)
|
||||
}
|
||||
|
||||
override fun goBack(): Boolean {
|
||||
if (backStack.size <= 1) return false
|
||||
backStack.removeAt(backStack.lastIndex)
|
||||
return true
|
||||
}
|
||||
|
||||
override fun popTo(route: NavKey, inclusive: Boolean): Boolean {
|
||||
val index = backStack.indexOfLast { it == route }
|
||||
if (index < 0) return false
|
||||
val target = if (inclusive) index else index + 1
|
||||
// Already at the requested route with inclusive = false pops nothing and
|
||||
// still succeeded.
|
||||
while (backStack.size > target) {
|
||||
backStack.removeAt(backStack.lastIndex)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun replaceCurrent(dest: NavKey) {
|
||||
if (backStack.isNotEmpty()) backStack.removeAt(backStack.lastIndex)
|
||||
backStack.add(dest)
|
||||
}
|
||||
|
||||
override fun resetTo(dest: NavKey) {
|
||||
backStack.clear()
|
||||
backStack.add(dest)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package com.bitchat.android.navigation
|
||||
|
||||
import androidx.navigation3.runtime.NavKey
|
||||
import com.bitchat.android.onboarding.OnboardingState
|
||||
|
||||
/**
|
||||
* Top-level destinations.
|
||||
*
|
||||
* Onboarding is one destination, not eight. Its steps are driven by permission
|
||||
* results and adapter state changes rather than by the user navigating, and the
|
||||
* app has never supported going back from one step to the previous one. Giving
|
||||
* each step its own entry would invent a history that does not exist.
|
||||
*/
|
||||
data object OnboardingRoute : NavKey
|
||||
|
||||
data object ChatRoute : NavKey
|
||||
|
||||
/**
|
||||
* The destination that should be at the root for a given onboarding state.
|
||||
*
|
||||
* CHECKING and INITIALIZING map to chat, matching the behaviour this replaced:
|
||||
* the app shows the chat screen while it verifies its own readiness rather than
|
||||
* flashing an onboarding step.
|
||||
*/
|
||||
fun rootRouteFor(state: OnboardingState): NavKey = when (state) {
|
||||
OnboardingState.CHECKING,
|
||||
OnboardingState.INITIALIZING,
|
||||
OnboardingState.COMPLETE -> ChatRoute
|
||||
|
||||
else -> OnboardingRoute
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package com.bitchat.android.navigation
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.lifecycle.viewmodel.navigation3.rememberViewModelStoreNavEntryDecorator
|
||||
import androidx.navigation3.runtime.entryProvider
|
||||
import androidx.navigation3.runtime.rememberSaveableStateHolderNavEntryDecorator
|
||||
import androidx.navigation3.ui.NavDisplay
|
||||
|
||||
/**
|
||||
* Hosts every feature's destinations.
|
||||
*
|
||||
* [entryInstallers] arrives as a Hilt multibinding, so adding a destination
|
||||
* means adding an @IntoSet provider in the owning feature — this function never
|
||||
* changes.
|
||||
*
|
||||
* This handles Back only between destinations, and only while there is one to
|
||||
* go back to: NavDisplay enables its handler on scene.previousEntries being
|
||||
* non-empty, so at the root destination it takes no press at all. A screen with
|
||||
* state the back stack does not model has to claim Back itself, with a handler
|
||||
* registered into the same dispatcher — androidx.activity.compose's BackHandler
|
||||
* is, since activity-compose prefers the NavigationEventDispatcher when one is
|
||||
* present. Among enabled handlers the last one composed wins.
|
||||
*/
|
||||
@Composable
|
||||
fun BitchatNavDisplay(
|
||||
navigator: AppNavigator,
|
||||
entryInstallers: Set<EntryProviderInstaller>,
|
||||
onExit: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
NavDisplay(
|
||||
backStack = navigator.backStack,
|
||||
modifier = modifier,
|
||||
onBack = { if (!navigator.goBack()) onExit() },
|
||||
entryDecorators = listOf(
|
||||
rememberSaveableStateHolderNavEntryDecorator(),
|
||||
rememberViewModelStoreNavEntryDecorator(),
|
||||
),
|
||||
entryProvider = entryProvider {
|
||||
entryInstallers.forEach { install -> install() }
|
||||
},
|
||||
)
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.bitchat.android.navigation
|
||||
|
||||
import androidx.navigation3.runtime.EntryProviderScope
|
||||
import androidx.navigation3.runtime.NavKey
|
||||
|
||||
/**
|
||||
* One feature's contribution to the navigation graph.
|
||||
*
|
||||
* Features provide these into a Set via Hilt multibindings, so the host
|
||||
* assembles every destination without importing any feature's internals.
|
||||
*/
|
||||
typealias EntryProviderInstaller = EntryProviderScope<NavKey>.() -> Unit
|
||||
@ -0,0 +1,18 @@
|
||||
package com.bitchat.android.navigation
|
||||
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.components.ActivityRetainedComponent
|
||||
|
||||
@Module
|
||||
@InstallIn(ActivityRetainedComponent::class)
|
||||
abstract class NavigationModule {
|
||||
|
||||
/**
|
||||
* Features inject [Navigator]; only the host injects [AppNavigator] itself,
|
||||
* since reading or seeding the back stack is the host's job.
|
||||
*/
|
||||
@Binds
|
||||
abstract fun bindNavigator(impl: AppNavigator): Navigator
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.bitchat.android.navigation
|
||||
|
||||
import androidx.navigation3.runtime.NavKey
|
||||
|
||||
/**
|
||||
* The navigation surface features are allowed to depend on.
|
||||
*
|
||||
* Features call this rather than touching the back stack directly, so the
|
||||
* guards below live in one place instead of at every call site.
|
||||
*/
|
||||
interface Navigator {
|
||||
|
||||
/** Push [dest], unless it is already on top. */
|
||||
fun goTo(dest: NavKey)
|
||||
|
||||
/** Pop one entry. Returns false when the stack cannot go back any further. */
|
||||
fun goBack(): Boolean
|
||||
|
||||
/** Pop back to [route]. Returns false when [route] is not on the stack. */
|
||||
fun popTo(route: NavKey, inclusive: Boolean = false): Boolean
|
||||
|
||||
/** Swap the current top for [dest], so Back skips the screen being replaced. */
|
||||
fun replaceCurrent(dest: NavKey)
|
||||
|
||||
/** Clear the stack and start again at [dest]. */
|
||||
fun resetTo(dest: NavKey)
|
||||
}
|
||||
@ -63,8 +63,8 @@ import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.bitchat.android.ui.theme.BitchatFontFamily
|
||||
import com.bitchat.android.R
|
||||
import com.bitchat.android.core.ui.component.button.CloseButton
|
||||
@ -617,7 +617,7 @@ fun AboutSheet(
|
||||
)
|
||||
|
||||
// === Prepare App for Sharing Section ===
|
||||
val apkViewModel: ApkDownloadViewModel = viewModel()
|
||||
val apkViewModel: ApkDownloadViewModel = hiltViewModel()
|
||||
val apkUiState by apkViewModel.state.collectAsStateWithLifecycle()
|
||||
val apkStatus = apkUiState.apkStatus
|
||||
val releaseStatus = apkUiState.releaseStatus
|
||||
|
||||
@ -15,6 +15,8 @@ import com.bitchat.android.util.LatestReleaseProvider
|
||||
import com.bitchat.android.util.ShareableApkVariant
|
||||
import com.bitchat.android.util.UniversalApkManager
|
||||
import com.bitchat.android.util.WorkManagerApkDownloader
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
@ -151,6 +153,7 @@ sealed class ApkUiEffect {
|
||||
* ViewModel for APK download/status/share logic following MVI pattern.
|
||||
* UI sends [ApkUiEvent], observes [ApkUiState], and collects [ApkUiEffect].
|
||||
*/
|
||||
@HiltViewModel
|
||||
class ApkDownloadViewModel internal constructor(
|
||||
application: Application,
|
||||
private val apkManager: UniversalApkManager,
|
||||
@ -158,6 +161,11 @@ class ApkDownloadViewModel internal constructor(
|
||||
private val latestReleaseProvider: LatestReleaseProvider
|
||||
) : AndroidViewModel(application) {
|
||||
|
||||
// Hilt injects through this constructor rather than the primary one:
|
||||
// UniversalApkManager's collaborators are internal, and routing internal
|
||||
// Kotlin types through Dagger's generated Java buys nothing here. Tests
|
||||
// keep using the primary constructor to substitute fakes.
|
||||
@Inject
|
||||
constructor(application: Application) : this(
|
||||
application = application,
|
||||
apkManager = UniversalApkManager(application),
|
||||
|
||||
@ -170,6 +170,26 @@ class ChatState(
|
||||
initialValue = false
|
||||
)
|
||||
|
||||
// Mirrors the branches of ChatViewModel.handleBackPressed. The back handler
|
||||
// is enabled from this and the press consumed by that, so they must agree.
|
||||
val canHandleBack: StateFlow<Boolean> = combine(
|
||||
_showAppInfo,
|
||||
_showPasswordPrompt,
|
||||
_selectedPrivateChatPeer,
|
||||
_privateChatSheetPeer,
|
||||
_currentChannel
|
||||
) { showAppInfo, showPasswordPrompt, privateChatPeer, privateChatSheetPeer, channel ->
|
||||
showAppInfo ||
|
||||
showPasswordPrompt ||
|
||||
privateChatPeer != null ||
|
||||
privateChatSheetPeer != null ||
|
||||
channel != null
|
||||
}.stateIn(
|
||||
scope = scope,
|
||||
started = WhileSubscribed(5_000),
|
||||
initialValue = false
|
||||
)
|
||||
|
||||
// Getters for internal state access
|
||||
fun getMessagesValue() = _messages.value
|
||||
fun getConnectedPeersValue() = _connectedPeers.value
|
||||
|
||||
@ -7,6 +7,8 @@ import androidx.lifecycle.AndroidViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.bitchat.android.favorites.FavoritesChangeListener
|
||||
import com.bitchat.android.favorites.FavoritesPersistenceService
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@ -53,7 +55,8 @@ private data class ConversationLiveIdentityState(
|
||||
* Refactored ChatViewModel - Main coordinator for bitchat functionality
|
||||
* Delegates specific responsibilities to specialized managers while maintaining 100% iOS compatibility
|
||||
*/
|
||||
class ChatViewModel(
|
||||
@HiltViewModel
|
||||
class ChatViewModel @Inject constructor(
|
||||
application: Application,
|
||||
initialMeshService: BluetoothMeshService,
|
||||
initialUnifiedMeshService: MeshService
|
||||
@ -387,6 +390,7 @@ class ChatViewModel(
|
||||
val passwordPromptChannel: StateFlow<String?> = state.passwordPromptChannel
|
||||
val hasUnreadChannels = state.hasUnreadChannels
|
||||
val hasUnreadPrivateMessages = state.hasUnreadPrivateMessages
|
||||
val canHandleBack = state.canHandleBack
|
||||
val showCommandSuggestions: StateFlow<Boolean> = state.showCommandSuggestions
|
||||
val commandSuggestions: StateFlow<List<CommandSuggestion>> = state.commandSuggestions
|
||||
val showMentionSuggestions: StateFlow<Boolean> = state.showMentionSuggestions
|
||||
|
||||
@ -0,0 +1,90 @@
|
||||
package com.bitchat.android.ui
|
||||
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.test.TestScope
|
||||
import kotlinx.coroutines.test.UnconfinedTestDispatcher
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
/**
|
||||
* `canHandleBack` must agree with the branches of
|
||||
* [ChatViewModel.handleBackPressed]: the back handler is enabled from one and
|
||||
* the press consumed by the other.
|
||||
*/
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
class ChatStateBackNavigationTest {
|
||||
|
||||
private lateinit var scope: TestScope
|
||||
private lateinit var state: ChatState
|
||||
private lateinit var subscription: Job
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
scope = TestScope(UnconfinedTestDispatcher())
|
||||
state = ChatState(scope)
|
||||
// Shared WhileSubscribed, so it only tracks its sources while collected.
|
||||
subscription = scope.launch { state.canHandleBack.collect { } }
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
subscription.cancel()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `is false on the bare chat screen`() {
|
||||
assertFalse(state.canHandleBack.value)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `is true while the app info dialog is open`() {
|
||||
state.setShowAppInfo(true)
|
||||
|
||||
assertTrue(state.canHandleBack.value)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `is true while the password prompt is open`() {
|
||||
state.setShowPasswordPrompt(true)
|
||||
|
||||
assertTrue(state.canHandleBack.value)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `is true while a private chat is selected`() {
|
||||
state.setSelectedPrivateChatPeer("peer-a")
|
||||
|
||||
assertTrue(state.canHandleBack.value)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `is true while the private chat sheet is open`() {
|
||||
state.setPrivateChatSheetPeer("peer-a")
|
||||
|
||||
assertTrue(state.canHandleBack.value)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `is true while a channel is open`() {
|
||||
state.setCurrentChannel("#bitchat")
|
||||
|
||||
assertTrue(state.canHandleBack.value)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `returns to false once the last overlay closes`() {
|
||||
state.setCurrentChannel("#bitchat")
|
||||
state.setShowAppInfo(true)
|
||||
|
||||
state.setShowAppInfo(false)
|
||||
assertTrue("the channel is still open", state.canHandleBack.value)
|
||||
|
||||
state.setCurrentChannel(null)
|
||||
assertFalse("nothing is left to unwind", state.canHandleBack.value)
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,8 @@ plugins {
|
||||
alias(libs.plugins.android.application) apply false
|
||||
alias(libs.plugins.android.library) apply false
|
||||
alias(libs.plugins.kotlin.compose) apply false
|
||||
alias(libs.plugins.ksp) apply false
|
||||
alias(libs.plugins.hilt) apply false
|
||||
}
|
||||
|
||||
val resolveIdeRuntimeClasspathCopyLocks = tasks.register("resolveIdeRuntimeClasspathCopyLocks") {
|
||||
|
||||
@ -27,8 +27,14 @@ kotlin.code.style=official
|
||||
# signed by an unexpected publisher.
|
||||
BITCHAT_GITHUB_RELEASE_CERT_SHA256=3b03fa66a5451321100792f5b55a7b4966d5c8dc10c6daa40aa95ea489531bca
|
||||
|
||||
# JVM heap size configuration to prevent OutOfMemoryError
|
||||
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
||||
# JVM heap size configuration to prevent OutOfMemoryError.
|
||||
# Metaspace is 1g rather than 512m: KSP and the Hilt/Dagger annotation
|
||||
# processors load a large amount of extra classes into the daemon, and at 512m
|
||||
# a combined test + lint + KSP invocation across the modules exhausts it. The
|
||||
# failure surfaces as ClassLoader.defineClass OutOfMemoryError in unrelated
|
||||
# tasks, and can truncate gradle/verification-metadata.xml if it lands during
|
||||
# a --write-verification-metadata run.
|
||||
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError
|
||||
|
||||
# Enabled parallel sync for Gradle 9.4+
|
||||
org.gradle.tooling.parallel=true
|
||||
|
||||
@ -2,6 +2,9 @@
|
||||
# Android and Kotlin
|
||||
agp = "9.3.1"
|
||||
kotlin = "2.4.10"
|
||||
# KSP versions independently of Kotlin as of 2.3.0; earlier releases used a
|
||||
# <kotlin>-<ksp> scheme that had to match the Kotlin version exactly.
|
||||
ksp = "2.3.11"
|
||||
compileSdk = "37"
|
||||
minSdk = "26" # API 26 for proper BLE support
|
||||
targetSdk = "37"
|
||||
@ -19,6 +22,13 @@ compose-icons-extended = "1.7.8"
|
||||
|
||||
# Navigation
|
||||
navigation-compose = "2.9.8"
|
||||
# Latest stable line; the 1.2.0 branch is still alpha. 1.1.6 floors Compose at
|
||||
# 1.10.0, below the 1.11.4 the BOM resolves, so it does not drag Compose forward.
|
||||
navigation3 = "1.1.6"
|
||||
|
||||
# Dependency injection
|
||||
hilt = "2.60.1"
|
||||
androidx-hilt = "1.4.0"
|
||||
|
||||
# Accompanist
|
||||
accompanist-permissions = "0.37.3"
|
||||
@ -76,6 +86,11 @@ mockito-core = "5.23.0"
|
||||
roboelectric = "4.15" # 4.16+ drops the AndroidKeyStore shim; breaks EncryptionServiceTest
|
||||
|
||||
[libraries]
|
||||
# Gradle plugin artifacts, resolved only by build-logic convention plugins
|
||||
android-gradlePlugin = { module = "com.android.tools.build:gradle", version.ref = "agp" }
|
||||
kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
|
||||
compose-gradlePlugin = { module = "org.jetbrains.kotlin:compose-compiler-gradle-plugin", version.ref = "kotlin" }
|
||||
|
||||
# AndroidX Core
|
||||
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "core-ktx" }
|
||||
androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "lifecycle-runtime" }
|
||||
@ -97,6 +112,14 @@ androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-
|
||||
|
||||
# Navigation
|
||||
androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigation-compose" }
|
||||
androidx-navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "navigation3" }
|
||||
androidx-navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "navigation3" }
|
||||
androidx-lifecycle-viewmodel-navigation3 = { module = "androidx.lifecycle:lifecycle-viewmodel-navigation3", version.ref = "lifecycle-runtime" }
|
||||
|
||||
# Dependency injection
|
||||
hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" }
|
||||
hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" }
|
||||
androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "androidx-hilt" }
|
||||
|
||||
# Accompanist
|
||||
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist-permissions" }
|
||||
@ -166,6 +189,8 @@ android-application = { id = "com.android.application", version.ref = "agp" }
|
||||
android-library = { id = "com.android.library", version.ref = "agp" }
|
||||
kotlin-parcelize = { id = "kotlin-parcelize" }
|
||||
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
||||
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
||||
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
|
||||
|
||||
[bundles]
|
||||
compose = [
|
||||
|
||||
@ -59,6 +59,11 @@
|
||||
<sha256 value="f204b05b728a97561718bc716242e47c629c0085a80ee74fca53d4d638bcbe3f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.annotation" name="annotation-experimental" version="1.3.1">
|
||||
<artifact name="annotation-experimental-1.3.1.module">
|
||||
<sha256 value="9b6974a7dfe26d3c209dd63e16f8ee2461b57a091789160ca1eb492bb1bf3f84" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.annotation" name="annotation-experimental" version="1.4.1">
|
||||
<artifact name="annotation-experimental-1.4.1.aar">
|
||||
<sha256 value="6bd4c7c7476f8260cd3bdbb81183583e93fc9f790c27dea7dc314181cbf87aa0" origin="Generated by Gradle"/>
|
||||
@ -549,6 +554,11 @@
|
||||
<sha256 value="7b9351b0ff6df9276d02d40f12765ae55bf5c6dfb8ff8df4c77dfca138fb9fc1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.compose.runtime" name="runtime" version="1.8.2">
|
||||
<artifact name="runtime-1.8.2.module">
|
||||
<sha256 value="2137c9a8000687e558f1d8cf170871ac3321b30ea5ca200a42c607720c8212e3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.compose.runtime" name="runtime" version="1.9.0">
|
||||
<artifact name="runtime-1.9.0.module">
|
||||
<sha256 value="b11e9b641b65477f686e19b499daa435baf420d13bb79e98db05ec01892db22e" origin="Generated by Gradle"/>
|
||||
@ -1282,6 +1292,30 @@
|
||||
<sha256 value="d2523d73abbe2f1e787106ad4e1f7acee30a7c62370f85bb4d782700f0fd0701" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.hilt" name="hilt-lifecycle-viewmodel" version="1.4.0">
|
||||
<artifact name="hilt-lifecycle-viewmodel-1.4.0.aar">
|
||||
<sha256 value="46c093385e66b5b7dc76b0d5c47eb05304e27229ca1f252a3d64c161fe23433c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="hilt-lifecycle-viewmodel-1.4.0.module">
|
||||
<sha256 value="89e0c7bb7b8427c26256639fa6ad00bb1adb4f29096f1a4fce82e2243e3be655" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.hilt" name="hilt-lifecycle-viewmodel-compose" version="1.4.0">
|
||||
<artifact name="hilt-lifecycle-viewmodel-compose-1.4.0.aar">
|
||||
<sha256 value="a8b85d3d8132ac7a6ca12a99fe1921897196eb5f5e1fbdf104efca5da6236c5c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="hilt-lifecycle-viewmodel-compose-1.4.0.module">
|
||||
<sha256 value="36da3b995c8baf1ba81f53be146fe1ca82f21459000acb599e4d750bb5edb9f2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.hilt" name="hilt-navigation-compose" version="1.4.0">
|
||||
<artifact name="hilt-navigation-compose-1.4.0.aar">
|
||||
<sha256 value="05ae89313bd3c578513d9d86fbfb9aedce3f0f122e9c3e35bde9109d996fe7f2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="hilt-navigation-compose-1.4.0.module">
|
||||
<sha256 value="881663c363502d44012b848d7fe7c129f0e1c30be134afa35c956a0f237fe192" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.interpolator" name="interpolator" version="1.0.0">
|
||||
<artifact name="interpolator-1.0.0.aar">
|
||||
<sha256 value="33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a" origin="Generated by Gradle"/>
|
||||
@ -1455,6 +1489,19 @@
|
||||
<sha256 value="2b35a1381397614ad13cf301cb3685a15be4d50d1584376e7e5418010bd4096d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.lifecycle" name="lifecycle-viewmodel-navigation3" version="2.11.0">
|
||||
<artifact name="lifecycle-viewmodel-navigation3-2.11.0.module">
|
||||
<sha256 value="8a4771ae287872a2439033b4b39ab29648989bcdd766d5a381798890b9f0a6b1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.lifecycle" name="lifecycle-viewmodel-navigation3-android" version="2.11.0">
|
||||
<artifact name="lifecycle-viewmodel-navigation3-android-2.11.0.module">
|
||||
<sha256 value="4b4ef039749a6e0ac8a586c0cfff40c1b07e448142e0c48d28e02c704b065247" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="lifecycle-viewmodel-navigation3.aar">
|
||||
<sha256 value="07889cc98a311023c49cff1feabb23adadcf72121e327e7b9431f1d4831a5ab9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.11.0">
|
||||
<artifact name="lifecycle-viewmodel-savedstate-2.11.0.module">
|
||||
<sha256 value="dc6750a6991bfaac0817469865fe2ccb01e26186a0386299a5d056bac2cc72cc" origin="Generated by Gradle"/>
|
||||
@ -1523,11 +1570,42 @@
|
||||
<sha256 value="7d741a3b0a299a8c8990712009c63bfca8d52d060afe8f5ad9c200619f113237" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigation3" name="navigation3-runtime" version="1.1.6">
|
||||
<artifact name="navigation3-runtime-1.1.6.module">
|
||||
<sha256 value="2fd41f2626eb17ef5690f8886f40d430459cbe9822359637bb027545dd900c5f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigation3" name="navigation3-runtime-android" version="1.1.6">
|
||||
<artifact name="navigation3-runtime-android-1.1.6.module">
|
||||
<sha256 value="294a003e4280a3cd0e8ed24ec605aec6b98be5ee378bc0f2ef0ebe7ceac79487" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="navigation3-runtime.aar">
|
||||
<sha256 value="82145fb70f9c7fd6681e54ed2c9b61787ef428ec62a59d4200a6746394f00336" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigation3" name="navigation3-ui" version="1.1.6">
|
||||
<artifact name="navigation3-ui-1.1.6.module">
|
||||
<sha256 value="cc9c3c03f97b10bc8a019f56f01e1cfd668b1753823ca4b4c24357730d4d10d4" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigation3" name="navigation3-ui-android" version="1.1.6">
|
||||
<artifact name="navigation3-ui-android-1.1.6.module">
|
||||
<sha256 value="e3b0f7fe9c614dd63ae3fdca51ee962f93136fe3216d87fd42767c91084100b3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="navigation3-ui.aar">
|
||||
<sha256 value="1b7004e94f69be0e264ee983a0fbde908e74fb5464f976f2a8b5a9444c414f83" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigationevent" name="navigationevent" version="1.0.0">
|
||||
<artifact name="navigationevent-1.0.0.module">
|
||||
<sha256 value="f33f1e030a0a7d10aab608a5a5d3ff70d25df325ce825ca204aa19c0e0578b53" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigationevent" name="navigationevent" version="1.1.2">
|
||||
<artifact name="navigationevent-1.1.2.module">
|
||||
<sha256 value="9e8c5ad1c7f80dfec824b7ebe219654888515a82bc26e0d2cc679b70b350ffe9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigationevent" name="navigationevent-android" version="1.0.0">
|
||||
<artifact name="navigationevent-android-1.0.0.module">
|
||||
<sha256 value="6fc6224b01bf8fc576724bfd8eccaad6dc19e49150499100cb0cda24e28c947d" origin="Generated by Gradle"/>
|
||||
@ -1536,11 +1614,24 @@
|
||||
<sha256 value="cda4bb83d1c892a208732e99c2d59e4f247ab5c23a1d2524fc004db2e4e9a780" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigationevent" name="navigationevent-android" version="1.1.2">
|
||||
<artifact name="navigationevent-android-1.1.2.module">
|
||||
<sha256 value="44c6081542bea72773dea5733e5cb9c0cdfab616985c4bcebe087959ee4a93ea" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="navigationevent.aar">
|
||||
<sha256 value="40a357103ab703762bf434f424a8486be18652b4aa25110f0d635a4cef5dcd63" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigationevent" name="navigationevent-compose" version="1.0.0">
|
||||
<artifact name="navigationevent-compose-1.0.0.module">
|
||||
<sha256 value="a51c8f63cb5f188561903d8f2ef1496d9eff57e7acddf87d56859b09859baaaf" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigationevent" name="navigationevent-compose" version="1.1.2">
|
||||
<artifact name="navigationevent-compose-1.1.2.module">
|
||||
<sha256 value="3736c69a73fe2b7389adb05529dfe15e9808eb1e1106cfbc2d5525bc15a1f1d3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigationevent" name="navigationevent-compose-android" version="1.0.0">
|
||||
<artifact name="navigationevent-compose-android-1.0.0.module">
|
||||
<sha256 value="38e11be3d6d544e1a00b987f74f56db52f77bbd4a1344f022c36c52f014e162f" origin="Generated by Gradle"/>
|
||||
@ -1549,6 +1640,14 @@
|
||||
<sha256 value="5cee018dbe130b538d2c43cc6f383a109a98f19ba9c8d7a6dda8ca90a2034671" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.navigationevent" name="navigationevent-compose-android" version="1.1.2">
|
||||
<artifact name="navigationevent-compose-android-1.1.2.module">
|
||||
<sha256 value="24a0d539aaa2be6812cfa07cb309a6310538f51a4a5419448b759ed4993f6d98" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="navigationevent-compose.aar">
|
||||
<sha256 value="ac9773dc9076d3b035ccf5494316d78a5f9abc18a8fa73fb211f92957286e1aa" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.print" name="print" version="1.0.0">
|
||||
<artifact name="print-1.0.0.aar">
|
||||
<sha256 value="1d5c7f3135a1bba661fc373fd72e11eb0a4adbb3396787826dd8e4190d5d9edd" origin="Generated by Gradle"/>
|
||||
@ -2825,6 +2924,128 @@
|
||||
<sha256 value="0e47846618c7a1b7a8124fd20623a667643d73cbe0a561bb87056151aa967538" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger" name="dagger" version="2.60.1">
|
||||
<artifact name="dagger-2.60.1.jar">
|
||||
<sha256 value="b012d0df527b51bfcd8953d5fcb4d022a45ebe66010d6f181ede68d1572b5cb2" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="dagger-2.60.1.pom">
|
||||
<sha256 value="480863eac1ed459454773692d57c24b9591ccc9843fbac8c7a7043b7b58993a1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger" name="dagger-compiler" version="2.60.1">
|
||||
<artifact name="dagger-compiler-2.60.1.jar">
|
||||
<sha256 value="5894b1d5acfbfd11a9ef4cbbe3471a6697d50549b967576e123bd9cd397575a6" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="dagger-compiler-2.60.1.pom">
|
||||
<sha256 value="78034c1b13fc302103ee68e7437e3caacef60e8d07810162f7f8702ae7f027f8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger" name="dagger-lint-aar" version="2.60.1">
|
||||
<artifact name="dagger-lint-aar-2.60.1.aar">
|
||||
<sha256 value="353d67061603769702b0e53175af1bf62ca58596c9fb1bfbf13ea9fbda76caba" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="dagger-lint-aar-2.60.1.pom">
|
||||
<sha256 value="a61fa6241933ab93ab0b04ccd6d4907a895b07fdc24c38e6194e4c5c6870626a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger" name="dagger-spi" version="2.60.1">
|
||||
<artifact name="dagger-spi-2.60.1.jar">
|
||||
<sha256 value="a101f27e6c6348fbb3198778970624b3ba2214ecc738b2146c7a1244cb42c417" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="dagger-spi-2.60.1.pom">
|
||||
<sha256 value="a1fff40324d801864f0468195d1027155db8631bca91b5ebb381dc30728ad96f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger" name="hilt-android" version="2.60.1">
|
||||
<artifact name="hilt-android-2.60.1.aar">
|
||||
<sha256 value="2f56128cb843697a683bacd697c1bb18e93c9f87be835922ad1c192c1786f177" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="hilt-android-2.60.1.pom">
|
||||
<sha256 value="c450ae8df138c7cc430b80e20bb232f4548635e3665a8fed80f27dbb8a205c80" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger" name="hilt-android-compiler" version="2.60.1">
|
||||
<artifact name="hilt-android-compiler-2.60.1.jar">
|
||||
<sha256 value="59652c8b93ca835240a2b707211df036fb3bca80b12a8ecd1caa7762a0c8f93c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="hilt-android-compiler-2.60.1.pom">
|
||||
<sha256 value="1b468eacc7bafbda206b17a3b4dd0e4da2b2ec4d29c03bf0d97a640aad0e819f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger" name="hilt-android-gradle-plugin" version="2.60.1">
|
||||
<artifact name="hilt-android-gradle-plugin-2.60.1.jar">
|
||||
<sha256 value="563a6db7626468d9b84dd3d472e67ee61c645f16d628ce0af8e39960b8dd6b9a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="hilt-android-gradle-plugin-2.60.1.pom">
|
||||
<sha256 value="96abcc3d2123bdaf2d7ca3eea62113601762d63a218d878fde7629e76cf9c70e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger" name="hilt-compiler" version="2.60.1">
|
||||
<artifact name="hilt-compiler-2.60.1.jar">
|
||||
<sha256 value="3ff703c9c6da1c1aa2bc14a4e1049dd327632d2de0b05ea2d9a15c497622ec4a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="hilt-compiler-2.60.1.pom">
|
||||
<sha256 value="c6009fc5e41d383bfd4d813ca340812516674dd0a289f39528d442f882592e4c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger" name="hilt-core" version="2.60.1">
|
||||
<artifact name="hilt-core-2.60.1.jar">
|
||||
<sha256 value="a1be36be762a86450e2a9dca97a8554a3252caaf236fdd9bf9fca7636926d2c6" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="hilt-core-2.60.1.pom">
|
||||
<sha256 value="3b70e349215dfc2a0e6b6854076b82eaa089a9896a543ca2fa0f559d9fe26df8" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.dagger.hilt.android" name="com.google.dagger.hilt.android.gradle.plugin" version="2.60.1">
|
||||
<artifact name="com.google.dagger.hilt.android.gradle.plugin-2.60.1.pom">
|
||||
<sha256 value="7c02c99381d2678ff4fb41f17238a83b448cc7e901a08d205ef053e0380e09de" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.devtools.ksp" name="com.google.devtools.ksp.gradle.plugin" version="2.3.11">
|
||||
<artifact name="com.google.devtools.ksp.gradle.plugin-2.3.11.pom">
|
||||
<sha256 value="1663b2590469e60ac9b225b27e838a3db8d762e1f459fe81e0988b471f4e0966" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.devtools.ksp" name="symbol-processing-aa-embeddable" version="2.3.11">
|
||||
<artifact name="symbol-processing-aa-embeddable-2.3.11.jar">
|
||||
<sha256 value="435b76802ab4e8d82055f80a156916b403b4ea12d003e53db5591fb7918dbc55" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="symbol-processing-aa-embeddable-2.3.11.pom">
|
||||
<sha256 value="d23a0226c667b180deab02cb84b910e60f4937fe72c0f109f2a6f2aca5991fcd" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.devtools.ksp" name="symbol-processing-api" version="2.3.11">
|
||||
<artifact name="symbol-processing-api-2.3.11.jar">
|
||||
<sha256 value="88819c9243629ee710c992d3efdc146dae31aafbb7d8029ce5d29d4fbd5d2326" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="symbol-processing-api-2.3.11.module">
|
||||
<sha256 value="b26da6ac85651ec3a65f1cbe88bfd5877748000391667a2f3f7dc34c8923213e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.devtools.ksp" name="symbol-processing-api" version="2.3.7">
|
||||
<artifact name="symbol-processing-api-2.3.7.jar">
|
||||
<sha256 value="bc5c7eca84d8142504f28bb1892bb4d1979feffcdbd6061924ef895510480a02" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="symbol-processing-api-2.3.7.module">
|
||||
<sha256 value="b38828a894dde24523470bad734d264546742de456a7f8128f670bdcd5952e25" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.devtools.ksp" name="symbol-processing-common-deps" version="2.3.11">
|
||||
<artifact name="symbol-processing-common-deps-2.3.11.jar">
|
||||
<sha256 value="30510a4364e02880ce2fbf0c4f0ef564dead3818eef4fc0500cbcee23fc362af" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="symbol-processing-common-deps-2.3.11.module">
|
||||
<sha256 value="1704f8b9009a92e448f63f4742630b1a99e8b8ce8339df85dbfc324e1d0008ec" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.devtools.ksp" name="symbol-processing-gradle-plugin" version="2.3.11">
|
||||
<artifact name="symbol-processing-gradle-plugin-2.3.11.jar">
|
||||
<sha256 value="8a00502695b7c44a190c12b9b54d6668724b7aa583f48f9657fab437fbcf8fb9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="symbol-processing-gradle-plugin-2.3.11.module">
|
||||
<sha256 value="93130c9a1a63e37a617621282e9f32034b91430346faa63fda4bfccd8745d46e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotation" version="2.38.0">
|
||||
<artifact name="error_prone_annotation-2.38.0.jar">
|
||||
<sha256 value="cc6484df1374964d7d957263f2b1131a2deff7e6b26ff8f309cb038020d5f873" origin="Generated by Gradle"/>
|
||||
@ -2879,6 +3100,14 @@
|
||||
<sha256 value="a151df1e2e0b48618d8b06a180748a29b3abb39b1b2396f6a1c879a727488c6e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotations" version="2.47.0">
|
||||
<artifact name="error_prone_annotations-2.47.0.jar">
|
||||
<sha256 value="5364bc6f22e72e98195e406a58d3ba1c09ffa11dea0729592cb870dc2de4056d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="error_prone_annotations-2.47.0.pom">
|
||||
<sha256 value="d80c889a4a6f711f6945fbee79e05ec247b178a567e9d5abf58eb26ebf0a0752" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_annotations" version="2.48.0">
|
||||
<artifact name="error_prone_annotations-2.48.0.jar">
|
||||
<sha256 value="b49c5c958316ed67a09c699dda9aa749caf434d51d863dea599ef36a49b9c855" origin="Generated by Gradle"/>
|
||||
@ -2932,6 +3161,11 @@
|
||||
<sha256 value="c538388d760a5c1c98dcf06f6ed3cfe5f11a651827db5cbd2ed8288c795cad42" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_parent" version="2.47.0">
|
||||
<artifact name="error_prone_parent-2.47.0.pom">
|
||||
<sha256 value="2368a990c7a63095e1d0d44459d5a4092f0eb31f8562bd12cdf0e1c877b6a685" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.errorprone" name="error_prone_parent" version="2.48.0">
|
||||
<artifact name="error_prone_parent-2.48.0.pom">
|
||||
<sha256 value="b33fa8a45c9f1794a5008c0b2d83a84eb28b5d0117a6d156f003f9f09be7410f" origin="Generated by Gradle"/>
|
||||
@ -2977,6 +3211,19 @@
|
||||
<sha256 value="cb226baf546260770f21e8152a6aa88ba15230d739f750df480f2a668d43e0eb" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.googlejavaformat" name="google-java-format" version="1.33.0">
|
||||
<artifact name="google-java-format-1.33.0.jar">
|
||||
<sha256 value="1265aa761ec2908535324b114995a1c6debaedc8a9e2e8553127babcdb58567f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="google-java-format-1.33.0.pom">
|
||||
<sha256 value="87c67ca24a447f4a5a6f62d7ecfb99d42ca2d74f26a3846897c189d3b9998390" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.googlejavaformat" name="google-java-format-parent" version="1.33.0">
|
||||
<artifact name="google-java-format-parent-1.33.0.pom">
|
||||
<sha256 value="c75752dd6f526c4afbf6adb818b805c8bfd7429e3cad805afcdacc5258dcd2e9" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="failureaccess" version="1.0.1">
|
||||
<artifact name="failureaccess-1.0.1.jar">
|
||||
<sha256 value="a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26" origin="Generated by Gradle"/>
|
||||
@ -3030,6 +3277,14 @@
|
||||
<sha256 value="58a3357303069a21930e7b9fe9b864de8bfb8bd4607433dbe48263459620cffc" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava" version="33.6.0-jre">
|
||||
<artifact name="guava-33.6.0-jre.jar">
|
||||
<sha256 value="dc573e1fca4fd5454f4a5fd3d7da2df03002876a4175bafc14a95980dd7713b3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="guava-33.6.0-jre.module">
|
||||
<sha256 value="2baf73ce839ae48e4b9e0083e256b0e58fc3bf8fc78fc3fbe797bbc89011216e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="26.0-android">
|
||||
<artifact name="guava-parent-26.0-android.pom">
|
||||
<sha256 value="f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04" origin="Generated by Gradle"/>
|
||||
@ -3060,6 +3315,11 @@
|
||||
<sha256 value="a03c5199a1be14443df7fd40ba8673b1c6aae04deef6688ce7d573ea489e3a20" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="guava-parent" version="33.6.0-jre">
|
||||
<artifact name="guava-parent-33.6.0-jre.pom">
|
||||
<sha256 value="374bd31f61b1cf612bee9ab2e4d70bbdf77dd85a49b431f809d4fbdc901f2dd4" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.guava" name="listenablefuture" version="1.0">
|
||||
<artifact name="listenablefuture-1.0.jar">
|
||||
<sha256 value="e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069" origin="Generated by Gradle"/>
|
||||
@ -3092,6 +3352,14 @@
|
||||
<sha256 value="23b3d039e168ad89dd114698e6dd7be383f4a2c577b8877d82c73a6515e74a17" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.j2objc" name="j2objc-annotations" version="3.1">
|
||||
<artifact name="j2objc-annotations-3.1.jar">
|
||||
<sha256 value="84d3a150518485f8140ea99b8a985656749629f6433c92b80c75b36aba3b099b" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="j2objc-annotations-3.1.pom">
|
||||
<sha256 value="14570838500034fc1b47c8205ce1c9d6b255c1ccdd2d1afdcdcbf75e89b24a33" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.google.jimfs" name="jimfs" version="1.1">
|
||||
<artifact name="jimfs-1.1.jar">
|
||||
<sha256 value="c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd" origin="Generated by Gradle"/>
|
||||
@ -3352,6 +3620,14 @@
|
||||
<sha256 value="e1abd7f1116cf5e0c59947693e2189208ec94296b2a3394c959e3511d399a7b0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup" name="kotlinpoet" version="1.11.0">
|
||||
<artifact name="kotlinpoet-1.11.0.jar">
|
||||
<sha256 value="2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="kotlinpoet-1.11.0.module">
|
||||
<sha256 value="2d6ad09e7cacb9da63c6fdf333e3432b39942d5586336f02eb06f5b5450f34a0" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.squareup.okhttp3" name="mockwebserver3" version="5.4.0">
|
||||
<artifact name="mockwebserver3-5.4.0.jar">
|
||||
<sha256 value="e1e1d51a57567d6db834f93d98831ab10bb0220b91a67580894d9ab36cc9f065" origin="Generated by Gradle"/>
|
||||
@ -3907,6 +4183,14 @@
|
||||
<sha256 value="1beb35cb4184e6c906a7e32eaebd852dd3da0a263962e99134ab945832394e28" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.ltgt.gradle.incap" name="incap" version="0.2">
|
||||
<artifact name="incap-0.2.jar">
|
||||
<sha256 value="b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="incap-0.2.pom">
|
||||
<sha256 value="1a4a08a1e88d32052cd82dc2f740b34d3048e2c0e6a7c2bfe2309ed00771f73a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="net.sf.jopt-simple" name="jopt-simple" version="4.9">
|
||||
<artifact name="jopt-simple-4.9.jar">
|
||||
<sha256 value="26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5" origin="Generated by Gradle"/>
|
||||
@ -4094,6 +4378,14 @@
|
||||
<sha256 value="e24c1fb4cf1605405a6988e9e4d6e4b2e1f4393fc73a89a9452ae625ee311d02" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.checkerframework" name="checker-compat-qual" version="2.5.3">
|
||||
<artifact name="checker-compat-qual-2.5.3.jar">
|
||||
<sha256 value="d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="checker-compat-qual-2.5.3.pom">
|
||||
<sha256 value="f7fcdac99eb33d169f6d52a35541c22ffd14f458abbcf56f9c49ee1486598c9c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.checkerframework" name="checker-qual" version="2.5.8">
|
||||
<artifact name="checker-qual-2.5.8.pom">
|
||||
<sha256 value="33ac6a0f1341ae96647c7d4465f4aa3d24fe97d2697bcee2ceae6fc8b5ef2c3c" origin="Generated by Gradle"/>
|
||||
@ -4280,6 +4572,11 @@
|
||||
<sha256 value="8ed5af5c6da4a233cad89f0bedacfccfd3ef0e19396a020bb974e2fedbe23e97" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-bom" version="2.3.21">
|
||||
<artifact name="kotlin-bom-2.3.21.pom">
|
||||
<sha256 value="950704bad04c5143656cfca1d2c574f25fcad9cac33905ab22a57e9fdf7bfd88" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-build-statistics" version="2.4.10">
|
||||
<artifact name="kotlin-build-statistics-2.4.10.jar">
|
||||
<sha256 value="ba2748b67fb7b24ee1401eecfee32eb67dd055c85a59a5742188f795477a11cc" origin="Generated by Gradle"/>
|
||||
@ -4485,6 +4782,14 @@
|
||||
<sha256 value="139b3ce8d655807eb68a45798f04329760b2106669ab332d2ac108843d758b29" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-metadata-jvm" version="2.3.21">
|
||||
<artifact name="kotlin-metadata-jvm-2.3.21.jar">
|
||||
<sha256 value="00590f26a5a768777f04252c6cf93c016a3361a6bc93636df67375ad4d19557d" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="kotlin-metadata-jvm-2.3.21.pom">
|
||||
<sha256 value="83b7ab0b0123e7b1428a3d5f74dc151e904a10c8cd32063991a606508bc21e80" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-native-utils" version="2.4.10">
|
||||
<artifact name="kotlin-native-utils-2.4.10.jar">
|
||||
<sha256 value="76ec55f967dc8f57481a27b3e7868cc97cb32964d6d285517aef310c3d754a44" origin="Generated by Gradle"/>
|
||||
@ -4597,6 +4902,14 @@
|
||||
<sha256 value="bfbc657ddd3a8e37e4c8ad417968d5eb0b0b171c9fce48f962c2ad32ee434c21" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.3.20">
|
||||
<artifact name="kotlin-stdlib-2.3.20.jar">
|
||||
<sha256 value="0ae12504a5040ebaf37703908483420d1a5624dd1d93f357665f8c77c848a01e" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="kotlin-stdlib-2.3.20.module">
|
||||
<sha256 value="f4eb344fc4d1e3a28ae16c086ec3e42f52373b466d4308182fb386e392c0efa3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="2.3.21">
|
||||
<artifact name="kotlin-stdlib-2.3.21.jar">
|
||||
<sha256 value="6f64eac736db9434dd6925b4a518b9d1d17177652320c37916cf9ba3ce7d7d7a" origin="Generated by Gradle"/>
|
||||
@ -4647,6 +4960,14 @@
|
||||
<sha256 value="5daf7edcd6d6305d0b0121be597a9d50496babfd2990bdf6b08fd70025a94dd1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.8.0">
|
||||
<artifact name="kotlin-stdlib-jdk7-1.8.0.jar">
|
||||
<sha256 value="4c889d1d9803f5f2eb6c1592a6b7e62369ac7660c9eee15aba16fec059163666" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="kotlin-stdlib-jdk7-1.8.0.pom">
|
||||
<sha256 value="dfa9644a6ae5b898ee475bb1f57e830ba1f770aee6c9c15f8112aa381180184a" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.8.20">
|
||||
<artifact name="kotlin-stdlib-jdk7-1.8.20.jar">
|
||||
<sha256 value="af1ec40c3b951afdcc0c2a0173c7b81763c5281c2d5bafbf0a8544a24c5dcc0c" origin="Generated by Gradle"/>
|
||||
@ -4671,6 +4992,14 @@
|
||||
<sha256 value="be494907e0e19c78bb821154afa1776d5ad7a058b4ab30090f74354b0e1338de" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.8.0">
|
||||
<artifact name="kotlin-stdlib-jdk8-1.8.0.jar">
|
||||
<sha256 value="05b62804441b0c9a1920b6b7d5cf7329a4e24b6258478e32b1f046ca01900946" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="kotlin-stdlib-jdk8-1.8.0.pom">
|
||||
<sha256 value="2bb6c7551b97c7ba029f9866582e7aa19d63abfd4cd53da3fc0c462f3ab5fc26" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.8.20">
|
||||
<artifact name="kotlin-stdlib-jdk8-1.8.20.jar">
|
||||
<sha256 value="e398b67977622718bf18ff99b739c7d9da060f33fb458a2e25203221c16af010" origin="Generated by Gradle"/>
|
||||
@ -4766,11 +5095,21 @@
|
||||
<sha256 value="7b7d1dddf188817deaad738e92e11faa5abdf937c87120cdf036102566ad4be3" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-bom" version="1.10.2">
|
||||
<artifact name="kotlinx-coroutines-bom-1.10.2.pom">
|
||||
<sha256 value="faf0c6538e53ddc0499a63664d8e763c216580b2e18e722ccbdf1b431a6afe26" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-bom" version="1.11.0">
|
||||
<artifact name="kotlinx-coroutines-bom-1.11.0.pom">
|
||||
<sha256 value="f65860bce58a2bfadf05fdc516d38333421f0e387fef87e24449c0394c80d254" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-bom" version="1.6.4">
|
||||
<artifact name="kotlinx-coroutines-bom-1.6.4.pom">
|
||||
<sha256 value="ab2614855fba66aa8a42514dbe3d5a884315ffe1ed63f5932e710a8006245ce1" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-bom" version="1.7.3">
|
||||
<artifact name="kotlinx-coroutines-bom-1.7.3.pom">
|
||||
<sha256 value="4e5d1900e6379ef3f5970d04a8f30529adc82f859e8cc107c21ce8149ef666c4" origin="Generated by Gradle"/>
|
||||
@ -4781,6 +5120,11 @@
|
||||
<sha256 value="1239e9dbe1397cd5971342956b2511bc3ace7b641842e4372a088dcfa8b9ad55" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-bom" version="1.8.1">
|
||||
<artifact name="kotlinx-coroutines-bom-1.8.1.pom">
|
||||
<sha256 value="563e4aa29fa8fe09a6e1746d0a5b51308f7c7dedc468dc5a0ca810a485877030" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-bom" version="1.9.0">
|
||||
<artifact name="kotlinx-coroutines-bom-1.9.0.pom">
|
||||
<sha256 value="bea5511e9001f2c593ab5080df131b219ab5e2085cc5979ce583eacd4946fd78" origin="Generated by Gradle"/>
|
||||
@ -4806,6 +5150,14 @@
|
||||
<sha256 value="ad534034a953b4e12cbeeb874c66adf8b1ca14df15fe0d2e6547aa34e86dfeca" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.10.2">
|
||||
<artifact name="kotlinx-coroutines-core-jvm-1.10.2.jar">
|
||||
<sha256 value="5ca175b38df331fd64155b35cd8cae1251fa9ee369709b36d42e0a288ccce3fd" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="kotlinx-coroutines-core-jvm-1.10.2.module">
|
||||
<sha256 value="e9e4a74b4dbfe0f5ebeed88d49f3546c3ec3089419b20e5250403135c2c64c53" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.11.0">
|
||||
<artifact name="kotlinx-coroutines-core-jvm-1.11.0.jar">
|
||||
<sha256 value="d1d75aa01dffbb4d1c520e67e4c4e7f5f6174718e7cb4632412503f2f0e604fa" origin="Generated by Gradle"/>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user