Update action button on UI thread

This commit is contained in:
Rahul Patel
2023-10-15 01:37:07 +05:30
parent 4770aa3540
commit 25601b2a41

View File

@@ -324,7 +324,8 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
R.color.colorOrange R.color.colorOrange
) )
) )
text = "${report.trackers.size} ${getString(R.string.exodus_substring)} ${report.version}" text =
"${report.trackers.size} ${getString(R.string.exodus_substring)} ${report.version}"
} }
binding.layoutDetailsPrivacy.headerPrivacy.addClickListener { binding.layoutDetailsPrivacy.headerPrivacy.addClickListener {
@@ -662,63 +663,67 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
} }
private fun expandBottomSheet(message: String?) { private fun expandBottomSheet(message: String?) {
bottomSheetBehavior.isHideable = false runOnUiThread {
bottomSheetBehavior.state = BottomSheetBehavior.STATE_EXPANDED bottomSheetBehavior.isHideable = false
bottomSheetBehavior.state = BottomSheetBehavior.STATE_EXPANDED
with(binding.layoutDetailsInstall) { with(binding.layoutDetailsInstall) {
txtPurchaseError.text = message txtPurchaseError.text = message
btnDownload.updateState(State.IDLE) btnDownload.updateState(State.IDLE)
if (app.isFree) if (app.isFree)
btnDownload.setText(R.string.action_install) btnDownload.setText(R.string.action_install)
else else
btnDownload.setText(app.price) btnDownload.setText(app.price)
}
} }
} }
private fun checkAndSetupInstall() { private fun checkAndSetupInstall() {
isInstalled = PackageUtil.isInstalled(requireContext(), app.packageName) runOnUiThread {
isInstalled = PackageUtil.isInstalled(requireContext(), app.packageName)
binding.layoutDetailsInstall.btnDownload.let { btn -> binding.layoutDetailsInstall.btnDownload.let { btn ->
if (isInstalled) { if (isInstalled) {
isUpdatable = PackageUtil.isUpdatable( isUpdatable = PackageUtil.isUpdatable(
requireContext(), requireContext(),
app.packageName, app.packageName,
app.versionCode.toLong() app.versionCode.toLong()
) )
val installedVersion = val installedVersion =
PackageUtil.getInstalledVersion(requireContext(), app.packageName) PackageUtil.getInstalledVersion(requireContext(), app.packageName)
if (isUpdatable) { if (isUpdatable) {
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 { startDownload() }
} else {
binding.layoutDetailsApp.txtLine3.text = installedVersion
btn.setText(R.string.action_open)
btn.addOnClickListener { openApp() }
}
if (!uninstallActionEnabled) {
binding.layoutDetailsToolbar.toolbar.invalidateMenu()
}
} else {
if (app.isFree) {
btn.setText(R.string.action_install)
} else {
btn.setText(app.price)
}
btn.addOnClickListener {
if (authData.isAnonymous && !app.isFree) {
toast(R.string.toast_purchase_blocked)
} else { } else {
btn.setText(R.string.download_metadata) binding.layoutDetailsApp.txtLine3.text = installedVersion
startDownload() btn.setText(R.string.action_open)
btn.addOnClickListener { openApp() }
}
if (!uninstallActionEnabled) {
binding.layoutDetailsToolbar.toolbar.invalidateMenu()
}
} else {
if (app.isFree) {
btn.setText(R.string.action_install)
} else {
btn.setText(app.price)
}
btn.addOnClickListener {
if (authData.isAnonymous && !app.isFree) {
toast(R.string.toast_purchase_blocked)
} else {
btn.setText(R.string.download_metadata)
startDownload()
}
}
if (uninstallActionEnabled) {
binding.layoutDetailsToolbar.toolbar.invalidateMenu()
} }
}
if (uninstallActionEnabled) {
binding.layoutDetailsToolbar.toolbar.invalidateMenu()
} }
} }
} }