diff --git a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt index 84a92d8b7..68f0c3782 100644 --- a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt @@ -53,7 +53,6 @@ import com.aurora.extensions.share import com.aurora.extensions.show import com.aurora.extensions.toast import com.aurora.gplayapi.data.models.App -import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.Review import com.aurora.gplayapi.data.models.StreamBundle import com.aurora.gplayapi.data.models.StreamCluster @@ -88,14 +87,14 @@ import com.aurora.store.viewmodel.details.DetailsClusterViewModel import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.flow.filter import kotlinx.coroutines.launch import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode import java.util.Locale import javax.inject.Inject -import kotlinx.coroutines.flow.collectLatest -import kotlinx.coroutines.flow.filter @AndroidEntryPoint class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { @@ -223,12 +222,10 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { viewModel.fetchAppDetails(view.context, app.packageName) viewLifecycleOwner.lifecycleScope.launch { viewModel.app.collect { - if (app.packageName.isNotBlank()) { - if (isExternal) { - app = it - inflatePartialApp() - } - inflateExtraDetails(it) + if (it.packageName.isNotBlank()) { + app = it + inflatePartialApp() // Re-inflate the app details, as web data may vary. + inflateExtraDetails(app) viewModel.fetchAppReviews(view.context, app.packageName) } else { toast("Failed to fetch app details") @@ -256,6 +253,7 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { DownloadStatus.QUEUED -> { updateProgress(it.progress) } + DownloadStatus.DOWNLOADING -> { updateProgress(it.progress, it.speed, it.timeRemaining) } @@ -612,7 +610,13 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { binding.layoutDetailsApp.txtLine3.text = ("$installedVersion ➔ ${app.versionName} (${app.versionCode})") btn.setText(R.string.action_update) - btn.addOnClickListener { startDownload() } + btn.addOnClickListener { + if (app.versionCode == 0) { + toast(R.string.toast_app_unavailable) + } else { + startDownload() + } + } } else { binding.layoutDetailsApp.txtLine3.text = installedVersion btn.setText(R.string.action_open) @@ -633,6 +637,8 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { btn.addOnClickListener { if (authProvider.isAnonymous && !app.isFree) { toast(R.string.toast_purchase_blocked) + } else if (app.versionCode == 0) { + toast(R.string.toast_app_unavailable) } else { btn.setText(R.string.download_metadata) startDownload() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2a2333a56..63a7618ea 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -302,6 +302,7 @@ "Not available on anonymous accounts" "Blacklisted" "Whitelisted" + "App not available for your device" "Copied to clipboard" Turn on developer settings from the device settings to open them. "Permission granted"