Added back auto download chat settings

This commit is contained in:
Sylvain Berfini 2020-05-26 18:03:52 +02:00
parent af2105e193
commit fe8524da14
3 changed files with 72 additions and 0 deletions

View file

@ -20,6 +20,7 @@
package org.linphone.activities.main.settings.viewmodels package org.linphone.activities.main.settings.viewmodels
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import org.linphone.R
import org.linphone.activities.main.settings.SettingListenerStub import org.linphone.activities.main.settings.SettingListenerStub
import org.linphone.utils.Event import org.linphone.utils.Event
@ -31,6 +32,32 @@ class ChatSettingsViewModel : GenericSettingsViewModel() {
} }
val fileSharingUrl = MutableLiveData<String>() val fileSharingUrl = MutableLiveData<String>()
val autoDownloadListener = object : SettingListenerStub() {
override fun onListValueChanged(position: Int) {
val maxSize = when (position) {
0 -> -1
1 -> 0
else -> 10000000
}
core.maxSizeForAutoDownloadIncomingFiles = maxSize
autoDownloadMaxSize.value = maxSize
updateAutoDownloadIndexFromMaxSize(maxSize)
}
}
val autoDownloadIndex = MutableLiveData<Int>()
val autoDownloadLabels = MutableLiveData<ArrayList<String>>()
val autoDownloadMaxSizeListener = object : SettingListenerStub() {
override fun onTextValueChanged(newValue: String) {
if (newValue.isNotEmpty()) {
val maxSize = newValue.toInt()
core.maxSizeForAutoDownloadIncomingFiles = maxSize
updateAutoDownloadIndexFromMaxSize(maxSize)
}
}
}
val autoDownloadMaxSize = MutableLiveData<Int>()
val downloadedImagesPublicListener = object : SettingListenerStub() { val downloadedImagesPublicListener = object : SettingListenerStub() {
override fun onBoolValueChanged(newValue: Boolean) { override fun onBoolValueChanged(newValue: Boolean) {
prefs.makePublicDownloadedImages = newValue prefs.makePublicDownloadedImages = newValue
@ -63,9 +90,30 @@ class ChatSettingsViewModel : GenericSettingsViewModel() {
init { init {
downloadedImagesPublic.value = prefs.makePublicDownloadedImages downloadedImagesPublic.value = prefs.makePublicDownloadedImages
initAutoDownloadList()
launcherShortcuts.value = prefs.chatRoomShortcuts launcherShortcuts.value = prefs.chatRoomShortcuts
hideEmptyRooms.value = prefs.hideEmptyRooms hideEmptyRooms.value = prefs.hideEmptyRooms
hideRoomsRemovedProxies.value = prefs.hideRoomsFromRemovedProxies hideRoomsRemovedProxies.value = prefs.hideRoomsFromRemovedProxies
fileSharingUrl.value = core.fileTransferServer fileSharingUrl.value = core.fileTransferServer
} }
private fun initAutoDownloadList() {
val labels = arrayListOf<String>()
labels.add(prefs.getString(R.string.chat_settings_auto_download_never))
labels.add(prefs.getString(R.string.chat_settings_auto_download_always))
labels.add(prefs.getString(R.string.chat_settings_auto_download_under_size))
autoDownloadLabels.value = labels
val currentValue = core.maxSizeForAutoDownloadIncomingFiles
autoDownloadMaxSize.value = currentValue
updateAutoDownloadIndexFromMaxSize(currentValue)
}
private fun updateAutoDownloadIndexFromMaxSize(maxSize: Int) {
autoDownloadIndex.value = when (maxSize) {
-1 -> 0
0 -> 1
else -> 2
}
}
} }

View file

@ -73,6 +73,23 @@
linphone:defaultValue="@{viewModel.fileSharingUrl}" linphone:defaultValue="@{viewModel.fileSharingUrl}"
linphone:inputType="@{InputType.TYPE_TEXT_VARIATION_URI}"/> linphone:inputType="@{InputType.TYPE_TEXT_VARIATION_URI}"/>
<include
layout="@layout/settings_widget_list"
linphone:title="@{@string/chat_settings_auto_download_title}"
linphone:subtitle="@{@string/chat_settings_auto_download_summary}"
linphone:listener="@{viewModel.autoDownloadListener}"
linphone:selectedIndex="@{viewModel.autoDownloadIndex}"
linphone:labels="@{viewModel.autoDownloadLabels}"/>
<include
layout="@layout/settings_widget_text"
linphone:title="@{@string/chat_settings_auto_download_max_size_title}"
linphone:subtitle="@{@string/chat_settings_auto_download_max_size_summary}"
linphone:listener="@{viewModel.autoDownloadMaxSizeListener}"
linphone:defaultValue="@{viewModel.autoDownloadMaxSize.toString()}"
linphone:inputType="@{InputType.TYPE_CLASS_NUMBER}"
linphone:enabled="@{viewModel.autoDownloadIndex == 2}"/>
<include <include
layout="@layout/settings_widget_switch" layout="@layout/settings_widget_switch"
linphone:title="@{@string/chat_settings_downloaded_images_public_title}" linphone:title="@{@string/chat_settings_downloaded_images_public_title}"

View file

@ -347,6 +347,13 @@
<!-- Chat settings --> <!-- Chat settings -->
<string name="chat_settings_file_sharing_url_title">Sharing server URL</string> <string name="chat_settings_file_sharing_url_title">Sharing server URL</string>
<string name="chat_settings_file_sharing_url_summary">Do not edit unless you know what you are doing!</string> <string name="chat_settings_file_sharing_url_summary">Do not edit unless you know what you are doing!</string>
<string name="chat_settings_auto_download_title">Auto download incoming files policy</string>
<string name="chat_settings_auto_download_summary">Whether to download files attached in received chat messages automatically or not</string>
<string name="chat_settings_auto_download_always">Always</string>
<string name="chat_settings_auto_download_never">Never</string>
<string name="chat_settings_auto_download_under_size">If lighter than given maximum size</string>
<string name="chat_settings_auto_download_max_size_title">Max size</string>
<string name="chat_settings_auto_download_max_size_summary">in bytes</string>
<string name="chat_settings_downloaded_images_public_title">Make downloaded images visible in native gallery</string> <string name="chat_settings_downloaded_images_public_title">Make downloaded images visible in native gallery</string>
<string name="chat_settings_downloaded_images_public_summary">Images in ephemeral messages won\'t be</string> <string name="chat_settings_downloaded_images_public_summary">Images in ephemeral messages won\'t be</string>
<string name="chat_settings_launcher_shortcuts_title">Create shortcuts to chat rooms in launcher</string> <string name="chat_settings_launcher_shortcuts_title">Create shortcuts to chat rooms in launcher</string>