Add debug dialog
This commit is contained in:
parent
09e79a7c3a
commit
881e442ac6
@ -10,8 +10,10 @@ import android.view.Menu
|
|||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.* // ktlint-disable no-wildcard-imports
|
import android.widget.* // ktlint-disable no-wildcard-imports
|
||||||
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.isGone
|
import androidx.core.view.isGone
|
||||||
|
import androidx.core.view.setPadding
|
||||||
import com.google.android.material.card.MaterialCardView
|
import com.google.android.material.card.MaterialCardView
|
||||||
import org.unifiedpush.distributor.nextpush.R
|
import org.unifiedpush.distributor.nextpush.R
|
||||||
import org.unifiedpush.distributor.nextpush.account.Account
|
import org.unifiedpush.distributor.nextpush.account.Account
|
||||||
@ -26,11 +28,14 @@ import org.unifiedpush.distributor.nextpush.services.FailureHandler
|
|||||||
import org.unifiedpush.distributor.nextpush.services.RestartWorker
|
import org.unifiedpush.distributor.nextpush.services.RestartWorker
|
||||||
import org.unifiedpush.distributor.nextpush.services.StartService
|
import org.unifiedpush.distributor.nextpush.services.StartService
|
||||||
import org.unifiedpush.distributor.nextpush.utils.TAG
|
import org.unifiedpush.distributor.nextpush.utils.TAG
|
||||||
|
import org.unifiedpush.distributor.nextpush.utils.getDebugInfo
|
||||||
import java.lang.String.format
|
import java.lang.String.format
|
||||||
|
|
||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
private lateinit var listView: ListView
|
private lateinit var listView: ListView
|
||||||
|
private var lastClickTime = 0L
|
||||||
|
private var clickCount = 0
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@ -46,6 +51,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
format(getString(R.string.main_account_desc), getAccount(this)?.name)
|
format(getString(R.string.main_account_desc), getAccount(this)?.name)
|
||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
RestartWorker.startPeriodic(this)
|
RestartWorker.startPeriodic(this)
|
||||||
|
setDebugInformationListener()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
@ -161,6 +167,38 @@ class MainActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setDebugInformationListener() {
|
||||||
|
findViewById<TextView>(R.id.main_account_title).setOnClickListener {
|
||||||
|
val currentTime = System.currentTimeMillis()
|
||||||
|
if (currentTime - lastClickTime < 500) {
|
||||||
|
clickCount++
|
||||||
|
if (clickCount == 5) {
|
||||||
|
val scale = resources.displayMetrics.density
|
||||||
|
val dpAsPixels = (16 * scale + 0.5f)
|
||||||
|
val showText = TextView(this)
|
||||||
|
.apply {
|
||||||
|
setTextIsSelectable(true)
|
||||||
|
text = getDebugInfo()
|
||||||
|
setPadding(dpAsPixels.toInt())
|
||||||
|
}
|
||||||
|
AlertDialog.Builder(this)
|
||||||
|
.setTitle("Debug information")
|
||||||
|
.setView(showText)
|
||||||
|
.setCancelable(false)
|
||||||
|
.setPositiveButton("Ok") { dialog, _ ->
|
||||||
|
dialog.dismiss()
|
||||||
|
}
|
||||||
|
.show()
|
||||||
|
|
||||||
|
clickCount = 0 // Réinitialisez le compteur après l'affichage de la popup
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
clickCount = 1
|
||||||
|
}
|
||||||
|
lastClickTime = currentTime
|
||||||
|
}
|
||||||
|
}
|
||||||
companion object {
|
companion object {
|
||||||
fun goToMainActivity(context: Context) {
|
fun goToMainActivity(context: Context) {
|
||||||
val intent = Intent(
|
val intent = Intent(
|
||||||
|
@ -23,9 +23,6 @@ import java.util.Calendar
|
|||||||
|
|
||||||
class SSEListener(val context: Context) : EventSourceListener() {
|
class SSEListener(val context: Context) : EventSourceListener() {
|
||||||
|
|
||||||
private var pinged = false
|
|
||||||
private var started = false
|
|
||||||
|
|
||||||
override fun onOpen(eventSource: EventSource, response: Response) {
|
override fun onOpen(eventSource: EventSource, response: Response) {
|
||||||
FailureHandler.newEventSource(context, eventSource)
|
FailureHandler.newEventSource(context, eventSource)
|
||||||
StartService.wakeLock?.let {
|
StartService.wakeLock?.let {
|
||||||
@ -33,6 +30,8 @@ class SSEListener(val context: Context) : EventSourceListener() {
|
|||||||
it.release()
|
it.release()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
started = false
|
||||||
|
pinged = false
|
||||||
try {
|
try {
|
||||||
Log.d(TAG, "onOpen: " + response.code)
|
Log.d(TAG, "onOpen: " + response.code)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
@ -138,5 +137,9 @@ class SSEListener(val context: Context) : EventSourceListener() {
|
|||||||
var lastEventDate: Calendar? = null
|
var lastEventDate: Calendar? = null
|
||||||
var keepalive = 900
|
var keepalive = 900
|
||||||
private set
|
private set
|
||||||
|
var pinged = false
|
||||||
|
private set
|
||||||
|
var started = false
|
||||||
|
private set
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -77,4 +77,10 @@ object FailureHandler {
|
|||||||
// nFails > 0 to be sure it is not actually restarting
|
// nFails > 0 to be sure it is not actually restarting
|
||||||
return if (orNeverStart) { eventSource == null } else { false } || nFails > 0
|
return if (orNeverStart) { eventSource == null } else { false } || nFails > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getDebugInfo(): String {
|
||||||
|
return "nFails: $nFails\n" +
|
||||||
|
"nFailsBeforePing: $nFailsBeforePing\n" +
|
||||||
|
"eventSource null: ${eventSource == null}"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
package org.unifiedpush.distributor.nextpush.utils
|
||||||
|
|
||||||
|
import org.unifiedpush.distributor.nextpush.api.SSEListener
|
||||||
|
import org.unifiedpush.distributor.nextpush.services.FailureHandler
|
||||||
|
import org.unifiedpush.distributor.nextpush.services.StartService
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
|
||||||
|
fun getDebugInfo(): String {
|
||||||
|
val date = SSEListener.lastEventDate?.let {
|
||||||
|
SimpleDateFormat.getDateTimeInstance().format(it.time)
|
||||||
|
} ?: "None"
|
||||||
|
return "ServiceStarted: ${StartService.isServiceStarted}\n" +
|
||||||
|
"Last Event: $date\n" +
|
||||||
|
"Keepalive: ${SSEListener.keepalive}\n" +
|
||||||
|
"SSE started: ${SSEListener.started}\n" +
|
||||||
|
"SSE pinged: ${SSEListener.pinged}\n" +
|
||||||
|
FailureHandler.getDebugInfo()
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user