mirror of
https://github.com/nextcloud/talk-android
synced 2025-02-02 20:53:09 +00:00
fix to use newest capabilities to update settings.
Without this refreshing of capabilites, depending settings (for now read privacy) were never updated until app was started again because the user still contained old capabilities. This fix will also be necessary for the typing indicator setting. Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
ecec266765
commit
0d6e971c38
@ -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<View>(R.id.mp_checkable) as Checkable).isChecked =
|
||||
appPreferences.isKeyboardIncognito
|
||||
|
||||
if (CapabilitiesUtilNew.isReadStatusAvailable(userManager.currentUser.blockingGet())) {
|
||||
if (CapabilitiesUtilNew.isReadStatusAvailable(currentUser!!)) {
|
||||
(binding.settingsReadPrivacy.findViewById<View>(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) {
|
||||
|
Loading…
Reference in New Issue
Block a user