kopia lustrzana https://github.com/ryukoposting/Signal-Android
96 wiersze
3.3 KiB
Kotlin
96 wiersze
3.3 KiB
Kotlin
package org.thoughtcrime.securesms.components.settings.app.chats
|
|
|
|
import androidx.lifecycle.ViewModelProvider
|
|
import androidx.navigation.Navigation
|
|
import org.thoughtcrime.securesms.R
|
|
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
|
import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment
|
|
import org.thoughtcrime.securesms.components.settings.DSLSettingsText
|
|
import org.thoughtcrime.securesms.components.settings.configure
|
|
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
|
|
import org.thoughtcrime.securesms.util.navigation.safeNavigate
|
|
|
|
class ChatsSettingsFragment : DSLSettingsFragment(R.string.preferences_chats__chats) {
|
|
|
|
private lateinit var viewModel: ChatsSettingsViewModel
|
|
|
|
override fun onResume() {
|
|
super.onResume()
|
|
viewModel.refresh()
|
|
}
|
|
|
|
override fun bindAdapter(adapter: MappingAdapter) {
|
|
val repository = ChatsSettingsRepository()
|
|
val factory = ChatsSettingsViewModel.Factory(repository)
|
|
viewModel = ViewModelProvider(this, factory)[ChatsSettingsViewModel::class.java]
|
|
|
|
viewModel.state.observe(viewLifecycleOwner) {
|
|
adapter.submitList(getConfiguration(it).toMappingModelList())
|
|
}
|
|
}
|
|
|
|
private fun getConfiguration(state: ChatsSettingsState): DSLConfiguration {
|
|
return configure {
|
|
|
|
clickPref(
|
|
title = DSLSettingsText.from(R.string.preferences__sms_mms),
|
|
onClick = {
|
|
Navigation.findNavController(requireView()).safeNavigate(R.id.action_chatsSettingsFragment_to_smsSettingsFragment)
|
|
}
|
|
)
|
|
|
|
dividerPref()
|
|
|
|
switchPref(
|
|
title = DSLSettingsText.from(R.string.preferences__generate_link_previews),
|
|
summary = DSLSettingsText.from(R.string.preferences__retrieve_link_previews_from_websites_for_messages),
|
|
isChecked = state.generateLinkPreviews,
|
|
onClick = {
|
|
viewModel.setGenerateLinkPreviewsEnabled(!state.generateLinkPreviews)
|
|
}
|
|
)
|
|
|
|
switchPref(
|
|
title = DSLSettingsText.from(R.string.preferences__pref_use_address_book_photos),
|
|
summary = DSLSettingsText.from(R.string.preferences__display_contact_photos_from_your_address_book_if_available),
|
|
isChecked = state.useAddressBook,
|
|
onClick = {
|
|
viewModel.setUseAddressBook(!state.useAddressBook)
|
|
}
|
|
)
|
|
|
|
dividerPref()
|
|
|
|
sectionHeaderPref(R.string.ChatsSettingsFragment__keyboard)
|
|
|
|
switchPref(
|
|
title = DSLSettingsText.from(R.string.preferences_advanced__use_system_emoji),
|
|
isChecked = state.useSystemEmoji,
|
|
onClick = {
|
|
viewModel.setUseSystemEmoji(!state.useSystemEmoji)
|
|
}
|
|
)
|
|
|
|
switchPref(
|
|
title = DSLSettingsText.from(R.string.ChatsSettingsFragment__enter_key_sends),
|
|
isChecked = state.enterKeySends,
|
|
onClick = {
|
|
viewModel.setEnterKeySends(!state.enterKeySends)
|
|
}
|
|
)
|
|
|
|
dividerPref()
|
|
|
|
sectionHeaderPref(R.string.preferences_chats__backups)
|
|
|
|
clickPref(
|
|
title = DSLSettingsText.from(R.string.preferences_chats__chat_backups),
|
|
summary = DSLSettingsText.from(if (state.chatBackupsEnabled) R.string.arrays__enabled else R.string.arrays__disabled),
|
|
onClick = {
|
|
Navigation.findNavController(requireView()).safeNavigate(R.id.action_chatsSettingsFragment_to_backupsPreferenceFragment)
|
|
}
|
|
)
|
|
}
|
|
}
|
|
}
|