Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
### Added
- Setting for vCard Export Version ([#344])

### Fixed
- Fixed invisible navigation bars in contact viewer ([#415])
- Fixed search highlighting for characters with accents and diacritics ([#12])
Expand Down Expand Up @@ -107,6 +110,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[#289]: https://github.com/FossifyOrg/Contacts/issues/289
[#321]: https://github.com/FossifyOrg/Contacts/issues/321
[#339]: https://github.com/FossifyOrg/Contacts/issues/339
[#344]: https://github.com/FossifyOrg/Contacts/issues/344
[#360]: https://github.com/FossifyOrg/Contacts/issues/360
[#415]: https://github.com/FossifyOrg/Contacts/issues/415

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import org.fossify.contacts.R
import org.fossify.contacts.databinding.ActivitySettingsBinding
import org.fossify.contacts.dialogs.ExportContactsDialog
import org.fossify.contacts.dialogs.ManageAutoBackupsDialog
import org.fossify.contacts.dialogs.ManageVCardVersionDialog
import org.fossify.contacts.dialogs.ManageVisibleFieldsDialog
import org.fossify.contacts.dialogs.ManageVisibleTabsDialog
import org.fossify.contacts.extensions.*
Expand Down Expand Up @@ -64,6 +65,7 @@ class SettingsActivity : SimpleActivity() {
setupManageAutomaticBackups()
setupExportContacts()
setupImportContacts()
setupVCardVersion()
updateTextColors(binding.settingsHolder)

arrayOf(
Expand Down Expand Up @@ -304,6 +306,12 @@ class SettingsActivity : SimpleActivity() {
}
}

private fun setupVCardVersion() {
binding.vcardVersionHolder.setOnClickListener {
ManageVCardVersionDialog(this)
}
}

private fun tryImportContacts() {
if (isQPlus()) {
Intent(Intent.ACTION_GET_CONTENT).apply {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package org.fossify.contacts.dialogs

import org.fossify.commons.activities.BaseSimpleActivity
import org.fossify.commons.extensions.getAlertDialogBuilder
import org.fossify.commons.extensions.setupDialogStuff
import org.fossify.contacts.R
import org.fossify.contacts.extensions.config
import org.fossify.contacts.helpers.DEFAULT_VCARD_VERSION

class ManageVCardVersionDialog(val activity: BaseSimpleActivity) {
private var view = activity.layoutInflater.inflate(R.layout.dialog_vcard_version, null)
private val versionRadioButtons = LinkedHashMap<String, Int>()

init {
versionRadioButtons.apply {
put("2.1", R.id.manage_vcard_version_2_1)
put("3", R.id.manage_vcard_version_3)
put("4", R.id.manage_vcard_version_4)
}

val currentVersion = activity.config.vCardVersion
versionRadioButtons[currentVersion]?.let { radioButtonId ->
view.findViewById<android.widget.RadioButton>(radioButtonId).isChecked = true
}

activity.getAlertDialogBuilder()
.setPositiveButton(org.fossify.commons.R.string.ok) { dialog, which -> dialogConfirmed() }
.setNegativeButton(org.fossify.commons.R.string.cancel, null)
.apply {
activity.setupDialogStuff(view, this)
}
}

private fun dialogConfirmed() {
val selectedVersion = versionRadioButtons.entries.find { entry ->
view.findViewById<android.widget.RadioButton>(entry.value).isChecked
}?.key ?: DEFAULT_VCARD_VERSION

activity.config.vCardVersion = selectedVersion
}
}
3 changes: 3 additions & 0 deletions app/src/main/kotlin/org/fossify/contacts/helpers/Config.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ class Config(context: Context) : BaseConfig(context) {
set(autoBackupContactSources) = prefs.edit().remove(AUTO_BACKUP_CONTACT_SOURCES).putStringSet(AUTO_BACKUP_CONTACT_SOURCES, autoBackupContactSources)
.apply()

var vCardVersion: String
get() = prefs.getString(VCARD_VERSION, DEFAULT_VCARD_VERSION) ?: DEFAULT_VCARD_VERSION
set(vcardVersion) = prefs.edit().putString(VCARD_VERSION, vcardVersion).apply()
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ const val SIGNAL = "signal"
const val VIBER = "viber"
const val TELEGRAM = "telegram"
const val THREEMA = "threema"

const val VCARD_VERSION = "4"
const val DEFAULT_VCARD_VERSION = "4"

// 6 am is the hardcoded automatic backup time, intervals shorter than 1 day are not yet supported.
fun getNextAutoBackupTime(): DateTime {
Expand Down
Loading
Loading