gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-android] 01/03: [wallet] Move Anastasis UI mockup into its


From: gnunet
Subject: [taler-taler-android] 01/03: [wallet] Move Anastasis UI mockup into its own library module
Date: Fri, 26 Jun 2020 19:16:20 +0200

This is an automated email from the git hooks/post-receive script.

torsten-grote pushed a commit to branch master
in repository taler-android.

commit 730fbaa702b467669c4b88f6c03fa3e1823abf73
Author: Torsten Grote <t@grobox.de>
AuthorDate: Fri Jun 26 10:34:08 2020 -0300

    [wallet] Move Anastasis UI mockup into its own library module
---
 .idea/gradle.xml                                   |  1 +
 anastasis-ui/.gitignore                            |  1 +
 anastasis-ui/build.gradle                          | 70 ++++++++++++++++++
 anastasis-ui/consumer-rules.pro                    |  0
 anastasis-ui/proguard-rules.pro                    | 21 ++++++
 .../src/main/AndroidManifest.xml                   | 17 +++--
 .../java/org/gnu/anastasis/ui/IntroFragment.kt     | 11 ++-
 .../main/java/org/gnu/anastasis/ui/MainActivity.kt | 46 ++++++++++++
 .../java/org/gnu/anastasis/ui/MainViewModel.kt     |  6 +-
 .../ui/authentication/AuthenticationFragment.kt    | 22 +++---
 .../ui/authentication}/SecurityQuestionFragment.kt | 11 ++-
 .../anastasis/ui/authentication}/SmsFragment.kt    | 11 ++-
 .../anastasis/ui/authentication}/VideoFragment.kt  | 19 ++---
 .../gnu/anastasis/ui/identity/IdentityFragment.kt  | 10 +--
 .../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
 anastasis-ui/src/main/res/layout/activity.xml      | 54 ++++++++++++++
 .../main/res/layout/fragment_authentication.xml    |  0
 .../src/main/res/layout/fragment_identity.xml      |  0
 .../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 | 83 ++++++++++++++++++++++
 .../src/main/res/values/themes.xml                 | 23 ++++--
 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 +-
 39 files changed, 363 insertions(+), 144 deletions(-)

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/anastasis-ui/build.gradle b/anastasis-ui/build.gradle
new file mode 100644
index 0000000..0391c7c
--- /dev/null
+++ b/anastasis-ui/build.gradle
@@ -0,0 +1,70 @@
+/*
+ * 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/>
+ */
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-android-extensions'
+
+android {
+    compileSdkVersion 29
+    //noinspection GradleDependency
+    buildToolsVersion "$build_tools_version"
+
+    defaultConfig {
+        minSdkVersion 24
+        targetSdkVersion 29
+        versionCode 1
+        versionName "0.1"
+
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+        consumerProguardFiles "consumer-rules.pro"
+    }
+
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles 
getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+
+    compileOptions {
+        sourceCompatibility = 1.8
+        targetCompatibility = 1.8
+    }
+
+    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'
+
+    // 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"
+
+    testImplementation 'junit:junit:4.13'
+
+    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
+}
diff --git a/anastasis-ui/consumer-rules.pro b/anastasis-ui/consumer-rules.pro
new file mode 100644
index 0000000..e69de29
diff --git a/anastasis-ui/proguard-rules.pro b/anastasis-ui/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/anastasis-ui/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/wallet/src/main/res/anim/slide_in_right.xml 
b/anastasis-ui/src/main/AndroidManifest.xml
similarity index 66%
copy from wallet/src/main/res/anim/slide_in_right.xml
copy to anastasis-ui/src/main/AndroidManifest.xml
index 1425210..3f2402b 100644
--- a/wallet/src/main/res/anim/slide_in_right.xml
+++ b/anastasis-ui/src/main/AndroidManifest.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.
@@ -15,9 +14,13 @@
   ~ GNU Taler; see the file COPYING.  If not, see 
<http://www.gnu.org/licenses/>
   -->
 
-<set xmlns:android="http://schemas.android.com/apk/res/android";>
-    <translate android:fromXDelta="75%p" android:toXDelta="0"
-        android:duration="@android:integer/config_mediumAnimTime"/>
-    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
-        android:duration="@android:integer/config_mediumAnimTime" />
-</set>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android";
+    package="org.gnu.anastasis.ui">
+
+    <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/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt 
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt
new file mode 100644
index 0000000..3ca3224
--- /dev/null
+++ b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt
@@ -0,0 +1,46 @@
+/*
+ * 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
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.navigation.NavController
+import androidx.navigation.fragment.NavHostFragment
+import androidx.navigation.ui.AppBarConfiguration
+import androidx.navigation.ui.setupWithNavController
+import kotlinx.android.synthetic.main.activity.*
+
+class MainActivity : AppCompatActivity() {
+
+    private lateinit var nav: NavController
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity)
+
+        val navHostFragment =
+            supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as 
NavHostFragment
+        nav = navHostFragment.navController
+
+        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 83%
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..7bcfc19 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,13 @@
  * 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
 
-class AnastasisManager {
+class MainViewModel(private val app: Application) : AndroidViewModel(app) {
 
     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/wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt 
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt
similarity index 86%
rename from wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt
rename to 
anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt
index 6a617ac..2ceb422 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt
+++ 
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.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_sms.*
-import net.taler.wallet.MainViewModel
-import net.taler.wallet.R
+import org.gnu.anastasis.ui.MainViewModel
+import org.gnu.anastasis.ui.R
 
 class SmsFragment : 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 SmsFragment : Fragment() {
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         saveSmsButton.setOnClickListener {
-            anastasisManager.smsChecked.value = true
+            viewModel.smsChecked.value = true
             findNavController().popBackStack()
         }
     }
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/AnastasisIdentityFragment.kt 
b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt
similarity index 93%
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..d391c5d 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
@@ -28,9 +28,9 @@ import androidx.fragment.app.Fragment
 import androidx.fragment.app.activityViewModels
 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 kotlinx.android.synthetic.main.fragment_identity.*
+import org.gnu.anastasis.ui.MainViewModel
+import org.gnu.anastasis.ui.R
 import java.util.*
 import java.util.concurrent.TimeUnit.DAYS
 
@@ -44,7 +44,7 @@ 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?) {
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%
copy from wallet/src/main/res/anim/slide_in_right.xml
copy 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/anastasis-ui/src/main/res/layout/activity.xml 
b/anastasis-ui/src/main/res/layout/activity.xml
new file mode 100644
index 0000000..02fe90c
--- /dev/null
+++ b/anastasis-ui/src/main/res/layout/activity.xml
@@ -0,0 +1,54 @@
+<?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/>
+  -->
+
+<androidx.coordinatorlayout.widget.CoordinatorLayout 
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="match_parent"
+    tools:context=".MainActivity">
+
+    <com.google.android.material.appbar.AppBarLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:theme="@style/AppTheme.AppBarOverlay">
+
+        <com.google.android.material.appbar.MaterialToolbar
+            android:id="@+id/toolbar"
+            style="@style/AppTheme.Toolbar"
+            android:layout_width="match_parent"
+            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>
+
+    <androidx.fragment.app.FragmentContainerView
+        android:id="@+id/nav_host_fragment"
+        android:name="androidx.navigation.fragment.NavHostFragment"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        app:defaultNavHost="true"
+        app:layout_behavior="@string/appbar_scrolling_view_behavior"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:navGraph="@navigation/anastasis" />
+
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
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/fragment_anastasis_identity.xml 
b/anastasis-ui/src/main/res/layout/fragment_identity.xml
similarity index 100%
rename from wallet/src/main/res/layout/fragment_anastasis_identity.xml
rename to anastasis-ui/src/main/res/layout/fragment_identity.xml
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..1e151da
--- /dev/null
+++ b/anastasis-ui/src/main/res/navigation/anastasis.xml
@@ -0,0 +1,83 @@
+<?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" />
+    </fragment>
+
+    <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/wallet/src/main/res/anim/slide_in_right.xml 
b/anastasis-ui/src/main/res/values/themes.xml
similarity index 57%
rename from wallet/src/main/res/anim/slide_in_right.xml
rename to anastasis-ui/src/main/res/values/themes.xml
index 1425210..e6d3422 100644
--- a/wallet/src/main/res/anim/slide_in_right.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.
@@ -15,9 +14,19 @@
   ~ GNU Taler; see the file COPYING.  If not, see 
<http://www.gnu.org/licenses/>
   -->
 
-<set xmlns:android="http://schemas.android.com/apk/res/android";>
-    <translate android:fromXDelta="75%p" android:toXDelta="0"
-        android:duration="@android:integer/config_mediumAnimTime"/>
-    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
-        android:duration="@android:integer/config_mediumAnimTime" />
-</set>
+<resources>
+
+    <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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]