gnunet-svn
[Top][All Lists]
Advanced

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

[taler-taler-android] 01/09: [wallet] Experimental port to Material 3


From: gnunet
Subject: [taler-taler-android] 01/09: [wallet] Experimental port to Material 3
Date: Tue, 31 Jan 2023 14:39:49 +0100

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 c1684e6c3f6f131136efebcb2724e681b79aef6c
Author: Iván Ávalos <avalos@disroot.org>
AuthorDate: Wed Jan 11 21:08:11 2023 -0600

    [wallet] Experimental port to Material 3
---
 wallet/build.gradle                                |  3 +-
 wallet/src/main/AndroidManifest.xml                |  1 +
 .../src/main/java/net/taler/wallet/MainActivity.kt | 15 ++++++++
 .../java/net/taler/wallet/ReceiveFundsFragment.kt  | 16 +++++----
 .../java/net/taler/wallet/SendFundsFragment.kt     | 17 +++++----
 wallet/src/main/java/net/taler/wallet/WalletApp.kt | 27 +++++++++++++++
 .../taler/wallet/compose/QrCodeUriComposable.kt    | 20 +++++------
 .../java/net/taler/wallet/compose/ShareButton.kt   | 14 ++++----
 .../main/java/net/taler/wallet/compose/Utils.kt    |  6 ++--
 .../wallet/deposit/MakeBitcoinDepositComposable.kt | 10 +++---
 .../taler/wallet/deposit/MakeDepositComposable.kt  | 10 +++---
 .../net/taler/wallet/deposit/PayToUriFragment.kt   | 40 ++++++++++++----------
 .../wallet/deposit/TransactionDepositComposable.kt |  8 ++---
 .../wallet/exchanges/AddExchangeDialogFragment.kt  |  3 +-
 .../net/taler/wallet/peer/IncomingComposable.kt    | 26 +++++++-------
 .../wallet/peer/OutgoingPullIntroComposable.kt     | 10 +++---
 .../wallet/peer/OutgoingPullResultComposable.kt    | 16 ++++-----
 .../wallet/peer/OutgoingPushIntroComposable.kt     | 14 ++++----
 .../wallet/peer/OutgoingPushResultComposable.kt    | 16 ++++-----
 .../taler/wallet/peer/TransactionPeerPullCredit.kt |  8 ++---
 .../taler/wallet/peer/TransactionPeerPullDebit.kt  |  2 +-
 .../taler/wallet/peer/TransactionPeerPushCredit.kt |  2 +-
 .../taler/wallet/peer/TransactionPeerPushDebit.kt  |  8 ++---
 .../net/taler/wallet/settings/SettingsFragment.kt  |  4 +--
 .../transactions/DeleteTransactionComposable.kt    | 14 ++++----
 .../transactions/TransactionDetailFragment.kt      |  4 +--
 .../wallet/transactions/TransactionPeerFragment.kt | 10 +++---
 .../wallet/transactions/TransactionTipFragment.kt  |  8 ++---
 .../wallet/transactions/TransactionsFragment.kt    |  4 +--
 .../taler/wallet/withdraw/manual/ScreenBitcoin.kt  | 24 ++++++-------
 .../net/taler/wallet/withdraw/manual/ScreenIBAN.kt | 26 +++++++-------
 wallet/src/main/res/layout/app_content_main.xml    |  4 +--
 wallet/src/main/res/layout/dialog_exchange_add.xml |  2 +-
 wallet/src/main/res/layout/fragment_error.xml      |  2 +-
 .../main/res/layout/fragment_manual_withdraw.xml   |  2 +-
 .../src/main/res/layout/fragment_transactions.xml  |  4 +--
 wallet/src/main/res/layout/fragment_uri_input.xml  |  2 +-
 wallet/src/main/res/layout/nav_header_main.xml     |  2 +-
 wallet/src/main/res/values/styles.xml              | 19 +++-------
 39 files changed, 238 insertions(+), 185 deletions(-)

diff --git a/wallet/build.gradle b/wallet/build.gradle
index 6cd9f2e..737a1de 100644
--- a/wallet/build.gradle
+++ b/wallet/build.gradle
@@ -130,9 +130,10 @@ dependencies {
     implementation "androidx.compose.animation:animation:$compose_version"
     implementation "androidx.compose.ui:ui-tooling:$compose_version"
     implementation "androidx.compose.material:material:1.3.1"
+    implementation "androidx.compose.material3:material3:1.0.1"
     implementation "androidx.compose.material:material-icons-extended:1.3.1"
     implementation 
"androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version"
-    implementation 
"com.google.accompanist:accompanist-themeadapter-material:0.28.0"
+    implementation 
"com.google.accompanist:accompanist-themeadapter-material3:0.28.0"
 
     // Lists and Selection
     implementation "androidx.recyclerview:recyclerview:1.2.1"
diff --git a/wallet/src/main/AndroidManifest.xml 
b/wallet/src/main/AndroidManifest.xml
index 23746cd..01e82a6 100644
--- a/wallet/src/main/AndroidManifest.xml
+++ b/wallet/src/main/AndroidManifest.xml
@@ -34,6 +34,7 @@
         android:required="false" />
 
     <application
+        android:name=".WalletApp"
         android:allowBackup="true"
         android:extractNativeLibs="true"
         android:fullBackupContent="@xml/backup_descriptor"
diff --git a/wallet/src/main/java/net/taler/wallet/MainActivity.kt 
b/wallet/src/main/java/net/taler/wallet/MainActivity.kt
index 13fd394..cd07ef8 100644
--- a/wallet/src/main/java/net/taler/wallet/MainActivity.kt
+++ b/wallet/src/main/java/net/taler/wallet/MainActivity.kt
@@ -22,6 +22,7 @@ import android.content.Context
 import android.content.Intent
 import android.content.Intent.ACTION_VIEW
 import android.content.IntentFilter
+import android.content.res.Configuration
 import android.net.Uri
 import android.os.Bundle
 import android.util.Log
@@ -34,6 +35,7 @@ import androidx.activity.viewModels
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.os.bundleOf
 import androidx.core.view.GravityCompat.START
+import androidx.core.view.WindowInsetsControllerCompat
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.Observer
 import androidx.lifecycle.viewModelScope
@@ -44,6 +46,7 @@ import androidx.navigation.ui.setupWithNavController
 import androidx.preference.Preference
 import androidx.preference.PreferenceFragmentCompat
 import 
androidx.preference.PreferenceFragmentCompat.OnPreferenceStartFragmentCallback
+import com.google.android.material.elevation.SurfaceColors
 import 
com.google.android.material.navigation.NavigationView.OnNavigationItemSelectedListener
 import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG
 import com.google.android.material.snackbar.Snackbar
@@ -84,8 +87,20 @@ class MainActivity : AppCompatActivity(), 
OnNavigationItemSelectedListener,
         handleTalerUri(result.contents, "QR code")
     }
 
+    private val insetsController: WindowInsetsControllerCompat? by lazy {
+        window?.let { window -> WindowInsetsControllerCompat(window, 
window.decorView) }
+    }
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
+
+        // Set status bar color
+        val color = SurfaceColors.SURFACE_0.getColor(this)
+        window.statusBarColor = color
+        window.navigationBarColor = color
+        insetsController?.isAppearanceLightStatusBars =
+            resources.configuration.uiMode and 
Configuration.UI_MODE_NIGHT_MASK != Configuration.UI_MODE_NIGHT_YES
+
         ui = ActivityMainBinding.inflate(layoutInflater)
         setContentView(ui.root)
 
diff --git a/wallet/src/main/java/net/taler/wallet/ReceiveFundsFragment.kt 
b/wallet/src/main/java/net/taler/wallet/ReceiveFundsFragment.kt
index ac6b0bd..730faae 100644
--- a/wallet/src/main/java/net/taler/wallet/ReceiveFundsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/ReceiveFundsFragment.kt
@@ -31,11 +31,12 @@ import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.text.KeyboardOptions
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.OutlinedTextField
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
@@ -111,6 +112,7 @@ class ReceiveFundsFragment : Fragment() {
     }
 }
 
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 private fun ReceiveFundsIntro(
     currency: String,
@@ -157,13 +159,13 @@ private fun ReceiveFundsIntro(
                 modifier = Modifier,
                 text = currency,
                 softWrap = false,
-                style = MaterialTheme.typography.h6,
+                style = MaterialTheme.typography.titleLarge,
             )
         }
         Text(
             modifier = Modifier.padding(horizontal = 16.dp),
             text = stringResource(R.string.receive_intro),
-            style = MaterialTheme.typography.h6,
+            style = MaterialTheme.typography.titleLarge,
         )
         Row(modifier = Modifier.padding(16.dp)) {
             Button(
diff --git a/wallet/src/main/java/net/taler/wallet/SendFundsFragment.kt 
b/wallet/src/main/java/net/taler/wallet/SendFundsFragment.kt
index 90b4ee0..daf1898 100644
--- a/wallet/src/main/java/net/taler/wallet/SendFundsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/SendFundsFragment.kt
@@ -29,11 +29,12 @@ import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.text.KeyboardOptions
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.OutlinedTextField
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
@@ -98,6 +99,7 @@ class SendFundsFragment : Fragment() {
     }
 }
 
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 private fun SendFundsIntro(
     currency: String,
@@ -152,13 +154,13 @@ private fun SendFundsIntro(
                 modifier = Modifier,
                 text = currency,
                 softWrap = false,
-                style = MaterialTheme.typography.h6,
+                style = MaterialTheme.typography.titleLarge,
             )
         }
         Text(
             modifier = Modifier.padding(horizontal = 16.dp),
             text = stringResource(R.string.send_intro),
-            style = MaterialTheme.typography.h6,
+            style = MaterialTheme.typography.titleLarge,
         )
         Row(modifier = Modifier.padding(16.dp)) {
             fun onClickButton(block: (Amount) -> Unit) {
@@ -170,6 +172,7 @@ private fun SendFundsIntro(
             Button(
                 modifier = Modifier
                     .padding(end = 16.dp)
+                    .height(IntrinsicSize.Max)
                     .weight(1f),
                 onClick = {
                     onClickButton { amount -> onDeposit(amount) }
diff --git a/wallet/src/main/java/net/taler/wallet/WalletApp.kt 
b/wallet/src/main/java/net/taler/wallet/WalletApp.kt
new file mode 100644
index 0000000..e94b8fe
--- /dev/null
+++ b/wallet/src/main/java/net/taler/wallet/WalletApp.kt
@@ -0,0 +1,27 @@
+/*
+ * This file is part of GNU Taler
+ * (C) 2023 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 net.taler.wallet
+
+import android.app.Application
+import com.google.android.material.color.DynamicColors
+
+class WalletApp: Application() {
+    override fun onCreate() {
+        super.onCreate()
+        DynamicColors.applyToActivitiesIfAvailable(this)
+    }
+}
\ No newline at end of file
diff --git 
a/wallet/src/main/java/net/taler/wallet/compose/QrCodeUriComposable.kt 
b/wallet/src/main/java/net/taler/wallet/compose/QrCodeUriComposable.kt
index 5359f1a..0157f90 100644
--- a/wallet/src/main/java/net/taler/wallet/compose/QrCodeUriComposable.kt
+++ b/wallet/src/main/java/net/taler/wallet/compose/QrCodeUriComposable.kt
@@ -29,12 +29,12 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.rememberScrollState
-import androidx.compose.material.Button
-import androidx.compose.material.ButtonColors
-import androidx.compose.material.ButtonDefaults
-import androidx.compose.material.Icon
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonColors
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.ContentCopy
 import androidx.compose.runtime.Composable
@@ -86,7 +86,7 @@ fun ColumnScope.QrCodeUriComposable(
         Text(
             modifier = Modifier.horizontalScroll(scrollState),
             fontFamily = FontFamily.Monospace,
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
             text = talerUri,
         )
     }
@@ -100,11 +100,11 @@ fun ColumnScope.QrCodeUriComposable(
             label = clipBoardLabel,
             content = talerUri,
             buttonText = buttonText,
-            colors = ButtonDefaults.buttonColors(backgroundColor = 
Color.Transparent)
+            colors = ButtonDefaults.buttonColors(containerColor = 
Color.Transparent)
         )
         ShareButton(
             content = talerUri,
-            colors = ButtonDefaults.buttonColors(backgroundColor = 
Color.Transparent)
+            colors = ButtonDefaults.buttonColors(containerColor = 
Color.Transparent)
         )
     }
 }
@@ -136,7 +136,7 @@ fun CopyToClipboardButton(
             Text(
                 modifier = Modifier.padding(start = 8.dp),
                 text = buttonText,
-                style = MaterialTheme.typography.body1,
+                style = MaterialTheme.typography.bodyLarge,
             )
         }
     }
diff --git a/wallet/src/main/java/net/taler/wallet/compose/ShareButton.kt 
b/wallet/src/main/java/net/taler/wallet/compose/ShareButton.kt
index 0ac7048..ebf2a2f 100644
--- a/wallet/src/main/java/net/taler/wallet/compose/ShareButton.kt
+++ b/wallet/src/main/java/net/taler/wallet/compose/ShareButton.kt
@@ -21,12 +21,12 @@ import android.content.Intent.ACTION_SEND
 import android.content.Intent.EXTRA_TEXT
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.padding
-import androidx.compose.material.Button
-import androidx.compose.material.ButtonColors
-import androidx.compose.material.ButtonDefaults
-import androidx.compose.material.Icon
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonColors
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.Share
 import androidx.compose.runtime.Composable
@@ -64,7 +64,7 @@ fun ShareButton(
             Text(
                 modifier = Modifier.padding(start = 8.dp),
                 text = buttonText,
-                style = MaterialTheme.typography.body1,
+                style = MaterialTheme.typography.bodyLarge,
             )
         }
     }
diff --git a/wallet/src/main/java/net/taler/wallet/compose/Utils.kt 
b/wallet/src/main/java/net/taler/wallet/compose/Utils.kt
index 8e3a032..9a27431 100644
--- a/wallet/src/main/java/net/taler/wallet/compose/Utils.kt
+++ b/wallet/src/main/java/net/taler/wallet/compose/Utils.kt
@@ -16,7 +16,7 @@
 
 package net.taler.wallet.compose
 
-import androidx.compose.material.Surface
+import androidx.compose.material3.Surface
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.State
 import androidx.compose.runtime.collectAsState
@@ -25,7 +25,7 @@ import androidx.compose.ui.platform.LocalLifecycleOwner
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.flowWithLifecycle
-import com.google.accompanist.themeadapter.material.MdcTheme
+import com.google.accompanist.themeadapter.material3.Mdc3Theme
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.StateFlow
 import kotlin.coroutines.CoroutineContext
@@ -56,7 +56,7 @@ fun <T> StateFlow<T>.collectAsStateLifecycleAware(
 
 @Composable
 fun TalerSurface(content: @Composable () -> Unit) {
-    MdcTheme {
+    Mdc3Theme {
         Surface {
             content()
         }
diff --git 
a/wallet/src/main/java/net/taler/wallet/deposit/MakeBitcoinDepositComposable.kt 
b/wallet/src/main/java/net/taler/wallet/deposit/MakeBitcoinDepositComposable.kt
index 1ff3423..94899c5 100644
--- 
a/wallet/src/main/java/net/taler/wallet/deposit/MakeBitcoinDepositComposable.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/deposit/MakeBitcoinDepositComposable.kt
@@ -22,10 +22,11 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.OutlinedTextField
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
@@ -50,6 +51,7 @@ import net.taler.wallet.R
 import net.taler.wallet.transactions.AmountType
 import net.taler.wallet.transactions.TransactionAmountComposable
 
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 fun MakeBitcoinDepositComposable(
     state: DepositState,
diff --git 
a/wallet/src/main/java/net/taler/wallet/deposit/MakeDepositComposable.kt 
b/wallet/src/main/java/net/taler/wallet/deposit/MakeDepositComposable.kt
index 8b5cac1..9e14514 100644
--- a/wallet/src/main/java/net/taler/wallet/deposit/MakeDepositComposable.kt
+++ b/wallet/src/main/java/net/taler/wallet/deposit/MakeDepositComposable.kt
@@ -22,10 +22,11 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.OutlinedTextField
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
@@ -47,6 +48,7 @@ import androidx.compose.ui.unit.sp
 import net.taler.common.Amount
 import net.taler.wallet.R
 
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 fun MakeDepositComposable(
     state: DepositState,
diff --git a/wallet/src/main/java/net/taler/wallet/deposit/PayToUriFragment.kt 
b/wallet/src/main/java/net/taler/wallet/deposit/PayToUriFragment.kt
index 47e8cfb..d004f71 100644
--- a/wallet/src/main/java/net/taler/wallet/deposit/PayToUriFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/deposit/PayToUriFragment.kt
@@ -32,14 +32,15 @@ import androidx.compose.foundation.layout.wrapContentSize
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.text.KeyboardOptions
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.DropdownMenu
-import androidx.compose.material.DropdownMenuItem
-import androidx.compose.material.LocalTextStyle
-import androidx.compose.material.OutlinedTextField
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
-import androidx.compose.material.TextFieldDefaults
+import androidx.compose.material3.Button
+import androidx.compose.material3.DropdownMenu
+import androidx.compose.material3.DropdownMenuItem
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.LocalTextStyle
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
@@ -115,6 +116,7 @@ class PayToUriFragment : Fragment() {
 
 }
 
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 private fun PayToComposable(
     currencies: List<String>,
@@ -183,6 +185,7 @@ private fun PayToComposable(
     }
 }
 
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 fun CurrencyDropdown(
     currencies: List<String>,
@@ -203,9 +206,7 @@ fun CurrencyDropdown(
             readOnly = true,
             enabled = false,
             textStyle = LocalTextStyle.current.copy( // show text as if not 
disabled
-                color = TextFieldDefaults.outlinedTextFieldColors().textColor(
-                    enabled = true,
-                ).value
+                color = MaterialTheme.colorScheme.onSurfaceVariant
             ),
             singleLine = true,
             label = {
@@ -218,13 +219,16 @@ fun CurrencyDropdown(
             modifier = Modifier,
         ) {
             currencies.forEachIndexed { index, s ->
-                DropdownMenuItem(onClick = {
-                    selectedIndex = index
-                    onCurrencyChanged(currencies[index])
-                    expanded = false
-                }) {
-                    Text(text = s)
-                }
+                DropdownMenuItem(
+                    text = {
+                        Text(text = s)
+                    },
+                    onClick = {
+                        selectedIndex = index
+                        onCurrencyChanged(currencies[index])
+                        expanded = false
+                    }
+                )
             }
         }
     }
diff --git 
a/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt 
b/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt
index 7c5c7a2..f6f411a 100644
--- 
a/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt
@@ -21,9 +21,9 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
@@ -53,7 +53,7 @@ fun TransactionDepositComposable(t: TransactionDeposit, 
onDelete: () -> Unit) {
         Text(
             modifier = Modifier.padding(16.dp),
             text = t.timestamp.ms.toAbsoluteTime(context).toString(),
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
         )
         TransactionAmountComposable(
             label = stringResource(id = R.string.transaction_paid),
diff --git 
a/wallet/src/main/java/net/taler/wallet/exchanges/AddExchangeDialogFragment.kt 
b/wallet/src/main/java/net/taler/wallet/exchanges/AddExchangeDialogFragment.kt
index 5ea763a..fd942b0 100644
--- 
a/wallet/src/main/java/net/taler/wallet/exchanges/AddExchangeDialogFragment.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/exchanges/AddExchangeDialogFragment.kt
@@ -22,6 +22,7 @@ import android.widget.TextView
 import androidx.appcompat.app.AlertDialog
 import androidx.fragment.app.DialogFragment
 import androidx.fragment.app.activityViewModels
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import net.taler.wallet.MainViewModel
 import net.taler.wallet.R
 
@@ -32,7 +33,7 @@ class AddExchangeDialogFragment : DialogFragment() {
     private val exchangeManager by lazy { model.exchangeManager }
 
     override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
-        return AlertDialog.Builder(requireContext(), R.style.DialogTheme)
+        return MaterialAlertDialogBuilder(requireContext(), 
R.style.MaterialAlertDialog_Material3)
             .setIcon(R.drawable.ic_account_balance)
             .setTitle(R.string.exchange_list_add)
             .setView(R.layout.dialog_exchange_add)
diff --git a/wallet/src/main/java/net/taler/wallet/peer/IncomingComposable.kt 
b/wallet/src/main/java/net/taler/wallet/peer/IncomingComposable.kt
index 70f36a2..4e54e7b 100644
--- a/wallet/src/main/java/net/taler/wallet/peer/IncomingComposable.kt
+++ b/wallet/src/main/java/net/taler/wallet/peer/IncomingComposable.kt
@@ -27,13 +27,13 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.ButtonDefaults
-import androidx.compose.material.Card
-import androidx.compose.material.CircularProgressIndicator
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.Card
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.State
 import androidx.compose.runtime.mutableStateOf
@@ -116,7 +116,7 @@ fun ColumnScope.PeerPullTermsComposable(
             .padding(16.dp)
             .align(CenterHorizontally),
         text = terms.contractTerms.summary,
-        style = MaterialTheme.typography.h5,
+        style = MaterialTheme.typography.headlineSmall,
     )
     Spacer(modifier = Modifier.weight(1f))
     Card(modifier = Modifier.fillMaxWidth()) {
@@ -128,12 +128,12 @@ fun ColumnScope.PeerPullTermsComposable(
             ) {
                 Text(
                     text = stringResource(id = 
R.string.payment_label_amount_total),
-                    style = MaterialTheme.typography.body1,
+                    style = MaterialTheme.typography.bodyLarge,
                 )
                 Text(
                     modifier = Modifier.padding(start = 8.dp),
                     text = terms.contractTerms.amount.toString(),
-                    style = MaterialTheme.typography.body1,
+                    style = MaterialTheme.typography.bodyLarge,
                     fontWeight = FontWeight.Bold,
                 )
             }
@@ -143,7 +143,7 @@ fun ColumnScope.PeerPullTermsComposable(
                 Text(
                     modifier = Modifier.align(End),
                     text = stringResource(id = R.string.payment_fee, fee),
-                    style = MaterialTheme.typography.body1,
+                    style = MaterialTheme.typography.bodyLarge,
                 )
             }
             if (terms is IncomingAccepting) {
@@ -158,7 +158,7 @@ fun ColumnScope.PeerPullTermsComposable(
                         .align(End)
                         .padding(top = 8.dp),
                     colors = ButtonDefaults.buttonColors(
-                        backgroundColor = colorResource(R.color.green),
+                        containerColor = colorResource(R.color.green),
                         contentColor = Color.White,
                     ),
                     onClick = { onAccept(terms) },
@@ -179,7 +179,7 @@ fun ColumnScope.PeerPullErrorComposable(s: IncomingError) {
             .align(CenterHorizontally)
             .padding(horizontal = 32.dp),
         text = s.info.userFacingMsg,
-        style = MaterialTheme.typography.h5,
+        style = MaterialTheme.typography.headlineSmall,
         color = colorResource(id = R.color.red),
     )
 }
diff --git 
a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt 
b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt
index 9af3f5d..69c9cea 100644
--- a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt
+++ b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullIntroComposable.kt
@@ -22,10 +22,11 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.OutlinedTextField
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.State
@@ -50,6 +51,7 @@ import net.taler.wallet.R
 import net.taler.wallet.cleanExchange
 import net.taler.wallet.exchanges.ExchangeItem
 
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 fun OutgoingPullIntroComposable(
     amount: Amount,
diff --git 
a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullResultComposable.kt 
b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullResultComposable.kt
index 84d9415..131d83d 100644
--- a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullResultComposable.kt
+++ b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullResultComposable.kt
@@ -24,11 +24,11 @@ import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.CircularProgressIndicator
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment.Companion.CenterHorizontally
 import androidx.compose.ui.Modifier
@@ -55,7 +55,7 @@ fun OutgoingPullResultComposable(state: OutgoingState, 
onClose: () -> Unit) {
     ) {
         Text(
             modifier = Modifier.padding(top = 16.dp, start = 16.dp, end = 
16.dp),
-            style = MaterialTheme.typography.h6,
+            style = MaterialTheme.typography.titleLarge,
             text = stringResource(id = 
R.string.receive_peer_invoice_instruction),
         )
         when (state) {
@@ -92,7 +92,7 @@ private fun ColumnScope.PeerPullResponseComposable(state: 
OutgoingResponse) {
     ) {
         Text(
             modifier = Modifier.padding(horizontal = 16.dp),
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
             text = stringResource(id = R.string.receive_peer_invoice_uri),
         )
     }
@@ -105,7 +105,7 @@ private fun ColumnScope.PeerPullErrorComposable(state: 
OutgoingError) {
             .align(CenterHorizontally)
             .padding(16.dp),
         color = colorResource(R.color.red),
-        style = MaterialTheme.typography.body1,
+        style = MaterialTheme.typography.bodyLarge,
         text = state.info.userFacingMsg,
     )
 }
diff --git 
a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushIntroComposable.kt 
b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushIntroComposable.kt
index a77cfb7..0d3030d 100644
--- a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushIntroComposable.kt
+++ b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushIntroComposable.kt
@@ -22,11 +22,12 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.OutlinedTextField
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
@@ -44,6 +45,7 @@ import androidx.compose.ui.unit.dp
 import net.taler.common.Amount
 import net.taler.wallet.R
 
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 fun OutgoingPushIntroComposable(
     amount: Amount,
@@ -65,7 +67,7 @@ fun OutgoingPushIntroComposable(
                 modifier = Modifier,
                 text = amount.toString(),
                 softWrap = false,
-                style = MaterialTheme.typography.h6,
+                style = MaterialTheme.typography.titleLarge,
             )
         }
 
diff --git 
a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushResultComposable.kt 
b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushResultComposable.kt
index 27b04c8..bf7592d 100644
--- a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushResultComposable.kt
+++ b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPushResultComposable.kt
@@ -24,11 +24,11 @@ import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.CircularProgressIndicator
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment.Companion.CenterHorizontally
 import androidx.compose.ui.Modifier
@@ -55,7 +55,7 @@ fun OutgoingPushResultComposable(state: OutgoingState, 
onClose: () -> Unit) {
     ) {
         Text(
             modifier = Modifier.padding(top = 16.dp, start = 16.dp, end = 
16.dp),
-            style = MaterialTheme.typography.h6,
+            style = MaterialTheme.typography.titleLarge,
             text = stringResource(id = R.string.send_peer_payment_instruction),
         )
         when (state) {
@@ -92,7 +92,7 @@ private fun ColumnScope.PeerPushResponseComposable(state: 
OutgoingResponse) {
     ) {
         Text(
             modifier = Modifier.padding(horizontal = 16.dp),
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
             text = stringResource(id = R.string.receive_peer_invoice_uri),
         )
     }
@@ -105,7 +105,7 @@ private fun ColumnScope.PeerPushErrorComposable(state: 
OutgoingError) {
             .align(CenterHorizontally)
             .padding(16.dp),
         color = colorResource(R.color.red),
-        style = MaterialTheme.typography.body1,
+        style = MaterialTheme.typography.bodyLarge,
         text = state.info.userFacingMsg,
     )
 }
diff --git 
a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullCredit.kt 
b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullCredit.kt
index 92264c7..c64f0d3 100644
--- a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullCredit.kt
+++ b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullCredit.kt
@@ -18,9 +18,9 @@ package net.taler.wallet.peer
 
 import androidx.compose.foundation.layout.ColumnScope
 import androidx.compose.foundation.layout.padding
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.res.stringResource
@@ -69,7 +69,7 @@ fun ColumnScope.TransactionPeerPullCreditComposable(t: 
TransactionPeerPullCredit
         ) {
             Text(
                 modifier = Modifier.padding(horizontal = 16.dp),
-                style = MaterialTheme.typography.body1,
+                style = MaterialTheme.typography.bodyLarge,
                 text = stringResource(id = R.string.receive_peer_invoice_uri),
             )
         }
diff --git 
a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt 
b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt
index d09a659..ccf0324 100644
--- a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt
+++ b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPullDebit.kt
@@ -16,7 +16,7 @@
 
 package net.taler.wallet.peer
 
-import androidx.compose.material.Surface
+import androidx.compose.material3.Surface
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.res.stringResource
 import androidx.compose.ui.tooling.preview.Preview
diff --git 
a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPushCredit.kt 
b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPushCredit.kt
index e918c42..897d3fb 100644
--- a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPushCredit.kt
+++ b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPushCredit.kt
@@ -16,7 +16,7 @@
 
 package net.taler.wallet.peer
 
-import androidx.compose.material.Surface
+import androidx.compose.material3.Surface
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.res.stringResource
 import androidx.compose.ui.tooling.preview.Preview
diff --git 
a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPushDebit.kt 
b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPushDebit.kt
index 88c27fe..3e74d43 100644
--- a/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPushDebit.kt
+++ b/wallet/src/main/java/net/taler/wallet/peer/TransactionPeerPushDebit.kt
@@ -18,9 +18,9 @@ package net.taler.wallet.peer
 
 import androidx.compose.foundation.layout.ColumnScope
 import androidx.compose.foundation.layout.padding
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.res.stringResource
@@ -68,7 +68,7 @@ fun ColumnScope.TransactionPeerPushDebitComposable(t: 
TransactionPeerPushDebit)
     ) {
         Text(
             modifier = Modifier.padding(horizontal = 16.dp),
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
             text = stringResource(id = R.string.receive_peer_invoice_uri),
         )
     }
diff --git a/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt 
b/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
index 3d31dc5..8bb0a4a 100644
--- a/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/settings/SettingsFragment.kt
@@ -19,11 +19,11 @@ package net.taler.wallet.settings
 import android.os.Bundle
 import android.view.View
 import androidx.activity.result.contract.ActivityResultContracts.CreateDocument
-import androidx.appcompat.app.AlertDialog
 import androidx.fragment.app.activityViewModels
 import androidx.preference.Preference
 import androidx.preference.PreferenceFragmentCompat
 import androidx.preference.SwitchPreferenceCompat
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_SHORT
 import com.google.android.material.snackbar.Snackbar
 import net.taler.common.showError
@@ -143,7 +143,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
     }
 
     private fun showResetDialog() {
-        AlertDialog.Builder(requireContext(), R.style.DialogTheme)
+        MaterialAlertDialogBuilder(requireContext(), 
R.style.MaterialAlertDialog_Material3)
             .setMessage("Do you really want to reset the wallet and lose all 
coins and purchases?")
             .setPositiveButton("Reset") { _, _ ->
                 model.dangerouslyReset()
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/DeleteTransactionComposable.kt
 
b/wallet/src/main/java/net/taler/wallet/transactions/DeleteTransactionComposable.kt
index 7b69e2b..d2fd15e 100644
--- 
a/wallet/src/main/java/net/taler/wallet/transactions/DeleteTransactionComposable.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/DeleteTransactionComposable.kt
@@ -18,10 +18,10 @@ package net.taler.wallet.transactions
 
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.padding
-import androidx.compose.material.Button
-import androidx.compose.material.ButtonDefaults
-import androidx.compose.material.Icon
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.Icon
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
@@ -36,19 +36,19 @@ import net.taler.wallet.R
 fun DeleteTransactionComposable(onDelete: () -> Unit) {
     Button(
         modifier = Modifier.padding(16.dp),
-        colors = ButtonDefaults.buttonColors(backgroundColor = 
colorResource(R.color.red)),
+        colors = ButtonDefaults.buttonColors(containerColor = 
colorResource(R.color.red)),
         onClick = onDelete,
     ) {
         Row(verticalAlignment = Alignment.CenterVertically) {
             Icon(
                 painter = painterResource(id = R.drawable.ic_delete),
                 contentDescription = null,
-                tint = Color.White,
+                tint = Color.White
             )
             Text(
                 modifier = Modifier.padding(start = 8.dp),
                 text = stringResource(R.string.transactions_delete),
-                color = Color.White,
+                color = Color.White
             )
         }
     }
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
index ed42066..bfafb80 100644
--- 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
@@ -24,10 +24,10 @@ import android.view.MenuInflater
 import android.view.MenuItem
 import android.widget.TextView
 import androidx.annotation.StringRes
-import androidx.appcompat.app.AlertDialog
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.activityViewModels
 import androidx.navigation.fragment.findNavController
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import net.taler.common.Amount
 import net.taler.common.startActivitySafe
 import net.taler.wallet.MainViewModel
@@ -99,7 +99,7 @@ abstract class TransactionDetailFragment : Fragment() {
     protected open val deleteDialogButton = R.string.transactions_delete
 
     protected fun onDeleteButtonClicked(t: Transaction) {
-        AlertDialog.Builder(requireContext(), R.style.DialogTheme)
+        MaterialAlertDialogBuilder(requireContext(), 
R.style.MaterialAlertDialog_Material3)
             .setTitle(deleteDialogTitle)
             .setMessage(deleteDialogMessage)
             .setNeutralButton(R.string.cancel) { dialog, _ ->
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
index b7c347f..9054f73 100644
--- 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
@@ -25,8 +25,8 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Text
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment.Companion.CenterHorizontally
 import androidx.compose.ui.Modifier
@@ -76,7 +76,7 @@ fun TransactionPeerComposable(t: Transaction, onDelete: () -> 
Unit) {
         Text(
             modifier = Modifier.padding(16.dp),
             text = t.timestamp.ms.toAbsoluteTime(context).toString(),
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
         )
         when (t) {
             is TransactionPeerPullCredit -> 
TransactionPeerPullCreditComposable(t)
@@ -94,7 +94,7 @@ fun TransactionAmountComposable(label: String, amount: 
Amount, amountType: Amoun
     Text(
         modifier = Modifier.padding(top = 16.dp, start = 16.dp, end = 16.dp),
         text = label,
-        style = MaterialTheme.typography.body2,
+        style = MaterialTheme.typography.bodyMedium,
     )
     Text(
         modifier = Modifier.padding(top = 8.dp, start = 16.dp, end = 16.dp, 
bottom = 16.dp),
@@ -113,7 +113,7 @@ fun TransactionInfoComposable(label: String, info: String) {
     Text(
         modifier = Modifier.padding(top = 16.dp, start = 16.dp, end = 16.dp),
         text = label,
-        style = MaterialTheme.typography.body2,
+        style = MaterialTheme.typography.bodyMedium,
     )
     Text(
         modifier = Modifier.padding(top = 8.dp, start = 16.dp, end = 16.dp, 
bottom = 16.dp),
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionTipFragment.kt 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionTipFragment.kt
index 3f370c7..e8824ed 100644
--- 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionTipFragment.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionTipFragment.kt
@@ -25,9 +25,9 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment.Companion.CenterHorizontally
 import androidx.compose.ui.Modifier
@@ -73,7 +73,7 @@ fun TransactionTipComposable(t: TransactionTip, onDelete: () 
-> Unit) {
         Text(
             modifier = Modifier.padding(16.dp),
             text = t.timestamp.ms.toAbsoluteTime(context).toString(),
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
         )
 
         TransactionAmountComposable(
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
index 09adb3e..08281c4 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
@@ -25,7 +25,6 @@ import android.view.MenuItem
 import android.view.View
 import android.view.View.INVISIBLE
 import android.view.ViewGroup
-import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.widget.SearchView
 import androidx.appcompat.widget.SearchView.OnQueryTextListener
 import androidx.fragment.app.Fragment
@@ -36,6 +35,7 @@ import androidx.recyclerview.selection.SelectionTracker
 import androidx.recyclerview.selection.StorageStrategy
 import androidx.recyclerview.widget.DividerItemDecoration
 import androidx.recyclerview.widget.LinearLayoutManager.VERTICAL
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import net.taler.common.Amount
 import net.taler.common.fadeIn
 import net.taler.common.fadeOut
@@ -232,7 +232,7 @@ class TransactionsFragment : Fragment(), 
OnTransactionClickListener, ActionMode.
         when (item.itemId) {
             R.id.transaction_delete -> {
                 tracker?.selection?.toList()?.let { transactionIds ->
-                    AlertDialog.Builder(requireContext(), R.style.DialogTheme)
+                    MaterialAlertDialogBuilder(requireContext(), 
R.style.MaterialAlertDialog_Material3)
                         .setTitle(R.string.transactions_delete)
                         
.setMessage(R.string.transactions_delete_selected_dialog_message)
                         .setNeutralButton(R.string.cancel) { dialog, _ ->
diff --git 
a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenBitcoin.kt 
b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenBitcoin.kt
index d6ed7df..65b3e21 100644
--- a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenBitcoin.kt
+++ b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenBitcoin.kt
@@ -23,11 +23,11 @@ import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.wrapContentWidth
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.ButtonDefaults
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Alignment.Companion.End
@@ -59,11 +59,11 @@ fun ScreenBitcoin(
     ) {
         Text(
             text = stringResource(R.string.withdraw_manual_bitcoin_title),
-            style = MaterialTheme.typography.h5,
+            style = MaterialTheme.typography.headlineSmall,
         )
         Text(
             text = stringResource(R.string.withdraw_manual_bitcoin_intro),
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
             modifier = Modifier
                 .padding(vertical = 8.dp)
         )
@@ -85,7 +85,7 @@ fun ScreenBitcoin(
         if (onCancelClick != null) {
             Button(
                 onClick = onCancelClick,
-                colors = ButtonDefaults.buttonColors(backgroundColor = 
colorResource(R.color.red)),
+                colors = ButtonDefaults.buttonColors(containerColor = 
colorResource(R.color.red)),
                 modifier = Modifier
                     .padding(vertical = 16.dp)
                     .align(End),
@@ -111,13 +111,13 @@ fun BitcoinSegwitAddrs(amount: Amount, addr: String, 
segwitAddresses: List<Strin
             Column(modifier = Modifier.weight(0.3f)) {
                 Text(
                     text = addr,
-                    style = MaterialTheme.typography.body1,
+                    style = MaterialTheme.typography.bodyLarge,
                     fontWeight = FontWeight.Normal,
                     fontSize = 3.em
                 )
                 Text(
                     text = amount.withCurrency("BTC").toString(),
-                    style = MaterialTheme.typography.body1,
+                    style = MaterialTheme.typography.bodyLarge,
                     fontWeight = FontWeight.Bold,
                 )
             }
@@ -127,13 +127,13 @@ fun BitcoinSegwitAddrs(amount: Amount, addr: String, 
segwitAddresses: List<Strin
                 Column(modifier = Modifier.weight(0.3f)) {
                     Text(
                         text = segwitAddress,
-                        style = MaterialTheme.typography.body1,
+                        style = MaterialTheme.typography.bodyLarge,
                         fontWeight = FontWeight.Normal,
                         fontSize = 3.em,
                     )
                     Text(
                         text = SEGWIT_MIN.toString(),
-                        style = MaterialTheme.typography.body1,
+                        style = MaterialTheme.typography.bodyLarge,
                         fontWeight = FontWeight.Bold,
                     )
                 }
diff --git 
a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenIBAN.kt 
b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenIBAN.kt
index 79ca364..82e4040 100644
--- a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenIBAN.kt
+++ b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenIBAN.kt
@@ -26,13 +26,13 @@ import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.wrapContentWidth
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.ButtonDefaults
-import androidx.compose.material.Icon
-import androidx.compose.material.IconButton
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.ContentCopy
 import androidx.compose.runtime.Composable
@@ -65,12 +65,12 @@ fun ScreenIBAN(
     ) {
         Text(
             text = stringResource(R.string.withdraw_manual_ready_title),
-            style = MaterialTheme.typography.h5,
+            style = MaterialTheme.typography.headlineSmall,
         )
         Text(
             text = stringResource(R.string.withdraw_manual_ready_intro,
                 status.amountRaw.toString()),
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
             modifier = Modifier
                 .padding(vertical = 8.dp)
         )
@@ -80,7 +80,7 @@ fun ScreenIBAN(
         DetailRow(stringResource(R.string.withdraw_exchange), 
status.exchangeBaseUrl, false)
         Text(
             text = stringResource(R.string.withdraw_manual_ready_warning),
-            style = MaterialTheme.typography.body2,
+            style = MaterialTheme.typography.bodyMedium,
             color = colorResource(R.color.notice_text),
             modifier = Modifier
                 .align(Alignment.CenterHorizontally)
@@ -102,7 +102,7 @@ fun ScreenIBAN(
         if (onCancelClick != null) {
             Button(
                 onClick = onCancelClick,
-                colors = ButtonDefaults.buttonColors(backgroundColor = 
colorResource(R.color.red)),
+                colors = ButtonDefaults.buttonColors(containerColor = 
colorResource(R.color.red)),
                 modifier = Modifier
                     .padding(vertical = 16.dp)
                     .align(Alignment.End),
@@ -125,7 +125,7 @@ fun DetailRow(label: String, content: String, copy: Boolean 
= true) {
                 .weight(0.3f)) {
             Text(
                 text = label,
-                style = MaterialTheme.typography.body1,
+                style = MaterialTheme.typography.bodyLarge,
                 fontWeight = if (copy) FontWeight.Bold else FontWeight.Normal,
             )
             if (copy) {
@@ -136,7 +136,7 @@ fun DetailRow(label: String, content: String, copy: Boolean 
= true) {
         }
         Text(
             text = content,
-            style = MaterialTheme.typography.body1,
+            style = MaterialTheme.typography.bodyLarge,
             modifier = Modifier
                 .padding(bottom = 8.dp)
                 .weight(0.7f)
diff --git a/wallet/src/main/res/layout/app_content_main.xml 
b/wallet/src/main/res/layout/app_content_main.xml
index 6937e59..b53717f 100644
--- a/wallet/src/main/res/layout/app_content_main.xml
+++ b/wallet/src/main/res/layout/app_content_main.xml
@@ -36,14 +36,14 @@
                 style="@style/AppTheme.Toolbar"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
-                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+                android:theme="@style/Widget.Material3.ActionBar.Solid"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintTop_toTopOf="parent" />
 
             <me.zhanghai.android.materialprogressbar.MaterialProgressBar
                 android:id="@+id/progress_bar"
-                
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
+                style="@style/Widget.MaterialProgressBar.ProgressBar"
                 android:layout_width="0dp"
                 android:layout_height="4dp"
                 android:elevation="4dp"
diff --git a/wallet/src/main/res/layout/dialog_exchange_add.xml 
b/wallet/src/main/res/layout/dialog_exchange_add.xml
index dfa0f70..bf90177 100644
--- a/wallet/src/main/res/layout/dialog_exchange_add.xml
+++ b/wallet/src/main/res/layout/dialog_exchange_add.xml
@@ -22,7 +22,7 @@
 
     <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/urlLayout"
-        
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
+        style="@style/Widget.Material3.TextInputLayout.OutlinedBox.Dense"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_margin="16dp"
diff --git a/wallet/src/main/res/layout/fragment_error.xml 
b/wallet/src/main/res/layout/fragment_error.xml
index b9f585f..c8c4913 100644
--- a/wallet/src/main/res/layout/fragment_error.xml
+++ b/wallet/src/main/res/layout/fragment_error.xml
@@ -60,7 +60,7 @@
         android:layout_height="wrap_content"
         android:layout_margin="16dp"
         android:gravity="center"
-        android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+        android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
         app:layout_constraintBottom_toTopOf="@+id/errorDevMessage"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
diff --git a/wallet/src/main/res/layout/fragment_manual_withdraw.xml 
b/wallet/src/main/res/layout/fragment_manual_withdraw.xml
index ec176ff..56ff077 100644
--- a/wallet/src/main/res/layout/fragment_manual_withdraw.xml
+++ b/wallet/src/main/res/layout/fragment_manual_withdraw.xml
@@ -57,7 +57,7 @@
 
     <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/amountLayout"
-        
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
+        style="@style/Widget.Material3.TextInputLayout.OutlinedBox.Dense"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="16dp"
diff --git a/wallet/src/main/res/layout/fragment_transactions.xml 
b/wallet/src/main/res/layout/fragment_transactions.xml
index bad79ea..00bde32 100644
--- a/wallet/src/main/res/layout/fragment_transactions.xml
+++ b/wallet/src/main/res/layout/fragment_transactions.xml
@@ -22,9 +22,9 @@
 
     <com.google.android.material.button.MaterialButton
         android:id="@+id/sendButton"
-        style="@style/Widget.MaterialComponents.Button.TextButton"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginStart="10dp"
         android:text="@string/transactions_send_funds"
         app:layout_constraintBottom_toTopOf="@+id/divider"
         app:layout_constraintStart_toStartOf="parent"
@@ -32,9 +32,9 @@
 
     <com.google.android.material.button.MaterialButton
         android:id="@+id/receiveButton"
-        style="@style/Widget.MaterialComponents.Button.TextButton"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginHorizontal="10dp"
         android:text="@string/transactions_receive_funds"
         app:layout_constraintBottom_toTopOf="@+id/divider"
         app:layout_constraintEnd_toStartOf="@+id/amount"
diff --git a/wallet/src/main/res/layout/fragment_uri_input.xml 
b/wallet/src/main/res/layout/fragment_uri_input.xml
index 1e9934f..6ea1a13 100644
--- a/wallet/src/main/res/layout/fragment_uri_input.xml
+++ b/wallet/src/main/res/layout/fragment_uri_input.xml
@@ -22,7 +22,7 @@
 
     <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/uriLayout"
-        
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
+        style="@style/Widget.Material3.TextInputLayout.OutlinedBox.Dense"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_margin="16dp"
diff --git a/wallet/src/main/res/layout/nav_header_main.xml 
b/wallet/src/main/res/layout/nav_header_main.xml
index e70e80f..6837814 100644
--- a/wallet/src/main/res/layout/nav_header_main.xml
+++ b/wallet/src/main/res/layout/nav_header_main.xml
@@ -39,7 +39,7 @@
         android:layout_marginTop="8dp"
         android:layout_marginEnd="16dp"
         android:text="@string/nav_header_title"
-        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+        android:textAppearance="@style/TextAppearance.Material3.BodyLarge"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/talerLogoView" />
diff --git a/wallet/src/main/res/values/styles.xml 
b/wallet/src/main/res/values/styles.xml
index 33e31a3..4ae91ac 100644
--- a/wallet/src/main/res/values/styles.xml
+++ b/wallet/src/main/res/values/styles.xml
@@ -16,30 +16,23 @@
 
 <resources>
 
-    <style name="AppTheme" 
parent="Theme.MaterialComponents.DayNight.DarkActionBar">
-        <item name="colorPrimary">@color/colorPrimary</item>
-        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
-        <item name="colorAccent">@color/colorAccent</item>
-        <item name="colorOnPrimary">@android:color/white</item>
-
+    <style name="AppTheme" parent="Theme.Material3.DayNight">
         <item name="windowActionModeOverlay">true</item>
     </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.AppBarOverlay" 
parent="Widget.Material3.ActionBar.Solid" />
 
-    <style name="AppTheme.Toolbar" 
parent="Widget.MaterialComponents.Toolbar.Primary" />
+    <style name="AppTheme.Toolbar" parent="Widget.Material3.Toolbar" />
 
-    <style name="DialogTheme" 
parent="Theme.MaterialComponents.DayNight.Dialog.Alert" />
+    <style name="DialogTheme" parent="Theme.Material3.DayNight.Dialog.Alert" />
 
     <style name="TransactionTitle">
         <item name="android:textSize">16sp</item>
-        <item name="android:textColor">?android:textColorPrimary</item>
     </style>
 
     <style name="TransactionLabel">
@@ -72,13 +65,11 @@
         <item name="cardElevation">8dp</item>
     </style>
 
-    <style name="FabStyle" 
parent="Widget.MaterialComponents.FloatingActionButton">
+    <style name="FabStyle" 
parent="Widget.Material3.FloatingActionButton.Primary">
         <item name="android:layout_gravity">bottom|end</item>
         <item name="android:layout_marginEnd">16dp</item>
         <item name="android:layout_marginBottom">16dp</item>
-        <item name="backgroundTint">@color/colorPrimary</item>
         <item name="layout_dodgeInsetEdges">bottom</item>
-        <item name="tint">?attr/colorOnPrimary</item>
     </style>
 
 </resources>

-- 
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]