Disable push notification settings if feature isn't available

This commit is contained in:
Sylvain Berfini 2020-06-10 13:40:00 +02:00
parent f00e5c4ed8
commit ffb04920bb
6 changed files with 10 additions and 5 deletions

View file

@ -168,6 +168,7 @@ class AccountSettingsViewModel(val proxyConfig: ProxyConfig) : GenericSettingsVi
} }
} }
val pushNotification = MutableLiveData<Boolean>() val pushNotification = MutableLiveData<Boolean>()
val pushNotificationsAvailable = MutableLiveData<Boolean>()
val transportListener = object : SettingListenerStub() { val transportListener = object : SettingListenerStub() {
override fun onListValueChanged(position: Int) { override fun onListValueChanged(position: Int) {
@ -286,6 +287,7 @@ class AccountSettingsViewModel(val proxyConfig: ProxyConfig) : GenericSettingsVi
domain.value = proxyConfig.identityAddress.domain domain.value = proxyConfig.identityAddress.domain
disable.value = !proxyConfig.registerEnabled() disable.value = !proxyConfig.registerEnabled()
pushNotification.value = proxyConfig.isPushNotificationAllowed pushNotification.value = proxyConfig.isPushNotificationAllowed
pushNotificationsAvailable.value = core.isPushNotificationAvailable
proxy.value = proxyConfig.serverAddr proxy.value = proxyConfig.serverAddr
outboundProxy.value = proxyConfig.serverAddr == proxyConfig.route outboundProxy.value = proxyConfig.serverAddr == proxyConfig.route
stunServer.value = proxyConfig.natPolicy?.stunServer stunServer.value = proxyConfig.natPolicy?.stunServer

View file

@ -43,6 +43,7 @@ class NetworkSettingsViewModel : GenericSettingsViewModel() {
} }
} }
val pushNotifications = MutableLiveData<Boolean>() val pushNotifications = MutableLiveData<Boolean>()
val pushNotificationsAvailable = MutableLiveData<Boolean>()
val randomPortsListener = object : SettingListenerStub() { val randomPortsListener = object : SettingListenerStub() {
override fun onBoolValueChanged(newValue: Boolean) { override fun onBoolValueChanged(newValue: Boolean) {
@ -65,6 +66,7 @@ class NetworkSettingsViewModel : GenericSettingsViewModel() {
wifiOnly.value = core.wifiOnlyEnabled() wifiOnly.value = core.wifiOnlyEnabled()
allowIpv6.value = core.ipv6Enabled() allowIpv6.value = core.ipv6Enabled()
pushNotifications.value = core.isPushNotificationEnabled pushNotifications.value = core.isPushNotificationEnabled
pushNotificationsAvailable.value = core.isPushNotificationAvailable
randomPorts.value = getSipPort() == -1 randomPorts.value = getSipPort() == -1
sipPort.value = getSipPort() sipPort.value = getSipPort()
} }

View file

@ -37,7 +37,7 @@ class CorePreferences constructor(private val context: Context) {
/* App settings */ /* App settings */
var debugLogs: Boolean var debugLogs: Boolean
get() = config.getBool("app", "debug", true) get() = config.getBool("app", "debug", BuildConfig.DEBUG)
set(value) { set(value) {
config.setBool("app", "debug", value) config.setBool("app", "debug", value)
} }

View file

@ -22,7 +22,6 @@ package org.linphone.utils
import java.text.DateFormat import java.text.DateFormat
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
import org.linphone.core.tools.Log
class TimestampUtils { class TimestampUtils {
companion object { companion object {
@ -80,7 +79,7 @@ class TimestampUtils {
if (isSameYear(timestamp, timestampInSecs)) { if (isSameYear(timestamp, timestampInSecs)) {
// Remove the year part of the format // Remove the year part of the format
dateFormat.applyPattern( dateFormat.applyPattern(
dateFormat.toPattern().replace("/?y+/?|\\s?y+\\s?".toRegex(),"") dateFormat.toPattern().replace("/?y+/?|\\s?y+\\s?".toRegex(), "")
) )
} }

View file

@ -156,7 +156,8 @@
linphone:title="@{@string/account_settings_push_notification_title}" linphone:title="@{@string/account_settings_push_notification_title}"
linphone:subtitle="@{@string/account_settings_push_notification_summary}" linphone:subtitle="@{@string/account_settings_push_notification_summary}"
linphone:listener="@{viewModel.pushNotificationListener}" linphone:listener="@{viewModel.pushNotificationListener}"
linphone:checked="@={viewModel.pushNotification}"/> linphone:checked="@={viewModel.pushNotification}"
android:visibility="@{viewModel.pushNotificationsAvailable ? View.VISIBLE : View.GONE}"/>
<include <include
layout="@layout/settings_widget_list" layout="@layout/settings_widget_list"

View file

@ -84,7 +84,8 @@
linphone:title="@{@string/network_settings_push_notifications_title}" linphone:title="@{@string/network_settings_push_notifications_title}"
linphone:subtitle="@{@string/advanced_settings_push_notifications_summary}" linphone:subtitle="@{@string/advanced_settings_push_notifications_summary}"
linphone:listener="@{viewModel.pushNotificationsListener}" linphone:listener="@{viewModel.pushNotificationsListener}"
linphone:checked="@={viewModel.pushNotifications}"/> linphone:checked="@={viewModel.pushNotifications}"
linphone:enabled="@{viewModel.pushNotificationsAvailable}"/>
<include <include
layout="@layout/settings_widget_switch" layout="@layout/settings_widget_switch"