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