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

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