Loading app/src/main/java/at/bitfire/davdroid/settings/AccountSettings.kt +14 −2 Original line number Diff line number Diff line Loading @@ -377,8 +377,20 @@ class AccountSettings( // UI settings fun getShowOnlyPersonal(): Boolean = accountManager.getUserData(account, KEY_SHOW_ONLY_PERSONAL) != null /** * Whether only personal collections should be shown. * * @return [Pair] of values: * * 1. (first) whether only personal collections should be shown * 2. (second) whether the user shall be able to change the setting (= setting not locked) */ fun getShowOnlyPersonal(): Pair<Boolean, Boolean> = when (settings.getIntOrNull(KEY_SHOW_ONLY_PERSONAL)) { 0 -> Pair(false, false) 1 -> Pair(true, false) else /* including -1 */ -> Pair(accountManager.getUserData(account, KEY_SHOW_ONLY_PERSONAL) != null, true) } fun setShowOnlyPersonal(showOnlyPersonal: Boolean) { accountManager.setUserData(account, KEY_SHOW_ONLY_PERSONAL, if (showOnlyPersonal) "1" else null) Loading app/src/main/java/at/bitfire/davdroid/settings/SettingsManager.kt +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ class SettingsManager private constructor( for (provider in providers) try { val value = reader(provider) Logger.log.finer("${provider::class.java.simpleName}: value = $value") Logger.log.finer("${provider::class.java.simpleName}: $key = $value") if (value != null) { Logger.log.fine("Looked up setting $key -> $value") return value Loading app/src/main/java/at/bitfire/davdroid/ui/account/AccountActivity.kt +5 −1 Original line number Diff line number Diff line Loading @@ -242,6 +242,7 @@ class AccountActivity: AppCompatActivity() { val calDavService = MutableLiveData<Long>() val showOnlyPersonal = MutableLiveData<Boolean>() val showOnlyPersonal_writable = MutableLiveData<Boolean>() init { Loading @@ -249,7 +250,10 @@ class AccountActivity: AppCompatActivity() { cardDavService.postValue(db.serviceDao().getIdByAccountAndType(account.name, Service.TYPE_CARDDAV)) calDavService.postValue(db.serviceDao().getIdByAccountAndType(account.name, Service.TYPE_CALDAV)) showOnlyPersonal.postValue(accountSettings.getShowOnlyPersonal()) accountSettings.getShowOnlyPersonal().let { (value, locked) -> showOnlyPersonal.postValue(value) showOnlyPersonal_writable.postValue(locked) } } } Loading app/src/main/java/at/bitfire/davdroid/ui/account/CollectionsFragment.kt +11 −3 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ import android.os.Bundle import android.os.IBinder import android.provider.CalendarContract import android.provider.ContactsContract import android.util.Log import android.view.* import android.widget.PopupMenu import androidx.annotation.WorkerThread Loading @@ -30,6 +29,8 @@ import at.bitfire.davdroid.model.AppDatabase import at.bitfire.davdroid.model.Collection import at.bitfire.davdroid.resource.LocalAddressBook import at.bitfire.davdroid.resource.TaskUtils import at.bitfire.davdroid.settings.AccountSettings import at.bitfire.davdroid.settings.SettingsManager import kotlinx.android.synthetic.main.account_collections.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch Loading Loading @@ -119,8 +120,15 @@ abstract class CollectionsFragment: Fragment(), SwipeRefreshLayout.OnRefreshList } override fun onPrepareOptionsMenu(menu: Menu) { accountModel.showOnlyPersonal.value?.let { showOnlyPersonal -> menu.findItem(R.id.showOnlyPersonal).isChecked = showOnlyPersonal val settings = SettingsManager.getInstance(requireActivity()) menu.findItem(R.id.showOnlyPersonal).let { showOnlyPersonal -> accountModel.showOnlyPersonal.value?.let { value -> showOnlyPersonal.isChecked = value } accountModel.showOnlyPersonal_writable.value?.let { writable -> showOnlyPersonal.isEnabled = writable } } } Loading Loading
app/src/main/java/at/bitfire/davdroid/settings/AccountSettings.kt +14 −2 Original line number Diff line number Diff line Loading @@ -377,8 +377,20 @@ class AccountSettings( // UI settings fun getShowOnlyPersonal(): Boolean = accountManager.getUserData(account, KEY_SHOW_ONLY_PERSONAL) != null /** * Whether only personal collections should be shown. * * @return [Pair] of values: * * 1. (first) whether only personal collections should be shown * 2. (second) whether the user shall be able to change the setting (= setting not locked) */ fun getShowOnlyPersonal(): Pair<Boolean, Boolean> = when (settings.getIntOrNull(KEY_SHOW_ONLY_PERSONAL)) { 0 -> Pair(false, false) 1 -> Pair(true, false) else /* including -1 */ -> Pair(accountManager.getUserData(account, KEY_SHOW_ONLY_PERSONAL) != null, true) } fun setShowOnlyPersonal(showOnlyPersonal: Boolean) { accountManager.setUserData(account, KEY_SHOW_ONLY_PERSONAL, if (showOnlyPersonal) "1" else null) Loading
app/src/main/java/at/bitfire/davdroid/settings/SettingsManager.kt +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ class SettingsManager private constructor( for (provider in providers) try { val value = reader(provider) Logger.log.finer("${provider::class.java.simpleName}: value = $value") Logger.log.finer("${provider::class.java.simpleName}: $key = $value") if (value != null) { Logger.log.fine("Looked up setting $key -> $value") return value Loading
app/src/main/java/at/bitfire/davdroid/ui/account/AccountActivity.kt +5 −1 Original line number Diff line number Diff line Loading @@ -242,6 +242,7 @@ class AccountActivity: AppCompatActivity() { val calDavService = MutableLiveData<Long>() val showOnlyPersonal = MutableLiveData<Boolean>() val showOnlyPersonal_writable = MutableLiveData<Boolean>() init { Loading @@ -249,7 +250,10 @@ class AccountActivity: AppCompatActivity() { cardDavService.postValue(db.serviceDao().getIdByAccountAndType(account.name, Service.TYPE_CARDDAV)) calDavService.postValue(db.serviceDao().getIdByAccountAndType(account.name, Service.TYPE_CALDAV)) showOnlyPersonal.postValue(accountSettings.getShowOnlyPersonal()) accountSettings.getShowOnlyPersonal().let { (value, locked) -> showOnlyPersonal.postValue(value) showOnlyPersonal_writable.postValue(locked) } } } Loading
app/src/main/java/at/bitfire/davdroid/ui/account/CollectionsFragment.kt +11 −3 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ import android.os.Bundle import android.os.IBinder import android.provider.CalendarContract import android.provider.ContactsContract import android.util.Log import android.view.* import android.widget.PopupMenu import androidx.annotation.WorkerThread Loading @@ -30,6 +29,8 @@ import at.bitfire.davdroid.model.AppDatabase import at.bitfire.davdroid.model.Collection import at.bitfire.davdroid.resource.LocalAddressBook import at.bitfire.davdroid.resource.TaskUtils import at.bitfire.davdroid.settings.AccountSettings import at.bitfire.davdroid.settings.SettingsManager import kotlinx.android.synthetic.main.account_collections.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch Loading Loading @@ -119,8 +120,15 @@ abstract class CollectionsFragment: Fragment(), SwipeRefreshLayout.OnRefreshList } override fun onPrepareOptionsMenu(menu: Menu) { accountModel.showOnlyPersonal.value?.let { showOnlyPersonal -> menu.findItem(R.id.showOnlyPersonal).isChecked = showOnlyPersonal val settings = SettingsManager.getInstance(requireActivity()) menu.findItem(R.id.showOnlyPersonal).let { showOnlyPersonal -> accountModel.showOnlyPersonal.value?.let { value -> showOnlyPersonal.isChecked = value } accountModel.showOnlyPersonal_writable.value?.let { writable -> showOnlyPersonal.isEnabled = writable } } } Loading