diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-02-05 15:24:41 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2023-02-18 19:15:52 -0600 |
commit | 369b4c1d3666b31081d1bd437585e44108026d5a (patch) | |
tree | 852f2a5d30072d427d5c7c7709d245de68837625 | |
parent | 2ada1779f9d3609c9eab6bebe3de67db1992dc76 (diff) | |
download | taler-android-dev/ivan-avalos/material3.tar.gz taler-android-dev/ivan-avalos/material3.tar.bz2 taler-android-dev/ivan-avalos/material3.zip |
[wallet] Don't draw over nav bar, as it is problematic.dev/ivan-avalos/material3
5 files changed, 21 insertions, 5 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/MainActivity.kt b/wallet/src/main/java/net/taler/wallet/MainActivity.kt index a5ce8ed..67d6c6e 100644 --- a/wallet/src/main/java/net/taler/wallet/MainActivity.kt +++ b/wallet/src/main/java/net/taler/wallet/MainActivity.kt @@ -95,6 +95,7 @@ class MainActivity : AppCompatActivity(), OnNavigationItemSelectedListener, // Set status bar color WindowCompat.setDecorFitsSystemWindows(window, false) + ui.content.navHostFragment.skipSystemBars(top = false) ui.content.appBarLayout.statusBarForeground = MaterialShapeDrawable.createWithElevationOverlay(this) if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) { diff --git a/wallet/src/main/java/net/taler/wallet/MainFragment.kt b/wallet/src/main/java/net/taler/wallet/MainFragment.kt index e2be815..2521e29 100644 --- a/wallet/src/main/java/net/taler/wallet/MainFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/MainFragment.kt @@ -61,7 +61,6 @@ class MainFragment : Fragment() { } }) - ui.mainFab.skipSystemBars() ui.mainFab.setOnClickListener { model.scanCode() } diff --git a/wallet/src/main/java/net/taler/wallet/Utils.kt b/wallet/src/main/java/net/taler/wallet/Utils.kt index 435aa96..a97ab70 100644 --- a/wallet/src/main/java/net/taler/wallet/Utils.kt +++ b/wallet/src/main/java/net/taler/wallet/Utils.kt @@ -27,11 +27,18 @@ import android.net.wifi.WifiManager import android.net.wifi.WifiNetworkSpecifier import android.os.Build.VERSION.SDK_INT import android.util.TypedValue +import android.view.View +import android.view.ViewGroup import android.widget.Toast import android.widget.Toast.LENGTH_LONG import androidx.annotation.RequiresApi import androidx.browser.customtabs.CustomTabsIntent import androidx.core.content.getSystemService +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.marginBottom +import androidx.core.view.marginTop +import androidx.core.view.updateLayoutParams import net.taler.common.Amount import net.taler.common.AmountParserException import net.taler.common.startActivitySafe @@ -124,4 +131,17 @@ fun launchInAppBrowser(context: Context, url: String) { val intent = builder.build().intent intent.data = Uri.parse(url) context.startActivitySafe(intent) +} + +fun View.skipSystemBars(top: Boolean = true, bottom: Boolean = true) { + val initialMarginBottom = marginBottom + val initialMarginTop = marginTop + ViewCompat.setOnApplyWindowInsetsListener(this) { view, windowInsets -> + val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) + view.updateLayoutParams<ViewGroup.MarginLayoutParams> { + if (top) topMargin = insets.top + initialMarginTop + if (bottom) bottomMargin = insets.bottom + initialMarginBottom + } + WindowInsetsCompat.CONSUMED + } }
\ No newline at end of file diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt index dcf99a4..44c98c1 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt @@ -33,7 +33,6 @@ import net.taler.common.fadeOut import net.taler.wallet.MainViewModel import net.taler.wallet.R import net.taler.wallet.databinding.FragmentExchangeListBinding -import net.taler.wallet.skipSystemBars open class ExchangeListFragment : Fragment(), ExchangeClickListener { @@ -59,7 +58,6 @@ open class ExchangeListFragment : Fragment(), ExchangeClickListener { adapter = exchangeAdapter addItemDecoration(DividerItemDecoration(context, VERTICAL)) } - ui.addExchangeFab.skipSystemBars() ui.addExchangeFab.setOnClickListener { AddExchangeDialogFragment().show(parentFragmentManager, "ADD_EXCHANGE") } 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 685be3d..cd66193 100644 --- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt @@ -44,7 +44,6 @@ import net.taler.wallet.R import net.taler.wallet.databinding.FragmentTransactionsBinding import net.taler.wallet.handleKyc import net.taler.wallet.launchInAppBrowser -import net.taler.wallet.skipSystemBars interface OnTransactionClickListener { fun onTransactionClicked(transaction: Transaction) @@ -126,7 +125,6 @@ class TransactionsFragment : Fragment(), OnTransactionClickListener, ActionMode. ui.receiveButton.setOnClickListener { findNavController().navigate(R.id.receiveFunds) } - ui.mainFab.skipSystemBars() ui.mainFab.setOnClickListener { model.scanCode() } |