mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 14:27:24 +00:00
Fix flow listening in SettingsController
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
This commit is contained in:
parent
b9d2ca2517
commit
f7786e1b93
@ -101,7 +101,9 @@ import io.reactivex.disposables.Disposable
|
|||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
import kotlinx.coroutines.MainScope
|
import kotlinx.coroutines.MainScope
|
||||||
import kotlinx.coroutines.cancel
|
import kotlinx.coroutines.cancel
|
||||||
|
import kotlinx.coroutines.flow.first
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.runBlocking
|
||||||
import net.orange_box.storebox.listeners.OnPreferenceValueChangedListener
|
import net.orange_box.storebox.listeners.OnPreferenceValueChangedListener
|
||||||
import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
||||||
import okhttp3.RequestBody
|
import okhttp3.RequestBody
|
||||||
@ -147,15 +149,12 @@ class SettingsController : NewBaseController(R.layout.controller_settings) {
|
|||||||
get() =
|
get() =
|
||||||
resources!!.getString(R.string.nc_settings)
|
resources!!.getString(R.string.nc_settings)
|
||||||
|
|
||||||
private fun getCurrentUser() {
|
private suspend fun getCurrentUser() {
|
||||||
scope.launch {
|
val user = currentUserProvider.currentUser.first()
|
||||||
currentUserProvider.currentUser.collect {
|
Log.e(TAG, "User: $user")
|
||||||
Log.e(TAG, "User: $it")
|
currentUser = user
|
||||||
this@SettingsController.currentUser = it
|
credentials =
|
||||||
this@SettingsController.credentials =
|
ApiUtils.getCredentials(currentUser!!.username, currentUser!!.token)
|
||||||
ApiUtils.getCredentials(currentUser!!.username, currentUser!!.token)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewBound(view: View) {
|
override fun onViewBound(view: View) {
|
||||||
@ -164,43 +163,46 @@ class SettingsController : NewBaseController(R.layout.controller_settings) {
|
|||||||
sharedApplication!!.componentApplication.inject(this)
|
sharedApplication!!.componentApplication.inject(this)
|
||||||
|
|
||||||
ViewCompat.setTransitionName((binding.avatarImage), "userAvatar.transitionTag")
|
ViewCompat.setTransitionName((binding.avatarImage), "userAvatar.transitionTag")
|
||||||
getCurrentUser()
|
|
||||||
|
|
||||||
if (saveStateHandler == null) {
|
runBlocking {
|
||||||
saveStateHandler = LovelySaveStateHandler()
|
getCurrentUser()
|
||||||
}
|
|
||||||
|
|
||||||
registerChangeListeners()
|
if (saveStateHandler == null) {
|
||||||
|
saveStateHandler = LovelySaveStateHandler()
|
||||||
|
}
|
||||||
|
|
||||||
setupSettingsScreen()
|
registerChangeListeners()
|
||||||
setupLicenceSetting()
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
setupSettingsScreen()
|
||||||
binding.settingsIncognitoKeyboard.visibility = View.GONE
|
setupLicenceSetting()
|
||||||
}
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
||||||
binding.settingsScreenLock.visibility = View.GONE
|
binding.settingsIncognitoKeyboard.visibility = View.GONE
|
||||||
binding.settingsScreenLockTimeout.visibility = View.GONE
|
}
|
||||||
} else {
|
|
||||||
binding.settingsScreenLock.setSummary(
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
|
||||||
String.format(
|
binding.settingsScreenLock.visibility = View.GONE
|
||||||
Locale.getDefault(),
|
binding.settingsScreenLockTimeout.visibility = View.GONE
|
||||||
resources!!.getString(R.string.nc_settings_screen_lock_desc),
|
} else {
|
||||||
resources!!.getString(R.string.nc_app_product_name)
|
binding.settingsScreenLock.setSummary(
|
||||||
|
String.format(
|
||||||
|
Locale.getDefault(),
|
||||||
|
resources!!.getString(R.string.nc_settings_screen_lock_desc),
|
||||||
|
resources!!.getString(R.string.nc_app_product_name)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
}
|
||||||
|
|
||||||
|
setupPrivacyUrl()
|
||||||
|
setupSourceCodeUrl()
|
||||||
|
binding.settingsVersion.setSummary("v" + BuildConfig.VERSION_NAME)
|
||||||
|
|
||||||
|
setupSoundSettings()
|
||||||
|
|
||||||
|
setupPhoneBookIntegration()
|
||||||
|
|
||||||
|
setupClientCertView()
|
||||||
}
|
}
|
||||||
|
|
||||||
setupPrivacyUrl()
|
|
||||||
setupSourceCodeUrl()
|
|
||||||
binding.settingsVersion.setSummary("v" + BuildConfig.VERSION_NAME)
|
|
||||||
|
|
||||||
setupSoundSettings()
|
|
||||||
|
|
||||||
setupPhoneBookIntegration()
|
|
||||||
|
|
||||||
setupClientCertView()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupPhoneBookIntegration() {
|
private fun setupPhoneBookIntegration() {
|
||||||
@ -484,69 +486,73 @@ class SettingsController : NewBaseController(R.layout.controller_settings) {
|
|||||||
super.onAttach(view)
|
super.onAttach(view)
|
||||||
actionBar?.show()
|
actionBar?.show()
|
||||||
dispose(null)
|
dispose(null)
|
||||||
getCurrentUser()
|
|
||||||
|
|
||||||
binding.settingsVersion.setOnClickListener {
|
runBlocking {
|
||||||
sendLogs()
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!TextUtils.isEmpty(currentUser!!.clientCertificate)) {
|
getCurrentUser()
|
||||||
binding.settingsClientCert.setTitle(R.string.nc_client_cert_change)
|
|
||||||
} else {
|
|
||||||
binding.settingsClientCert.setTitle(R.string.nc_client_cert_setup)
|
|
||||||
}
|
|
||||||
|
|
||||||
setupCheckables()
|
binding.settingsVersion.setOnClickListener {
|
||||||
setupScreenLockSetting()
|
sendLogs()
|
||||||
|
}
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (!TextUtils.isEmpty(currentUser!!.clientCertificate)) {
|
||||||
binding.settingsNotificationsCategory.setTitle(
|
binding.settingsClientCert.setTitle(R.string.nc_client_cert_change)
|
||||||
resources!!.getString(R.string.nc_settings_notification_sounds_post_oreo)
|
} else {
|
||||||
)
|
binding.settingsClientCert.setTitle(R.string.nc_client_cert_setup)
|
||||||
}
|
}
|
||||||
|
|
||||||
val callRingtoneUri = getCallRingtoneUri(view.context, (appPreferences)!!)
|
setupCheckables()
|
||||||
binding.settingsCallSound.setSummary(getRingtoneName(view.context, callRingtoneUri))
|
setupScreenLockSetting()
|
||||||
val messageRingtoneUri = getMessageRingtoneUri(view.context, (appPreferences)!!)
|
|
||||||
binding.settingsMessageSound.setSummary(getRingtoneName(view.context, messageRingtoneUri))
|
|
||||||
|
|
||||||
setupProxyTypeSettings()
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
setupProxyCredentialSettings()
|
binding.settingsNotificationsCategory.setTitle(
|
||||||
|
resources!!.getString(R.string.nc_settings_notification_sounds_post_oreo)
|
||||||
if (currentUser != null) {
|
|
||||||
binding.baseUrlText.text = Uri.parse(currentUser!!.baseUrl).host
|
|
||||||
setupServerAgeWarning()
|
|
||||||
|
|
||||||
binding.settingsReauthorize.addPreferenceClickListener {
|
|
||||||
router.pushController(
|
|
||||||
RouterTransaction.with(WebViewLoginController(currentUser!!.baseUrl, true))
|
|
||||||
.pushChangeHandler(VerticalChangeHandler())
|
|
||||||
.popChangeHandler(VerticalChangeHandler())
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentUser!!.displayName != null) {
|
val callRingtoneUri = getCallRingtoneUri(view.context, (appPreferences)!!)
|
||||||
binding.displayNameText.text = currentUser!!.displayName
|
binding.settingsCallSound.setSummary(getRingtoneName(view.context, callRingtoneUri))
|
||||||
|
val messageRingtoneUri = getMessageRingtoneUri(view.context, (appPreferences)!!)
|
||||||
|
binding.settingsMessageSound.setSummary(getRingtoneName(view.context, messageRingtoneUri))
|
||||||
|
|
||||||
|
setupProxyTypeSettings()
|
||||||
|
setupProxyCredentialSettings()
|
||||||
|
|
||||||
|
if (currentUser != null) {
|
||||||
|
binding.baseUrlText.text = Uri.parse(currentUser!!.baseUrl).host
|
||||||
|
setupServerAgeWarning()
|
||||||
|
|
||||||
|
binding.settingsReauthorize.addPreferenceClickListener {
|
||||||
|
router.pushController(
|
||||||
|
RouterTransaction.with(WebViewLoginController(currentUser!!.baseUrl, true))
|
||||||
|
.pushChangeHandler(VerticalChangeHandler())
|
||||||
|
.popChangeHandler(VerticalChangeHandler())
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentUser!!.displayName != null) {
|
||||||
|
binding.displayNameText.text = currentUser!!.displayName
|
||||||
|
}
|
||||||
|
DisplayUtils.loadAvatarImage(currentUser, binding.avatarImage, false)
|
||||||
|
|
||||||
|
setupProfileQueryDisposable()
|
||||||
|
|
||||||
|
binding.settingsRemoveAccount.addPreferenceClickListener {
|
||||||
|
showLovelyDialog(ID_REMOVE_ACCOUNT_WARNING_DIALOG, null)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
DisplayUtils.loadAvatarImage(currentUser, binding.avatarImage, false)
|
setupMessageView()
|
||||||
|
|
||||||
setupProfileQueryDisposable()
|
binding.avatarContainer.setOnClickListener {
|
||||||
|
router
|
||||||
|
.pushController(
|
||||||
|
RouterTransaction.with(ProfileController())
|
||||||
|
.pushChangeHandler(HorizontalChangeHandler())
|
||||||
|
.popChangeHandler(HorizontalChangeHandler())
|
||||||
|
|
||||||
binding.settingsRemoveAccount.addPreferenceClickListener {
|
)
|
||||||
showLovelyDialog(ID_REMOVE_ACCOUNT_WARNING_DIALOG, null)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setupMessageView()
|
|
||||||
|
|
||||||
binding.avatarContainer.setOnClickListener {
|
|
||||||
router
|
|
||||||
.pushController(
|
|
||||||
RouterTransaction.with(ProfileController())
|
|
||||||
.pushChangeHandler(HorizontalChangeHandler())
|
|
||||||
.popChangeHandler(HorizontalChangeHandler())
|
|
||||||
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupProxyTypeSettings() {
|
private fun setupProxyTypeSettings() {
|
||||||
|
@ -38,8 +38,8 @@ class PushConfigurationConverter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
fun fromStringToPushConfiguration(value: String): PushConfigurationState? {
|
fun fromStringToPushConfiguration(value: String?): PushConfigurationState? {
|
||||||
if (value.isBlank()) {
|
if (value.isNullOrBlank()) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user