Skip to content
Snippets Groups Projects
Commit ec827e31 authored by Nicolas Pomepuy's avatar Nicolas Pomepuy
Browse files

Open a dialog when the app is in beta and a crash occurred during the last session

parent 759527f0
No related branches found
No related tags found
1 merge request!2163New feedback UI
......@@ -27,8 +27,17 @@ import android.text.format.DateFormat
import android.util.Log
import org.videolan.resources.AppContextProvider
import org.videolan.tools.CloseableUtils
import org.videolan.tools.KEY_LAST_SESSION_CRASHED
import org.videolan.tools.Logcat
import java.io.*
import org.videolan.tools.Settings
import org.videolan.tools.putSingle
import java.io.BufferedWriter
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import java.io.OutputStreamWriter
import java.io.PrintWriter
import java.io.StringWriter
import java.lang.Thread.UncaughtExceptionHandler
private const val TAG = "VLC/VlcCrashHandler"
......@@ -70,6 +79,7 @@ class VLCCrashHandler : UncaughtExceptionHandler {
val stacktrace = result.toString()
printWriter.close()
Log.e(TAG, stacktrace)
Settings.getInstance(AppContextProvider.appContext).putSingle(KEY_LAST_SESSION_CRASHED, true)
// Save the log on SD card if available
if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {
......
......@@ -265,6 +265,9 @@ const val KEY_SAFE_MODE_PIN = "safe_mode_pin"
const val KEY_RESTRICT_SETTINGS = "restrict_settings"
const val KEY_SAFE_MODE = "safe_mode"
const val KEY_LAST_SESSION_CRASHED = "last_session_crashed"
const val ENABLE_ANDROID_AUTO_SPEED_BUTTONS = "enable_android_auto_speed_buttons"
const val ENABLE_ANDROID_AUTO_SEEK_BUTTONS = "enable_android_auto_seek_buttons"
......
......@@ -44,8 +44,10 @@ import org.videolan.medialibrary.interfaces.Medialibrary
import org.videolan.resources.ACTIVITY_RESULT_OPEN
import org.videolan.resources.ACTIVITY_RESULT_PREFERENCES
import org.videolan.resources.ACTIVITY_RESULT_SECONDARY
import org.videolan.resources.CRASH_HAPPENED
import org.videolan.resources.EXTRA_TARGET
import org.videolan.tools.KEY_INCOGNITO
import org.videolan.tools.KEY_LAST_SESSION_CRASHED
import org.videolan.tools.KEY_MEDIALIBRARY_AUTO_RESCAN
import org.videolan.tools.KEY_SHOW_UPDATE
import org.videolan.tools.PERMISSION_NEVER_ASK
......@@ -147,6 +149,28 @@ class MainActivity : ContentActivity(),
updateDialog.show(supportFragmentManager, "fragment_update")
}
}
if (settings.getBoolean(KEY_LAST_SESSION_CRASHED, false)) {
settings.putSingle(KEY_LAST_SESSION_CRASHED, false)
if (BuildConfig.BETA) {
AlertDialog.Builder(this@MainActivity)
.setTitle(resources.getString(R.string.report_crash))
.setMessage(resources.getString(R.string.serious_crash))
.setPositiveButton(R.string.send_log) { _, _ ->
startActivity(
Intent(applicationContext, FeedbackActivity::class.java)
.apply {
putExtra(CRASH_HAPPENED, true)
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}
)
}
.setNegativeButton(R.string.cancel) { _, _ ->
}
.show()
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment