NoAppView: Use string resources directly to show messages

Also localize "No apps available" string

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-01-19 11:51:02 +07:00
parent 6d4c8dd03c
commit c4b859f32d
7 changed files with 16 additions and 15 deletions

View File

@@ -61,7 +61,7 @@ open class GenericCarouselController(private val callbacks: Callbacks) :
NoAppViewModel_() NoAppViewModel_()
.id("no_app") .id("no_app")
.icon(R.drawable.ic_apps) .icon(R.drawable.ic_apps)
.message("No apps available") .message(R.string.no_apps_available)
) )
} else { } else {
if (streamBundle.streamClusters.size == 1) { if (streamBundle.streamClusters.size == 1) {

View File

@@ -21,6 +21,8 @@ package com.aurora.store.view.epoxy.views.app
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
@@ -41,15 +43,13 @@ class NoAppView @JvmOverloads constructor(
) : BaseView<ViewNoAppBinding>(context, attrs, defStyleAttr) { ) : BaseView<ViewNoAppBinding>(context, attrs, defStyleAttr) {
@ModelProp @ModelProp
fun message(message: String) { fun message(@StringRes message: Int) {
binding.txt.text = message binding.txt.text = context.getString(message)
} }
@ModelProp @ModelProp
fun icon(icon: Int?) { fun icon(@DrawableRes icon: Int) {
icon?.let { binding.img.setImageDrawable(ContextCompat.getDrawable(context, icon))
binding.img.setImageDrawable(ContextCompat.getDrawable(context, icon))
}
} }
@JvmOverloads @JvmOverloads
@@ -60,8 +60,8 @@ class NoAppView @JvmOverloads constructor(
@JvmOverloads @JvmOverloads
@ModelProp @ModelProp
fun actionMessage(message: String = String()) { fun actionMessage(@StringRes message: Int? = null) {
binding.button.text = message message?.let { binding.button.text = context.getString(message) }
} }
@JvmOverloads @JvmOverloads

View File

@@ -96,7 +96,7 @@ class FavouriteFragment : BaseFragment<FragmentFavouriteBinding>() {
NoAppViewModel_() NoAppViewModel_()
.id("no_app") .id("no_app")
.icon(R.drawable.ic_favorite_unchecked) .icon(R.drawable.ic_favorite_unchecked)
.message(getString(R.string.details_no_favourites)) .message(R.string.details_no_favourites)
) )
} else { } else {
favourites.forEach { favourites.forEach {

View File

@@ -93,7 +93,7 @@ class DownloadFragment : BaseFragment<FragmentDownloadBinding>() {
add( add(
NoAppViewModel_() NoAppViewModel_()
.id("no_downloads") .id("no_downloads")
.message(getString(R.string.download_none)) .message(R.string.download_none)
) )
} else { } else {
downloads.groupBy { downloads.groupBy {

View File

@@ -175,7 +175,7 @@ class SearchResultsFragment : BaseFragment<FragmentSearchResultBinding>(),
add( add(
NoAppViewModel_() NoAppViewModel_()
.id("no_app") .id("no_app")
.message(getString(R.string.details_no_app_match)) .message(R.string.details_no_app_match)
.icon(R.drawable.ic_round_search) .icon(R.drawable.ic_round_search)
) )
} }

View File

@@ -116,9 +116,9 @@ class UpdatesFragment : BaseFragment<FragmentUpdatesBinding>() {
NoAppViewModel_() NoAppViewModel_()
.id("no_update") .id("no_update")
.icon(R.drawable.ic_updates) .icon(R.drawable.ic_updates)
.message(getString(R.string.details_no_updates)) .message(R.string.details_no_updates)
.showAction(true) .showAction(true)
.actionMessage(getString(R.string.check_updates)) .actionMessage(R.string.check_updates)
.actionCallback { _ -> viewModel.fetchUpdates() } .actionCallback { _ -> viewModel.fetchUpdates() }
) )
} else { } else {

View File

@@ -363,6 +363,7 @@
<string name="app_link_android_market" translatable="false">market.android.com</string> <string name="app_link_android_market" translatable="false">market.android.com</string>
<string name="android_market_desc">Android Market was an online store offering software applications designed for Android devices, retired in 2017.</string> <string name="android_market_desc">Android Market was an online store offering software applications designed for Android devices, retired in 2017.</string>
<string name="failed_apk_export">Failed to export APKs</string> <string name="failed_apk_export">Failed to export APKs</string>
<string name="no_apps_available">No apps available</string>
<!-- InstallerFragment --> <!-- InstallerFragment -->
<string name="session_installer_subtitle">Session based installer for bundled/split APKs</string> <string name="session_installer_subtitle">Session based installer for bundled/split APKs</string>