aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2018-01-18 23:23:56 -0500
committerAllan Wang <me@allanwang.ca>2018-01-20 16:42:37 -0500
commitd766100c297bc094491de150f24c04719ffa8f4e (patch)
treeb69863dace2fcb45d5fd25c276ca450e07305c44 /app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt
parent78b3cc41e4c9f8d141ad46ee75e476fa2d177f19 (diff)
downloadfrost-d766100c297bc094491de150f24c04719ffa8f4e.tar.gz
frost-d766100c297bc094491de150f24c04719ffa8f4e.tar.bz2
frost-d766100c297bc094491de150f24c04719ffa8f4e.zip
Enhancement/speed up (#650)
* Revert back to m.facebook * Add initial speedup * Update theme * Fix link press for event status * Move web states to fb const * Fix images and email * Fix up flyweight for requests * Ensure frost request is synchronous * Prepare diff utils * Improve speed and fix blank overlay * Update comments * Add debugger and fix searchview * Theme discover pages. Resolves #654 * Fix duplicate reload * Fix image loading * Update changelog * Update tests * Rename test Update dependencies Update gitignore
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt33
1 files changed, 32 insertions, 1 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt
index 3b37d1c3..df0fdef2 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt
@@ -1,5 +1,6 @@
package com.pitchedapps.frost.settings
+import android.content.Context
import ca.allanwang.kau.kpref.activity.KPrefAdapterBuilder
import ca.allanwang.kau.utils.materialDialog
import ca.allanwang.kau.utils.startActivityForResult
@@ -11,6 +12,7 @@ import com.pitchedapps.frost.activities.SettingsActivity.Companion.ACTIVITY_REQU
import com.pitchedapps.frost.debugger.OfflineWebsite
import com.pitchedapps.frost.facebook.FbCookie
import com.pitchedapps.frost.facebook.FbItem
+import com.pitchedapps.frost.parsers.FrostParser
import com.pitchedapps.frost.parsers.MessageParser
import com.pitchedapps.frost.parsers.NotifParser
import com.pitchedapps.frost.parsers.SearchParser
@@ -21,6 +23,7 @@ import org.jetbrains.anko.doAsync
import org.jetbrains.anko.toast
import org.jetbrains.anko.uiThread
import java.io.File
+import java.util.concurrent.Future
/**
* Created by Allan Wang on 2017-06-30.
@@ -49,7 +52,29 @@ fun SettingsActivity.getDebugPrefs(): KPrefAdapterBuilder.() -> Unit = {
items(parsers.map { string(it.nameRes) })
itemsCallback { dialog, _, position, _ ->
dialog.dismiss()
- // todo add debugging
+ val parser = parsers[position]
+ var attempt: Future<Unit>? = null
+ val loading = materialDialog {
+ content(parser.nameRes)
+ progress(true, 100)
+ negativeText(R.string.kau_cancel)
+ onNegative { dialog, _ ->
+ attempt?.cancel(true)
+ dialog.dismiss()
+ }
+ canceledOnTouchOutside(false)
+ }
+
+ attempt = loading.doAsync({
+ createEmail(parser, "Error: ${it.message}")
+ }) {
+ val data = parser.parse(FbCookie.webCookie)
+ uiThread {
+ if (it.isCancelled) return@uiThread
+ it.dismiss()
+ createEmail(parser, data?.data)
+ }
+ }
}
}
@@ -57,6 +82,12 @@ fun SettingsActivity.getDebugPrefs(): KPrefAdapterBuilder.() -> Unit = {
}
}
+private fun Context.createEmail(parser: FrostParser<*>, content: Any?) =
+ sendFrostEmail("${string(R.string.debug_report)}: ${parser::class.java.simpleName}") {
+ addItem("Url", parser.url)
+ addItem("Contents", "$content")
+ }
+
private const val ZIP_NAME = "debug"
fun SettingsActivity.sendDebug(urlOrig: String) {