diff options
author | Torsten Grote <t@grobox.de> | 2020-07-21 14:58:44 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-07-21 15:06:54 -0300 |
commit | 18f311512aec7b828c87c3b297135482abd389a2 (patch) | |
tree | 7f355da971ba91f11aeb89ddb4c12062cc908d2f | |
parent | 5d3d85fa7190a70eea8fa67866c343005b9922b0 (diff) | |
download | taler-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.yml | 14 | ||||
-rw-r--r-- | wallet/build.gradle | 28 | ||||
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt | 3 | ||||
-rw-r--r-- | wallet/src/nightly/res/values/strings.xml | 19 |
4 files changed, 50 insertions, 14 deletions
diff --git a/wallet/.gitlab-ci.yml b/wallet/.gitlab-ci.yml index 8845aa4..56768f7 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 d93b8b9..5b28c6c 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 d9b1def..a52b9d8 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 0000000..7276d52 --- /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> |