WelcomeFragment: Localize welcome screen strings

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-04-04 11:08:55 +05:30
parent a7359d154a
commit 8962260f0b
5 changed files with 50 additions and 75 deletions

View File

@@ -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"
}
]

View File

@@ -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 {

View File

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

View File

@@ -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<String, Int> = 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<Dash> {
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<MutableList<Dash>?>(
json,
object : TypeToken<MutableList<Dash?>?>() {}.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"
)
)
}

View File

@@ -405,22 +405,27 @@
<!-- InstallerFragment -->
<string name="session_installer_subtitle">Session based installer for bundled/split APKs</string>
<string name="session_installer_desc">Recommended, in-built and supports all Android versions</string>
<string name="root_installer_subtitle">Shell based installer using root permissions</string>
<string name="root_installer_desc">Requires root/superuser privileges, supports all Android versions.</string>
<string name="native_installer_subtitle">Intent based installer, available on all devices</string>
<string name="native_installer_desc">Best suited for devices running below Android 4.4</string>
<string name="services_installer_subtitle">Installer for background installations</string>
<string name="services_installer_desc">Requires Aurora Services to be installed as a privileged-system app</string>
<string name="am_installer_subtitle">Full-featured open source package manager</string>
<string name="am_installer_desc">Requires App Manager, need adb/root mode to install when miui optimization is on</string>
<string name="shizuku_installer_subtitle">Using system APIs directly with adb/root privileges</string>
<string name="shizuku_installer_desc">Requires Shizuku or Sui, needs to be setup and permission granted</string>
<!-- ManualDownloadSheet -->
<string name="manual_download_hint">Enter version code you wish to download</string>
<!-- WelcomeFragment -->
<string name="faqs_title" translatable="false">FAQs</string>
<string name="faqs_subtitle">Have questions? Find out the answers</string>
<string name="source_code_title">Source code</string>
<string name="source_code_subtitle">Find out what\'s inside</string>
<string name="license_subtitle" translatable="false">The GNU General Public License v3.0</string>
<string name="privacy_policy_title">Privacy policy</string>
<string name="privacy_policy_subtitle">Learn how Aurora Store uses your data</string>
<string name="disclaimer_subtitle">Accountability and responsibility</string>
</resources>