[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-android] branch master updated (98d693d -> 97dac70)
From: |
gnunet |
Subject: |
[taler-taler-android] branch master updated (98d693d -> 97dac70) |
Date: |
Fri, 26 Jun 2020 19:16:19 +0200 |
This is an automated email from the git hooks/post-receive script.
torsten-grote pushed a change to branch master
in repository taler-android.
from 98d693d [wallet] Improve Anastasis UI mockup
new 730fbaa [wallet] Move Anastasis UI mockup into its own library module
new 9cbb35c [anastasis] add more countries and allow switching between
them
new 97dac70 [anastasis] ask for permission to fill in phone number
automatically
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.idea/codeStyles/Project.xml | 5 +
.idea/gradle.xml | 1 +
anastasis-ui/.gitignore | 1 +
{cashier => anastasis-ui}/build.gradle | 27 +++---
.../consumer-rules.pro | 0
{cashier => anastasis-ui}/proguard-rules.pro | 2 +-
.../src/main/AndroidManifest.xml | 12 ++-
.../java/org/gnu/anastasis/ui/IntroFragment.kt | 11 +--
.../java/org/gnu/anastasis/ui}/MainActivity.kt | 42 +++------
.../java/org/gnu/anastasis/ui/MainViewModel.kt | 9 +-
.../ui/authentication/AuthenticationFragment.kt | 22 ++---
.../ui/authentication}/SecurityQuestionFragment.kt | 11 +--
.../gnu/anastasis/ui/authentication/SmsFragment.kt | 105 +++++++++++++++++++++
.../anastasis/ui/authentication}/VideoFragment.kt | 19 ++--
.../ui/identity/ChangeLocationFragment.kt | 42 +++++----
.../gnu/anastasis/ui/identity/IdentityFragment.kt | 27 ++++--
.../org/gnu/anastasis/ui/identity/Locations.kt | 20 ++--
.../src/main/res/anim/slide_in_right.xml | 0
.../src/main/res/anim/slide_out_left.xml | 0
.../src/main/res/drawable/ic_baseline_check.xml | 0
.../main/res/drawable/ic_baseline_cloud_circle.xml | 0
.../res/drawable/ic_baseline_cloud_download.xml | 0
.../src/main/res/drawable/ic_baseline_face.xml | 0
.../src/main/res/drawable/ic_baseline_lock.xml | 0
.../src/main/res/drawable/ic_baseline_person.xml | 0
.../src/main/res/layout/activity.xml | 8 +-
.../src/main/res/layout/country_germany.xml | 47 ++++-----
.../src/main/res/layout/country_india.xml | 31 ++----
.../src/main/res/layout/country_switzerland.xml | 47 ++++-----
.../src/main/res/layout/country_usa.xml | 31 ++----
.../main/res/layout/fragment_authentication.xml | 0
.../main/res/layout/fragment_change_location.xml | 53 +++++++----
.../src/main/res/layout/fragment_identity.xml | 52 ++--------
.../src/main/res/layout/fragment_intro.xml | 0
.../main/res/layout/fragment_security_question.xml | 0
.../src/main/res/layout/fragment_sms.xml | 0
.../src/main/res/layout/fragment_video.xml | 0
anastasis-ui/src/main/res/navigation/anastasis.xml | 96 +++++++++++++++++++
.../src/main/res/values/themes.xml | 18 +++-
build.gradle | 1 +
settings.gradle | 1 +
wallet/build.gradle | 4 +-
.../src/main/java/net/taler/wallet/MainActivity.kt | 1 -
.../main/java/net/taler/wallet/MainViewModel.kt | 2 -
.../wallet/settings/BackupSettingsFragment.kt | 16 ++--
wallet/src/main/res/navigation/nav_graph.xml | 70 +-------------
wallet/src/main/res/xml/settings_backup.xml | 6 +-
47 files changed, 481 insertions(+), 359 deletions(-)
create mode 100644 anastasis-ui/.gitignore
copy {cashier => anastasis-ui}/build.gradle (75%)
copy {taler-kotlin-common => anastasis-ui}/consumer-rules.pro (100%)
copy {cashier => anastasis-ui}/proguard-rules.pro (94%)
copy {taler-kotlin-common => anastasis-ui}/src/main/AndroidManifest.xml (75%)
rename
wallet/src/main/java/net/taler/wallet/settings/AnastasisIntroFragment.kt =>
anastasis-ui/src/main/java/org/gnu/anastasis/ui/IntroFragment.kt (83%)
copy {cashier/src/main/java/net/taler/cashier =>
anastasis-ui/src/main/java/org/gnu/anastasis/ui}/MainActivity.kt (55%)
rename wallet/src/main/java/net/taler/wallet/settings/AnastasisManager.kt =>
anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt (76%)
rename
wallet/src/main/java/net/taler/wallet/settings/AnastasisAuthenticationFragment.kt
=>
anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/AuthenticationFragment.kt
(85%)
rename {wallet/src/main/java/net/taler/wallet/settings =>
anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication}/SecurityQuestionFragment.kt
(86%)
create mode 100644
anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt
rename {wallet/src/main/java/net/taler/wallet/settings =>
anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication}/VideoFragment.kt
(90%)
rename wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt =>
anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt
(57%)
rename
wallet/src/main/java/net/taler/wallet/settings/AnastasisIdentityFragment.kt =>
anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt
(81%)
copy merchant-terminal/src/main/java/net/taler/merchantpos/payment/Payment.kt
=> anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt (63%)
rename {wallet => anastasis-ui}/src/main/res/anim/slide_in_right.xml (100%)
rename {wallet => anastasis-ui}/src/main/res/anim/slide_out_left.xml (100%)
rename {wallet => anastasis-ui}/src/main/res/drawable/ic_baseline_check.xml
(100%)
rename {wallet =>
anastasis-ui}/src/main/res/drawable/ic_baseline_cloud_circle.xml (100%)
rename {wallet =>
anastasis-ui}/src/main/res/drawable/ic_baseline_cloud_download.xml (100%)
rename {wallet => anastasis-ui}/src/main/res/drawable/ic_baseline_face.xml
(100%)
rename {wallet => anastasis-ui}/src/main/res/drawable/ic_baseline_lock.xml
(100%)
rename {wallet => anastasis-ui}/src/main/res/drawable/ic_baseline_person.xml
(100%)
copy cashier/src/main/res/layout/activity_main.xml =>
anastasis-ui/src/main/res/layout/activity.xml (86%)
copy wallet/src/main/res/layout/fragment_sms.xml =>
anastasis-ui/src/main/res/layout/country_germany.xml (55%)
copy wallet/src/main/res/layout/fragment_sms.xml =>
anastasis-ui/src/main/res/layout/country_india.xml (56%)
copy wallet/src/main/res/layout/fragment_sms.xml =>
anastasis-ui/src/main/res/layout/country_switzerland.xml (55%)
copy wallet/src/main/res/layout/fragment_sms.xml =>
anastasis-ui/src/main/res/layout/country_usa.xml (56%)
rename wallet/src/main/res/layout/fragment_anastasis_authentication.xml =>
anastasis-ui/src/main/res/layout/fragment_authentication.xml (100%)
copy wallet/src/main/res/layout/list_item_wire_fee.xml =>
anastasis-ui/src/main/res/layout/fragment_change_location.xml (50%)
rename wallet/src/main/res/layout/fragment_anastasis_identity.xml =>
anastasis-ui/src/main/res/layout/fragment_identity.xml (77%)
rename wallet/src/main/res/layout/fragment_anastasis_intro.xml =>
anastasis-ui/src/main/res/layout/fragment_intro.xml (100%)
rename {wallet =>
anastasis-ui}/src/main/res/layout/fragment_security_question.xml (100%)
rename {wallet => anastasis-ui}/src/main/res/layout/fragment_sms.xml (100%)
rename {wallet => anastasis-ui}/src/main/res/layout/fragment_video.xml (100%)
create mode 100644 anastasis-ui/src/main/res/navigation/anastasis.xml
copy taler-kotlin-common/src/main/res/values/colors.xml =>
anastasis-ui/src/main/res/values/themes.xml (59%)
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 26724fb..dfca6e5 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -1,6 +1,11 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
+ <option name="PACKAGES_TO_USE_STAR_IMPORTS">
+ <value>
+ <package name="kotlinx.android.synthetic" withSubpackages="true"
static="false" />
+ </value>
+ </option>
<option name="NAME_COUNT_TO_USE_STAR_IMPORT" value="2147483647" />
<option name="NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS"
value="2147483647" />
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index d14ac7f..697ff36 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -10,6 +10,7 @@
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
+ <option value="$PROJECT_DIR$/anastasis-ui" />
<option value="$PROJECT_DIR$/cashier" />
<option value="$PROJECT_DIR$/merchant-terminal" />
<option value="$PROJECT_DIR$/taler-kotlin-common" />
diff --git a/anastasis-ui/.gitignore b/anastasis-ui/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/anastasis-ui/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/cashier/build.gradle b/anastasis-ui/build.gradle
similarity index 75%
copy from cashier/build.gradle
copy to anastasis-ui/build.gradle
index 0d06c60..0391c7c 100644
--- a/cashier/build.gradle
+++ b/anastasis-ui/build.gradle
@@ -14,10 +14,9 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-apply plugin: 'com.android.application'
+apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
-apply plugin: 'androidx.navigation.safeargs.kotlin'
android {
compileSdkVersion 29
@@ -25,12 +24,13 @@ android {
buildToolsVersion "$build_tools_version"
defaultConfig {
- applicationId "net.taler.cashier"
minSdkVersion 24
targetSdkVersion 29
versionCode 1
versionName "0.1"
+
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
@@ -40,29 +40,28 @@ android {
}
}
- kotlinOptions {
- jvmTarget = "1.8"
+ compileOptions {
+ sourceCompatibility = 1.8
+ targetCompatibility = 1.8
}
- 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"
+ kotlinOptions {
+ jvmTarget = "1.8"
}
}
dependencies {
implementation project(":taler-kotlin-common")
+
+ implementation 'com.google.android.material:material:1.2.0-beta01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- implementation 'androidx.security:security-crypto:1.0.0-rc02'
- implementation 'com.google.android.material:material:1.1.0'
+ // Navigation Library
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
- implementation "com.squareup.okhttp3:okhttp:3.12.12"
+ // ViewModel and LiveData
+ implementation
"androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
testImplementation 'junit:junit:4.13'
diff --git a/taler-kotlin-common/consumer-rules.pro
b/anastasis-ui/consumer-rules.pro
similarity index 100%
copy from taler-kotlin-common/consumer-rules.pro
copy to anastasis-ui/consumer-rules.pro
diff --git a/cashier/proguard-rules.pro b/anastasis-ui/proguard-rules.pro
similarity index 94%
copy from cashier/proguard-rules.pro
copy to anastasis-ui/proguard-rules.pro
index f1b4245..481bb43 100644
--- a/cashier/proguard-rules.pro
+++ b/anastasis-ui/proguard-rules.pro
@@ -18,4 +18,4 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
-#-renamesourcefileattribute SourceFile
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/taler-kotlin-common/src/main/AndroidManifest.xml
b/anastasis-ui/src/main/AndroidManifest.xml
similarity index 75%
copy from taler-kotlin-common/src/main/AndroidManifest.xml
copy to anastasis-ui/src/main/AndroidManifest.xml
index 902ddc1..9340508 100644
--- a/taler-kotlin-common/src/main/AndroidManifest.xml
+++ b/anastasis-ui/src/main/AndroidManifest.xml
@@ -15,10 +15,14 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="net.taler.common">
+ package="org.gnu.anastasis.ui">
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.NFC" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+
+ <application>
+ <activity
+ android:name=".MainActivity"
+ android:theme="@style/AppTheme.NoActionBar" />
+ </application>
</manifest>
diff --git
a/wallet/src/main/java/net/taler/wallet/settings/AnastasisIntroFragment.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/IntroFragment.kt
similarity index 83%
rename from
wallet/src/main/java/net/taler/wallet/settings/AnastasisIntroFragment.kt
rename to anastasis-ui/src/main/java/org/gnu/anastasis/ui/IntroFragment.kt
index 463f5b8..c4b8e73 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/AnastasisIntroFragment.kt
+++ b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/IntroFragment.kt
@@ -14,7 +14,7 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.wallet.settings
+package org.gnu.anastasis.ui
import android.os.Bundle
import android.view.LayoutInflater
@@ -23,12 +23,9 @@ import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
-import kotlinx.android.synthetic.main.fragment_anastasis_intro.*
-import net.taler.wallet.MainViewModel
-import net.taler.wallet.R
+import kotlinx.android.synthetic.main.fragment_intro.*
-
-class AnastasisIntroFragment : Fragment() {
+class IntroFragment : Fragment() {
private val model: MainViewModel by activityViewModels()
@@ -36,7 +33,7 @@ class AnastasisIntroFragment : Fragment() {
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
- return inflater.inflate(R.layout.fragment_anastasis_intro, container,
false)
+ return inflater.inflate(R.layout.fragment_intro, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
diff --git a/cashier/src/main/java/net/taler/cashier/MainActivity.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt
similarity index 55%
copy from cashier/src/main/java/net/taler/cashier/MainActivity.kt
copy to anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt
index 0559b38..ac355c1 100644
--- a/cashier/src/main/java/net/taler/cashier/MainActivity.kt
+++ b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt
@@ -14,51 +14,35 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.cashier
+package org.gnu.anastasis.ui
-import android.content.Intent
-import android.content.Intent.ACTION_MAIN
-import android.content.Intent.CATEGORY_HOME
-import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import android.os.Bundle
-import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
-import kotlinx.android.synthetic.main.activity_main.*
+import androidx.navigation.ui.AppBarConfiguration
+import androidx.navigation.ui.setupWithNavController
+import kotlinx.android.synthetic.main.activity.*
+
+internal const val PERMISSION_REQUEST_CODE = 1
class MainActivity : AppCompatActivity() {
- private val viewModel: MainViewModel by viewModels()
private lateinit var nav: NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- setSupportActionBar(toolbar)
+ setContentView(R.layout.activity)
+
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as
NavHostFragment
nav = navHostFragment.navController
- }
- override fun onStart() {
- super.onStart()
- if (!viewModel.hasConfig()) {
- nav.navigate(viewModel.configDestination)
- }
- }
-
- override fun onBackPressed() {
- if (!viewModel.hasConfig() && nav.currentDestination?.id ==
R.id.configFragment) {
- // we are in the configuration screen and need a config to continue
- val intent = Intent(ACTION_MAIN).apply {
- addCategory(CATEGORY_HOME)
- flags = FLAG_ACTIVITY_NEW_TASK
- }
- startActivity(intent)
- } else {
- super.onBackPressed()
- }
+ setSupportActionBar(toolbar)
+ val appBarConfiguration = AppBarConfiguration(
+ emptySet()
+ )
+ toolbar.setupWithNavController(nav, appBarConfiguration)
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/settings/AnastasisManager.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt
similarity index 76%
rename from wallet/src/main/java/net/taler/wallet/settings/AnastasisManager.kt
rename to anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt
index 09c6a39..3b97578 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/AnastasisManager.kt
+++ b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt
@@ -14,11 +14,16 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.wallet.settings
+package org.gnu.anastasis.ui
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MutableLiveData
+import org.gnu.anastasis.ui.identity.LOCATIONS
-class AnastasisManager {
+class MainViewModel(private val app: Application) : AndroidViewModel(app) {
+
+ val currentCountry = MutableLiveData(LOCATIONS[0])
val securityQuestionChecked = MutableLiveData<Boolean>()
val smsChecked = MutableLiveData<Boolean>()
diff --git
a/wallet/src/main/java/net/taler/wallet/settings/AnastasisAuthenticationFragment.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/AuthenticationFragment.kt
similarity index 85%
rename from
wallet/src/main/java/net/taler/wallet/settings/AnastasisAuthenticationFragment.kt
rename to
anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/AuthenticationFragment.kt
index 4421d46..607917d 100644
---
a/wallet/src/main/java/net/taler/wallet/settings/AnastasisAuthenticationFragment.kt
+++
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/AuthenticationFragment.kt
@@ -14,7 +14,7 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.wallet.settings
+package org.gnu.anastasis.ui.authentication
import android.os.Bundle
import android.view.Gravity.CENTER
@@ -30,16 +30,14 @@ import androidx.lifecycle.Observer
import androidx.navigation.fragment.FragmentNavigatorExtras
import androidx.navigation.fragment.findNavController
import com.google.android.material.card.MaterialCardView
-import kotlinx.android.synthetic.main.fragment_anastasis_authentication.*
+import kotlinx.android.synthetic.main.fragment_authentication.*
import net.taler.common.Amount
-import net.taler.wallet.MainViewModel
-import net.taler.wallet.R
+import org.gnu.anastasis.ui.MainViewModel
+import org.gnu.anastasis.ui.R
+class AuthenticationFragment : Fragment() {
-class AnastasisAuthenticationFragment : Fragment() {
-
- private val model: MainViewModel by activityViewModels()
- private val anastasisManager by lazy { model.anastasisManager }
+ private val viewModel: MainViewModel by activityViewModels()
private var price: Amount = Amount.zero("KUDOS")
@@ -47,7 +45,7 @@ class AnastasisAuthenticationFragment : Fragment() {
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
- return inflater.inflate(R.layout.fragment_anastasis_authentication,
container, false)
+ return inflater.inflate(R.layout.fragment_authentication, container,
false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -80,17 +78,17 @@ class AnastasisAuthenticationFragment : Fragment() {
)
}
- anastasisManager.securityQuestionChecked.observe(viewLifecycleOwner,
Observer { checked ->
+ viewModel.securityQuestionChecked.observe(viewLifecycleOwner, Observer
{ checked ->
passwordCard.isChecked = checked
updatePrice(checked, Amount.fromJSONString("KUDOS:0.5"))
updateNextButtonState()
})
- anastasisManager.smsChecked.observe(viewLifecycleOwner, Observer {
checked ->
+ viewModel.smsChecked.observe(viewLifecycleOwner, Observer { checked ->
smsCard.isChecked = checked
updatePrice(checked, Amount.fromJSONString("KUDOS:1.0"))
updateNextButtonState()
})
- anastasisManager.videoChecked.observe(viewLifecycleOwner, Observer {
checked ->
+ viewModel.videoChecked.observe(viewLifecycleOwner, Observer { checked
->
videoCard.isChecked = checked
updatePrice(checked, Amount.fromJSONString("KUDOS:2.25"))
updateNextButtonState()
diff --git
a/wallet/src/main/java/net/taler/wallet/settings/SecurityQuestionFragment.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SecurityQuestionFragment.kt
similarity index 86%
rename from
wallet/src/main/java/net/taler/wallet/settings/SecurityQuestionFragment.kt
rename to
anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SecurityQuestionFragment.kt
index 0ca63b4..7353174 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/SecurityQuestionFragment.kt
+++
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SecurityQuestionFragment.kt
@@ -14,7 +14,7 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.wallet.settings
+package org.gnu.anastasis.ui.authentication
import android.os.Bundle
import android.view.LayoutInflater
@@ -26,13 +26,12 @@ import androidx.navigation.fragment.findNavController
import com.google.android.material.transition.MaterialContainerTransform
import
com.google.android.material.transition.MaterialContainerTransform.FADE_MODE_CROSS
import kotlinx.android.synthetic.main.fragment_security_question.*
-import net.taler.wallet.MainViewModel
-import net.taler.wallet.R
+import org.gnu.anastasis.ui.MainViewModel
+import org.gnu.anastasis.ui.R
class SecurityQuestionFragment : Fragment() {
- private val model: MainViewModel by activityViewModels()
- private val anastasisManager by lazy { model.anastasisManager }
+ private val viewModel: MainViewModel by activityViewModels()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@@ -48,7 +47,7 @@ class SecurityQuestionFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
saveQuestionButton.setOnClickListener {
- anastasisManager.securityQuestionChecked.value = true
+ viewModel.securityQuestionChecked.value = true
findNavController().popBackStack()
}
}
diff --git
a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt
new file mode 100644
index 0000000..f20fba5
--- /dev/null
+++
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt
@@ -0,0 +1,105 @@
+/*
+ * 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/>
+ */
+
+package org.gnu.anastasis.ui.authentication
+
+import android.Manifest
+import android.annotation.SuppressLint
+import android.content.pm.PackageManager.PERMISSION_GRANTED
+import android.os.Bundle
+import android.telephony.TelephonyManager
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.RequiresPermission
+import androidx.core.content.ContextCompat
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.activityViewModels
+import androidx.navigation.fragment.findNavController
+import com.google.android.material.transition.MaterialContainerTransform
+import
com.google.android.material.transition.MaterialContainerTransform.FADE_MODE_CROSS
+import kotlinx.android.synthetic.main.fragment_sms.*
+import org.gnu.anastasis.ui.MainViewModel
+import org.gnu.anastasis.ui.PERMISSION_REQUEST_CODE
+import org.gnu.anastasis.ui.R
+
+private const val PERMISSION = Manifest.permission.READ_PHONE_STATE
+
+class SmsFragment : Fragment() {
+
+ private val viewModel: MainViewModel by activityViewModels()
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ sharedElementEnterTransition = MaterialContainerTransform().apply {
+ fadeMode = FADE_MODE_CROSS
+ }
+ return inflater.inflate(R.layout.fragment_sms, container, false).apply
{
+ transitionName = "sms_card"
+ }
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ smsView.editText?.setOnFocusChangeListener { _, hasFocus ->
+ if (hasFocus) checkPerm()
+ }
+ saveSmsButton.setOnClickListener {
+ viewModel.smsChecked.value = true
+ findNavController().popBackStack()
+ }
+ }
+
+ private fun checkPerm() = when {
+ ContextCompat.checkSelfPermission(requireContext(), PERMISSION)
+ == PERMISSION_GRANTED -> {
+ // You can use the API that requires the permission.
+ fillPhoneNumber()
+ }
+ shouldShowRequestPermissionRationale(PERMISSION) -> {
+ // In an educational UI, explain to the user why your app requires
this
+ // permission for a specific feature to behave as expected. In
this UI,
+ // include a "cancel" or "no thanks" button that allows the user to
+ // continue using your app without granting the permission.
+ }
+ else -> {
+ // You can directly ask for the permission.
+ requestPermissions(arrayOf(PERMISSION), PERMISSION_REQUEST_CODE)
+ }
+ }
+
+ override fun onRequestPermissionsResult(
+ requestCode: Int,
+ permissions: Array<String>,
+ grantResults: IntArray
+ ) {
+ if (requestCode == PERMISSION_REQUEST_CODE &&
grantResults.isNotEmpty() &&
+ grantResults[0] == PERMISSION_GRANTED
+ ) checkPerm()
+ }
+
+ @SuppressLint("HardwareIds")
+ @RequiresPermission(PERMISSION)
+ private fun fillPhoneNumber() {
+ val telephonyService =
requireContext().getSystemService(TelephonyManager::class.java)
+ telephonyService?.line1Number?.let { phoneNumber ->
+ smsView?.editText?.setText(phoneNumber)
+ smsView?.editText?.setSelection(phoneNumber.length)
+ }
+ }
+
+}
diff --git a/wallet/src/main/java/net/taler/wallet/settings/VideoFragment.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/VideoFragment.kt
similarity index 90%
rename from wallet/src/main/java/net/taler/wallet/settings/VideoFragment.kt
rename to
anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/VideoFragment.kt
index 8a6477d..6cd80ce 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/VideoFragment.kt
+++
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/VideoFragment.kt
@@ -14,7 +14,7 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.wallet.settings
+package org.gnu.anastasis.ui.authentication
import android.app.Activity.RESULT_OK
import android.content.Intent
@@ -36,8 +36,8 @@ import
androidx.transition.TransitionManager.beginDelayedTransition
import com.google.android.material.transition.MaterialContainerTransform
import
com.google.android.material.transition.MaterialContainerTransform.FADE_MODE_CROSS
import kotlinx.android.synthetic.main.fragment_video.*
-import net.taler.wallet.MainViewModel
-import net.taler.wallet.R
+import org.gnu.anastasis.ui.MainViewModel
+import org.gnu.anastasis.ui.R
import java.io.FileDescriptor
private const val REQUEST_IMAGE_CAPTURE = 1
@@ -45,8 +45,7 @@ private const val REQUEST_IMAGE_OPEN = 2
class VideoFragment : Fragment() {
- private val model: MainViewModel by activityViewModels()
- private val anastasisManager by lazy { model.anastasisManager }
+ private val viewModel: MainViewModel by activityViewModels()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@@ -65,7 +64,9 @@ class VideoFragment : Fragment() {
val pm = requireContext().packageManager
Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent ->
takePictureIntent.resolveActivity(pm)?.also {
- startActivityForResult(takePictureIntent,
REQUEST_IMAGE_CAPTURE)
+ startActivityForResult(takePictureIntent,
+ REQUEST_IMAGE_CAPTURE
+ )
}
}
}
@@ -74,11 +75,13 @@ class VideoFragment : Fragment() {
addCategory(Intent.CATEGORY_OPENABLE)
type = "image/*"
}
- startActivityForResult(intent, REQUEST_IMAGE_OPEN)
+ startActivityForResult(intent,
+ REQUEST_IMAGE_OPEN
+ )
}
saveVideoButton.setOnClickListener {
- anastasisManager.videoChecked.value = true
+ viewModel.videoChecked.value = true
findNavController().popBackStack()
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt
similarity index 57%
rename from wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt
rename to
anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt
index 6a617ac..5b68d36 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt
+++
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt
@@ -14,7 +14,7 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.wallet.settings
+package org.gnu.anastasis.ui.identity
import android.os.Bundle
import android.view.LayoutInflater
@@ -23,34 +23,40 @@ import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
-import com.google.android.material.transition.MaterialContainerTransform
-import
com.google.android.material.transition.MaterialContainerTransform.FADE_MODE_CROSS
-import kotlinx.android.synthetic.main.fragment_sms.*
-import net.taler.wallet.MainViewModel
-import net.taler.wallet.R
+import kotlinx.android.synthetic.main.fragment_change_location.*
+import org.gnu.anastasis.ui.MainViewModel
+import org.gnu.anastasis.ui.R
-class SmsFragment : Fragment() {
+class ChangeLocationFragment : Fragment() {
- private val model: MainViewModel by activityViewModels()
- private val anastasisManager by lazy { model.anastasisManager }
+ private val viewModel: MainViewModel by activityViewModels()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
- sharedElementEnterTransition = MaterialContainerTransform().apply {
- fadeMode = FADE_MODE_CROSS
- }
- return inflater.inflate(R.layout.fragment_sms, container, false).apply
{
- transitionName = "sms_card"
- }
+ return inflater.inflate(R.layout.fragment_change_location, container,
false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- saveSmsButton.setOnClickListener {
- anastasisManager.smsChecked.value = true
- findNavController().popBackStack()
+ super.onViewCreated(view, savedInstanceState)
+ switzerlandView.setOnClickListener {
+ changeCountry(LOCATIONS[0])
+ }
+ germanyView.setOnClickListener {
+ changeCountry(LOCATIONS[1])
+ }
+ usaView.setOnClickListener {
+ changeCountry(LOCATIONS[2])
}
+ indiaView.setOnClickListener {
+ changeCountry(LOCATIONS[3])
+ }
+ }
+
+ private fun changeCountry(location: Location) {
+ viewModel.currentCountry.value = location
+ findNavController().popBackStack()
}
}
diff --git
a/wallet/src/main/java/net/taler/wallet/settings/AnastasisIdentityFragment.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt
similarity index 81%
rename from
wallet/src/main/java/net/taler/wallet/settings/AnastasisIdentityFragment.kt
rename to
anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt
index 6b84223..40fa477 100644
---
a/wallet/src/main/java/net/taler/wallet/settings/AnastasisIdentityFragment.kt
+++
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt
@@ -14,7 +14,7 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.wallet.settings
+package org.gnu.anastasis.ui.identity
import android.annotation.SuppressLint
import android.app.DatePickerDialog
@@ -26,12 +26,14 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
+import androidx.lifecycle.Observer
import androidx.navigation.fragment.findNavController
-import com.google.android.material.snackbar.Snackbar
-import kotlinx.android.synthetic.main.fragment_anastasis_identity.*
-import net.taler.wallet.MainViewModel
-import net.taler.wallet.R
-import java.util.*
+import kotlinx.android.synthetic.main.fragment_identity.*
+import org.gnu.anastasis.ui.MainViewModel
+import org.gnu.anastasis.ui.R
+import java.util.Calendar
+import java.util.Date
+import java.util.Locale
import java.util.concurrent.TimeUnit.DAYS
private const val MIN_AGE = 18
@@ -44,15 +46,21 @@ class AnastasisIdentityFragment : Fragment() {
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
- return inflater.inflate(R.layout.fragment_anastasis_identity,
container, false)
+ return inflater.inflate(R.layout.fragment_identity, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- countryView.text = getCountryName()
+ model.currentCountry.observe(viewLifecycleOwner, Observer { country ->
+ countryView.text = country.name
+ if (stub != null) {
+ stub.layoutResource = country.layoutRes
+ stub.inflate()
+ }
+ })
changeCountryView.setOnClickListener {
- Snackbar.make(view, "Not implemented",
Snackbar.LENGTH_SHORT).show()
+
findNavController().navigate(R.id.action_nav_anastasis_identity_to_nav_change_location)
}
birthDateInput.editText?.setOnClickListener {
val picker = DatePickerDialog(requireContext())
@@ -72,6 +80,7 @@ class AnastasisIdentityFragment : Fragment() {
}
}
+ @Suppress("unused")
private fun getCountryName(): String {
val tm =
requireContext().getSystemService(TelephonyManager::class.java)!!
val countryIso = if (tm.networkCountryIso.isNullOrEmpty()) {
diff --git
a/merchant-terminal/src/main/java/net/taler/merchantpos/payment/Payment.kt
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt
similarity index 63%
copy from
merchant-terminal/src/main/java/net/taler/merchantpos/payment/Payment.kt
copy to anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt
index b7e4a4b..13658d2 100644
--- a/merchant-terminal/src/main/java/net/taler/merchantpos/payment/Payment.kt
+++ b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt
@@ -14,16 +14,16 @@
* GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-package net.taler.merchantpos.payment
+package org.gnu.anastasis.ui.identity
-import net.taler.merchantpos.order.Order
+import androidx.annotation.LayoutRes
+import org.gnu.anastasis.ui.R
-data class Payment(
- val order: Order,
- val summary: String,
- val currency: String,
- val orderId: String? = null,
- val talerPayUri: String? = null,
- val paid: Boolean = false,
- val error: Boolean = false
+data class Location(val name: String, @LayoutRes val layoutRes: Int)
+
+val LOCATIONS = listOf(
+ Location("Switzerland", R.layout.country_switzerland),
+ Location("Germany", R.layout.country_germany),
+ Location("Unites States", R.layout.country_usa),
+ Location("India", R.layout.country_india)
)
diff --git a/wallet/src/main/res/anim/slide_in_right.xml
b/anastasis-ui/src/main/res/anim/slide_in_right.xml
similarity index 100%
rename from wallet/src/main/res/anim/slide_in_right.xml
rename to anastasis-ui/src/main/res/anim/slide_in_right.xml
diff --git a/wallet/src/main/res/anim/slide_out_left.xml
b/anastasis-ui/src/main/res/anim/slide_out_left.xml
similarity index 100%
rename from wallet/src/main/res/anim/slide_out_left.xml
rename to anastasis-ui/src/main/res/anim/slide_out_left.xml
diff --git a/wallet/src/main/res/drawable/ic_baseline_check.xml
b/anastasis-ui/src/main/res/drawable/ic_baseline_check.xml
similarity index 100%
rename from wallet/src/main/res/drawable/ic_baseline_check.xml
rename to anastasis-ui/src/main/res/drawable/ic_baseline_check.xml
diff --git a/wallet/src/main/res/drawable/ic_baseline_cloud_circle.xml
b/anastasis-ui/src/main/res/drawable/ic_baseline_cloud_circle.xml
similarity index 100%
rename from wallet/src/main/res/drawable/ic_baseline_cloud_circle.xml
rename to anastasis-ui/src/main/res/drawable/ic_baseline_cloud_circle.xml
diff --git a/wallet/src/main/res/drawable/ic_baseline_cloud_download.xml
b/anastasis-ui/src/main/res/drawable/ic_baseline_cloud_download.xml
similarity index 100%
rename from wallet/src/main/res/drawable/ic_baseline_cloud_download.xml
rename to anastasis-ui/src/main/res/drawable/ic_baseline_cloud_download.xml
diff --git a/wallet/src/main/res/drawable/ic_baseline_face.xml
b/anastasis-ui/src/main/res/drawable/ic_baseline_face.xml
similarity index 100%
rename from wallet/src/main/res/drawable/ic_baseline_face.xml
rename to anastasis-ui/src/main/res/drawable/ic_baseline_face.xml
diff --git a/wallet/src/main/res/drawable/ic_baseline_lock.xml
b/anastasis-ui/src/main/res/drawable/ic_baseline_lock.xml
similarity index 100%
rename from wallet/src/main/res/drawable/ic_baseline_lock.xml
rename to anastasis-ui/src/main/res/drawable/ic_baseline_lock.xml
diff --git a/wallet/src/main/res/drawable/ic_baseline_person.xml
b/anastasis-ui/src/main/res/drawable/ic_baseline_person.xml
similarity index 100%
rename from wallet/src/main/res/drawable/ic_baseline_person.xml
rename to anastasis-ui/src/main/res/drawable/ic_baseline_person.xml
diff --git a/cashier/src/main/res/layout/activity_main.xml
b/anastasis-ui/src/main/res/layout/activity.xml
similarity index 86%
copy from cashier/src/main/res/layout/activity_main.xml
copy to anastasis-ui/src/main/res/layout/activity.xml
index a56b647..02fe90c 100644
--- a/cashier/src/main/res/layout/activity_main.xml
+++ b/anastasis-ui/src/main/res/layout/activity.xml
@@ -30,7 +30,11 @@
android:id="@+id/toolbar"
style="@style/AppTheme.Toolbar"
android:layout_width="match_parent"
- android:layout_height="wrap_content" />
+ android:layout_height="wrap_content"
+ android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
</com.google.android.material.appbar.AppBarLayout>
@@ -45,6 +49,6 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:navGraph="@navigation/nav_graph" />
+ app:navGraph="@navigation/anastasis" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/wallet/src/main/res/layout/fragment_sms.xml
b/anastasis-ui/src/main/res/layout/country_germany.xml
similarity index 55%
copy from wallet/src/main/res/layout/fragment_sms.xml
copy to anastasis-ui/src/main/res/layout/country_germany.xml
index f855d38..5b54843 100644
--- a/wallet/src/main/res/layout/fragment_sms.xml
+++ b/anastasis-ui/src/main/res/layout/country_germany.xml
@@ -14,38 +14,41 @@
~ GNU Taler; see the file COPYING. If not, see
<http://www.gnu.org/licenses/>
-->
-<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:padding="16dp"
+ android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
- android:id="@+id/smsView"
+ android:id="@+id/idNumberInput"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
+ android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:hint="Phone Number"
- android:inputType="phone" />
+ android:hint="Passport number"
+ android:inputType="number"
+ android:maxLength="13" />
</com.google.android.material.textfield.TextInputLayout>
- <Button
- android:id="@+id/saveSmsButton"
- android:layout_width="wrap_content"
+ <com.google.android.material.textfield.TextInputLayout
+ android:id="@+id/taxIdInput"
+
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:backgroundTint="@color/green"
- android:drawableTint="?attr/colorOnPrimarySurface"
- android:text="Save"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>
+ android:layout_marginTop="16dp">
+
+ <com.google.android.material.textfield.TextInputEditText
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="Krankenversicherungsnummer"
+ android:inputType="number"
+ android:maxLength="13" />
+
+ </com.google.android.material.textfield.TextInputLayout>
+
+</LinearLayout>
diff --git a/wallet/src/main/res/layout/fragment_sms.xml
b/anastasis-ui/src/main/res/layout/country_india.xml
similarity index 56%
copy from wallet/src/main/res/layout/fragment_sms.xml
copy to anastasis-ui/src/main/res/layout/country_india.xml
index f855d38..a12616e 100644
--- a/wallet/src/main/res/layout/fragment_sms.xml
+++ b/anastasis-ui/src/main/res/layout/country_india.xml
@@ -14,38 +14,25 @@
~ GNU Taler; see the file COPYING. If not, see
<http://www.gnu.org/licenses/>
-->
-<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
- android:id="@+id/smsView"
+ android:id="@+id/idNumberInput"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_margin="16dp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
+ android:layout_margin="16dp">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:hint="Phone Number"
- android:inputType="phone" />
+ android:hint="Aadhaar number"
+ android:inputType="number"
+ android:maxLength="13" />
</com.google.android.material.textfield.TextInputLayout>
- <Button
- android:id="@+id/saveSmsButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:backgroundTint="@color/green"
- android:drawableTint="?attr/colorOnPrimarySurface"
- android:text="Save"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>
+</LinearLayout>
diff --git a/wallet/src/main/res/layout/fragment_sms.xml
b/anastasis-ui/src/main/res/layout/country_switzerland.xml
similarity index 55%
copy from wallet/src/main/res/layout/fragment_sms.xml
copy to anastasis-ui/src/main/res/layout/country_switzerland.xml
index f855d38..0fc71fc 100644
--- a/wallet/src/main/res/layout/fragment_sms.xml
+++ b/anastasis-ui/src/main/res/layout/country_switzerland.xml
@@ -14,38 +14,41 @@
~ GNU Taler; see the file COPYING. If not, see
<http://www.gnu.org/licenses/>
-->
-<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:padding="16dp"
+ android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
- android:id="@+id/smsView"
+ android:id="@+id/idNumberInput"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
+ android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:hint="Phone Number"
- android:inputType="phone" />
+ android:hint="AHV number"
+ android:inputType="number"
+ android:maxLength="13" />
</com.google.android.material.textfield.TextInputLayout>
- <Button
- android:id="@+id/saveSmsButton"
- android:layout_width="wrap_content"
+ <com.google.android.material.textfield.TextInputLayout
+ android:id="@+id/taxIdInput"
+
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:backgroundTint="@color/green"
- android:drawableTint="?attr/colorOnPrimarySurface"
- android:text="Save"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>
+ android:layout_marginTop="16dp">
+
+ <com.google.android.material.textfield.TextInputEditText
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="Krankenversicherungsnummer"
+ android:inputType="number"
+ android:maxLength="13" />
+
+ </com.google.android.material.textfield.TextInputLayout>
+
+</LinearLayout>
diff --git a/wallet/src/main/res/layout/fragment_sms.xml
b/anastasis-ui/src/main/res/layout/country_usa.xml
similarity index 56%
copy from wallet/src/main/res/layout/fragment_sms.xml
copy to anastasis-ui/src/main/res/layout/country_usa.xml
index f855d38..f9762e6 100644
--- a/wallet/src/main/res/layout/fragment_sms.xml
+++ b/anastasis-ui/src/main/res/layout/country_usa.xml
@@ -14,38 +14,25 @@
~ GNU Taler; see the file COPYING. If not, see
<http://www.gnu.org/licenses/>
-->
-<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
- android:id="@+id/smsView"
+ android:id="@+id/idNumberInput"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_margin="16dp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
+ android:layout_margin="16dp">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:hint="Phone Number"
- android:inputType="phone" />
+ android:hint="Social security number"
+ android:inputType="number"
+ android:maxLength="13" />
</com.google.android.material.textfield.TextInputLayout>
- <Button
- android:id="@+id/saveSmsButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:backgroundTint="@color/green"
- android:drawableTint="?attr/colorOnPrimarySurface"
- android:text="Save"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>
+</LinearLayout>
diff --git a/wallet/src/main/res/layout/fragment_anastasis_authentication.xml
b/anastasis-ui/src/main/res/layout/fragment_authentication.xml
similarity index 100%
rename from wallet/src/main/res/layout/fragment_anastasis_authentication.xml
rename to anastasis-ui/src/main/res/layout/fragment_authentication.xml
diff --git a/wallet/src/main/res/layout/list_item_wire_fee.xml
b/anastasis-ui/src/main/res/layout/fragment_change_location.xml
similarity index 50%
copy from wallet/src/main/res/layout/list_item_wire_fee.xml
copy to anastasis-ui/src/main/res/layout/fragment_change_location.xml
index 92ede8b..93c919f 100644
--- a/wallet/src/main/res/layout/list_item_wire_fee.xml
+++ b/anastasis-ui/src/main/res/layout/fragment_change_location.xml
@@ -16,42 +16,59 @@
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="match_parent">
<TextView
- android:id="@+id/validityView"
+ android:id="@+id/usaView"
android:layout_width="0dp"
android:layout_height="wrap_content"
- app:layout_constrainedWidth="true"
+ android:layout_marginTop="16dp"
+ android:background="?selectableItemBackground"
+ android:padding="16dp"
+ android:text="United States"
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- tools:text="Timespan: Jan 1 2020 - Dec 31 2020" />
+ app:layout_constraintTop_toTopOf="parent" />
<TextView
- android:id="@+id/wireFeeView"
+ android:id="@+id/germanyView"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="16dp"
- android:layout_marginTop="4dp"
+ android:layout_marginTop="16dp"
+ android:background="?selectableItemBackground"
+ android:padding="16dp"
+ android:text="Germany"
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/validityView"
- tools:text="Wire Fee: 0.01 TESTKUDOS" />
+ app:layout_constraintTop_toBottomOf="@+id/usaView" />
<TextView
- android:id="@+id/closingFeeView"
+ android:id="@+id/switzerlandView"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="16dp"
- android:layout_marginTop="4dp"
- android:layout_marginBottom="8dp"
- app:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginTop="16dp"
+ android:background="?selectableItemBackground"
+ android:padding="16dp"
+ android:text="Switzerland"
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/wireFeeView"
- tools:text="Closing Fee: 0.01 TESTKUDOS" />
+ app:layout_constraintTop_toBottomOf="@+id/germanyView" />
+
+ <TextView
+ android:id="@+id/indiaView"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:background="?selectableItemBackground"
+ android:padding="16dp"
+ android:text="India"
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/switzerlandView" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/wallet/src/main/res/layout/fragment_anastasis_identity.xml
b/anastasis-ui/src/main/res/layout/fragment_identity.xml
similarity index 77%
rename from wallet/src/main/res/layout/fragment_anastasis_identity.xml
rename to anastasis-ui/src/main/res/layout/fragment_identity.xml
index e24be31..072414d 100644
--- a/wallet/src/main/res/layout/fragment_anastasis_identity.xml
+++ b/anastasis-ui/src/main/res/layout/fragment_identity.xml
@@ -49,7 +49,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
- android:text="Detected Country:"
+ android:text="Country:"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/identityIntro" />
@@ -87,8 +87,8 @@
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:inputType="textPersonName|textCapWords"
- android:hint="Name" />
+ android:hint="Name"
+ android:inputType="textPersonName|textCapWords" />
</com.google.android.material.textfield.TextInputLayout>
@@ -105,8 +105,8 @@
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:inputType="text|textCapWords"
- android:hint="Place of birth" />
+ android:hint="Place of birth"
+ android:inputType="text|textCapWords" />
</com.google.android.material.textfield.TextInputLayout>
@@ -129,46 +129,14 @@
</com.google.android.material.textfield.TextInputLayout>
- <com.google.android.material.textfield.TextInputLayout
- android:id="@+id/idNumberInput"
-
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/birthDateInput"
- app:layout_constraintVertical_bias="0.0">
-
- <com.google.android.material.textfield.TextInputEditText
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="AHV number"
- android:inputType="number"
- android:maxLength="13" />
-
- </com.google.android.material.textfield.TextInputLayout>
-
- <com.google.android.material.textfield.TextInputLayout
- android:id="@+id/taxIdInput"
-
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
- android:layout_width="match_parent"
+ <ViewStub
+ android:id="@+id/stub"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_margin="16dp"
- app:layout_constraintBottom_toTopOf="@+id/createIdentifierButton"
+ android:layout="@layout/country_switzerland"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/idNumberInput"
- app:layout_constraintVertical_bias="0.0">
-
- <com.google.android.material.textfield.TextInputEditText
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="Tax ID number"
- android:inputType="number"
- android:maxLength="13" />
-
- </com.google.android.material.textfield.TextInputLayout>
+ app:layout_constraintTop_toBottomOf="@+id/birthDateInput" />
<Button
android:id="@+id/createIdentifierButton"
diff --git a/wallet/src/main/res/layout/fragment_anastasis_intro.xml
b/anastasis-ui/src/main/res/layout/fragment_intro.xml
similarity index 100%
rename from wallet/src/main/res/layout/fragment_anastasis_intro.xml
rename to anastasis-ui/src/main/res/layout/fragment_intro.xml
diff --git a/wallet/src/main/res/layout/fragment_security_question.xml
b/anastasis-ui/src/main/res/layout/fragment_security_question.xml
similarity index 100%
rename from wallet/src/main/res/layout/fragment_security_question.xml
rename to anastasis-ui/src/main/res/layout/fragment_security_question.xml
diff --git a/wallet/src/main/res/layout/fragment_sms.xml
b/anastasis-ui/src/main/res/layout/fragment_sms.xml
similarity index 100%
rename from wallet/src/main/res/layout/fragment_sms.xml
rename to anastasis-ui/src/main/res/layout/fragment_sms.xml
diff --git a/wallet/src/main/res/layout/fragment_video.xml
b/anastasis-ui/src/main/res/layout/fragment_video.xml
similarity index 100%
rename from wallet/src/main/res/layout/fragment_video.xml
rename to anastasis-ui/src/main/res/layout/fragment_video.xml
diff --git a/anastasis-ui/src/main/res/navigation/anastasis.xml
b/anastasis-ui/src/main/res/navigation/anastasis.xml
new file mode 100644
index 0000000..efdddca
--- /dev/null
+++ b/anastasis-ui/src/main/res/navigation/anastasis.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ 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/>
+ -->
+
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/nav_graph"
+ app:startDestination="@id/nav_anastasis_intro">
+
+ <fragment
+ android:id="@+id/nav_anastasis_intro"
+ android:name="org.gnu.anastasis.ui.IntroFragment"
+ android:label="Secure Cloud Recovery"
+ tools:layout="@layout/fragment_intro">
+ <action
+
android:id="@+id/action_nav_anastasis_intro_to_nav_anastasis_identity"
+ app:destination="@id/nav_anastasis_identity"
+ app:enterAnim="@anim/slide_in_right"
+ app:exitAnim="@anim/slide_out_left"
+ app:popEnterAnim="@android:anim/slide_in_left"
+ app:popExitAnim="@android:anim/slide_out_right" />
+ </fragment>
+
+ <fragment
+ android:id="@+id/nav_anastasis_identity"
+ android:name="org.gnu.anastasis.ui.identity.AnastasisIdentityFragment"
+ android:label="Define your identity"
+ tools:layout="@layout/fragment_identity">
+ <action
+
android:id="@+id/action_nav_anastasis_intro_to_nav_anastasis_authentication"
+ app:destination="@id/nav_anastasis_authentication"
+ app:enterAnim="@anim/slide_in_right"
+ app:exitAnim="@anim/slide_out_left"
+ app:popEnterAnim="@android:anim/slide_in_left"
+ app:popExitAnim="@android:anim/slide_out_right" />
+ <action
+
android:id="@+id/action_nav_anastasis_identity_to_nav_change_location"
+ app:destination="@id/nav_change_location"
+ app:enterAnim="@anim/slide_in_right"
+ app:exitAnim="@anim/slide_out_left"
+ app:popEnterAnim="@android:anim/slide_in_left"
+ app:popExitAnim="@android:anim/slide_out_right" />
+ </fragment>
+
+ <fragment
+ android:id="@+id/nav_change_location"
+ android:name="org.gnu.anastasis.ui.identity.ChangeLocationFragment"
+ android:label="Select country"
+ tools:layout="@layout/fragment_change_location"/>
+
+ <fragment
+ android:id="@+id/nav_anastasis_authentication"
+
android:name="org.gnu.anastasis.ui.authentication.AuthenticationFragment"
+ android:label="Choose authentication methods"
+ tools:layout="@layout/fragment_authentication">
+ <action
+
android:id="@+id/action_nav_anastasis_authentication_to_securityQuestionFragment"
+ app:destination="@id/securityQuestionFragment" />
+ <action
+
android:id="@+id/action_nav_anastasis_authentication_to_smsFragment"
+ app:destination="@id/smsFragment" />
+ <action
+
android:id="@+id/action_nav_anastasis_authentication_to_videoFragment"
+ app:destination="@id/videoFragment" />
+ </fragment>
+
+ <fragment
+ android:id="@+id/securityQuestionFragment"
+
android:name="org.gnu.anastasis.ui.authentication.SecurityQuestionFragment"
+ android:label="Security question"
+ tools:layout="@layout/fragment_security_question" />
+ <fragment
+ android:id="@+id/smsFragment"
+ android:name="org.gnu.anastasis.ui.authentication.SmsFragment"
+ android:label="SMS"
+ tools:layout="@layout/fragment_sms" />
+ <fragment
+ android:id="@+id/videoFragment"
+ android:name="org.gnu.anastasis.ui.authentication.VideoFragment"
+ android:label="Video identification"
+ tools:layout="@layout/fragment_video" />
+
+</navigation>
diff --git a/taler-kotlin-common/src/main/res/values/colors.xml
b/anastasis-ui/src/main/res/values/themes.xml
similarity index 59%
copy from taler-kotlin-common/src/main/res/values/colors.xml
copy to anastasis-ui/src/main/res/values/themes.xml
index c916442..e6d3422 100644
--- a/taler-kotlin-common/src/main/res/values/colors.xml
+++ b/anastasis-ui/src/main/res/values/themes.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
<!--
~ This file is part of GNU Taler
~ (C) 2020 Taler Systems S.A.
@@ -16,9 +15,18 @@
-->
<resources>
- <color name="highlightedBackground">#E4E4E4</color>
- <color name="selectedBackground">#DADADA</color>
- <color name="green">#388E3C</color>
- <color name="red">#C62828</color>
+ <style name="AppTheme"
parent="Theme.MaterialComponents.DayNight.DarkActionBar">
+ </style>
+
+ <style name="AppTheme.NoActionBar">
+ <item name="windowActionBar">false</item>
+ <item name="windowNoTitle">true</item>
+ <item name="android:statusBarColor">@android:color/transparent</item>
+ </style>
+
+ <style name="AppTheme.AppBarOverlay"
parent="ThemeOverlay.MaterialComponents.ActionBar" />
+
+ <style name="AppTheme.Toolbar"
parent="Widget.MaterialComponents.Toolbar.Primary" />
+
</resources>
diff --git a/build.gradle b/build.gradle
index 5a6f0b7..4f08021 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,7 @@
buildscript {
ext.kotlin_version = '1.3.72'
ext.nav_version = "2.2.2"
+ ext.lifecycle_version = "2.2.0"
// check https://android-rebuilds.beuc.net/ for availability of free build
tools
ext.build_tools_version = "29.0.2"
repositories {
diff --git a/settings.gradle b/settings.gradle
index b0e66eb..b45a276 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1,3 @@
include ':cashier', ':merchant-terminal', ':wallet'
include ':taler-kotlin-common'
+include ':anastasis-ui'
diff --git a/wallet/build.gradle b/wallet/build.gradle
index 4a9111b..192b454 100644
--- a/wallet/build.gradle
+++ b/wallet/build.gradle
@@ -66,10 +66,11 @@ android {
dependencies {
implementation project(":taler-kotlin-common")
+ implementation project(":anastasis-ui")
implementation 'net.taler:akono:0.1'
implementation 'androidx.preference:preference:1.1.1'
- implementation 'com.google.android.material:material:1.2.0-beta01'
+ implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
// Lists and Selection
@@ -81,7 +82,6 @@ dependencies {
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
// ViewModel and LiveData
- def lifecycle_version = "2.2.0"
implementation
"androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
// QR codes
diff --git a/wallet/src/main/java/net/taler/wallet/MainActivity.kt
b/wallet/src/main/java/net/taler/wallet/MainActivity.kt
index c687a0e..2eeb4fd 100644
--- a/wallet/src/main/java/net/taler/wallet/MainActivity.kt
+++ b/wallet/src/main/java/net/taler/wallet/MainActivity.kt
@@ -216,7 +216,6 @@ class MainActivity : AppCompatActivity(),
OnNavigationItemSelectedListener,
): Boolean {
when (pref.key) {
"pref_backup" ->
nav.navigate(R.id.action_nav_settings_to_nav_settings_backup)
- "pref_backup_recovery" ->
nav.navigate(R.id.action_nav_settings_backup_to_nav_anastasis_intro)
}
return true
}
diff --git a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
index 63d833a..c69c31c 100644
--- a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
+++ b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt
@@ -37,7 +37,6 @@ import net.taler.wallet.history.DevHistoryManager
import net.taler.wallet.payment.PaymentManager
import net.taler.wallet.pending.PendingOperationsManager
import net.taler.wallet.refund.RefundManager
-import net.taler.wallet.settings.AnastasisManager
import net.taler.wallet.transactions.TransactionManager
import net.taler.wallet.withdraw.WithdrawManager
import org.json.JSONObject
@@ -103,7 +102,6 @@ class MainViewModel(val app: Application) :
AndroidViewModel(app) {
val transactionManager: TransactionManager =
TransactionManager(walletBackendApi, viewModelScope, mapper)
val refundManager = RefundManager(walletBackendApi)
- val anastasisManager = AnastasisManager()
private val mTransactionsEvent = MutableLiveData<Event<String>>()
val transactionsEvent: LiveData<Event<String>> = mTransactionsEvent
diff --git
a/wallet/src/main/java/net/taler/wallet/settings/BackupSettingsFragment.kt
b/wallet/src/main/java/net/taler/wallet/settings/BackupSettingsFragment.kt
index f820661..0dc7124 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/BackupSettingsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/settings/BackupSettingsFragment.kt
@@ -16,26 +16,28 @@
package net.taler.wallet.settings
+import android.content.Intent
import android.os.Bundle
import android.view.View
-import androidx.fragment.app.activityViewModels
+import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
-import net.taler.wallet.MainViewModel
import net.taler.wallet.R
-
+import org.gnu.anastasis.ui.MainActivity
class BackupSettingsFragment : PreferenceFragmentCompat() {
- private val model: MainViewModel by activityViewModels()
-
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey:
String?) {
setPreferencesFromResource(R.xml.settings_backup, rootKey)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
-
+ val recoveryPref: Preference = findPreference("pref_backup_recovery")!!
+ recoveryPref.setOnPreferenceClickListener {
+ val intent = Intent(requireContext(), MainActivity::class.java)
+ startActivity(intent)
+ true
+ }
}
-
}
diff --git a/wallet/src/main/res/navigation/nav_graph.xml
b/wallet/src/main/res/navigation/nav_graph.xml
index 7ce7b02..51dcaba 100644
--- a/wallet/src/main/res/navigation/nav_graph.xml
+++ b/wallet/src/main/res/navigation/nav_graph.xml
@@ -66,75 +66,7 @@
<fragment
android:id="@+id/nav_settings_backup"
android:name="net.taler.wallet.settings.BackupSettingsFragment"
- android:label="@string/nav_settings_backup">
- <action
- android:id="@+id/action_nav_settings_backup_to_nav_anastasis_intro"
- app:destination="@id/nav_anastasis_intro"
- app:enterAnim="@anim/slide_in_right"
- app:exitAnim="@anim/slide_out_left"
- app:popEnterAnim="@android:anim/slide_in_left"
- app:popExitAnim="@android:anim/slide_out_right" />
- </fragment>
-
- <fragment
- android:id="@+id/nav_anastasis_intro"
- android:name="net.taler.wallet.settings.AnastasisIntroFragment"
- android:label="Secure Cloud Recovery"
- tools:layout="@layout/fragment_anastasis_intro">
- <action
-
android:id="@+id/action_nav_anastasis_intro_to_nav_anastasis_identity"
- app:destination="@id/nav_anastasis_identity"
- app:enterAnim="@anim/slide_in_right"
- app:exitAnim="@anim/slide_out_left"
- app:popEnterAnim="@android:anim/slide_in_left"
- app:popExitAnim="@android:anim/slide_out_right" />
- </fragment>
-
- <fragment
- android:id="@+id/nav_anastasis_identity"
- android:name="net.taler.wallet.settings.AnastasisIdentityFragment"
- android:label="Define your identity"
- tools:layout="@layout/fragment_anastasis_identity">
- <action
-
android:id="@+id/action_nav_anastasis_intro_to_nav_anastasis_authentication"
- app:destination="@id/nav_anastasis_authentication"
- app:enterAnim="@anim/slide_in_right"
- app:exitAnim="@anim/slide_out_left"
- app:popEnterAnim="@android:anim/slide_in_left"
- app:popExitAnim="@android:anim/slide_out_right" />
- </fragment>
-
- <fragment
- android:id="@+id/nav_anastasis_authentication"
-
android:name="net.taler.wallet.settings.AnastasisAuthenticationFragment"
- android:label="Choose authentication methods"
- tools:layout="@layout/fragment_anastasis_authentication">
- <action
-
android:id="@+id/action_nav_anastasis_authentication_to_securityQuestionFragment"
- app:destination="@id/securityQuestionFragment" />
- <action
-
android:id="@+id/action_nav_anastasis_authentication_to_smsFragment"
- app:destination="@id/smsFragment" />
- <action
-
android:id="@+id/action_nav_anastasis_authentication_to_videoFragment"
- app:destination="@id/videoFragment" />
- </fragment>
-
- <fragment
- android:id="@+id/securityQuestionFragment"
- android:name="net.taler.wallet.settings.SecurityQuestionFragment"
- android:label="Security question"
- tools:layout="@layout/fragment_security_question" />
- <fragment
- android:id="@+id/smsFragment"
- android:name="net.taler.wallet.settings.SmsFragment"
- android:label="SMS"
- tools:layout="@layout/fragment_sms" />
- <fragment
- android:id="@+id/videoFragment"
- android:name="net.taler.wallet.settings.VideoFragment"
- android:label="Video identification"
- tools:layout="@layout/fragment_video" />
+ android:label="@string/nav_settings_backup"/>
<fragment
android:id="@+id/nav_transactions"
diff --git a/wallet/src/main/res/xml/settings_backup.xml
b/wallet/src/main/res/xml/settings_backup.xml
index b275302..52b72ac 100644
--- a/wallet/src/main/res/xml/settings_backup.xml
+++ b/wallet/src/main/res/xml/settings_backup.xml
@@ -14,7 +14,8 @@
~ GNU Taler; see the file COPYING. If not, see
<http://www.gnu.org/licenses/>
-->
-<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreferenceCompat
app:defaultValue="@bool/settings_backup_default"
@@ -48,10 +49,9 @@
<Preference
app:dependency="pref_backup_switch"
app:icon="@drawable/ic_baseline_cloud_circle"
- app:fragment="net.taler.wallet.settings.SettingsFragment"
app:key="pref_backup_recovery"
app:summary="Not used"
- app:title="Secure cloud recovery" />
+ app:title="Secure cloud recovery"/>
</PreferenceCategory>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-taler-android] branch master updated (98d693d -> 97dac70),
gnunet <=