add an about page #25
Auto Tag on Version Change / check-version (push) Successful in 3s

This commit is contained in:
2026-06-04 23:12:27 +05:00
parent e3c6b3a695
commit 6a910facaf
6 changed files with 337 additions and 0 deletions
@@ -0,0 +1,80 @@
package sh.sar.basedbank.ui.home
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment
import sh.sar.basedbank.BuildConfig
import sh.sar.basedbank.R
import sh.sar.basedbank.databinding.FragmentSettingsAboutBinding
class SettingsAboutFragment : Fragment() {
private var _binding: FragmentSettingsAboutBinding? = null
private val binding get() = _binding!!
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
_binding = FragmentSettingsAboutBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
(binding.root as? android.widget.ScrollView)?.clipToPadding = false
val basePaddingBottom = binding.root.paddingBottom
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val isBottomNav = requireContext().getSharedPreferences("prefs", Context.MODE_PRIVATE).getBoolean("bottom_nav", false)
val navBar = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(v.paddingLeft, v.paddingTop, v.paddingRight, basePaddingBottom + if (isBottomNav) 0 else navBar.bottom)
insets
}
binding.tvAppName.text = getString(R.string.app_name)
binding.tvVersion.text = getString(R.string.about_version, BuildConfig.VERSION_NAME)
binding.rowMibTerms.setOnClickListener { openUrl("https://faisanet.mib.com.mv/terms") }
binding.rowBmlTerms.setOnClickListener { openUrl("https://www.bankofmaldives.com.mv/storage/file/121/10289/terms-conditions-online-banking-en.pdf") }
binding.rowFahipayTerms.setOnClickListener { openUrl("https://fahipay.mv/tos/") }
val hasMvr = BuildConfig.ACCOUNT_MVR.isNotEmpty()
val hasUsd = BuildConfig.ACCOUNT_USD.isNotEmpty()
if (!hasMvr && !hasUsd) {
binding.sectionDonate.visibility = View.GONE
} else {
if (!hasMvr) binding.btnDonateMvr.visibility = View.GONE
else binding.btnDonateMvr.setOnClickListener { openDonate(BuildConfig.ACCOUNT_MVR) }
if (!hasUsd) binding.btnDonateUsd.visibility = View.GONE
else binding.btnDonateUsd.setOnClickListener { openDonate(BuildConfig.ACCOUNT_USD) }
}
}
private fun openUrl(url: String) {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
}
private fun openDonate(accountNumber: String) {
val fragment = TransferFragment.newInstance(
accountNumber = accountNumber,
displayName = getString(R.string.app_name),
subtitle = accountNumber,
colorHex = "#607D8B",
imageHash = null
)
(requireActivity() as HomeActivity).showWithBackStack(fragment)
}
override fun onResume() {
super.onResume()
requireActivity().title = getString(R.string.settings_about)
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
@@ -28,6 +28,7 @@ class SettingsFragment : Fragment() {
SettingsItem(R.drawable.ic_settings_appearance, R.string.settings_appearance, R.string.settings_desc_appearance) { SettingsAppearanceFragment() },
SettingsItem(R.drawable.ic_lock, R.string.settings_privacy_security, R.string.settings_desc_privacy_security) { SettingsSecurityFragment() },
SettingsItem(R.drawable.ic_settings_storage, R.string.settings_storage, R.string.settings_desc_storage) { SettingsStorageFragment() },
SettingsItem(R.drawable.ic_info, R.string.settings_about, R.string.settings_desc_about) { SettingsAboutFragment() },
)
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =