summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-07-21 14:58:44 -0300
committerTorsten Grote <t@grobox.de>2020-07-21 15:06:54 -0300
commit18f311512aec7b828c87c3b297135482abd389a2 (patch)
tree7f355da971ba91f11aeb89ddb4c12062cc908d2f
parent5d3d85fa7190a70eea8fa67866c343005b9922b0 (diff)
downloadtaler-android-18f311512aec7b828c87c3b297135482abd389a2.tar.gz
taler-android-18f311512aec7b828c87c3b297135482abd389a2.tar.bz2
taler-android-18f311512aec7b828c87c3b297135482abd389a2.zip
[wallet] introduce build flavors for distribution channels
(google play, fdroid, nightly) and show flavor name in dev settings
-rw-r--r--wallet/.gitlab-ci.yml14
-rw-r--r--wallet/build.gradle28
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt3
-rw-r--r--wallet/src/nightly/res/values/strings.xml19
4 files changed, 50 insertions, 14 deletions
diff --git a/wallet/.gitlab-ci.yml b/wallet/.gitlab-ci.yml
index 8845aa4f..56768f7c 100644
--- a/wallet/.gitlab-ci.yml
+++ b/wallet/.gitlab-ci.yml
@@ -23,20 +23,8 @@ wallet_deploy_nightly:
script:
# Ensure that key exists
- test -z "$DEBUG_KEYSTORE" && exit 0
- # Rename nightly app
- - sed -i
- 's,<string name="app_name">.*</string>,<string name="app_name">Taler Wallet Nightly</string>,'
- wallet/src/main/res/values*/strings.xml
- # Set time-based version code
- - export versionCode=$(date '+%s')
- - sed -i "s,^\(\s*versionCode\) *[0-9].*,\1 $versionCode," wallet/build.gradle
- # Add commit to version name
- - export versionName=$(git rev-parse --short=7 HEAD)
- - sed -i "s,^\(\s*versionName\ *\"[0-9].*\)\",\1 ($versionName)\"," wallet/build.gradle
- # Set nightly application ID
- - sed -i "s,^\(\s*applicationId\) \"*[a-z\.].*\",\1 \"net.taler.wallet.nightly\"," wallet/build.gradle
# Build the APK
- - ./gradlew :wallet:assembleDebug
+ - ./gradlew :wallet:assembleNightlyDebug
# START only needed while patch not accepted/released upstream
- apt update && apt install patch
- patch -b /usr/lib/python3/dist-packages/fdroidserver/nightly.py nightly-stats.patch
diff --git a/wallet/build.gradle b/wallet/build.gradle
index d93b8b96..5b28c6c1 100644
--- a/wallet/build.gradle
+++ b/wallet/build.gradle
@@ -25,6 +25,18 @@ plugins {
def walletCoreVersion = "v0.7.1-dev.10"
+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
@@ -45,6 +57,22 @@ android {
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
diff --git a/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
index d9b1defa..a52b9d8e 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
@@ -27,6 +27,7 @@ import androidx.preference.SwitchPreferenceCompat
import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_SHORT
import com.google.android.material.snackbar.Snackbar
import net.taler.common.toRelativeTime
+import net.taler.wallet.BuildConfig.FLAVOR
import net.taler.wallet.BuildConfig.VERSION_CODE
import net.taler.wallet.BuildConfig.VERSION_NAME
import net.taler.wallet.BuildConfig.WALLET_CORE_VERSION
@@ -82,7 +83,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
model.devMode.observe(viewLifecycleOwner, Observer { enabled ->
prefDevMode.isChecked = enabled
if (enabled) {
- prefVersionApp.summary = "$VERSION_NAME ($VERSION_CODE)"
+ prefVersionApp.summary = "$VERSION_NAME ($FLAVOR $VERSION_CODE)"
prefVersionCore.summary = WALLET_CORE_VERSION
model.exchangeVersion?.let { prefVersionExchange.summary = it }
model.merchantVersion?.let { prefVersionMerchant.summary = it }
diff --git a/wallet/src/nightly/res/values/strings.xml b/wallet/src/nightly/res/values/strings.xml
new file mode 100644
index 00000000..7276d52c
--- /dev/null
+++ b/wallet/src/nightly/res/values/strings.xml
@@ -0,0 +1,19 @@
+<!--
+ ~ 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 <http://www.gnu.org/licenses/>
+ -->
+
+<resources>
+ <string name="app_name">Taler Wallet Nightly</string>
+</resources>