From 8ba8e535bdc416d15adca316f776f4f285ba766c Mon Sep 17 00:00:00 2001 From: Koen Date: Fri, 19 Jan 2024 16:13:42 +0100 Subject: [PATCH] Added check for updates button on exception activity. --- .../java/com/futo/platformplayer/UIDialogs.kt | 6 +++++- .../activities/ExceptionActivity.kt | 15 +++++++++++++++ .../dialogs/AutoUpdateDialog.kt | 5 +++++ .../futo/platformplayer/states/StateUpdate.kt | 4 ++-- .../main/res/layout/activity_exception.xml | 19 ++++++++++++++++--- app/src/main/res/values/strings.xml | 1 + 6 files changed, 44 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/UIDialogs.kt b/app/src/main/java/com/futo/platformplayer/UIDialogs.kt index 0ebf26bd..f0b8abea 100644 --- a/app/src/main/java/com/futo/platformplayer/UIDialogs.kt +++ b/app/src/main/java/com/futo/platformplayer/UIDialogs.kt @@ -304,12 +304,16 @@ class UIDialogs { showDialog(context, R.drawable.ic_error, text, null, null, 0, cancelButtonAction, confirmButtonAction) } - fun showUpdateAvailableDialog(context: Context, lastVersion: Int) { + fun showUpdateAvailableDialog(context: Context, lastVersion: Int, hideExceptionButtons: Boolean = false) { val dialog = AutoUpdateDialog(context); registerDialogOpened(dialog); dialog.setOnDismissListener { registerDialogClosed(dialog) }; dialog.show(); dialog.setMaxVersion(lastVersion); + + if (hideExceptionButtons) { + dialog.hideExceptionButtons() + } } fun showChangelogDialog(context: Context, lastVersion: Int) { diff --git a/app/src/main/java/com/futo/platformplayer/activities/ExceptionActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/ExceptionActivity.kt index 99a6e1b0..c3ba7daa 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/ExceptionActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/ExceptionActivity.kt @@ -4,6 +4,7 @@ import android.content.Context import android.content.Intent import android.os.Build import android.os.Bundle +import android.view.View import android.widget.LinearLayout import android.widget.TextView import android.widget.Toast @@ -15,6 +16,7 @@ import com.futo.platformplayer.logging.LogLevel import com.futo.platformplayer.logging.Logging import com.futo.platformplayer.setNavigationBarColorAndIcons import com.futo.platformplayer.states.StateApp +import com.futo.platformplayer.states.StateUpdate import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -28,6 +30,7 @@ class ExceptionActivity : AppCompatActivity() { private lateinit var _buttonSubmit: LinearLayout; private lateinit var _buttonRestart: LinearLayout; private lateinit var _buttonClose: LinearLayout; + private lateinit var _buttonCheckForUpdates: LinearLayout; private var _file: File? = null; private var _submitted = false; @@ -45,6 +48,7 @@ class ExceptionActivity : AppCompatActivity() { _buttonSubmit = findViewById(R.id.button_submit); _buttonRestart = findViewById(R.id.button_restart); _buttonClose = findViewById(R.id.button_close); + _buttonCheckForUpdates = findViewById(R.id.button_check_for_updates); val context = intent.getStringExtra(EXTRA_CONTEXT) ?: getString(R.string.unknown_context); val stack = intent.getStringExtra(EXTRA_STACK) ?: getString(R.string.something_went_wrong_missing_stack_trace); @@ -83,6 +87,17 @@ class ExceptionActivity : AppCompatActivity() { _buttonClose.setOnClickListener { finish(); }; + + if (!BuildConfig.IS_PLAYSTORE_BUILD) { + _buttonCheckForUpdates.visibility = View.VISIBLE + _buttonCheckForUpdates.setOnClickListener { + lifecycleScope.launch(Dispatchers.IO) { + StateUpdate.instance.checkForUpdates(this@ExceptionActivity, true, true) + } + } + } else { + _buttonCheckForUpdates.visibility = View.GONE + } } private fun submitFile() { diff --git a/app/src/main/java/com/futo/platformplayer/dialogs/AutoUpdateDialog.kt b/app/src/main/java/com/futo/platformplayer/dialogs/AutoUpdateDialog.kt index 3f7fda29..5e2b72de 100644 --- a/app/src/main/java/com/futo/platformplayer/dialogs/AutoUpdateDialog.kt +++ b/app/src/main/java/com/futo/platformplayer/dialogs/AutoUpdateDialog.kt @@ -96,6 +96,11 @@ class AutoUpdateDialog(context: Context?) : AlertDialog(context) { Logger.i(TAG, "Cleared InstallReceiver.onReceiveResult handler.") } + fun hideExceptionButtons() { + _buttonNever.visibility = View.GONE + _buttonShowChangelog.visibility = View.GONE + } + private fun update() { _buttonShowChangelog.visibility = Button.GONE; _buttonNever.visibility = Button.GONE; diff --git a/app/src/main/java/com/futo/platformplayer/states/StateUpdate.kt b/app/src/main/java/com/futo/platformplayer/states/StateUpdate.kt index 7a625a15..ebc75dd1 100644 --- a/app/src/main/java/com/futo/platformplayer/states/StateUpdate.kt +++ b/app/src/main/java/com/futo/platformplayer/states/StateUpdate.kt @@ -155,7 +155,7 @@ class StateUpdate { } } - suspend fun checkForUpdates(context: Context, showUpToDateToast: Boolean) = withContext(Dispatchers.IO) { + suspend fun checkForUpdates(context: Context, showUpToDateToast: Boolean, hideExceptionButtons: Boolean = false) = withContext(Dispatchers.IO) { try { val client = ManagedHttpClient(); val latestVersion = downloadVersionCode(client); @@ -167,7 +167,7 @@ class StateUpdate { if (latestVersion > currentVersion) { withContext(Dispatchers.Main) { try { - UIDialogs.showUpdateAvailableDialog(context, latestVersion); + UIDialogs.showUpdateAvailableDialog(context, latestVersion, hideExceptionButtons); } catch (e: Throwable) { UIDialogs.toast(context, "Failed to show update dialog"); Logger.w(TAG, "Error occurred in update dialog."); diff --git a/app/src/main/res/layout/activity_exception.xml b/app/src/main/res/layout/activity_exception.xml index 7f88ba94..eb1a29bb 100644 --- a/app/src/main/res/layout/activity_exception.xml +++ b/app/src/main/res/layout/activity_exception.xml @@ -37,9 +37,22 @@ android:fontFamily="@font/inter_extra_light" /> - + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fabd85da..274feb82 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -749,6 +749,7 @@ Add Creators Select Zoom + Check to see if an update is available. Recommendations Subscriptions