2023-08-03 10:37:56 +02:00
|
|
|
import org.apache.tools.ant.taskdefs.condition.Os
|
2021-11-21 21:10:47 +01:00
|
|
|
import java.util.Properties
|
|
|
|
import java.io.FileInputStream
|
|
|
|
|
|
|
|
val keystorePropertiesFile = rootProject.file("keystore.properties")
|
|
|
|
val useKeystoreProperties = keystorePropertiesFile.canRead()
|
|
|
|
val keystoreProperties = Properties()
|
|
|
|
if (useKeystoreProperties) {
|
|
|
|
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
|
|
|
|
}
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
id("com.android.application")
|
2021-11-22 16:18:59 +01:00
|
|
|
id("kotlin-android")
|
2021-11-21 21:10:47 +01:00
|
|
|
}
|
|
|
|
|
2023-02-02 03:43:25 +01:00
|
|
|
java {
|
|
|
|
toolchain {
|
2023-04-14 12:15:17 +02:00
|
|
|
languageVersion.set(JavaLanguageVersion.of(17))
|
2023-02-02 03:43:25 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-21 21:10:47 +01:00
|
|
|
android {
|
|
|
|
if (useKeystoreProperties) {
|
|
|
|
signingConfigs {
|
|
|
|
create("release") {
|
|
|
|
storeFile = rootProject.file(keystoreProperties["storeFile"]!!)
|
|
|
|
storePassword = keystoreProperties["storePassword"] as String
|
|
|
|
keyAlias = keystoreProperties["keyAlias"] as String
|
|
|
|
keyPassword = keystoreProperties["keyPassword"] as String
|
|
|
|
}
|
2022-02-25 18:13:36 +01:00
|
|
|
|
|
|
|
create("play") {
|
|
|
|
storeFile = rootProject.file(keystoreProperties["storeFile"]!!)
|
|
|
|
storePassword = keystoreProperties["storePassword"] as String
|
|
|
|
keyAlias = keystoreProperties["uploadKeyAlias"] as String
|
|
|
|
keyPassword = keystoreProperties["uploadKeyPassword"] as String
|
|
|
|
}
|
2021-11-21 21:10:47 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-08-26 00:31:25 +02:00
|
|
|
compileSdk = 34
|
2023-07-30 19:21:32 +02:00
|
|
|
buildToolsVersion = "34.0.0"
|
2021-11-21 21:10:47 +01:00
|
|
|
|
2022-09-16 01:53:32 +02:00
|
|
|
namespace = "app.grapheneos.pdfviewer"
|
|
|
|
|
2021-11-21 21:10:47 +01:00
|
|
|
defaultConfig {
|
2022-02-23 13:22:58 +01:00
|
|
|
applicationId = "app.grapheneos.pdfviewer"
|
2021-11-21 21:10:47 +01:00
|
|
|
minSdk = 26
|
2023-10-22 07:27:55 +02:00
|
|
|
targetSdk = 34
|
2024-05-08 01:21:42 +02:00
|
|
|
versionCode = 19
|
2021-11-21 21:10:47 +01:00
|
|
|
versionName = versionCode.toString()
|
2022-01-23 02:28:37 +01:00
|
|
|
resourceConfigurations.add("en")
|
2021-11-21 21:10:47 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
buildTypes {
|
|
|
|
getByName("debug") {
|
|
|
|
applicationIdSuffix = ".debug"
|
|
|
|
}
|
|
|
|
|
|
|
|
getByName("release") {
|
|
|
|
isShrinkResources = true
|
|
|
|
isMinifyEnabled = true
|
|
|
|
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
|
|
|
if (useKeystoreProperties) {
|
|
|
|
signingConfig = signingConfigs.getByName("release")
|
|
|
|
}
|
|
|
|
}
|
2022-02-18 10:47:26 +01:00
|
|
|
|
2022-02-25 18:13:36 +01:00
|
|
|
create("play") {
|
|
|
|
initWith(getByName("release"))
|
|
|
|
applicationIdSuffix = ".play"
|
|
|
|
if (useKeystoreProperties) {
|
|
|
|
signingConfig = signingConfigs.getByName("play")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-02-18 10:47:26 +01:00
|
|
|
buildFeatures {
|
|
|
|
viewBinding = true
|
2023-04-14 12:15:17 +02:00
|
|
|
buildConfig = true
|
2022-02-18 10:47:26 +01:00
|
|
|
}
|
2021-11-21 21:10:47 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2023-02-08 20:45:45 +01:00
|
|
|
implementation("androidx.appcompat:appcompat:1.6.1")
|
2024-05-02 21:18:59 +02:00
|
|
|
implementation("androidx.core:core:1.13.1")
|
2024-05-02 21:32:48 +02:00
|
|
|
implementation("com.google.android.material:material:1.12.0")
|
2021-11-21 21:10:47 +01:00
|
|
|
}
|
2023-08-03 10:37:56 +02:00
|
|
|
|
|
|
|
fun getCommand(command: String, winExt: String = "cmd"): String {
|
|
|
|
return if (Os.isFamily(Os.FAMILY_WINDOWS)) "$command.$winExt" else command
|
|
|
|
}
|
|
|
|
|
|
|
|
val npmSetup = tasks.register("npmSetup", Exec::class) {
|
|
|
|
workingDir = rootDir
|
|
|
|
commandLine(getCommand("npm"), "ci", "--ignore-scripts")
|
|
|
|
}
|
|
|
|
|
|
|
|
val processStatic = tasks.register("processStatic", Exec::class) {
|
|
|
|
workingDir = rootDir
|
|
|
|
dependsOn(npmSetup)
|
|
|
|
commandLine(getCommand("node", "exe"), "process_static.js")
|
|
|
|
}
|
|
|
|
|
|
|
|
val cleanStatic = tasks.register("cleanStatic", Delete::class) {
|
|
|
|
delete("src/main/assets/viewer", "src/debug/assets/viewer")
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.preBuild {
|
|
|
|
dependsOn(processStatic)
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.clean {
|
|
|
|
dependsOn(cleanStatic)
|
|
|
|
}
|