Migrated to material design alert dialogs

This commit is contained in:
Juha Heinanen
2022-02-20 14:05:12 +02:00
parent add03e9d11
commit 0429b4474f
14 changed files with 119 additions and 115 deletions

View File

@ -2,7 +2,6 @@ package com.tutpro.baresip
import android.app.Activity
import android.content.Intent
import android.opengl.Visibility
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem

View File

@ -3,13 +3,13 @@ package com.tutpro.baresip
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ImageButton
import android.widget.TextView
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import java.util.*
@ -53,10 +53,8 @@ class AccountListAdapter(private val cxt: Context, private val rows: ArrayList<A
}
viewHolder.actionView.setOnClickListener {
val titleView = View.inflate(cxt, R.layout.alert_title, null) as TextView
titleView.text = cxt.getString(R.string.confirmation)
with (AlertDialog.Builder(cxt, R.style.AlertDialog)) {
setCustomTitle(titleView)
with (MaterialAlertDialogBuilder(cxt, R.style.AlertDialogTheme)) {
setTitle(R.string.confirmation)
setMessage(String.format(cxt.getString(R.string.delete_account),
viewHolder.aorView.text))
setPositiveButton(cxt.getText(R.string.delete)) { dialog, _ ->
@ -69,7 +67,7 @@ class AccountListAdapter(private val cxt: Context, private val rows: ArrayList<A
this@AccountListAdapter.notifyDataSetChanged()
dialog.dismiss()
}
setNegativeButton(cxt.getText(R.string.cancel)) { dialog, _ ->
setNeutralButton(cxt.getText(R.string.cancel)) { dialog, _ ->
dialog.dismiss()
}
show()

View File

@ -3,13 +3,13 @@ package com.tutpro.baresip
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import android.view.LayoutInflater
import android.view.Menu
import android.view.MenuItem
import android.widget.*
import androidx.activity.result.contract.ActivityResultContracts
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.tutpro.baresip.databinding.ActivityAccountsBinding
import java.util.ArrayList
@ -98,7 +98,7 @@ class AccountsActivity : AppCompatActivity() {
val message = getString(R.string.account) + " " + Utils.plainAor(ua.account.aor)
messageView.text = message
val input = layout.findViewById(R.id.password) as EditText
with (AlertDialog.Builder(this)) {
with (MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) {
setView(layout)
setPositiveButton(android.R.string.ok) { dialog, _ ->
dialog.dismiss()
@ -110,7 +110,7 @@ class AccountsActivity : AppCompatActivity() {
}
setAuthPass(ua, password)
}
setNegativeButton(android.R.string.cancel) { dialog, _ ->
setNeutralButton(android.R.string.cancel) { dialog, _ ->
dialog.cancel()
}
show()

View File

@ -5,14 +5,12 @@ import android.content.DialogInterface
import android.content.Intent
import android.os.Bundle
import android.os.SystemClock
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.AdapterView
import android.widget.TextView
import androidx.activity.result.contract.ActivityResultContracts
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.tutpro.baresip.databinding.ActivityCallsBinding
import java.util.*
@ -75,7 +73,8 @@ class CallsActivity : AppCompatActivity() {
}
if (SystemClock.elapsedRealtime() - lastClick > 1000) {
lastClick = SystemClock.elapsedRealtime()
with (AlertDialog.Builder(this@CallsActivity)) {
with (MaterialAlertDialogBuilder(this@CallsActivity, R.style.AlertDialogTheme)) {
setTitle(R.string.confirmation)
setMessage(String.format(getString(R.string.calls_call_message_question),
peerName))
setNeutralButton(getString(R.string.cancel), dialogClickListener)
@ -119,18 +118,20 @@ class CallsActivity : AppCompatActivity() {
getString(R.string.calls_calls)
else
getString(R.string.calls_call)
val builder = AlertDialog.Builder(this@CallsActivity)
val builder = MaterialAlertDialogBuilder(this@CallsActivity, R.style.AlertDialogTheme)
if (peerName.startsWith("sip:"))
with (builder) {
setTitle(R.string.confirmation)
setMessage(String.format(getString(R.string.calls_add_delete_question),
Utils.friendlyUri(peerName, Utils.aorDomain(aor)), callText))
setNeutralButton(getString(R.string.cancel), dialogClickListener)
setNegativeButton(getString(R.string.add_contact), dialogClickListener)
setPositiveButton(String.format(getString(R.string.delete), callText), dialogClickListener)
setNegativeButton(getString(R.string.add_contact), dialogClickListener)
show()
}
else
with (builder) {
setTitle(R.string.confirmation)
setMessage(String.format(getString(R.string.calls_delete_question),
Utils.friendlyUri(peerName, Utils.aorDomain(aor)), callText))
setNeutralButton(getString(R.string.cancel), dialogClickListener)
@ -152,10 +153,8 @@ class CallsActivity : AppCompatActivity() {
when (item.itemId) {
R.id.delete_history -> {
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.confirmation)
with (AlertDialog.Builder(this@CallsActivity)) {
setCustomTitle(titleView)
with (MaterialAlertDialogBuilder(this@CallsActivity, R.style.AlertDialogTheme)) {
setTitle(R.string.confirmation)
setMessage(String.format(getString(R.string.delete_history_alert),
aor.substringAfter(":")))
setPositiveButton(getText(R.string.delete)) { dialog, _ ->
@ -165,7 +164,7 @@ class CallsActivity : AppCompatActivity() {
clAdapter.notifyDataSetChanged()
dialog.dismiss()
}
setNegativeButton(getText(R.string.cancel)) { dialog, _ ->
setNeutralButton(getText(R.string.cancel)) { dialog, _ ->
dialog.dismiss()
}
show()

View File

@ -4,7 +4,6 @@ import android.app.Activity
import android.content.*
import android.os.Bundle
import android.os.SystemClock
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
@ -13,6 +12,7 @@ import android.view.WindowManager
import android.view.inputmethod.InputMethodManager
import android.widget.*
import androidx.lifecycle.Observer
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.tutpro.baresip.databinding.ActivityChatBinding
class ChatActivity : AppCompatActivity() {
@ -111,9 +111,10 @@ class ChatActivity : AppCompatActivity() {
}
}
}
val builder = AlertDialog.Builder(this@ChatActivity)
val builder = MaterialAlertDialogBuilder(this@ChatActivity, R.style.AlertDialogTheme)
if (Contact.contactName(peerUri) == peerUri)
with (builder) {
setTitle(R.string.confirmation)
setMessage(String.format(getString(R.string.long_message_question),
chatPeer))
setNeutralButton(getString(R.string.cancel), dialogClickListener)
@ -123,6 +124,7 @@ class ChatActivity : AppCompatActivity() {
}
else
with (builder) {
setTitle(R.string.confirmation)
setMessage(getText(R.string.short_message_question))
setNeutralButton(getString(R.string.cancel), dialogClickListener)
setNegativeButton(getString(R.string.delete), dialogClickListener)

View File

@ -5,10 +5,8 @@ import android.content.*
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.*
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.tutpro.baresip.databinding.ActivityChatsBinding
@ -95,10 +93,11 @@ class ChatsActivity: AppCompatActivity() {
}
}
val builder = MaterialAlertDialogBuilder(this@ChatsActivity, R.style.AlertDialog)
val builder = MaterialAlertDialogBuilder(this@ChatsActivity, R.style.AlertDialogTheme)
val peer = Contact.contactName(uaMessages[pos].peerUri)
if (peer.startsWith("sip:"))
with (builder) {
setTitle(R.string.confirmation)
setMessage(String.format(getString(R.string.long_chat_question),
Utils.friendlyUri(peer, Utils.aorDomain(aor))))
setNeutralButton(getText(R.string.cancel), dialogClickListener)
@ -108,6 +107,7 @@ class ChatsActivity: AppCompatActivity() {
}
else
with (builder) {
setTitle(R.string.confirmation)
setMessage(String.format(getString(R.string.short_chat_question), peer))
setNeutralButton(getText(R.string.cancel), dialogClickListener)
setNegativeButton(getText(R.string.delete), dialogClickListener)
@ -179,10 +179,8 @@ class ChatsActivity: AppCompatActivity() {
when (item.itemId) {
R.id.delete_chats -> {
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.confirmation)
with (AlertDialog.Builder(this@ChatsActivity)) {
setCustomTitle(titleView)
with (MaterialAlertDialogBuilder(this@ChatsActivity, R.style.AlertDialogTheme)) {
setTitle(R.string.confirmation)
setMessage(String.format(getString(R.string.delete_chats_alert),
aor.substringAfter(":")))
setPositiveButton(getText(R.string.delete)) { dialog, _ ->
@ -193,7 +191,7 @@ class ChatsActivity: AppCompatActivity() {
UserAgent.ofAor(aor)!!.account.unreadMessages = false
dialog.dismiss()
}
setNegativeButton(getText(R.string.cancel)) { dialog, _ ->
setNeutralButton(getText(R.string.cancel)) { dialog, _ ->
dialog.dismiss()
}
show()

View File

@ -16,10 +16,10 @@ import android.view.View
import android.widget.*
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.snackbar.Snackbar
import com.tutpro.baresip.Utils.copyInputStreamToFile
import com.tutpro.baresip.Utils.showSnackBar
@ -342,10 +342,8 @@ class ConfigActivity : AppCompatActivity() {
reset.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.confirmation)
with(AlertDialog.Builder(this@ConfigActivity)) {
setCustomTitle(titleView)
with(MaterialAlertDialogBuilder(this@ConfigActivity, R.style.AlertDialogTheme)) {
setTitle(R.string.confirmation)
setMessage(getString(R.string.reset_config_alert))
setPositiveButton(getText(R.string.reset)) { dialog, _ ->
Config.reset(this@ConfigActivity)
@ -354,7 +352,7 @@ class ConfigActivity : AppCompatActivity() {
done()
dialog.dismiss()
}
setNegativeButton(getText(R.string.cancel)) { dialog, _ ->
setNeutralButton(getText(R.string.cancel)) { dialog, _ ->
reset.isChecked = false
dialog.dismiss()
}
@ -377,7 +375,7 @@ class ConfigActivity : AppCompatActivity() {
contactsMode = oldContactsMode
contactsSpinner.setSelection(contactsModeKeys.indexOf(oldContactsMode))
Snackbar.make(layout, getString(R.string.no_android_contacts), Snackbar.LENGTH_LONG)
.setAction(getString(R.string.ok), {})
.setAction(getString(R.string.ok)) {}
.show()
}
}

View File

@ -14,8 +14,8 @@ import android.widget.ArrayAdapter
import android.widget.ImageButton
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat.startActivity
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import java.io.File
import java.io.IOException
@ -95,7 +95,8 @@ class ContactListAdapter(private val ctx: Context, private val rows: ArrayList<C
}
if (SystemClock.elapsedRealtime() - lastClick > 1000) {
lastClick = SystemClock.elapsedRealtime()
with(AlertDialog.Builder(ctx, R.style.Theme_AppCompat)) {
with(MaterialAlertDialogBuilder(ctx, R.style.AlertDialogTheme)) {
setTitle(R.string.confirmation)
setMessage(String.format(ctx.getString(R.string.contact_action_question),
contact.name))
setNeutralButton(ctx.getText(R.string.cancel), dialogClickListener)
@ -185,16 +186,14 @@ class ContactListAdapter(private val ctx: Context, private val rows: ArrayList<C
}
}
}
val titleView = View.inflate(ctx, R.layout.alert_title, null) as TextView
titleView.text = ctx.getString(R.string.confirmation)
with(AlertDialog.Builder(ctx)) {
setCustomTitle(titleView)
with(MaterialAlertDialogBuilder(ctx, R.style.AlertDialogTheme)) {
setTitle(R.string.confirmation)
setMessage(String.format(ctx.getString(R.string.contact_delete_question),
when (contact) {
is Contact.BaresipContact -> contact.name
is Contact.AndroidContact -> contact.name
}))
setNegativeButton(ctx.getText(R.string.cancel), dialogClickListener)
setNeutralButton(ctx.getText(R.string.cancel), dialogClickListener)
setPositiveButton(ctx.getText(R.string.delete), dialogClickListener)
show()
}

View File

@ -24,7 +24,6 @@ import android.os.*
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.app.ActivityCompat
@ -40,6 +39,7 @@ import kotlin.collections.ArrayList
import kotlin.system.exitProcess
import android.content.IntentFilter
import androidx.core.net.toUri
import com.google.android.material.dialog.MaterialAlertDialogBuilder
class MainActivity : AppCompatActivity() {
@ -297,10 +297,8 @@ class MainActivity : AppCompatActivity() {
getString(R.string.peer_not_verified))
}
"green" -> {
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.info)
with(AlertDialog.Builder(this)) {
setCustomTitle(titleView)
with(MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) {
setTitle(R.string.info)
setMessage(getString(R.string.call_is_secure))
setPositiveButton(getString(R.string.unverify)) { dialog, _ ->
val calls = Call.uaCalls(UserAgent.uas()[aorSpinner.selectedItemPosition], "")
@ -314,7 +312,7 @@ class MainActivity : AppCompatActivity() {
}
dialog.dismiss()
}
setNegativeButton(getString(R.string.no)) { dialog, _ ->
setNeutralButton(getString(R.string.no)) { dialog, _ ->
dialog.dismiss()
}
show()
@ -443,13 +441,11 @@ class MainActivity : AppCompatActivity() {
}
}
}
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.voicemail_messages)
with(AlertDialog.Builder(this)) {
setCustomTitle(titleView)
with(MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) {
setTitle(R.string.voicemail_messages)
setMessage(acc.vmMessages(this@MainActivity))
setPositiveButton(getString(R.string.listen), dialogClickListener)
setNegativeButton(getString(R.string.cancel), dialogClickListener)
setNeutralButton(getString(R.string.cancel), dialogClickListener)
show()
}
}
@ -519,16 +515,14 @@ class MainActivity : AppCompatActivity() {
configRequest = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if ((it.data != null) && it.data!!.hasExtra("restart")) {
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.restart_request)
with(AlertDialog.Builder(this)) {
setCustomTitle(titleView)
with(MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) {
setTitle(R.string.restart_request)
setMessage(getString(R.string.config_restart))
setPositiveButton(getText(R.string.restart)) { dialog, _ ->
dialog.dismiss()
quitRestart(true)
}
setNegativeButton(getText(R.string.cancel)) { dialog, _ ->
setNeutralButton(getText(R.string.cancel)) { dialog, _ ->
dialog.dismiss()
}
show()
@ -957,16 +951,7 @@ class MainActivity : AppCompatActivity() {
if (event == "stopped") {
Log.d(TAG, "Handling service event 'stopped' with param '${params[0]}'")
if (params[0] != "") {
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.notice)
with(AlertDialog.Builder(this)) {
setCustomTitle(titleView)
setMessage(getString(R.string.start_failed))
setNeutralButton(getString(R.string.ok)) { dialog, _ ->
dialog.dismiss()
}
show()
}
Utils.alertView(this, getString(R.string.notice), getString(R.string.start_failed))
} else {
quitTimer.cancel()
finishAndRemoveTask()
@ -1036,10 +1021,8 @@ class MainActivity : AppCompatActivity() {
handleNextEvent("Call $callp to be verified is not found")
return
}
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.verify)
with(AlertDialog.Builder(this)) {
setCustomTitle(titleView)
with(MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) {
setTitle(R.string.verify)
setMessage(String.format(getString(R.string.verify_sas),
ev[1], ev[2]))
setPositiveButton(getString(R.string.yes)) { dialog, _ ->
@ -1058,7 +1041,7 @@ class MainActivity : AppCompatActivity() {
dialog.dismiss()
}
}
setNegativeButton(getString(R.string.no)) { dialog, _ ->
setNeutralButton(getString(R.string.no)) { dialog, _ ->
call.security = R.drawable.box_yellow
call.zid = ev[3]
if (aor == aorSpinner.tag) {
@ -1101,11 +1084,9 @@ class MainActivity : AppCompatActivity() {
return
}
val call = Call.ofCallp(callp)!!
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.transfer_request)
val target = Utils.friendlyUri(Contact.contactName(ev[1]), Utils.aorDomain(aor))
with(AlertDialog.Builder(this)) {
setCustomTitle(titleView)
with(MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) {
setTitle(R.string.transfer_request)
setMessage(String.format(getString(R.string.transfer_request_query),
target))
setPositiveButton(getString(R.string.yes)) { dialog, _ ->
@ -1113,7 +1094,7 @@ class MainActivity : AppCompatActivity() {
acceptTransfer(ua, call, ev[1])
dialog.dismiss()
}
setNegativeButton(getString(R.string.no)) { dialog, _ ->
setNeutralButton(getString(R.string.no)) { dialog, _ ->
if (call in Call.calls())
call.notifySipfrag(603, "Decline")
dialog.dismiss()
@ -1404,7 +1385,7 @@ class MainActivity : AppCompatActivity() {
Contact.contactNames()))
transferUri.threshold = 2
transferUri.requestFocus()
val builder = AlertDialog.Builder(this)
val builder = MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)
with(builder) {
setView(layout)
setPositiveButton(R.string.transfer) { dialog, _ ->
@ -1430,7 +1411,7 @@ class MainActivity : AppCompatActivity() {
}
}
}
setNegativeButton(android.R.string.cancel) { dialog, _ ->
setNeutralButton(android.R.string.cancel) { dialog, _ ->
imm.hideSoftInputFromWindow(transferUri.windowToken, 0)
dialog.cancel()
}
@ -1455,7 +1436,7 @@ class MainActivity : AppCompatActivity() {
val input = layout.findViewById(R.id.password) as EditText
input.requestFocus()
val context = this
with (AlertDialog.Builder(this, R.style.AlertDialog)) {
with (MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) {
setView(layout)
setPositiveButton(android.R.string.ok) { dialog, _ ->
imm.hideSoftInputFromWindow(input.windowToken, 0)
@ -1475,7 +1456,7 @@ class MainActivity : AppCompatActivity() {
AccountsActivity.setAuthPass(ua!!, password)
}
}
setNegativeButton(android.R.string.cancel) { dialog, _ ->
setNeutralButton(android.R.string.cancel) { dialog, _ ->
imm.hideSoftInputFromWindow(input.windowToken, 0)
dialog.cancel()
}
@ -1503,7 +1484,7 @@ class MainActivity : AppCompatActivity() {
val input = layout.findViewById(R.id.password) as EditText
input.requestFocus()
val context = this
with (AlertDialog.Builder(this, R.style.AlertDialog)) {
with (MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) {
setView(layout)
setPositiveButton(android.R.string.ok) { dialog, _ ->
imm.hideSoftInputFromWindow(input.windowToken, 0)
@ -1517,7 +1498,7 @@ class MainActivity : AppCompatActivity() {
}
askPasswords(accounts)
}
setNegativeButton(android.R.string.cancel) { dialog, _ ->
setNeutralButton(android.R.string.cancel) { dialog, _ ->
imm.hideSoftInputFromWindow(input.windowToken, 0)
dialog.cancel()
aorPasswords[aor] = ""
@ -1602,16 +1583,14 @@ class MainActivity : AppCompatActivity() {
return
}
Utils.deleteFile(File(zipFilePath))
val titleView = View.inflate(this, R.layout.alert_title, null) as TextView
titleView.text = getString(R.string.info)
with(AlertDialog.Builder(this)) {
setCustomTitle(titleView)
with(MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) {
setTitle(getString(R.string.info))
setMessage(getString(R.string.restored))
setPositiveButton(getText(R.string.restart)) { dialog, _ ->
quitRestart(true)
dialog.dismiss()
}
setNegativeButton(getText(R.string.cancel)) { dialog, _ ->
setNeutralButton(getText(R.string.cancel)) { dialog, _ ->
dialog.dismiss()
}
show()
@ -1710,14 +1689,14 @@ class MainActivity : AppCompatActivity() {
Utils.alertView(this, getString(R.string.notice),
getString(R.string.no_telephony_providers))
} else {
val builder = AlertDialog.Builder(this)
val builder = MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)
with(builder) {
setTitle(getString(R.string.choose_telephony_provider_account))
setItems(telAccounts) { _, which ->
spinToAor("sip:${telAccounts[which]}")
makeCall()
}
setPositiveButton("Cancel") { _: DialogInterface, _: Int -> }
setNeutralButton("Cancel") { _: DialogInterface, _: Int -> }
show()
}
}

View File

@ -27,10 +27,10 @@ import android.widget.ImageView
import android.widget.TextView
import androidx.activity.result.ActivityResultLauncher
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ProcessLifecycleOwner
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.snackbar.Snackbar
import java.io.*
import java.lang.reflect.Method
@ -70,10 +70,8 @@ object Utils {
}
fun alertView(context: Context, title: String, message: String, action: () -> (Unit) = {}) {
val titleView = View.inflate(context, R.layout.alert_title, null) as TextView
titleView.text = title
with(AlertDialog.Builder(context, R.style.AlertDialog)) {
setCustomTitle(titleView)
with(MaterialAlertDialogBuilder(context, R.style.AlertDialogTheme)) {
setTitle(title)
setMessage(message)
setPositiveButton(R.string.ok) { dialog, _ ->
dialog.dismiss()

View File

@ -7,4 +7,3 @@
android:background="@color/colorPrimary"
android:textColor="@color/colorWhite" >
</TextView>

View File

@ -8,15 +8,24 @@
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="?dialogPreferredPadding"
android:paddingTop="?dialogPreferredPadding"
android:paddingStart="?dialogPreferredPadding"
android:paddingEnd="?dialogPreferredPadding"
android:textSize="20sp"
android:background="@color/colorPrimary"
android:textColor="@color/colorWhite" />
android:textColor="@color/colorPrimary" />
<TextView
android:id="@+id/transferDestination"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="?dialogPreferredPadding"
android:textSize="16sp"
android:text="@string/transfer_destination"
android:textColor="@color/colorStrong" />
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:paddingStart="?dialogPreferredPadding"
android:paddingEnd="?dialogPreferredPadding" >
@ -25,8 +34,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:importantForAutofill="no"
android:textSize="18sp"
android:imeOptions="actionDone"
android:hint="@string/transfer_destination"
android:labelFor="@id/transferUri"
android:inputType="textEmailAddress" />
</com.google.android.material.textfield.TextInputLayout>

View File

@ -15,17 +15,19 @@
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="?dialogPreferredPadding"
android:paddingTop="?dialogPreferredPadding"
android:paddingStart="?dialogPreferredPadding"
android:paddingEnd="?dialogPreferredPadding"
android:textSize="20sp"
android:textColor="@color/colorWhite"
android:background="@color/colorPrimary" />
android:textColor="@color/colorPrimary" />
<TextView
android:id="@+id/message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="15dp"
android:textSize="15sp"
android:paddingBottom="15dp"
android:textSize="16sp"
android:paddingStart="?dialogPreferredPadding"
android:paddingEnd="?dialogPreferredPadding" />

View File

@ -28,14 +28,37 @@
<item name="android:divider">@color/colorSpinnerDivider</item>
</style>
<style name="AlertDialog" parent="Theme.MaterialComponents.DayNight.Dialog.Alert">
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/colorAlertText</item>
<item name="android:windowBackground">#201D1D</item>
<style name="AlertDialogTheme">
<item name="buttonBarPositiveButtonStyle">@style/Alert.Button.Positive</item>
<item name="buttonBarNegativeButtonStyle">@style/Alert.Button.Positive</item>
<item name="buttonBarNeutralButtonStyle">@style/Alert.Button.Neutral</item>
<item name="materialAlertDialogBodyTextStyle">@style/Alert.Message</item>
<item name="materialAlertDialogTitleTextStyle">@style/Alert.Title</item>
<item name="android:textSize">14sp</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" />
<style name="Alert.Button.Positive" parent="Widget.MaterialComponents.Button.TextButton">
<item name="android:textColor">@color/colorPrimaryDark</item>
<item name="rippleColor">@color/colorAccent</item>
<item name="android:textSize">14sp</item>
<item name="android:textAllCaps">true</item>
</style>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.DayNight" />
<style name="Alert.Button.Neutral" parent="Widget.MaterialComponents.Button.TextButton">
<item name="backgroundTint">@android:color/transparent</item>
<item name="rippleColor">@color/colorAccent</item>
<item name="android:textColor">@color/colorGray</item>
<item name="android:textSize">14sp</item>
</style>
<style name="Alert.Title" parent="@style/MaterialAlertDialog.MaterialComponents.Title.Text">
<item name="android:textColor">@color/colorPrimary</item>
<item name="android:textSize">20sp</item>
</style>
<style name="Alert.Message" parent="@style/MaterialAlertDialog.MaterialComponents.Body.Text">
<item name="android:textColor">@color/colorStrong</item>
<item name="android:textSize">16sp</item>
</style>
</resources>