/* * Aurora Store * Copyright (C) 2021, Rahul Kumar Patel * Copyright (C) 2022, The Calyx Institute * * 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 . * */ plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'org.jetbrains.kotlin.kapt' id 'androidx.navigation.safeargs.kotlin' id 'org.jlleitschuh.gradle.ktlint' id 'com.starter.easylauncher' } java { toolchain { languageVersion.set(JavaLanguageVersion.of(17)) } } android { namespace 'com.aurora.store' compileSdk 33 defaultConfig { applicationId "com.aurora.store" minSdk 19 targetSdk 33 versionCode 45 versionName "4.2.3" vectorDrawables.useSupportLibrary = true multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } signingConfigs { release } buildTypes { release { minifyEnabled true shrinkResources true zipAlignEnabled true signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } nightly { initWith release applicationIdSuffix = ".nightly" } debug { applicationIdSuffix = ".debug" } } buildFeatures { viewBinding true aidl true } kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } lint { lintConfig file("lint.xml") } } kapt { correctErrorTypes = true } easylauncher { buildTypes { nightly { filters chromeLike() } debug { filters chromeLike() } } } dependencies { //MultiDex for Kitkat support implementation "androidx.multidex:multidex:2.0.1" //Protobuf implementation "com.google.protobuf:protobuf-javalite:3.22.3" //Google's Goodies implementation "com.google.android.material:material:1.9.0" implementation "com.google.code.gson:gson:2.10.1" //AndroidX implementation "androidx.core:core-ktx:1.10.1" implementation "androidx.viewpager2:viewpager2:1.0.0" implementation "androidx.vectordrawable:vectordrawable:1.1.0" implementation "androidx.preference:preference-ktx:1.2.0" implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" //Arch LifeCycle def life_version = '2.6.1' implementation "androidx.lifecycle:lifecycle-runtime-ktx:$life_version" implementation "androidx.lifecycle:lifecycle-service:$life_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$life_version" implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$life_version" //Arch Navigation def nav_version = '2.5.3' implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" //Glide def glide_version = '4.15.1' implementation "com.github.bumptech.glide:glide:$glide_version" kapt "com.github.bumptech.glide:compiler:$glide_version" //Shimmer implementation "com.facebook.shimmer:shimmer:0.5.0" //Epoxy def epoxy_version = '5.1.2' implementation "com.airbnb.android:epoxy:$epoxy_version" kapt "com.airbnb.android:epoxy-processor:$epoxy_version" //Merlin implementation "com.novoda:merlin:1.2.1" //HTTP Clients implementation "com.github.kittinunf.fuel:fuel:2.3.1" implementation "com.squareup.okhttp3:okhttp:4.11.0" //Fetch - Downloader implementation "androidx.tonyodev.fetch2:xfetch2:3.1.6" //Kovenant implementation "nl.komponents.kovenant:kovenant:3.3.0" implementation "nl.komponents.kovenant:kovenant-android:3.3.0" //EventBus implementation "org.greenrobot:eventbus:3.3.1" //Lib-SU implementation "com.github.topjohnwu.libsu:core:5.0.5" //Love <3 implementation "com.gitlab.AuroraOSS:gplayapi:3.1.3" //Browser implementation 'androidx.browser:browser:1.5.0' //Test testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' } Properties props = new Properties() def propFile = new File("signing.properties") if (propFile.canRead()) { props.load(new FileInputStream(propFile)) if (props != null && props.containsKey("STORE_FILE") && props.containsKey("STORE_PASSWORD") && props.containsKey("KEY_ALIAS") && props.containsKey("KEY_PASSWORD")) { android.signingConfigs.release.storeFile = file(props["STORE_FILE"]) android.signingConfigs.release.storePassword = props["STORE_PASSWORD"] android.signingConfigs.release.keyAlias = props["KEY_ALIAS"] android.signingConfigs.release.keyPassword = props["KEY_PASSWORD"] } else { println "signing.properties found but some entries are missing" android.buildTypes.release.signingConfig = null } } else { println "signing.properties not found" android.buildTypes.release.signingConfig = null }