DetailsFragment: Do not enqueue download if app is not supported
- This would be more relevant when we migrate to web APIs - Web stream are not device specific so it may list unsupported apps
This commit is contained in:
@@ -53,7 +53,6 @@ import com.aurora.extensions.share
|
|||||||
import com.aurora.extensions.show
|
import com.aurora.extensions.show
|
||||||
import com.aurora.extensions.toast
|
import com.aurora.extensions.toast
|
||||||
import com.aurora.gplayapi.data.models.App
|
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.Review
|
||||||
import com.aurora.gplayapi.data.models.StreamBundle
|
import com.aurora.gplayapi.data.models.StreamBundle
|
||||||
import com.aurora.gplayapi.data.models.StreamCluster
|
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
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback
|
import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
|
import kotlinx.coroutines.flow.filter
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
import org.greenrobot.eventbus.ThreadMode
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
|
||||||
import kotlinx.coroutines.flow.filter
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
|
class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
|
||||||
@@ -223,12 +222,10 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
|
|||||||
viewModel.fetchAppDetails(view.context, app.packageName)
|
viewModel.fetchAppDetails(view.context, app.packageName)
|
||||||
viewLifecycleOwner.lifecycleScope.launch {
|
viewLifecycleOwner.lifecycleScope.launch {
|
||||||
viewModel.app.collect {
|
viewModel.app.collect {
|
||||||
if (app.packageName.isNotBlank()) {
|
if (it.packageName.isNotBlank()) {
|
||||||
if (isExternal) {
|
app = it
|
||||||
app = it
|
inflatePartialApp() // Re-inflate the app details, as web data may vary.
|
||||||
inflatePartialApp()
|
inflateExtraDetails(app)
|
||||||
}
|
|
||||||
inflateExtraDetails(it)
|
|
||||||
viewModel.fetchAppReviews(view.context, app.packageName)
|
viewModel.fetchAppReviews(view.context, app.packageName)
|
||||||
} else {
|
} else {
|
||||||
toast("Failed to fetch app details")
|
toast("Failed to fetch app details")
|
||||||
@@ -256,6 +253,7 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
|
|||||||
DownloadStatus.QUEUED -> {
|
DownloadStatus.QUEUED -> {
|
||||||
updateProgress(it.progress)
|
updateProgress(it.progress)
|
||||||
}
|
}
|
||||||
|
|
||||||
DownloadStatus.DOWNLOADING -> {
|
DownloadStatus.DOWNLOADING -> {
|
||||||
updateProgress(it.progress, it.speed, it.timeRemaining)
|
updateProgress(it.progress, it.speed, it.timeRemaining)
|
||||||
}
|
}
|
||||||
@@ -612,7 +610,13 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
|
|||||||
binding.layoutDetailsApp.txtLine3.text =
|
binding.layoutDetailsApp.txtLine3.text =
|
||||||
("$installedVersion ➔ ${app.versionName} (${app.versionCode})")
|
("$installedVersion ➔ ${app.versionName} (${app.versionCode})")
|
||||||
btn.setText(R.string.action_update)
|
btn.setText(R.string.action_update)
|
||||||
btn.addOnClickListener { startDownload() }
|
btn.addOnClickListener {
|
||||||
|
if (app.versionCode == 0) {
|
||||||
|
toast(R.string.toast_app_unavailable)
|
||||||
|
} else {
|
||||||
|
startDownload()
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
binding.layoutDetailsApp.txtLine3.text = installedVersion
|
binding.layoutDetailsApp.txtLine3.text = installedVersion
|
||||||
btn.setText(R.string.action_open)
|
btn.setText(R.string.action_open)
|
||||||
@@ -633,6 +637,8 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
|
|||||||
btn.addOnClickListener {
|
btn.addOnClickListener {
|
||||||
if (authProvider.isAnonymous && !app.isFree) {
|
if (authProvider.isAnonymous && !app.isFree) {
|
||||||
toast(R.string.toast_purchase_blocked)
|
toast(R.string.toast_purchase_blocked)
|
||||||
|
} else if (app.versionCode == 0) {
|
||||||
|
toast(R.string.toast_app_unavailable)
|
||||||
} else {
|
} else {
|
||||||
btn.setText(R.string.download_metadata)
|
btn.setText(R.string.download_metadata)
|
||||||
startDownload()
|
startDownload()
|
||||||
|
|||||||
@@ -302,6 +302,7 @@
|
|||||||
<string name="toast_anonymous_restriction">"Not available on anonymous accounts"</string>
|
<string name="toast_anonymous_restriction">"Not available on anonymous accounts"</string>
|
||||||
<string name="toast_apk_blacklisted">"Blacklisted"</string>
|
<string name="toast_apk_blacklisted">"Blacklisted"</string>
|
||||||
<string name="toast_apk_whitelisted">"Whitelisted"</string>
|
<string name="toast_apk_whitelisted">"Whitelisted"</string>
|
||||||
|
<string name="toast_app_unavailable">"App not available for your device"</string>
|
||||||
<string name="toast_clipboard_copied">"Copied to clipboard"</string>
|
<string name="toast_clipboard_copied">"Copied to clipboard"</string>
|
||||||
<string name="toast_developer_setting_failed">Turn on developer settings from the device settings to open them.</string>
|
<string name="toast_developer_setting_failed">Turn on developer settings from the device settings to open them.</string>
|
||||||
<string name="toast_permission_granted">"Permission granted"</string>
|
<string name="toast_permission_granted">"Permission granted"</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user