From 841d87d5f9f05bc4a5e050948af2577cd87efade Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 24 Sep 2020 09:29:38 -0300 Subject: [cashier] Add about screen with version and license info --- .../java/net/taler/cashier/AboutDialogFragment.kt | 63 +++++++++++++++++ .../main/java/net/taler/cashier/BalanceFragment.kt | 6 +- .../java/net/taler/cashier/config/ConfigManager.kt | 2 +- .../src/main/res/layout/fragment_about_dialog.xml | 81 ++++++++++++++++++++++ cashier/src/main/res/menu/balance.xml | 4 ++ cashier/src/main/res/values/strings.xml | 12 ++++ 6 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 cashier/src/main/java/net/taler/cashier/AboutDialogFragment.kt create mode 100644 cashier/src/main/res/layout/fragment_about_dialog.xml (limited to 'cashier') diff --git a/cashier/src/main/java/net/taler/cashier/AboutDialogFragment.kt b/cashier/src/main/java/net/taler/cashier/AboutDialogFragment.kt new file mode 100644 index 0000000..cdea792 --- /dev/null +++ b/cashier/src/main/java/net/taler/cashier/AboutDialogFragment.kt @@ -0,0 +1,63 @@ +/* + * 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 + */ + +package net.taler.cashier + +import android.os.Bundle +import android.os.Handler +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.Button +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.DialogFragment +import androidx.fragment.app.Fragment +import net.taler.cashier.BuildConfig.VERSION_NAME +import net.taler.cashier.config.VERSION_BANK +import net.taler.cashier.databinding.FragmentAboutDialogBinding +import net.taler.cashier.databinding.FragmentBalanceBinding +import net.taler.lib.common.Version + +class AboutDialogFragment : DialogFragment() { + + private lateinit var ui: FragmentAboutDialogBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + ui = FragmentAboutDialogBinding.inflate(layoutInflater, container, false) + return ui.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + ui.versionView.text = getString(R.string.about_version, VERSION_NAME) + ui.bankVersionView.text = getString(R.string.about_supported_bank_api, VERSION_BANK.str()) + ui.licenseView.text = getString(R.string.about_license, getString(R.string.about_license_content)) + ui.copyrightView.text = getString(R.string.about_copyright, getString(R.string.about_copyright_holder)) + + ui.button.setOnClickListener { dismiss() } + } + + private fun Version.str(): String { + return "$current:$revision:$age" + } + +} \ No newline at end of file diff --git a/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt b/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt index 86ace20..1328484 100644 --- a/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt +++ b/cashier/src/main/java/net/taler/cashier/BalanceFragment.kt @@ -46,7 +46,7 @@ sealed class BalanceResult { class BalanceFragment : Fragment() { private val viewModel: MainViewModel by activityViewModels() - private val configManager by lazy { viewModel.configManager} + private val configManager by lazy { viewModel.configManager } private val withdrawManager by lazy { viewModel.withdrawManager } private lateinit var ui: FragmentBalanceBinding @@ -118,6 +118,10 @@ class BalanceFragment : Fragment() { findNavController().navigate(configManager.configDestination) true } + R.id.action_about -> { + AboutDialogFragment().show(parentFragmentManager, "ABOUT") + true + } else -> super.onOptionsItemSelected(item) } diff --git a/cashier/src/main/java/net/taler/cashier/config/ConfigManager.kt b/cashier/src/main/java/net/taler/cashier/config/ConfigManager.kt index fa4e1d5..e9f4117 100644 --- a/cashier/src/main/java/net/taler/cashier/config/ConfigManager.kt +++ b/cashier/src/main/java/net/taler/cashier/config/ConfigManager.kt @@ -42,7 +42,7 @@ import net.taler.cashier.Response.Companion.response import net.taler.common.getIncompatibleStringOrNull import net.taler.lib.common.Version -private val VERSION_BANK = Version(0, 0, 0) +val VERSION_BANK = Version(0, 0, 0) private const val PREF_NAME = "net.taler.cashier.prefs" private const val PREF_KEY_BANK_URL = "bankUrl" private const val PREF_KEY_USERNAME = "username" diff --git a/cashier/src/main/res/layout/fragment_about_dialog.xml b/cashier/src/main/res/layout/fragment_about_dialog.xml new file mode 100644 index 0000000..2bb7742 --- /dev/null +++ b/cashier/src/main/res/layout/fragment_about_dialog.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + +