Still more work on Android contacts

This commit is contained in:
Juha Heinanen
2022-02-12 15:47:02 +02:00
parent c7dab37e28
commit de673b105b
9 changed files with 78 additions and 19 deletions

View File

@ -106,7 +106,7 @@
android:name=".AndroidContactActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/contact"
android:parentActivityName=".ContactsActivity" >
android:parentActivityName=".AndroidContactsActivity" >
</activity>
<activity
android:name=".ConfigActivity"

View File

@ -1,24 +1,18 @@
package com.tutpro.baresip
import android.Manifest
import android.app.Activity
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.os.Bundle
import android.os.SystemClock
import androidx.appcompat.app.AlertDialog
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.TextView
import androidx.core.content.ContextCompat.startActivity
import androidx.core.net.toUri
import java.io.File
import java.io.IOException
import java.util.*
class AndroidContactListAdapter(private val ctx: Context,
private val rows: ArrayList<AndroidContact>,
private val aor: String) :

View File

@ -1408,6 +1408,7 @@ class BaresipService: Service() {
var callActionUri = ""
var isMainVisible = false
var isMicMuted = false
var preferAndroidContacts = false
val uas = ArrayList<UserAgent>()
val status = ArrayList<Int>()

View File

@ -85,6 +85,8 @@ object Config {
config = "${config}jitter_buffer_wish 6\n"
}
BaresipService.preferAndroidContacts = config.contains("prefer_android_contacts yes")
Utils.putFileContents(configPath, config.toByteArray())
BaresipService.isConfigInitialized = true
Log.i(TAG, "Initialized config to '$config'")

View File

@ -42,6 +42,7 @@ class ConfigActivity : AppCompatActivity() {
private lateinit var verifyServer: CheckBox
private lateinit var caFile: CheckBox
private lateinit var darkTheme: CheckBox
private lateinit var androidContacts: CheckBox
private lateinit var debug: CheckBox
private lateinit var sipTrace: CheckBox
private lateinit var reset: CheckBox
@ -55,6 +56,7 @@ class ConfigActivity : AppCompatActivity() {
private var oldCAFile = false
private var oldLogLevel = ""
private var oldDisplayTheme = -1
private var oldAndroidContacts = ""
private var save = false
private var restart = false
private var menu: Menu? = null
@ -291,6 +293,11 @@ class ConfigActivity : AppCompatActivity() {
oldDisplayTheme = Preferences(applicationContext).displayTheme
darkTheme.isChecked = oldDisplayTheme == AppCompatDelegate.MODE_NIGHT_YES
androidContacts = binding.AndroidContacts
val acCv = Config.variable("prefer_android_contacts")
oldAndroidContacts = if (acCv.size == 0) "no" else acCv[0]
androidContacts.isChecked = oldAndroidContacts == "yes"
debug = binding.Debug
val dbCv = Config.variable("log_level")
oldLogLevel = if (dbCv.size == 0)
@ -428,6 +435,16 @@ class ConfigActivity : AppCompatActivity() {
if (oldDisplayTheme != newDisplayTheme)
Preferences(applicationContext).displayTheme = newDisplayTheme
val androidContactsString = if (androidContacts.isChecked)
"yes"
else
"no"
if (oldAndroidContacts != androidContactsString) {
Config.replaceVariable("prefer_android_contacts", androidContactsString)
BaresipService.preferAndroidContacts = androidContacts.isChecked
save = true
}
var logLevelString = "2"
if (debug.isChecked) logLevelString = "0"
if (oldLogLevel != logLevelString) {
@ -508,7 +525,7 @@ class ConfigActivity : AppCompatActivity() {
Utils.alertView(this, getString(R.string.tls_ca_file),
getString(R.string.tls_ca_file_help))
}
binding.AudioSettingsTitle .setOnClickListener {
binding.AudioSettingsTitle.setOnClickListener {
startActivity(Intent(this, AudioActivity::class.java))
}
binding.AndroidSettings.setOnClickListener {
@ -522,6 +539,10 @@ class ConfigActivity : AppCompatActivity() {
Utils.alertView(this, getString(R.string.dark_theme),
getString(R.string.dark_theme_help))
}
binding.AndroidContactsTitle.setOnClickListener {
Utils.alertView(this, getString(R.string.show_android_contacts),
getString(R.string.show_android_contacts_help))
}
binding.DebugTitle.setOnClickListener {
Utils.alertView(this, getString(R.string.debug), getString(R.string.debug_help))
}

View File

@ -460,14 +460,23 @@ class MainActivity : AppCompatActivity() {
}
contactsButton.setOnClickListener {
val i = Intent(this@MainActivity, ContactsActivity::class.java)
val b = Bundle()
if (aorSpinner.selectedItemPosition >= 0)
b.putString("aor", aorSpinner.tag.toString())
else
b.putString("aor", "")
i.putExtras(b)
contactsRequest.launch(i)
if (BaresipService.preferAndroidContacts) {
val i = Intent(this@MainActivity, AndroidContactsActivity::class.java)
if (aorSpinner.selectedItemPosition >= 0)
i.putExtra("aor", aorSpinner.tag.toString())
else
i.putExtra("aor", "")
startActivity(i)
} else {
val i = Intent(this@MainActivity, ContactsActivity::class.java)
val b = Bundle()
if (aorSpinner.selectedItemPosition >= 0)
b.putString("aor", aorSpinner.tag.toString())
else
b.putString("aor", "")
i.putExtras(b)
contactsRequest.launch(i)
}
}
chatRequests = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {

View File

@ -231,6 +231,32 @@
android:textSize="18sp">
</TextView>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/AndroidContactsTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_toStartOf="@id/AndroidContacts"
android:textSize="18sp"
android:text="@string/show_android_contacts" >
</TextView>
<CheckBox
android:id="@+id/AndroidContacts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_gravity="end"
android:checked="false" >
</CheckBox>
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -367,6 +367,9 @@
<string name="video_size_help">Lähetettävän videon kehyskoko (leveys x korkeus).
Tehdasasetus on 800x600.</string>
<string name="android_settings">Android-asetukset</string>
<string name="show_android_contacts">Näytä Androidin yhteystiedot</string>
<string name="show_android_contacts_help">Jos valittu, niin Yhteystiedot-ikoni näyttää
Androidin yhteystiedot.</string>
<string name="debug">Lokiviestit</string>
<string name="debug_help">Jos merkitty, baresip tuottaa debug- ja info-tason Logcat-viestejä.</string>
<string name="sip_trace">SIP-sanomien jäljitys</string>

View File

@ -329,6 +329,9 @@
<string name="video_size_help">Size of transmitted video frames (width x height).
Factory default is 800x600.</string>
<string name="android_settings">Android Settings</string>
<string name="show_android_contacts">Show Android Contacts</string>
<string name="show_android_contacts_help">If checked, Android contacts are shown when Contacts
button is touched.</string>
<string name="debug">Debug</string>
<string name="debug_help">If checked, provides debug and info level log messages to Logcat.</string>
<string name="sip_trace">SIP Trace</string>