From c4b859f32d455b5a9a0b85250cd4560da8f48478 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Sun, 19 Jan 2025 11:51:02 +0700 Subject: [PATCH] NoAppView: Use string resources directly to show messages Also localize "No apps available" string Signed-off-by: Aayush Gupta --- .../controller/GenericCarouselController.kt | 4 ++-- .../store/view/epoxy/views/app/NoAppView.kt | 16 ++++++++-------- .../store/view/ui/commons/FavouriteFragment.kt | 2 +- .../store/view/ui/downloads/DownloadFragment.kt | 2 +- .../view/ui/search/SearchResultsFragment.kt | 2 +- .../store/view/ui/updates/UpdatesFragment.kt | 4 ++-- app/src/main/res/values/strings.xml | 1 + 7 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/aurora/store/view/epoxy/controller/GenericCarouselController.kt b/app/src/main/java/com/aurora/store/view/epoxy/controller/GenericCarouselController.kt index 40dc2d7b0..17e723a8f 100644 --- a/app/src/main/java/com/aurora/store/view/epoxy/controller/GenericCarouselController.kt +++ b/app/src/main/java/com/aurora/store/view/epoxy/controller/GenericCarouselController.kt @@ -61,7 +61,7 @@ open class GenericCarouselController(private val callbacks: Callbacks) : NoAppViewModel_() .id("no_app") .icon(R.drawable.ic_apps) - .message("No apps available") + .message(R.string.no_apps_available) ) } else { if (streamBundle.streamClusters.size == 1) { @@ -98,4 +98,4 @@ open class GenericCarouselController(private val callbacks: Callbacks) : } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/aurora/store/view/epoxy/views/app/NoAppView.kt b/app/src/main/java/com/aurora/store/view/epoxy/views/app/NoAppView.kt index 9b563075f..4d9697861 100644 --- a/app/src/main/java/com/aurora/store/view/epoxy/views/app/NoAppView.kt +++ b/app/src/main/java/com/aurora/store/view/epoxy/views/app/NoAppView.kt @@ -21,6 +21,8 @@ package com.aurora.store.view.epoxy.views.app import android.content.Context import android.util.AttributeSet +import androidx.annotation.DrawableRes +import androidx.annotation.StringRes import androidx.core.content.ContextCompat import androidx.core.view.isVisible import com.airbnb.epoxy.CallbackProp @@ -41,15 +43,13 @@ class NoAppView @JvmOverloads constructor( ) : BaseView(context, attrs, defStyleAttr) { @ModelProp - fun message(message: String) { - binding.txt.text = message + fun message(@StringRes message: Int) { + binding.txt.text = context.getString(message) } @ModelProp - fun icon(icon: Int?) { - icon?.let { - binding.img.setImageDrawable(ContextCompat.getDrawable(context, icon)) - } + fun icon(@DrawableRes icon: Int) { + binding.img.setImageDrawable(ContextCompat.getDrawable(context, icon)) } @JvmOverloads @@ -60,8 +60,8 @@ class NoAppView @JvmOverloads constructor( @JvmOverloads @ModelProp - fun actionMessage(message: String = String()) { - binding.button.text = message + fun actionMessage(@StringRes message: Int? = null) { + message?.let { binding.button.text = context.getString(message) } } @JvmOverloads diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/FavouriteFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/FavouriteFragment.kt index 5a6b01c30..6bbf39e89 100644 --- a/app/src/main/java/com/aurora/store/view/ui/commons/FavouriteFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/commons/FavouriteFragment.kt @@ -96,7 +96,7 @@ class FavouriteFragment : BaseFragment() { NoAppViewModel_() .id("no_app") .icon(R.drawable.ic_favorite_unchecked) - .message(getString(R.string.details_no_favourites)) + .message(R.string.details_no_favourites) ) } else { favourites.forEach { diff --git a/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt b/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt index ea292f41e..23b83e3ef 100644 --- a/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt @@ -93,7 +93,7 @@ class DownloadFragment : BaseFragment() { add( NoAppViewModel_() .id("no_downloads") - .message(getString(R.string.download_none)) + .message(R.string.download_none) ) } else { downloads.groupBy { diff --git a/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt index 599541918..2e9ab672d 100644 --- a/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/search/SearchResultsFragment.kt @@ -175,7 +175,7 @@ class SearchResultsFragment : BaseFragment(), add( NoAppViewModel_() .id("no_app") - .message(getString(R.string.details_no_app_match)) + .message(R.string.details_no_app_match) .icon(R.drawable.ic_round_search) ) } diff --git a/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt b/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt index 8f3819d13..a763a19d6 100644 --- a/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt @@ -116,9 +116,9 @@ class UpdatesFragment : BaseFragment() { NoAppViewModel_() .id("no_update") .icon(R.drawable.ic_updates) - .message(getString(R.string.details_no_updates)) + .message(R.string.details_no_updates) .showAction(true) - .actionMessage(getString(R.string.check_updates)) + .actionMessage(R.string.check_updates) .actionCallback { _ -> viewModel.fetchUpdates() } ) } else { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8934bbed1..d0593b313 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -363,6 +363,7 @@ market.android.com Android Market was an online store offering software applications designed for Android devices, retired in 2017. Failed to export APKs + No apps available Session based installer for bundled/split APKs