mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 03:18:06 +00:00
Added developer setting to change push notification compatible domains list
This commit is contained in:
parent
c62f549521
commit
1307ec5471
6 changed files with 69 additions and 3 deletions
|
|
@ -307,13 +307,17 @@ class CorePreferences
|
|||
config.setBool("ui", "show_mic_speaker_vu_meter", value)
|
||||
}
|
||||
|
||||
@get:WorkerThread @set:WorkerThread
|
||||
var pushNotificationCompatibleDomains: Array<String>
|
||||
get() = config.getStringList("app", "push_notification_domains", arrayOf("sip.linphone.org"))
|
||||
set(value) {
|
||||
config.setStringList("app", "push_notification_domains", value)
|
||||
}
|
||||
|
||||
@get:WorkerThread
|
||||
val defaultDomain: String
|
||||
get() = config.getString("app", "default_domain", "sip.linphone.org")!!
|
||||
|
||||
val pushNotificationCompatibleDomains: Array<String>
|
||||
get() = config.getStringList("app", "push_notification_domains", arrayOf("sip.linphone.org"))
|
||||
|
||||
@get:WorkerThread
|
||||
val darkModeAllowed: Boolean
|
||||
get() = config.getBool("ui", "dark_mode_allowed", true)
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ class SettingsDeveloperFragment : GenericMainFragment() {
|
|||
|
||||
override fun onPause() {
|
||||
viewModel.updateSharingServersUrl()
|
||||
viewModel.updatePushCompatibleDomainsList()
|
||||
|
||||
super.onPause()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -245,6 +245,7 @@ class SettingsViewModel
|
|||
val logsSharingServerUrl = MutableLiveData<String>()
|
||||
val createEndToEndEncryptedConferences = MutableLiveData<Boolean>()
|
||||
val enableVuMeters = MutableLiveData<Boolean>()
|
||||
val pushCompatibleDomainsList = MutableLiveData<String>()
|
||||
|
||||
private val coreListener = object : CoreListenerStub() {
|
||||
@WorkerThread
|
||||
|
|
@ -376,6 +377,19 @@ class SettingsViewModel
|
|||
logsSharingServerUrl.postValue(core.logCollectionUploadServerUrl)
|
||||
createEndToEndEncryptedConferences.postValue(corePreferences.createEndToEndEncryptedMeetingsAndGroupCalls)
|
||||
enableVuMeters.postValue(corePreferences.showMicrophoneAndSpeakerVuMeters)
|
||||
|
||||
val domainsListBuilder = StringBuilder()
|
||||
val domainsArray = corePreferences.pushNotificationCompatibleDomains
|
||||
for (item in domainsArray) {
|
||||
domainsListBuilder.append(item)
|
||||
domainsListBuilder.append(",")
|
||||
}
|
||||
if (domainsListBuilder.isNotEmpty()) {
|
||||
domainsListBuilder.deleteAt(domainsListBuilder.length - 1) // Remove last ','
|
||||
}
|
||||
val domainsList = domainsListBuilder.toString()
|
||||
Log.d("$TAG Computed push compatible domains list is [$domainsList]")
|
||||
pushCompatibleDomainsList.postValue(domainsList)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1160,4 +1174,14 @@ class SettingsViewModel
|
|||
enableVuMeters.postValue(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
@UiThread
|
||||
fun updatePushCompatibleDomainsList() {
|
||||
coreContext.postOnCoreThread { core ->
|
||||
val flatValue = pushCompatibleDomainsList.value.orEmpty().trim()
|
||||
Log.d("$TAG Updating push compatible domains list using user input [$flatValue]")
|
||||
val newList = flatValue.split(",").toTypedArray()
|
||||
corePreferences.pushNotificationCompatibleDomains = newList
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -236,6 +236,41 @@
|
|||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/e2e_encrypted_conferences_switch" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:id="@+id/push_compatible_domains_list_label"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="@string/settings_developer_push_compatible_domains_list_title"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/enable_vu_meters_switch"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatEditText
|
||||
style="@style/default_text_style"
|
||||
android:id="@+id/push_compatible_domains_list"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:text="@={viewModel.pushCompatibleDomainsList}"
|
||||
android:textSize="14sp"
|
||||
android:maxLines="1"
|
||||
android:background="@drawable/edit_text_background"
|
||||
android:inputType="text|textNoSuggestions"
|
||||
android:hint="@string/settings_developer_push_compatible_domains_list_title"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintWidth_max="@dimen/text_input_max_width"
|
||||
app:layout_constraintTop_toBottomOf="@id/push_compatible_domains_list_label"
|
||||
app:layout_constraintStart_toStartOf="@id/push_compatible_domains_list_label"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
|
|
|||
|
|
@ -309,6 +309,7 @@
|
|||
<string name="settings_developer_enabled_toast">Paramètres développeurs activés</string>
|
||||
<string name="settings_developer_already_enabled_toast">Paramètres développeurs déjà activés</string>
|
||||
<string name="settings_developer_enable_vu_meters_title">Activer l\'indicateur des volumes d\'enregistrement et de lecture</string>
|
||||
<string name="settings_developer_push_compatible_domains_list_title">Liste des domaines qui supportent les notifications poussées (séparés par des virgules)</string>
|
||||
|
||||
<!-- Account profile & settings -->
|
||||
<string name="manage_account_title">Mon compte</string>
|
||||
|
|
|
|||
|
|
@ -350,6 +350,7 @@
|
|||
<string name="settings_developer_enabled_toast">Developer settings enabled</string>
|
||||
<string name="settings_developer_already_enabled_toast">Developer settings already enabled</string>
|
||||
<string name="settings_developer_enable_vu_meters_title">Enable record/playback volume vu meters while in call</string>
|
||||
<string name="settings_developer_push_compatible_domains_list_title">List of push notifications compatible domains (comma separated)</string>
|
||||
|
||||
<!-- Account profile & settings -->
|
||||
<string name="manage_account_title">Manage account</string>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue