Loading app/src/main/java/foundation/e/apps/data/Constants.kt +2 −0 Original line number Diff line number Diff line Loading @@ -37,4 +37,6 @@ object Constants { "${BuildConfig.PACKAGE_NAME_PARENTAL_CONTROL}.action.APP_LOUNGE_LOGIN" const val REQUEST_GPLAY_LOGIN = "request_gplay_login" const val MIN_VALID_RATING = 0.1 } app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt +10 −5 Original line number Diff line number Diff line Loading @@ -5,9 +5,10 @@ import android.os.Build import androidx.annotation.RequiresApi import androidx.lifecycle.LiveData import foundation.e.apps.OpenForTesting import foundation.e.apps.data.Constants.MIN_VALID_RATING import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fdroid.FDroidRepository import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.install.download.data.DownloadProgress import foundation.e.apps.install.workmanager.InstallWorkManager Loading Loading @@ -148,12 +149,16 @@ class AppManagerWrapper @Inject constructor( return download.id == application._id } fun handleRatingFormat(rating: Double): String { return if (rating % 1 == 0.0) { fun handleRatingFormat(rating: Double): String? { return if (rating >= MIN_VALID_RATING) { if (rating % 1 == 0.0) { rating.toInt().toString() } else { rating.toString() } } else { null } } suspend fun getCalculateProgressWithTotalSize(application: Application?, progress: DownloadProgress): Pair<Long, Long> { Loading app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -270,4 +270,8 @@ class MainActivityViewModel @Inject constructor( fun launchPwa(application: Application) { pwaManager.launchPwa(application) } fun handleRatingFormat(rating: Double): String? { return appManagerWrapper.handleRatingFormat(rating) } } app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt +7 −9 Original line number Diff line number Diff line Loading @@ -341,21 +341,19 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { private fun updateAppRating(it: Application) { binding.ratingsInclude.apply { if (it.ratings.usageQualityScore != -1.0) { val rating = applicationViewModel.handleRatingFormat(it.ratings.usageQualityScore) appRating.text = getString( R.string.rating_out_of, rating ) val formattedRating = applicationViewModel.handleRatingFormat(it.ratings.usageQualityScore) if (formattedRating != null) { appRating.text = getString(R.string.rating_out_of, formattedRating) appRating.setCompoundDrawablesWithIntrinsicBounds( ContextCompat.getDrawable(requireContext(), R.drawable.ic_star_blank), null, getRatingDrawable(rating), getRatingDrawable(formattedRating), null ) appRating.compoundDrawablePadding = 15 } else { appRating.text = getString(R.string.not_available) appRating.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null) } appRatingLayout.setOnClickListener { ApplicationDialogFragment( Loading app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt +1 −1 Original line number Diff line number Diff line Loading @@ -215,7 +215,7 @@ class ApplicationViewModel @Inject constructor( return applicationLiveData.value?.first } fun handleRatingFormat(rating: Double): String { fun handleRatingFormat(rating: Double): String? { return appManagerWrapper.handleRatingFormat(rating) } Loading Loading
app/src/main/java/foundation/e/apps/data/Constants.kt +2 −0 Original line number Diff line number Diff line Loading @@ -37,4 +37,6 @@ object Constants { "${BuildConfig.PACKAGE_NAME_PARENTAL_CONTROL}.action.APP_LOUNGE_LOGIN" const val REQUEST_GPLAY_LOGIN = "request_gplay_login" const val MIN_VALID_RATING = 0.1 }
app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt +10 −5 Original line number Diff line number Diff line Loading @@ -5,9 +5,10 @@ import android.os.Build import androidx.annotation.RequiresApi import androidx.lifecycle.LiveData import foundation.e.apps.OpenForTesting import foundation.e.apps.data.Constants.MIN_VALID_RATING import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fdroid.FDroidRepository import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.install.download.data.DownloadProgress import foundation.e.apps.install.workmanager.InstallWorkManager Loading Loading @@ -148,12 +149,16 @@ class AppManagerWrapper @Inject constructor( return download.id == application._id } fun handleRatingFormat(rating: Double): String { return if (rating % 1 == 0.0) { fun handleRatingFormat(rating: Double): String? { return if (rating >= MIN_VALID_RATING) { if (rating % 1 == 0.0) { rating.toInt().toString() } else { rating.toString() } } else { null } } suspend fun getCalculateProgressWithTotalSize(application: Application?, progress: DownloadProgress): Pair<Long, Long> { Loading
app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -270,4 +270,8 @@ class MainActivityViewModel @Inject constructor( fun launchPwa(application: Application) { pwaManager.launchPwa(application) } fun handleRatingFormat(rating: Double): String? { return appManagerWrapper.handleRatingFormat(rating) } }
app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt +7 −9 Original line number Diff line number Diff line Loading @@ -341,21 +341,19 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { private fun updateAppRating(it: Application) { binding.ratingsInclude.apply { if (it.ratings.usageQualityScore != -1.0) { val rating = applicationViewModel.handleRatingFormat(it.ratings.usageQualityScore) appRating.text = getString( R.string.rating_out_of, rating ) val formattedRating = applicationViewModel.handleRatingFormat(it.ratings.usageQualityScore) if (formattedRating != null) { appRating.text = getString(R.string.rating_out_of, formattedRating) appRating.setCompoundDrawablesWithIntrinsicBounds( ContextCompat.getDrawable(requireContext(), R.drawable.ic_star_blank), null, getRatingDrawable(rating), getRatingDrawable(formattedRating), null ) appRating.compoundDrawablePadding = 15 } else { appRating.text = getString(R.string.not_available) appRating.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null) } appRatingLayout.setOnClickListener { ApplicationDialogFragment( Loading
app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt +1 −1 Original line number Diff line number Diff line Loading @@ -215,7 +215,7 @@ class ApplicationViewModel @Inject constructor( return applicationLiveData.value?.first } fun handleRatingFormat(rating: Double): String { fun handleRatingFormat(rating: Double): String? { return appManagerWrapper.handleRatingFormat(rating) } Loading