/* * This file is part of GNU Taler * (C) 2020 Taler Systems S.A. * * GNU Taler 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 3, or (at your option) any later version. * * GNU Taler 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 * GNU Taler; see the file COPYING. If not, see */ import com.android.build.gradle.tasks.MergeResources plugins { id "com.android.application" id "kotlin-android" id "kotlinx-serialization" id "de.undercouch.download" } def walletCoreVersion = "v0.8.0-rc.2" static def versionCodeEpoch() { return (new Date().getTime() / 1000).toInteger() } def gitCommit = { -> def stdout = new ByteArrayOutputStream() exec { commandLine 'git', 'rev-parse', '--short=7', 'HEAD' standardOutput = stdout } return stdout.toString().trim() } android { compileSdkVersion 29 //noinspection GradleDependency buildToolsVersion "$build_tools_version" defaultConfig { applicationId "net.taler.wallet" minSdkVersion 24 targetSdkVersion 29 versionCode 8 versionName "v0.8.0-rc.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" buildConfigField "String", "WALLET_CORE_VERSION", "\"$walletCoreVersion\"" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { minifyEnabled minify_debug proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } flavorDimensions "distributionChannel" productFlavors { fdroid { dimension "distributionChannel" applicationIdSuffix ".fdroid" } google { dimension "distributionChannel" } nightly { dimension "distributionChannel" applicationIdSuffix ".nightly" versionCode versionCodeEpoch() versionNameSuffix " ($gitCommit)" } } compileOptions { sourceCompatibility = 1.8 targetCompatibility = 1.8 } kotlinOptions { jvmTarget = "1.8" } buildFeatures { viewBinding = true } packagingOptions { exclude("META-INF/*.kotlin_module") } lintOptions { abortOnError true ignoreWarnings false // TODO remove once com.google.android.material fixed this // https://github.com/material-components/material-components-android/issues/504 ignore "WrongConstant" } } dependencies { implementation project(":taler-kotlin-android") implementation project(":anastasis-ui") implementation 'net.taler:akono:0.1' implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" implementation 'androidx.preference:preference:1.1.1' implementation "com.google.android.material:material:$material_version" implementation "androidx.constraintlayout:constraintlayout:$constraintlayout_version" // Lists and Selection implementation "androidx.recyclerview:recyclerview:1.1.0" implementation "androidx.recyclerview:recyclerview-selection:1.1.0-rc02" // Navigation Library implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" // ViewModel and LiveData implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" // QR codes implementation 'com.journeyapps:zxing-android-embedded:4.0.2@aar' // Nicer ProgressBar implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1' // Markdown rendering final def markwon_version = '4.5.1' implementation "io.noties.markwon:core:$markwon_version" implementation "io.noties.markwon:ext-tables:$markwon_version" implementation "io.noties.markwon:recycler:$markwon_version" testImplementation 'junit:junit:4.13' testImplementation 'org.json:json:20200518' androidTestImplementation 'androidx.test:runner:1.3.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' } def walletLibraryDir = "src/main/assets" task downloadWalletLibrary(type: Download) { src "https://git.taler.net/wallet-core.git/plain/${walletCoreVersion}/taler-wallet-android.js?h=prebuilt" dest "${walletLibraryDir}/taler-wallet-android-${walletCoreVersion}.js" onlyIfModified true overwrite false doFirst { new File(walletLibraryDir).mkdirs() if (!file(dest).exists()) { // delete old versions before fetching new one delete fileTree(walletLibraryDir) { include 'taler-wallet-android-*.js' } } } } tasks.withType(MergeResources) { inputs.dir walletLibraryDir dependsOn downloadWalletLibrary }