Contacts mode related fixes and improvements

This commit is contained in:
Juha Heinanen
2022-02-18 11:01:31 +02:00
parent d4d7706714
commit b0f185cda2
3 changed files with 22 additions and 10 deletions

View File

@ -43,7 +43,7 @@ class ConfigActivity : AppCompatActivity() {
private lateinit var darkTheme: CheckBox
private lateinit var contactsSpinner: Spinner
private lateinit var contactsMode: String
private lateinit var contactsModes: ArrayList<String>
private lateinit var contactsModeKeys: ArrayList<String>
private lateinit var debug: CheckBox
private lateinit var sipTrace: CheckBox
private lateinit var reset: CheckBox
@ -299,21 +299,26 @@ class ConfigActivity : AppCompatActivity() {
oldDisplayTheme = Preferences(applicationContext).displayTheme
darkTheme.isChecked = oldDisplayTheme == AppCompatDelegate.MODE_NIGHT_YES
contactsModes = arrayListOf(
getString(R.string.baresip), getString(R.string.android), getString(R.string.both))
contactsSpinner = binding.contactsSpinner
contactsModeKeys = arrayListOf("baresip", "Android", "Both")
val contactsModeVals = arrayListOf(getString(R.string.baresip), getString(R.string.android),
getString(R.string.both))
val ctCv = Config.variable("contacts_mode")
oldContactsMode = if (ctCv.size == 0) "baresip" else ctCv[0]
contactsMode = oldContactsMode
contactsModes.removeAt(contactsModes.indexOf(oldContactsMode))
contactsModes.add(0, oldContactsMode)
val keyIndex = contactsModeKeys.indexOf(oldContactsMode)
val keyValue = contactsModeVals.elementAt(keyIndex)
contactsModeKeys.removeAt(keyIndex)
contactsModeVals.removeAt(keyIndex)
contactsModeKeys.add(0, oldContactsMode)
contactsModeVals.add(0, keyValue)
val contactsAdapter = ArrayAdapter(this,android.R.layout.simple_spinner_item,
contactsModes)
contactsModeVals)
contactsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
contactsSpinner.adapter = contactsAdapter
contactsSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
contactsMode = contactsModes[position]
contactsMode = contactsModeKeys[position]
if (contactsMode != "baresip" && Build.VERSION.SDK_INT >= 23 &&
!Utils.checkPermissions(applicationContext, contactsPermissions))
requestPermissions(contactsPermissions, CONTACTS_PERMISSION_REQUEST_CODE)
@ -370,7 +375,7 @@ class ConfigActivity : AppCompatActivity() {
registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) {
if (it.containsValue(false)) {
contactsMode = oldContactsMode
contactsSpinner.setSelection(contactsModes.indexOf(oldContactsMode))
contactsSpinner.setSelection(contactsModeKeys.indexOf(oldContactsMode))
}
}
}

View File

@ -370,6 +370,10 @@
<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="contacts_help">Valitsee käytetäänkö baresip-sovelluksen yhteystietoja, Androidin
yhteystietoja vai molempia. Jos molempia ja sama yhteystieto on molemmissa, käytetään
baresip-sovelluksen yhteystietoa.</string>
<string name="both">Molemmat</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>
@ -427,6 +431,8 @@
<string name="help">Apua</string>
<string name="confirmation">Vahvistus</string>
<string name="invalid_sip_or_tel_uri">Invalid SIP or tel URI \'%1$s\'</string>
<string name="baresip" translatable="false">baresip</string>
<string name="android" translatable="false">Android</string>
<!-- Main Activity -->
<string name="backup">Tallenna</string>
<string name="restore">Palauta</string>

View File

@ -329,7 +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="contacts_help">Chooses if baresip contacts, Android contacts, or both will be used.</string>
<string name="contacts_help">Chooses if baresip contacts, Android contacts, or both are used.
If both and contact with the same name exists in both, baresip contact is chosen.</string>
<string name="both">Both</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>
@ -391,7 +393,6 @@
<string name="invalid_sip_or_tel_uri">Invalid SIP or tel URI \'%1$s\'</string>
<string name="baresip" translatable="false">baresip</string>
<string name="android" translatable="false">Android</string>
<string name="both">Both</string>
<!-- Main Activity -->
<string name="backup">Backup</string>
<string name="restore">Restore</string>