From 8962260f0b9e854162fb5531e0e901aabb98b628 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 4 Apr 2024 11:08:55 +0530 Subject: [PATCH] WelcomeFragment: Localize welcome screen strings Signed-off-by: Aayush Gupta --- app/src/main/assets/dash.json | 37 ------------ .../java/com/aurora/store/data/model/Dash.kt | 4 +- .../view/epoxy/views/preference/DashView.kt | 12 +--- .../view/ui/onboarding/WelcomeFragment.kt | 57 ++++++++++++------- app/src/main/res/values/strings.xml | 15 +++-- 5 files changed, 50 insertions(+), 75 deletions(-) delete mode 100755 app/src/main/assets/dash.json diff --git a/app/src/main/assets/dash.json b/app/src/main/assets/dash.json deleted file mode 100755 index 9706ca6f9..000000000 --- a/app/src/main/assets/dash.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "id": "0", - "title": "FAQs", - "subtitle": "Have questions? Find out the answers.", - "icon": "ic_faq", - "url": "https://gitlab.com/AuroraOSS/AuroraStore/-/wikis/Frequently%20Asked%20Questions" - }, - { - "id": "1", - "title": "Source code", - "icon": "ic_code", - "subtitle": "Find out what's inside.", - "url": "https://gitlab.com/AuroraOSS/AuroraStore/" - }, - { - "id": "2", - "title": "License", - "subtitle": "The GNU General Public License v3.0", - "icon": "ic_license", - "url": "https://gitlab.com/AuroraOSS/AuroraStore/-/blob/master/LICENSE" - }, - { - "id": "3", - "title": "Privacy policy", - "subtitle": "Learn how Aurora Store uses your data", - "icon": "ic_privacy", - "url": "https://gitlab.com/AuroraOSS/AuroraStore/-/blob/master/POLICY.md" - }, - { - "id": "4", - "title": "Disclaimer", - "subtitle": "Accountability and responsibility", - "icon": "ic_disclaimer", - "url": "https://gitlab.com/AuroraOSS/AuroraStore/-/blob/master/DISCLAIMER.md" - } -] diff --git a/app/src/main/java/com/aurora/store/data/model/Dash.kt b/app/src/main/java/com/aurora/store/data/model/Dash.kt index 50d363c2b..6893f339e 100644 --- a/app/src/main/java/com/aurora/store/data/model/Dash.kt +++ b/app/src/main/java/com/aurora/store/data/model/Dash.kt @@ -19,11 +19,13 @@ package com.aurora.store.data.model +import androidx.annotation.DrawableRes + data class Dash( var id: Int, var title: String, var subtitle: String, - var icon: String, + @DrawableRes var icon: Int, var url: String ) { override fun equals(other: Any?): Boolean { diff --git a/app/src/main/java/com/aurora/store/view/epoxy/views/preference/DashView.kt b/app/src/main/java/com/aurora/store/view/epoxy/views/preference/DashView.kt index b2d88937a..b4ae902a1 100644 --- a/app/src/main/java/com/aurora/store/view/epoxy/views/preference/DashView.kt +++ b/app/src/main/java/com/aurora/store/view/epoxy/views/preference/DashView.kt @@ -30,7 +30,6 @@ import com.aurora.store.R import com.aurora.store.data.model.Dash import com.aurora.store.databinding.ViewDashBinding import com.aurora.store.view.epoxy.views.BaseView -import com.aurora.store.view.ui.onboarding.WelcomeFragment @ModelView( autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT, @@ -65,16 +64,7 @@ class DashView : RelativeLayout { fun dash(dash: Dash) { B.line1.text = dash.title B.line2.text = dash.subtitle - - var icon = WelcomeFragment.icMap[dash.icon] - if (icon == null) - icon = R.drawable.ic_arrow_right - B.img.setImageDrawable( - ContextCompat.getDrawable( - context, - icon - ) - ) + B.img.setImageDrawable(ContextCompat.getDrawable(context, dash.icon)) } @CallbackProp diff --git a/app/src/main/java/com/aurora/store/view/ui/onboarding/WelcomeFragment.kt b/app/src/main/java/com/aurora/store/view/ui/onboarding/WelcomeFragment.kt index 4654b0a67..a09dcfbea 100644 --- a/app/src/main/java/com/aurora/store/view/ui/onboarding/WelcomeFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/onboarding/WelcomeFragment.kt @@ -27,9 +27,7 @@ import com.aurora.store.data.model.Dash import com.aurora.store.databinding.FragmentOnboardingWelcomeBinding import com.aurora.store.view.epoxy.views.preference.DashViewModel_ import com.aurora.store.view.ui.commons.BaseFragment -import com.google.gson.reflect.TypeToken import dagger.hilt.android.AndroidEntryPoint -import java.nio.charset.StandardCharsets @AndroidEntryPoint class WelcomeFragment : BaseFragment(R.layout.fragment_onboarding_welcome) { @@ -37,16 +35,6 @@ class WelcomeFragment : BaseFragment(R.layout.fragment_onboarding_welcome) { private var _binding: FragmentOnboardingWelcomeBinding? = null private val binding get() = _binding!! - companion object { - val icMap: MutableMap = mutableMapOf( - "ic_faq" to R.drawable.ic_faq, - "ic_code" to R.drawable.ic_code, - "ic_license" to R.drawable.ic_license, - "ic_privacy" to R.drawable.ic_privacy, - "ic_disclaimer" to R.drawable.ic_disclaimer, - ) - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentOnboardingWelcomeBinding.bind(view) @@ -66,15 +54,42 @@ class WelcomeFragment : BaseFragment(R.layout.fragment_onboarding_welcome) { } private fun loadDashFromAssets(): List { - val inputStream = requireContext().assets.open("dash.json") - val bytes = ByteArray(inputStream.available()) - inputStream.read(bytes) - inputStream.close() - - val json = String(bytes, StandardCharsets.UTF_8) - return gson.fromJson?>( - json, - object : TypeToken?>() {}.type + return listOf( + Dash( + id = 0, + title = requireContext().getString(R.string.faqs_title), + subtitle = requireContext().getString(R.string.faqs_subtitle), + icon = R.drawable.ic_faq, + url = "https://gitlab.com/AuroraOSS/AuroraStore/-/wikis/Frequently%20Asked%20Questions" + ), + Dash( + id = 1, + title = requireContext().getString(R.string.source_code_title), + subtitle = requireContext().getString(R.string.source_code_subtitle), + icon = R.drawable.ic_code, + url = "https://gitlab.com/AuroraOSS/AuroraStore/" + ), + Dash( + id = 2, + title = requireContext().getString(R.string.menu_license), + subtitle = requireContext().getString(R.string.license_subtitle), + icon = R.drawable.ic_license, + url = "https://gitlab.com/AuroraOSS/AuroraStore/-/blob/master/LICENSE" + ), + Dash( + id = 3, + title = requireContext().getString(R.string.privacy_policy_title), + subtitle = requireContext().getString(R.string.privacy_policy_subtitle), + icon = R.drawable.ic_privacy, + url = "https://gitlab.com/AuroraOSS/AuroraStore/-/blob/master/POLICY.md" + ), + Dash( + id = 4, + title = requireContext().getString(R.string.menu_disclaimer), + subtitle = requireContext().getString(R.string.disclaimer_subtitle), + icon = R.drawable.ic_disclaimer, + url = "https://gitlab.com/AuroraOSS/AuroraStore/-/blob/master/DISCLAIMER.md" + ) ) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 44d95883f..48addffb5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -405,22 +405,27 @@ Session based installer for bundled/split APKs Recommended, in-built and supports all Android versions - Shell based installer using root permissions Requires root/superuser privileges, supports all Android versions. - Intent based installer, available on all devices Best suited for devices running below Android 4.4 - Installer for background installations Requires Aurora Services to be installed as a privileged-system app - Full-featured open source package manager Requires App Manager, need adb/root mode to install when miui optimization is on - Using system APIs directly with adb/root privileges Requires Shizuku or Sui, needs to be setup and permission granted Enter version code you wish to download + + + FAQs + Have questions? Find out the answers + Source code + Find out what\'s inside + The GNU General Public License v3.0 + Privacy policy + Learn how Aurora Store uses your data + Accountability and responsibility