Dialog improvements.
This commit is contained in:
@ -197,10 +197,13 @@ class MainActivity : AppCompatActivity() {
|
||||
getString(R.string.peer_not_verified))
|
||||
}
|
||||
"green" -> {
|
||||
val unverifyDialog = AlertDialog.Builder(this)
|
||||
unverifyDialog.setTitle(getString(R.string.info))
|
||||
unverifyDialog.setMessage(getString(R.string.call_is_secure))
|
||||
unverifyDialog.setPositiveButton(getString(R.string.unverify)) { dialog, _ ->
|
||||
val inflater = this.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
|
||||
val titleView = inflater.inflate(R.layout.alert_title, null) as TextView
|
||||
titleView.text = getString(R.string.info)
|
||||
val builder = AlertDialog.Builder(this)
|
||||
builder.setCustomTitle(titleView)
|
||||
builder.setMessage(getString(R.string.call_is_secure))
|
||||
builder.setPositiveButton(getString(R.string.unverify)) { dialog, _ ->
|
||||
val calls = Call.uaCalls(UserAgent.uas()[aorSpinner.selectedItemPosition], "")
|
||||
if (calls.size > 0) {
|
||||
if (Api.cmd_exec("zrtp_unverify " + calls[0].zid) != 0) {
|
||||
@ -213,10 +216,10 @@ class MainActivity : AppCompatActivity() {
|
||||
}
|
||||
dialog.dismiss()
|
||||
}
|
||||
unverifyDialog.setNegativeButton(getString(R.string.no)) { dialog, _ ->
|
||||
builder.setNegativeButton(getString(R.string.no)) { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
}
|
||||
unverifyDialog.create().show()
|
||||
builder.create().show()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -585,17 +588,16 @@ class MainActivity : AppCompatActivity() {
|
||||
if (event == "stopped") {
|
||||
Log.d("Baresip", "Handling service event 'stopped' with param '${params[0]}'")
|
||||
if (params[0] != "") {
|
||||
val alertDialog = AlertDialog.Builder(this).create()
|
||||
alertDialog.setTitle(getString(R.string.notice))
|
||||
alertDialog.setMessage(getString(R.string.start_failed))
|
||||
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, getString(R.string.ok)
|
||||
) { dialog, _ ->
|
||||
val inflater = this.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
|
||||
val titleView = inflater.inflate(R.layout.alert_title, null) as TextView
|
||||
titleView.text = getString(R.string.notice)
|
||||
val builder = AlertDialog.Builder(this)
|
||||
builder.setCustomTitle(titleView)
|
||||
builder.setMessage(getString(R.string.start_failed))
|
||||
builder.setNeutralButton(getString(R.string.ok)) { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
//quitTimer.cancel()
|
||||
//finishAndRemoveTask()
|
||||
//System.exit(0)
|
||||
}
|
||||
alertDialog.show()
|
||||
builder.create().show()
|
||||
} else {
|
||||
quitTimer.cancel()
|
||||
finishAndRemoveTask()
|
||||
@ -679,11 +681,14 @@ class MainActivity : AppCompatActivity() {
|
||||
Log.w("Baresip", "Call $callp to be verified is not found")
|
||||
return
|
||||
}
|
||||
val verifyDialog = AlertDialog.Builder(this@MainActivity)
|
||||
verifyDialog.setTitle(getString(R.string.verify))
|
||||
verifyDialog.setMessage(String.format(getString(R.string.verify_sas),
|
||||
val inflater = this.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
|
||||
val titleView = inflater.inflate(R.layout.alert_title, null) as TextView
|
||||
titleView.text = getString(R.string.verify)
|
||||
val builder = AlertDialog.Builder(this)
|
||||
builder.setCustomTitle(titleView)
|
||||
builder.setMessage(String.format(getString(R.string.verify_sas),
|
||||
ev[1], ev[2]))
|
||||
verifyDialog.setPositiveButton(getString(R.string.yes)) { dialog, _ ->
|
||||
builder.setPositiveButton(getString(R.string.yes)) { dialog, _ ->
|
||||
val security: Int
|
||||
if (Api.cmd_exec("zrtp_verify ${ev[3]}") != 0) {
|
||||
Log.e("Baresip", "Command 'zrtp_verify ${ev[3]}' failed")
|
||||
@ -700,7 +705,7 @@ class MainActivity : AppCompatActivity() {
|
||||
dialog.dismiss()
|
||||
}
|
||||
}
|
||||
verifyDialog.setNegativeButton(getString(R.string.no)) { dialog, _ ->
|
||||
builder.setNegativeButton(getString(R.string.no)) { dialog, _ ->
|
||||
call.security = R.drawable.box_yellow
|
||||
call.zid = ev[3]
|
||||
if (aor == aorSpinner.tag) {
|
||||
@ -710,7 +715,7 @@ class MainActivity : AppCompatActivity() {
|
||||
}
|
||||
dialog.dismiss()
|
||||
}
|
||||
if (!isFinishing()) verifyDialog.create().show()
|
||||
if (!isFinishing()) builder.create().show()
|
||||
}
|
||||
"call verified", "call secure" -> {
|
||||
val callp = params[1]
|
||||
@ -1011,19 +1016,20 @@ class MainActivity : AppCompatActivity() {
|
||||
|
||||
private fun askPassword(title: String, ua: UserAgent? = null) {
|
||||
val builder = AlertDialog.Builder(this)
|
||||
builder.setTitle(title)
|
||||
val viewInflated = LayoutInflater.from(this)
|
||||
val layout = LayoutInflater.from(this)
|
||||
.inflate(R.layout.password_dialog, findViewById(android.R.id.content) as ViewGroup,
|
||||
false)
|
||||
val input = viewInflated.findViewById(R.id.password) as EditText
|
||||
val checkBox = viewInflated.findViewById(R.id.checkbox) as CheckBox
|
||||
val titleView = layout.findViewById(R.id.title) as TextView
|
||||
titleView.text = title
|
||||
val input = layout.findViewById(R.id.password) as EditText
|
||||
val checkBox = layout.findViewById(R.id.checkbox) as CheckBox
|
||||
checkBox.setOnCheckedChangeListener { _, isChecked ->
|
||||
if (isChecked)
|
||||
input.transformationMethod = HideReturnsTransformationMethod()
|
||||
else
|
||||
input.transformationMethod = PasswordTransformationMethod()
|
||||
}
|
||||
builder.setView(viewInflated)
|
||||
builder.setView(layout)
|
||||
builder.setPositiveButton(android.R.string.ok) { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
var password = input.text.toString().trim()
|
||||
@ -1055,19 +1061,20 @@ class MainActivity : AppCompatActivity() {
|
||||
(Utils.paramValue(params, "auth_pass") == "")) {
|
||||
val aor = account.substringAfter("<").substringBefore(">")
|
||||
val builder = AlertDialog.Builder(this)
|
||||
builder.setTitle(String.format(getString(R.string.account_password), Utils.plainAor(aor)))
|
||||
val viewInflated = LayoutInflater.from(this)
|
||||
val layout = LayoutInflater.from(this)
|
||||
.inflate(R.layout.password_dialog, findViewById(android.R.id.content) as ViewGroup,
|
||||
false)
|
||||
val input = viewInflated.findViewById(R.id.password) as EditText
|
||||
val checkBox = viewInflated.findViewById(R.id.checkbox) as CheckBox
|
||||
val titleView = layout.findViewById(R.id.title) as TextView
|
||||
titleView.text = String.format(getString(R.string.account_password), Utils.plainAor(aor))
|
||||
val input = layout.findViewById(R.id.password) as EditText
|
||||
val checkBox = layout.findViewById(R.id.checkbox) as CheckBox
|
||||
checkBox.setOnCheckedChangeListener { _, isChecked ->
|
||||
if (isChecked)
|
||||
input.transformationMethod = HideReturnsTransformationMethod()
|
||||
else
|
||||
input.transformationMethod = PasswordTransformationMethod()
|
||||
}
|
||||
builder.setView(viewInflated)
|
||||
builder.setView(layout)
|
||||
builder.setPositiveButton(android.R.string.ok) { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
val password = input.text.toString().trim()
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package com.tutpro.baresip
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.app.ActivityManager
|
||||
import android.content.Context
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.Bitmap
|
||||
@ -12,18 +12,20 @@ import android.graphics.Color
|
||||
import android.net.LinkAddress
|
||||
import android.net.LinkProperties
|
||||
import android.os.Bundle
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
|
||||
import kotlin.collections.ArrayList
|
||||
import kotlin.Exception
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
|
||||
import java.io.*
|
||||
import java.security.SecureRandom
|
||||
import java.util.*
|
||||
import java.util.zip.*
|
||||
import java.util.zip.ZipEntry
|
||||
import java.util.zip.ZipFile
|
||||
import java.util.zip.ZipOutputStream
|
||||
|
||||
import javax.crypto.Cipher
|
||||
import javax.crypto.SecretKeyFactory
|
||||
@ -31,6 +33,8 @@ import javax.crypto.spec.IvParameterSpec
|
||||
import javax.crypto.spec.PBEKeySpec
|
||||
import javax.crypto.spec.SecretKeySpec
|
||||
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
object Utils {
|
||||
|
||||
fun getNameValue(string: String, name: String): ArrayList<String> {
|
||||
@ -50,9 +54,12 @@ object Utils {
|
||||
return result
|
||||
}
|
||||
|
||||
@SuppressLint("InflateParams")
|
||||
fun alertView(context: Context, title: String, message: String, action: () -> (Unit) = {}) {
|
||||
val titleView = LayoutInflater.from(context).inflate(R.layout.alert_title, null) as TextView
|
||||
titleView.text = title
|
||||
val builder = AlertDialog.Builder(context)
|
||||
builder.setTitle(title)
|
||||
builder.setCustomTitle(titleView)
|
||||
.setMessage(message)
|
||||
.setPositiveButton(R.string.ok)
|
||||
{ dialog, _ ->
|
||||
|
||||
10
app/src/main/res/layout/alert_title.xml
Normal file
10
app/src/main/res/layout/alert_title.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="?dialogPreferredPadding"
|
||||
android:textSize="20sp"
|
||||
android:background="@color/colorPrimary"
|
||||
android:textColor="@color/colorWhite" >
|
||||
</TextView>
|
||||
|
||||
@ -1,12 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="20dp" >
|
||||
android:orientation="vertical" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="?dialogPreferredPadding"
|
||||
android:textSize="20sp"
|
||||
android:background="@color/colorPrimary"
|
||||
android:textColor="@color/colorWhite" />
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="?dialogPreferredPadding" >
|
||||
|
||||
<EditText
|
||||
android:id="@+id/password"
|
||||
@ -26,4 +36,4 @@
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
Reference in New Issue
Block a user