From 3aa8e49eb9a5e89abdd166f3f0fd3fc528593a18 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 19 May 2021 10:56:25 +0200 Subject: [PATCH] Improved error snack message in case of call error --- .../linphone/activities/main/MainActivity.kt | 4 +-- .../java/org/linphone/core/CoreContext.kt | 30 ++++++++++--------- app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 6 ++-- app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 1 - app/src/main/res/values-zh-rTW/strings.xml | 1 - app/src/main/res/values/strings.xml | 6 ++-- 9 files changed, 26 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/MainActivity.kt b/app/src/main/java/org/linphone/activities/main/MainActivity.kt index ed2b1953b..5fc48438b 100644 --- a/app/src/main/java/org/linphone/activities/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/activities/main/MainActivity.kt @@ -104,8 +104,8 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin }) coreContext.callErrorMessageResourceId.observe(this, { - it.consume { messageResourceId -> - showSnackBar(messageResourceId) + it.consume { message -> + showSnackBar(message) } }) diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index de999b667..d64f5bc7b 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -91,8 +91,8 @@ class CoreContext(val context: Context, coreConfig: Config) { NotificationsManager(context) } - val callErrorMessageResourceId: MutableLiveData> by lazy { - MutableLiveData>() + val callErrorMessageResourceId: MutableLiveData> by lazy { + MutableLiveData>() } private val loggingService = Factory.instance().loggingService @@ -218,21 +218,23 @@ class CoreContext(val context: Context, coreConfig: Config) { } if (state == Call.State.Error) { - Log.w("[Context] Call error reason is ${call.errorInfo.reason}") - val id = when (call.errorInfo.reason) { - Reason.Busy -> R.string.call_error_user_busy - Reason.IOError -> R.string.call_error_io_error - Reason.NotAcceptable -> R.string.call_error_incompatible_media_params - Reason.NotFound -> R.string.call_error_user_not_found - else -> R.string.call_error_unknown + Log.w("[Context] Call error reason is ${call.errorInfo.protocolCode} / ${call.errorInfo.reason} / ${call.errorInfo.phrase}") + val message = when (call.errorInfo.reason) { + Reason.Busy -> context.getString(R.string.call_error_user_busy) + Reason.IOError -> context.getString(R.string.call_error_io_error) + Reason.NotAcceptable -> context.getString(R.string.call_error_incompatible_media_params) + Reason.NotFound -> context.getString(R.string.call_error_user_not_found) + Reason.ServerTimeout -> context.getString(R.string.call_error_server_timeout) + Reason.TemporarilyUnavailable -> context.getString(R.string.call_error_temporarily_unavailable) + else -> context.getString(R.string.call_error_generic).format("${call.errorInfo.protocolCode} / ${call.errorInfo.phrase}") } - callErrorMessageResourceId.value = Event(id) + callErrorMessageResourceId.value = Event(message) } else if (state == Call.State.End && call.dir == Call.Dir.Outgoing && call.errorInfo.reason == Reason.Declined) { Log.i("[Context] Call has been declined") - val id = R.string.call_error_declined - callErrorMessageResourceId.value = Event(id) + val message = context.getString(R.string.call_error_declined) + callErrorMessageResourceId.value = Event(message) } } @@ -461,7 +463,7 @@ class CoreContext(val context: Context, coreConfig: Config) { val address: Address? = core.interpretUrl(stringAddress) if (address == null) { Log.e("[Context] Failed to parse $stringAddress, abort outgoing call") - callErrorMessageResourceId.value = Event(R.string.call_error_network_unreachable) + callErrorMessageResourceId.value = Event(context.getString(R.string.call_error_network_unreachable)) return } @@ -471,7 +473,7 @@ class CoreContext(val context: Context, coreConfig: Config) { fun startCall(address: Address, forceZRTP: Boolean = false) { if (!core.isNetworkReachable) { Log.e("[Context] Network unreachable, abort outgoing call") - callErrorMessageResourceId.value = Event(R.string.call_error_network_unreachable) + callErrorMessageResourceId.value = Event(context.getString(R.string.call_error_network_unreachable)) return } diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index d7f530b0f..b16f7439c 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -349,7 +349,6 @@ Parámetros de medios incompatibles La red es inalcanzable Error de red - Error desconocido Audio Video Codec: diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 7ac7ad769..0ecd5ffee 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -162,8 +162,7 @@ L\'utilisateur est occupé L\'utilisateur n\'a pu être trouvé Le réseau n\'est pas joignable - Erreur réseau - Erreur inconnue + Service indisponible ou erreur réseau Votre interlocuteur souhaite activer la vidéo Audio Appareil photo @@ -598,4 +597,7 @@ Erreur pendant l\'envoi des journaux ! Les journaux ont été néttoyés Rediriger les appels déclinés vers la boîte vocale + Délai d\'attente serveur expiré + Temporairement indisponible + Erreur : %s \ No newline at end of file diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 05acf1837..44ef8e696 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -391,7 +391,6 @@ Biztosan törli ezt a beszélgetést\? Úgy tűnik, hogy nem tudjuk megjeleníteni a fájlt. Bejövő hívás - Ismeretlen hiba Becsült letöltési sávszélesség: A hívott fél szeretné bekapcsolni a videót Dekóder: diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 4871789fa..ab950e925 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -188,7 +188,6 @@ Incompatibele media parameters Netwerk is onbereikbaar Netwerkfout - Onbekende fout Tegenpartij wenst dat u video inschakelt Audio Video diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index ae1783f08..c9a8df45a 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -458,7 +458,6 @@ 不兼容的媒体参数 无法获取网络 网络出错 - 未知错误 音频 视频 编解码器: diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index c87b0a64b..44c2c497c 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -152,7 +152,6 @@ 不兼容的媒體參數 無法連接網路 網路錯誤 - 未知錯誤 音頻 視頻 編解碼器: diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 453c84202..adfdf01b7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -228,8 +228,10 @@ User hasn\'t been found Incompatible media parameters Network is unreachable - Network error - Unknown error + Service unavailable or network error + Server timeout + Temporarily unavailable + Error: %s Correspondent would like to turn the video on