Improve alert dialogs
This commit is contained in:
parent
4c65a1d40f
commit
66a8a7a660
@ -57,9 +57,9 @@ ext {
|
||||
|
||||
dependencies {
|
||||
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")
|
||||
implementation("androidx.appcompat:appcompat:1.6.1")
|
||||
implementation('com.google.android.material:material:1.11.0')
|
||||
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
|
||||
implementation("androidx.appcompat:appcompat:1.7.0")
|
||||
implementation('com.google.android.material:material:1.12.0')
|
||||
implementation("androidx.constraintlayout:constraintlayout:2.2.0")
|
||||
implementation("androidx.coordinatorlayout:coordinatorlayout:1.2.0")
|
||||
implementation('com.squareup.okhttp3:okhttp-sse:5.0.0.SSEPATCH1-SNAPSHOT')
|
||||
implementation("com.github.nextcloud:Android-SingleSignOn:0.8.1")
|
||||
|
@ -10,7 +10,7 @@ import android.text.method.LinkMovementMethod
|
||||
import android.text.util.Linkify
|
||||
import android.util.Log
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.nextcloud.android.sso.AccountImporter
|
||||
import com.nextcloud.android.sso.exceptions.* // ktlint-disable no-wildcard-imports
|
||||
import com.nextcloud.android.sso.helper.SingleAccountHelper
|
||||
@ -94,8 +94,7 @@ class SSOAccount(val context: Context) : Account<SingleSignOnAccount> {
|
||||
}
|
||||
|
||||
private fun nextcloudAppNotInstalledDialog(context: Context) {
|
||||
val message = TextView(context)
|
||||
val builder = AlertDialog.Builder(context)
|
||||
val builder = MaterialAlertDialogBuilder(context)
|
||||
var messageContent = context.getString(R.string.message_missing_nextcloud_app)
|
||||
val installIntent =
|
||||
Intent(
|
||||
@ -122,13 +121,17 @@ class SSOAccount(val context: Context) : Account<SingleSignOnAccount> {
|
||||
} else {
|
||||
": " + context.getString(R.string.uri_fdroid_nextcloud_app)
|
||||
}
|
||||
val s = SpannableString(messageContent)
|
||||
Linkify.addLinks(s, Linkify.WEB_URLS)
|
||||
message.text = s
|
||||
message.movementMethod = LinkMovementMethod.getInstance()
|
||||
message.setPadding(32, 32, 32, 32)
|
||||
builder.setTitle(context.getString(R.string.nextcloud_files_not_found_title))
|
||||
builder.setView(message)
|
||||
builder.show()
|
||||
val msg = SpannableString(messageContent)
|
||||
Linkify.addLinks(msg, Linkify.WEB_URLS)
|
||||
val dialog = builder.setTitle(context.getString(R.string.nextcloud_files_not_found_title))
|
||||
.setMessage(msg)
|
||||
.create()
|
||||
|
||||
dialog.setOnShowListener {
|
||||
dialog.findViewById<TextView>(android.R.id.message)?.let {
|
||||
it.movementMethod = LinkMovementMethod.getInstance()
|
||||
}
|
||||
}
|
||||
dialog.show()
|
||||
}
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ import android.os.PowerManager
|
||||
import android.provider.Settings
|
||||
import android.text.Html
|
||||
import android.text.InputType
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.util.Log
|
||||
import android.util.TypedValue
|
||||
import android.view.ActionMode
|
||||
@ -39,6 +40,7 @@ import org.unifiedpush.distributor.nextpush.services.FailureHandler
|
||||
import org.unifiedpush.distributor.nextpush.services.RestartWorker
|
||||
import org.unifiedpush.distributor.nextpush.services.StartService
|
||||
import org.unifiedpush.distributor.nextpush.utils.TAG
|
||||
import org.unifiedpush.distributor.nextpush.utils.copyToClipboard
|
||||
import org.unifiedpush.distributor.nextpush.utils.getDebugInfo
|
||||
import java.lang.String.format
|
||||
|
||||
@ -323,19 +325,16 @@ class MainActivity : AppCompatActivity() {
|
||||
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())
|
||||
}
|
||||
val msg = SpannableStringBuilder(getDebugInfo())
|
||||
MaterialAlertDialogBuilder(this)
|
||||
.setTitle("Debug information")
|
||||
.setView(showText)
|
||||
.setMessage(msg)
|
||||
.setCancelable(false)
|
||||
.setPositiveButton("Ok") { dialog, _ ->
|
||||
.setPositiveButton(android.R.string.ok) { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
}
|
||||
.setNeutralButton(android.R.string.copy) { dialog, _ ->
|
||||
copyToClipboard(this, "Debug Information", msg.toString())
|
||||
dialog.dismiss()
|
||||
}
|
||||
.show()
|
||||
|
@ -0,0 +1,12 @@
|
||||
package org.unifiedpush.distributor.nextpush.utils
|
||||
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import androidx.core.content.ContextCompat.getSystemService
|
||||
|
||||
fun copyToClipboard(context: Context, label: String, text: String) {
|
||||
val clipboard: ClipboardManager? = getSystemService(context, ClipboardManager::class.java)
|
||||
val clip = ClipData.newPlainText(label, text)
|
||||
clipboard?.setPrimaryClip(clip)
|
||||
}
|
@ -25,7 +25,7 @@
|
||||
<string name="low_keepalive_notif_content">The server app is configured with a low keepalive: %ss. It will drain your battery. We recommend using a higher keepalive.</string>
|
||||
<string name="no_ping_notif_content">NextPush was disconnected 5 times before receiving the ping. You probably have a problem with your server configuration. Your reverse proxy timeout is probably too low.</string>
|
||||
<string name="foreground_notif_ticker">Foreground</string>
|
||||
<string name="message_missing_nextcloud_app">Nextcloud Files is not installed on your device.\nPlease install it</string>
|
||||
<string name="message_missing_nextcloud_app">Nextcloud Files is not installed on your device.\n\nPlease install it</string>
|
||||
<string name="uri_market_nextcloud_app">market://details?id=com.nextcloud.client</string>
|
||||
<string name="market_chooser_title">Market</string>
|
||||
<string name="install">Install</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user