mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 21:15:48 +00:00
Add tap to submit debuglog for regv3 screens.
This commit is contained in:
committed by
Greyson Parrelli
parent
021fd16540
commit
a6aa2ca3ce
@@ -1,16 +1,10 @@
|
||||
package org.thoughtcrime.securesms.registration.fragments
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.StringRes
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.logsubmit.SubmitDebugLogActivity
|
||||
import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter
|
||||
import org.thoughtcrime.securesms.util.SpanUtil
|
||||
|
||||
object RegistrationViewDelegate {
|
||||
|
||||
@@ -20,45 +14,21 @@ object RegistrationViewDelegate {
|
||||
private val DEBUG_TAP_TARGET = 8
|
||||
private val DEBUG_TAP_ANNOUNCE = 4
|
||||
private var debugTapCounter = 0
|
||||
private var previousToast: Toast? = null
|
||||
|
||||
override fun onClick(view: View) {
|
||||
debugTapCounter++
|
||||
|
||||
if (debugTapCounter >= DEBUG_TAP_TARGET) {
|
||||
view.context.startActivity(Intent(view.context, SubmitDebugLogActivity::class.java))
|
||||
previousToast?.cancel()
|
||||
previousToast = null
|
||||
} else if (debugTapCounter >= DEBUG_TAP_ANNOUNCE) {
|
||||
val remaining = DEBUG_TAP_TARGET - debugTapCounter
|
||||
Toast.makeText(view.context, view.context.resources.getQuantityString(R.plurals.RegistrationActivity_debug_log_hint, remaining, remaining), Toast.LENGTH_SHORT).show()
|
||||
previousToast?.cancel()
|
||||
previousToast = Toast.makeText(view.context, view.context.resources.getQuantityString(R.plurals.RegistrationActivity_debug_log_hint, remaining, remaining), Toast.LENGTH_SHORT).apply { show() }
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun showConfirmNumberDialogIfTranslated(
|
||||
context: Context,
|
||||
@StringRes title: Int?,
|
||||
@StringRes firstMessageLine: Int?,
|
||||
e164number: String,
|
||||
onConfirmed: Runnable,
|
||||
onEditNumber: Runnable
|
||||
) {
|
||||
val message: CharSequence = SpannableStringBuilder().apply {
|
||||
append(SpanUtil.bold(PhoneNumberFormatter.prettyPrint(e164number)))
|
||||
if (firstMessageLine != null) {
|
||||
append("\n\n")
|
||||
append(context.getString(firstMessageLine))
|
||||
}
|
||||
}
|
||||
|
||||
MaterialAlertDialogBuilder(context).apply {
|
||||
if (title != null) {
|
||||
setTitle(title)
|
||||
}
|
||||
setMessage(message)
|
||||
setPositiveButton(android.R.string.ok) { _, _ -> onConfirmed.run() }
|
||||
setNegativeButton(R.string.RegistrationActivity_edit_number) { _, _ -> onEditNumber.run() }
|
||||
setOnCancelListener { onEditNumber.run() }
|
||||
}.show()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
|
||||
package org.thoughtcrime.securesms.registrationv3.ui.shared
|
||||
|
||||
import android.content.Intent
|
||||
import android.widget.Toast
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.BoxScope
|
||||
@@ -21,12 +24,22 @@ import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableIntStateOf
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.signal.core.ui.Previews
|
||||
import org.signal.core.ui.SignalPreview
|
||||
import org.signal.core.ui.horizontalGutters
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.logsubmit.SubmitDebugLogActivity
|
||||
|
||||
private const val TAP_TARGET = 8
|
||||
|
||||
/**
|
||||
* A base framework for rendering the various v3 registration screens.
|
||||
@@ -59,6 +72,9 @@ fun RegistrationScreen(
|
||||
.fillMaxHeight()
|
||||
) {
|
||||
val scrollState = rememberScrollState()
|
||||
val context = LocalContext.current
|
||||
var titleTapCount by remember { mutableIntStateOf(0) }
|
||||
var previousToast by remember { mutableStateOf<Toast?>(null) }
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
@@ -71,6 +87,20 @@ fun RegistrationScreen(
|
||||
text = title,
|
||||
style = MaterialTheme.typography.headlineMedium,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.clickable {
|
||||
titleTapCount++
|
||||
|
||||
if (titleTapCount >= TAP_TARGET) {
|
||||
context.startActivity(Intent(context, SubmitDebugLogActivity::class.java))
|
||||
previousToast?.cancel()
|
||||
previousToast = null
|
||||
} else {
|
||||
val remaining = TAP_TARGET - titleTapCount
|
||||
previousToast?.cancel()
|
||||
previousToast = Toast.makeText(context, context.resources.getQuantityString(R.plurals.RegistrationActivity_debug_log_hint, remaining, remaining), Toast.LENGTH_SHORT).apply { show() }
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
if (subtitle != null) {
|
||||
|
||||
Reference in New Issue
Block a user