Hmm somethings are changed
This commit is contained in:
parent
423b26be66
commit
0456914e2a
4 changed files with 443 additions and 0 deletions
|
@ -0,0 +1,38 @@
|
|||
package code.name.monkey.retromusic.helper
|
||||
|
||||
import android.content.Intent
|
||||
import androidx.core.app.ActivityCompat
|
||||
import code.name.monkey.retromusic.App
|
||||
import code.name.monkey.retromusic.ui.activities.ErrorHandlerActivity
|
||||
|
||||
class TopExceptionHandler() : Thread.UncaughtExceptionHandler {
|
||||
private val defaultUEH: Thread.UncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler()
|
||||
|
||||
override fun uncaughtException(t: Thread, e: Throwable) {
|
||||
var arr = e.stackTrace
|
||||
var report = e.toString() + "\n\n"
|
||||
report += "--------- Stack trace ---------\n\n"
|
||||
for (i in arr.indices) {
|
||||
report += " " + arr[i].toString() + "\n"
|
||||
}
|
||||
report += "-------------------------------\n\n"
|
||||
|
||||
// If the exception was thrown in a background thread inside
|
||||
// AsyncTask, then the actual exception can be found with getCause
|
||||
|
||||
report += "--------- Cause ---------\n\n"
|
||||
val cause = e.cause
|
||||
if (cause != null) {
|
||||
report += cause.toString() + "\n\n"
|
||||
arr = cause.stackTrace
|
||||
for (i in arr.indices) {
|
||||
report += " " + arr[i].toString() + "\n"
|
||||
}
|
||||
}
|
||||
report += "-------------------------------\n\n"
|
||||
ActivityCompat.startActivity(App.context, Intent(App.context, ErrorHandlerActivity::class.java)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra("error", report), null)
|
||||
defaultUEH.uncaughtException(t, e)
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
package code.name.monkey.retromusic.ui.activities
import android.content.ActivityNotFoundException
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_error_handler.*
class ErrorHandlerActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(code.name.monkey.retromusic.R.layout.activity_error_handler)
clearAppData.setOnClickListener {
try {
val intent = Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
intent.data = Uri.parse("package:$packageName")
startActivity(intent)
} catch (e: ActivityNotFoundException) {
val intent = Intent(android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS)
startActivity(intent)
}
}
sendCrashLog.setOnClickListener {
val sendIntent = Intent(Intent.ACTION_SEND)
val subject = "Error report"
val body = intent.getStringExtra("error")
sendIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf("monkeycodeapp@gmail.com"))
sendIntent.putExtra(Intent.EXTRA_TEXT, body)
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject)
sendIntent.type = "message/rfc822"
startActivity(Intent.createChooser(sendIntent, "Send crash log"))
deleteFile("stack.trace")
}
showCrashError.text = String.format("%s", intent.getStringExtra("error"))
}
}
|
|
@ -0,0 +1,12 @@
|
|||
package code.name.monkey.retromusic.ui.activities.base
|
||||
|
||||
import android.os.Bundle
|
||||
import code.name.monkey.appthemehelper.ATHActivity
|
||||
import code.name.monkey.retromusic.helper.TopExceptionHandler
|
||||
|
||||
abstract class AbsCrashCollector : ATHActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
Thread.setDefaultUncaughtExceptionHandler(TopExceptionHandler())
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue