build.gradle

5.2 KB · raw

1plugins {2    id "com.android.application"3    id "org.jetbrains.kotlin.android"4    id "org.jetbrains.kotlin.plugin.compose"5    id "org.jetbrains.kotlin.plugin.parcelize"6    id "org.jetbrains.kotlin.plugin.serialization"7    id "kotlin-kapt"8    id "com.google.dagger.hilt.android"9}1011android {12    namespace "com.peachpasswords"13    compileSdk 351415    defaultConfig {16        applicationId "com.peachpasswords"17        minSdk 2618        targetSdk 3519        versionCode 23670020        versionName "2.3.67"2122        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"23        vectorDrawables {24            useSupportLibrary true25        }26    }2728    buildTypes {29        debug {30            applicationIdSuffix ".debug"31            versionNameSuffix "-debug"32            debuggable true33        }34        release {35            minifyEnabled false36            proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"37        }38    }3940    compileOptions {41        sourceCompatibility JavaVersion.VERSION_1742        targetCompatibility JavaVersion.VERSION_1743    }4445    kotlinOptions {46        jvmTarget = "17"47    }4849    buildFeatures {50        compose true51        buildConfig true52    }5354    composeOptions {55        kotlinCompilerExtensionVersion "1.5.15"56    }5758    packaging {59        resources {60            excludes += [61                "/META-INF/{AL2.0,LGPL2.1}",62                "META-INF/DEPENDENCIES",63                "META-INF/LICENSE*",64                "META-INF/NOTICE*",65            ]66        }67    }68}6970dependencies {71    implementation platform("androidx.compose:compose-bom:2024.06.00")72    androidTestImplementation platform("androidx.compose:compose-bom:2024.06.00")7374    implementation "androidx.activity:activity-compose:1.9.2"75    implementation "androidx.autofill:autofill:1.1.0"76    implementation "androidx.biometric:biometric:1.1.0"77    implementation "androidx.core:core-splashscreen:1.0.1"78    implementation "androidx.appcompat:appcompat:1.7.0"79    implementation "androidx.credentials:credentials:1.5.0"80    implementation "androidx.credentials:credentials-play-services-auth:1.5.0"81    implementation "androidx.glance:glance-appwidget:1.1.0"82    implementation "androidx.glance:glance-material3:1.1.0"83    implementation "androidx.hilt:hilt-navigation-compose:1.2.0"84    implementation "androidx.lifecycle:lifecycle-runtime-compose:2.8.4"85    implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4"86    implementation "androidx.lifecycle:lifecycle-process:2.8.4"87    implementation "androidx.navigation:navigation-compose:2.8.0"88    // MN-6: androidx.security:security-crypto has no stable 1.1.x release — the only89    // stable line is 1.0.0 (2021), which lacks the Tink updates and Android 12+ fixes90    // in the 1.1.0 alphas and is widely superseded in production. Deliberately pinned91    // to an exact alpha (never a floating range) so the resolved artifact is92    // reproducible. Revisit if/when 1.1.0 stabilises. Used only for the duress/license93    // EncryptedSharedPreferences; the vault slots are sealed by VaultCrypto, not this.94    implementation "androidx.security:security-crypto:1.1.0-alpha06"95    implementation "androidx.compose.material3:material3"96    implementation "androidx.compose.ui:ui"97    implementation "androidx.compose.ui:ui-tooling-preview"98    implementation "androidx.compose.foundation:foundation"99    implementation "androidx.compose.material:material-icons-extended"100    implementation "androidx.core:core-ktx:1.13.1"101    implementation "com.google.android.material:material:1.12.0"102103    implementation "com.google.dagger:hilt-android:2.51.1"104    kapt "com.google.dagger:hilt-compiler:2.51.1"105    implementation "com.google.zxing:core:3.5.3"106    implementation "androidx.camera:camera-core:1.3.4"107    implementation "androidx.camera:camera-camera2:1.3.4"108    implementation "androidx.camera:camera-lifecycle:1.3.4"109    implementation "androidx.camera:camera-view:1.3.4"110    implementation "com.squareup.okhttp3:okhttp:4.12.0"111    implementation "org.bouncycastle:bcprov-jdk18on:1.78.1"112    // zstd-jni (reference libzstd) — per-section compression for the PeachScript113    // PCHS binary format (MF-2). Required for cross-platform interop with the114    // browser's zstd sections. The @aar variant ships the Android jniLibs115    // (lib/<abi>/libzstd-jni.so); the plain jar bundles only desktop natives and116    // would fail with UnsatisfiedLinkError on-device.117    implementation "com.github.luben:zstd-jni:1.5.6-3@aar"118    // The @aar ships only Android .so; the plain jar carries the desktop natives119    // the host JVM unit tests need.120    testImplementation "com.github.luben:zstd-jni:1.5.6-3"121    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1"122    implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1"123124    debugImplementation "androidx.compose.ui:ui-tooling"125    debugImplementation "androidx.compose.ui:ui-test-manifest"126127    androidTestImplementation "androidx.test.ext:junit:1.2.1"128    androidTestImplementation "androidx.test.espresso:espresso-core:3.6.1"129    androidTestImplementation "androidx.compose.ui:ui-test-junit4"130131    testImplementation "junit:junit:4.13.2"132    testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.1"133}