Update action button on UI thread
This commit is contained in:
@@ -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()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user