diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index 056fe30d9..0970c3c52 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -74,6 +74,10 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C MutableLiveData>>() } + val redToastToShowEvent: MutableLiveData>> by lazy { + MutableLiveData>>() + } + @SuppressLint("HandlerLeak") private lateinit var coreThread: Handler @@ -90,6 +94,19 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C message: String? ) { Log.i("$TAG Configuring state changed [$status]") + if (status == Config.ConfiguringState.Successful) { + val text = context.getString( + org.linphone.R.string.assistant_qr_code_provisioning_done + ) + greenToastToShowEvent.postValue(Event(Pair(text, org.linphone.R.drawable.smiley))) + } else if (status == Config.ConfiguringState.Failed) { + val text = context.getString( + org.linphone.R.string.assistant_qr_code_provisioning_done + ) + redToastToShowEvent.postValue( + Event(Pair(text, org.linphone.R.drawable.warning_circle)) + ) + } } @WorkerThread diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt index 98c0cc31b..b24142fe7 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/QrCodeScannerFragment.kt @@ -83,16 +83,13 @@ class QrCodeScannerFragment : Fragment() { viewModel.qrCodeFoundEvent.observe(viewLifecycleOwner) { it.consume { isValid -> - if (isValid) { - (requireActivity() as AssistantActivity).showGreenToast( - getString(R.string.toast_assistant_qr_code_valid), - R.drawable.check_fat_fill - ) - } else { + if (!isValid) { (requireActivity() as AssistantActivity).showRedToast( getString(R.string.toast_assistant_qr_code_invalid), R.drawable.warning_circle ) + } else { + requireActivity().finish() } } } diff --git a/app/src/main/java/org/linphone/ui/assistant/viewmodel/QrCodeViewModel.kt b/app/src/main/java/org/linphone/ui/assistant/viewmodel/QrCodeViewModel.kt index c46dd3fc6..5860c4bcf 100644 --- a/app/src/main/java/org/linphone/ui/assistant/viewmodel/QrCodeViewModel.kt +++ b/app/src/main/java/org/linphone/ui/assistant/viewmodel/QrCodeViewModel.kt @@ -47,6 +47,11 @@ class QrCodeViewModel @UiThread constructor() : ViewModel() { val isValidUrl = Patterns.WEB_URL.matcher(result).matches() if (!isValidUrl) { Log.e("$TAG The content of the QR Code doesn't seem to be a valid web URL") + } else { + Log.i("$TAG QR code URL set, restarting the Core") + core.provisioningUri = result + coreContext.core.stop() + coreContext.core.start() } qrCodeFoundEvent.postValue(Event(isValidUrl)) } diff --git a/app/src/main/res/drawable/smiley.xml b/app/src/main/res/drawable/smiley.xml new file mode 100644 index 000000000..c83dbdcfd --- /dev/null +++ b/app/src/main/res/drawable/smiley.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/contacts_list_fragment.xml b/app/src/main/res/layout/contacts_list_fragment.xml index 515f291a8..c844bbd49 100644 --- a/app/src/main/res/layout/contacts_list_fragment.xml +++ b/app/src/main/res/layout/contacts_list_fragment.xml @@ -90,7 +90,7 @@ android:id="@+id/no_contacts_label" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="" + android:text="@string/contacts_list_empty" app:layout_constraintBottom_toTopOf="@id/background" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 155a4b8e5..7282c81c8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -101,6 +101,8 @@ Country name Login Scan QR code + Configuration successfully applied + Remote configuration failed! Use a third party SIP account No account yet? Register