mirror of
https://github.com/szkolny-eu/szkolny-android.git
synced 2025-01-18 21:06:44 -06:00
[Errors] Add showing errors details.
This commit is contained in:
parent
e472d34f4d
commit
c65872b29b
@ -43,6 +43,8 @@ import pl.szczodrzynski.edziennik.data.db.modules.teachers.Teacher
|
||||
import pl.szczodrzynski.edziennik.data.db.modules.teams.Team
|
||||
import pl.szczodrzynski.edziennik.utils.models.Time
|
||||
import pl.szczodrzynski.navlib.getColorFromRes
|
||||
import java.io.PrintWriter
|
||||
import java.io.StringWriter
|
||||
import java.math.BigInteger
|
||||
import java.security.MessageDigest
|
||||
import java.text.SimpleDateFormat
|
||||
@ -682,3 +684,10 @@ val String.firstLettersName: String
|
||||
}
|
||||
return nameShort
|
||||
}
|
||||
|
||||
val Throwable.stackTraceString: String
|
||||
get() {
|
||||
val sw = StringWriter()
|
||||
printStackTrace(PrintWriter(sw))
|
||||
return sw.toString()
|
||||
}
|
||||
|
@ -8,9 +8,12 @@ import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import androidx.core.graphics.ColorUtils
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import pl.szczodrzynski.edziennik.App
|
||||
import pl.szczodrzynski.edziennik.R
|
||||
import pl.szczodrzynski.edziennik.data.api.models.ApiError
|
||||
import pl.szczodrzynski.edziennik.stackTraceString
|
||||
import pl.szczodrzynski.navlib.getColorFromAttr
|
||||
|
||||
class ErrorSnackbar(val activity: AppCompatActivity) {
|
||||
@ -26,7 +29,22 @@ class ErrorSnackbar(val activity: AppCompatActivity) {
|
||||
this.coordinator = coordinatorLayout
|
||||
snackbar = Snackbar.make(coordinator, R.string.snackbar_error_text, Snackbar.LENGTH_INDEFINITE)
|
||||
snackbar?.setAction(R.string.more) {
|
||||
if (errors.isNotEmpty()) {
|
||||
val message = errors.map {
|
||||
if (App.devMode) it.throwable?.stackTraceString
|
||||
?: it.throwable?.localizedMessage ?: ""
|
||||
else it.throwable?.localizedMessage
|
||||
}.joinToString("\n")
|
||||
|
||||
MaterialAlertDialogBuilder(activity)
|
||||
.setTitle(R.string.dialog_error_details_title)
|
||||
.setMessage(message)
|
||||
.setPositiveButton(R.string.ok) { dialog, _ ->
|
||||
errors.clear()
|
||||
dialog.dismiss()
|
||||
}
|
||||
.show()
|
||||
}
|
||||
}
|
||||
val bgColor = ColorUtils.compositeColors(
|
||||
getColorFromAttr(activity, R.attr.colorOnSurface) and 0xcfffffff.toInt(),
|
||||
|
@ -1130,4 +1130,5 @@
|
||||
<string name="login_edudziennik_title">Zaloguj się - Edudziennik</string>
|
||||
<string name="login_edudziennik_subtitle">Użyj danych, którymi logujesz się do wersji komputerowej Edudziennika.</string>
|
||||
<string name="edziennik_progress_login_edudziennik_web">Logowanie do Edudziennika</string>
|
||||
<string name="dialog_error_details_title">Szczegóły błędu</string>
|
||||
</resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user