/* * Aurora Store * Copyright (C) 2021, Rahul Kumar Patel * Copyright (C) 2022, The Calyx Institute * Copyright (C) 2023, grrfe * * Aurora Store is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * Aurora Store is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Aurora Store. If not, see . * */ import java.util.Properties plugins { alias(libs.plugins.android.application) alias(libs.plugins.jetbrains.kotlin.android) alias(libs.plugins.jetbrains.kotlin.parcelize) alias(libs.plugins.google.ksp) alias(libs.plugins.androidx.navigation) alias(libs.plugins.ktlint) alias(libs.plugins.rikka.tools.refine.plugin) alias(libs.plugins.hilt.android.plugin) } kotlin { jvmToolchain(17) } android { namespace = "com.aurora.store" compileSdk = 34 defaultConfig { applicationId = "com.aurora.store" minSdk = 21 targetSdk = 34 versionCode = 58 versionName = "4.4.4" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } signingConfigs { if (File("signing.properties").exists()) { create("release") { val properties = Properties().apply { File("signing.properties").inputStream().use { load(it) } } keyAlias = properties["KEY_ALIAS"] as String keyPassword = properties["KEY_PASSWORD"] as String storeFile = file(properties["STORE_FILE"] as String) storePassword = properties["KEY_PASSWORD"] as String } } create("aosp") { // Generated from the AOSP test key: // https://android.googlesource.com/platform/build/+/refs/tags/android-11.0.0_r29/target/product/security/testkey.pk8 keyAlias = "testkey" keyPassword = "testkey" storeFile = file("testkey.jks") storePassword = "testkey" } } buildTypes { release { isMinifyEnabled = true isShrinkResources = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) if (File("signing.properties").exists()) { signingConfig = signingConfigs.getByName("release") } } register("nightly") { initWith(getByName("release")) applicationIdSuffix = ".nightly" } debug { applicationIdSuffix = ".debug" signingConfig = signingConfigs.getByName("aosp") } } buildFeatures { buildConfig = true viewBinding = true aidl = true compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.13" } kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } lint { lintConfig = file("lint.xml") } androidResources { generateLocaleConfig = true } } dependencies { //Google's Goodies implementation(libs.google.android.material) implementation(libs.google.gson) implementation(libs.google.protobuf.javalite) //AndroidX implementation(libs.androidx.core.ktx) implementation(libs.androidx.browser) implementation(libs.androidx.lifecycle.viewmodel.ktx) implementation(libs.androidx.lifecycle.process) implementation(libs.androidx.navigation.fragment.ktx) implementation(libs.androidx.navigation.ui.ktx) implementation(libs.androidx.preference.ktx) implementation(libs.androidx.swiperefreshlayout) implementation(libs.androidx.viewpager2) implementation(libs.androidx.work.runtime.ktx) implementation(libs.androidx.activity.compose) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.material3) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) //Coil implementation(libs.coil.kt) implementation(libs.coil.compose) //Shimmer implementation(libs.facebook.shimmer) //Epoxy implementation(libs.airbnb.epoxy.android) ksp(libs.airbnb.epoxy.processor) //HTTP Clients implementation(libs.squareup.okhttp) //EventBus implementation(libs.greenrobot.eventbus) //Lib-SU implementation(libs.github.topjohnwu.libsu) //GPlayApi implementation(libs.gitlab.auroraoss.gplayapi) //Shizuku compileOnly(libs.rikka.hidden.stub) implementation(libs.rikka.tools.refine.runtime) implementation(libs.rikka.shizuku.api) implementation(libs.rikka.shizuku.provider) implementation(libs.lsposed.hiddenapibypass) //Test testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) //Hilt ksp(libs.hilt.android.compiler) ksp(libs.hilt.androidx.compiler) implementation(libs.hilt.android.core) implementation(libs.hilt.androidx.work) //Room ksp(libs.androidx.room.compiler) implementation(libs.androidx.room.ktx) implementation(libs.androidx.room.runtime) // LeakCanary debugImplementation(libs.squareup.leakcanary.android) }