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