From 4e6eb852e782325895463b88fc571c0bde9a0399 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 26 Apr 2021 11:47:44 +0200 Subject: [PATCH] Moved Send/Reset logs buttons to advanced settings like for iOS --- CHANGELOG.md | 1 + .../activities/main/about/AboutFragment.kt | 16 -------- .../activities/main/about/AboutViewModel.kt | 7 +--- .../fragments/AdvancedSettingsFragment.kt | 19 ++++++++- .../viewmodels/AdvancedSettingsViewModel.kt | 19 ++++++++- .../main/res/layout-land/about_fragment.xml | 37 ------------------ app/src/main/res/layout/about_fragment.xml | 37 ------------------ .../res/layout/settings_advanced_fragment.xml | 39 ++++++++++++++++++- app/src/main/res/values-es/strings.xml | 6 ++- app/src/main/res/values-fr/strings.xml | 8 +++- app/src/main/res/values-zh-rCN/strings.xml | 6 ++- app/src/main/res/values-zh-rTW/strings.xml | 6 ++- app/src/main/res/values/strings.xml | 8 +++- 13 files changed, 104 insertions(+), 105 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 061826c96..bef52e2e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ This version is a full rewrite of the app in kotlin, using modern Android compon - Call history view groups call from the same SIP URI (like linphone-iphone) - Reworked conference (using new linphone-sdk APIs) - Route audio to headset / headphones / bluetooth device automatically when available +- Send logs / Reset logs buttons moved from About page to Advanced Settings like iOS - Improved how Android native contacts are used - Switched to material design for text input fields & switches - Launcher shortcuts can be to either contacts or chat rooms diff --git a/app/src/main/java/org/linphone/activities/main/about/AboutFragment.kt b/app/src/main/java/org/linphone/activities/main/about/AboutFragment.kt index 33e170846..40778a32c 100644 --- a/app/src/main/java/org/linphone/activities/main/about/AboutFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/about/AboutFragment.kt @@ -26,10 +26,8 @@ import android.view.View import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import org.linphone.R -import org.linphone.activities.main.MainActivity import org.linphone.activities.main.fragments.SecureFragment import org.linphone.databinding.AboutFragmentBinding -import org.linphone.utils.AppUtils class AboutFragment : SecureFragment() { private lateinit var viewModel: AboutViewModel @@ -61,19 +59,5 @@ class AboutFragment : SecureFragment() { ) startActivity(browserIntent) } - - viewModel.uploadFinishedEvent.observe(viewLifecycleOwner, { - it.consume { url -> - val clipboard = - requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - val clip = ClipData.newPlainText("Logs url", url) - clipboard.setPrimaryClip(clip) - - val activity = requireActivity() as MainActivity - activity.showSnackBar(R.string.logs_url_copied_to_clipboard) - - AppUtils.shareUploadedLogsUrl(activity, url) - } - }) } } diff --git a/app/src/main/java/org/linphone/activities/main/about/AboutViewModel.kt b/app/src/main/java/org/linphone/activities/main/about/AboutViewModel.kt index b773cc975..2961af522 100644 --- a/app/src/main/java/org/linphone/activities/main/about/AboutViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/about/AboutViewModel.kt @@ -19,14 +19,11 @@ */ package org.linphone.activities.main.about +import androidx.lifecycle.ViewModel import org.linphone.LinphoneApplication.Companion.coreContext -import org.linphone.LinphoneApplication.Companion.corePreferences -import org.linphone.activities.main.viewmodels.LogsUploadViewModel -class AboutViewModel : LogsUploadViewModel() { +class AboutViewModel : ViewModel() { val appVersion: String = coreContext.appVersion val sdkVersion: String = coreContext.sdkVersion - - val showLogsButtons: Boolean = corePreferences.debugLogs } diff --git a/app/src/main/java/org/linphone/activities/main/settings/fragments/AdvancedSettingsFragment.kt b/app/src/main/java/org/linphone/activities/main/settings/fragments/AdvancedSettingsFragment.kt index 2f2e2d835..9723b1652 100644 --- a/app/src/main/java/org/linphone/activities/main/settings/fragments/AdvancedSettingsFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/settings/fragments/AdvancedSettingsFragment.kt @@ -19,8 +19,7 @@ */ package org.linphone.activities.main.settings.fragments -import android.content.ActivityNotFoundException -import android.content.Intent +import android.content.* import android.net.Uri import android.os.Bundle import android.provider.Settings @@ -31,10 +30,12 @@ import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import org.linphone.R import org.linphone.activities.GenericFragment +import org.linphone.activities.main.MainActivity import org.linphone.activities.main.settings.viewmodels.AdvancedSettingsViewModel import org.linphone.core.tools.Log import org.linphone.core.tools.compatibility.DeviceUtils import org.linphone.databinding.SettingsAdvancedFragmentBinding +import org.linphone.utils.AppUtils import org.linphone.utils.PowerManagerUtils class AdvancedSettingsFragment : GenericFragment() { @@ -53,6 +54,20 @@ class AdvancedSettingsFragment : GenericFragment + val clipboard = + requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + val clip = ClipData.newPlainText("Logs url", url) + clipboard.setPrimaryClip(clip) + + val activity = requireActivity() as MainActivity + activity.showSnackBar(R.string.logs_url_copied_to_clipboard) + + AppUtils.shareUploadedLogsUrl(activity, url) + } + }) + viewModel.setNightModeEvent.observe(viewLifecycleOwner, { it.consume { value -> AppCompatDelegate.setDefaultNightMode( diff --git a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AdvancedSettingsViewModel.kt b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AdvancedSettingsViewModel.kt index c0deb5393..012dc5194 100644 --- a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AdvancedSettingsViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AdvancedSettingsViewModel.kt @@ -21,15 +21,20 @@ package org.linphone.activities.main.settings.viewmodels import androidx.lifecycle.MutableLiveData import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.activities.main.settings.SettingListenerStub +import org.linphone.activities.main.viewmodels.LogsUploadViewModel import org.linphone.core.CoreContext import org.linphone.core.Factory import org.linphone.mediastream.Version import org.linphone.utils.AppUtils import org.linphone.utils.Event -class AdvancedSettingsViewModel : GenericSettingsViewModel() { +class AdvancedSettingsViewModel : LogsUploadViewModel() { + protected val prefs = corePreferences + protected val core = coreContext.core + val debugModeListener = object : SettingListenerStub() { override fun onBoolValueChanged(newValue: Boolean) { prefs.debugLogs = newValue @@ -46,6 +51,18 @@ class AdvancedSettingsViewModel : GenericSettingsViewModel() { } val logsServerUrl = MutableLiveData() + val sendDebugLogsListener = object : SettingListenerStub() { + override fun onClicked() { + uploadLogs() + } + } + + val resetDebugLogsListener = object : SettingListenerStub() { + override fun onClicked() { + resetLogs() + } + } + val backgroundModeListener = object : SettingListenerStub() { override fun onBoolValueChanged(newValue: Boolean) { prefs.keepServiceAlive = newValue diff --git a/app/src/main/res/layout-land/about_fragment.xml b/app/src/main/res/layout-land/about_fragment.xml index 496c75218..1e86c4661 100644 --- a/app/src/main/res/layout-land/about_fragment.xml +++ b/app/src/main/res/layout-land/about_fragment.xml @@ -172,47 +172,10 @@ android:layout_height="1dp" android:background="?attr/dividerColor" /> - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/about_fragment.xml b/app/src/main/res/layout/about_fragment.xml index dec2e8ca0..46340435f 100644 --- a/app/src/main/res/layout/about_fragment.xml +++ b/app/src/main/res/layout/about_fragment.xml @@ -176,49 +176,12 @@ android:layout_height="1dp" android:background="?attr/dividerColor" /> - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/settings_advanced_fragment.xml b/app/src/main/res/layout/settings_advanced_fragment.xml index 753ec0536..9dbaa13e9 100644 --- a/app/src/main/res/layout/settings_advanced_fragment.xml +++ b/app/src/main/res/layout/settings_advanced_fragment.xml @@ -65,6 +65,15 @@ android:layout_height="wrap_content" android:orientation="vertical"> + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 2ca0823fb..019223799 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -509,7 +509,7 @@ URL de aprovisionamiento remoto Registra la URL del servidor de carga No edites a menos que sepas lo que estás haciendo! - Android + Android Ajustes de optimización de la batería Ajustes de app Android Nombre de usuario @@ -559,4 +559,8 @@ Estado de envío No se puede abrir el archivo, no hay una apliación disponible para este formato. Los mensajes instantáneos se cifran de extremo a extremo en conversaciones seguras. Es posible mejorar el nivel de seguridad de una conversación autenticando a los participantes. Para ello, llame al contacto y siga el proceso de autenticación. + Enviar registros + + Restablecer registros + \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ee3a5f0d2..f2045383c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -358,7 +358,7 @@ URL de configuration distante URL du serveur de téléchargement des traces Ne changez pas cette valeur sans savoir ce que vous faites ! - Android + Android Paramètres d\'optimisation de la batterie Paramètres de gestion de l\'énergie Paramètres de l\'app Android @@ -580,4 +580,10 @@ Voulez-vous essayer de l\'ouvrir comme texte ou de l\'exporter (en clair) vers une appli tierce si disponible ? Exporter Ouvrir comme texte + Envoyer les traces + + Vider les traces + + Paramètres de deboggage + Autres paramètres \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a2b0616b0..0150cc16b 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -123,7 +123,7 @@ 显示名 双模式下需要 模式 - 安卓 + 安卓 电池优化设置 电源管理设置 主机名 @@ -565,4 +565,8 @@ \@string/contact_delete_one_dialog 撤消通知后标记为已读 + 发送日志 + + 重启日志 + \ No newline at end of file diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index cb586c84f..1d6d2b9da 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -382,9 +382,13 @@ 更改將在下一啟動時應用 遠程配置網址 日誌上傳伺服器網址 - 安卓 + 安卓 電源管理設置 安卓應用設置 + 發送日誌 + + 重啓日誌 + 主機名 端口 啟用雙模式 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 69dcd7c8b..b5ab97422 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -492,12 +492,18 @@ Logs upload server URL Do not edit unless you know what you are doing! - Android + Android Battery optimization settings Power manager settings Android app settings Encrypt everything Once enabled it can\'t be disabled! + Send logs + + Reset logs + + Debug settings + Other settings Hostname