diff --git a/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt b/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt index 2b2b1d720..ab29d7942 100644 --- a/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt @@ -56,6 +56,7 @@ import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat import androidx.work.OneTimeWorkRequest +import androidx.work.WorkInfo import androidx.work.WorkManager import autodagger.AutoInjector import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -69,6 +70,7 @@ import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.setAppT import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.ActivitySettingsBinding import com.nextcloud.talk.jobs.AccountRemovalWorker +import com.nextcloud.talk.jobs.CapabilitiesWorker import com.nextcloud.talk.jobs.ContactAddressBookWorker import com.nextcloud.talk.jobs.ContactAddressBookWorker.Companion.checkPermission import com.nextcloud.talk.jobs.ContactAddressBookWorker.Companion.deleteAll @@ -172,6 +174,8 @@ class SettingsActivity : BaseActivity() { supportActionBar?.show() dispose(null) + loadCapabilitiesAndUpdateSettings() + binding.settingsVersion.setOnClickListener { sendLogs() } @@ -224,6 +228,19 @@ class SettingsActivity : BaseActivity() { themeSwitchPreferences() } + private fun loadCapabilitiesAndUpdateSettings() { + val capabilitiesWork = OneTimeWorkRequest.Builder(CapabilitiesWorker::class.java).build() + WorkManager.getInstance(context).enqueue(capabilitiesWork) + + WorkManager.getInstance(context).getWorkInfoByIdLiveData(capabilitiesWork.id) + .observe(this) { workInfo -> + if (workInfo?.state == WorkInfo.State.SUCCEEDED) { + getCurrentUser() + setupCheckables() + } + } + } + private fun setupActionBar() { setSupportActionBar(binding.settingsToolbar) binding.settingsToolbar.setNavigationOnClickListener { @@ -636,7 +653,7 @@ class SettingsActivity : BaseActivity() { (binding.settingsIncognitoKeyboard.findViewById(R.id.mp_checkable) as Checkable).isChecked = appPreferences.isKeyboardIncognito - if (CapabilitiesUtilNew.isReadStatusAvailable(userManager.currentUser.blockingGet())) { + if (CapabilitiesUtilNew.isReadStatusAvailable(currentUser!!)) { (binding.settingsReadPrivacy.findViewById(R.id.mp_checkable) as Checkable).isChecked = !CapabilitiesUtilNew.isReadStatusPrivate(currentUser!!) } else { @@ -993,7 +1010,7 @@ class SettingsActivity : BaseActivity() { } override fun onNext(genericOverall: GenericOverall) { - // unused atm + Log.d(TAG, "onNext") } override fun onError(e: Throwable) {