diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/ProfileModeFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/ProfileModeFragment.kt
index 51882d61e..fc3ab2afa 100644
--- a/app/src/main/java/org/linphone/ui/assistant/fragment/ProfileModeFragment.kt
+++ b/app/src/main/java/org/linphone/ui/assistant/fragment/ProfileModeFragment.kt
@@ -27,6 +27,7 @@ import androidx.annotation.UiThread
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import org.linphone.databinding.AssistantSecureModeFragmentBinding
+import org.linphone.utils.DialogUtils
@UiThread
class ProfileModeFragment : Fragment() {
@@ -59,11 +60,13 @@ class ProfileModeFragment : Fragment() {
}
binding.setDefaultModeTooltipClickListener {
- // TODO
+ val dialog = DialogUtils.getAccountModeExplanationDialog(requireActivity(), true)
+ dialog.show()
}
binding.setInteropModeTooltipClickListener {
- // TODO
+ val dialog = DialogUtils.getAccountModeExplanationDialog(requireActivity(), false)
+ dialog.show()
}
}
}
diff --git a/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt b/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt
index bcb76b138..d11dd8e56 100644
--- a/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt
@@ -133,8 +133,10 @@ class AccountModel @WorkerThread constructor(
initials.postValue(LinphoneUtils.getInitials(name))
val pictureUri = account.params.pictureUri.orEmpty()
- avatar.postValue(pictureUri)
- Log.d("$TAG Account picture URI is [$pictureUri]")
+ if (pictureUri != avatar.value) {
+ avatar.postValue(pictureUri)
+ Log.d("$TAG Account picture URI is [$pictureUri]")
+ }
isDefault.postValue(coreContext.core.defaultAccount == account)
diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt
index 2a1ac9ab4..add59a80e 100644
--- a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt
@@ -82,7 +82,7 @@ class AccountProfileFragment : GenericFragment() {
}
binding.setChangeModeClickListener {
- val action = AccountProfileFragmentDirections.actionAccountProfileFragmentToProfileModeFragment()
+ val action = AccountProfileFragmentDirections.actionAccountProfileFragmentToAccountProfileModeFragment()
findNavController().navigate(action)
}
diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileModeFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileModeFragment.kt
new file mode 100644
index 000000000..ff55b9f57
--- /dev/null
+++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileModeFragment.kt
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2010-2023 Belledonne Communications SARL.
+ *
+ * This file is part of linphone-android
+ * (see https://www.linphone.org).
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.linphone.ui.main.settings.fragment
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.UiThread
+import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
+import org.linphone.databinding.AccountProfileSecureModeFragmentBinding
+import org.linphone.utils.DialogUtils
+
+@UiThread
+class AccountProfileModeFragment : Fragment() {
+ companion object {
+ private const val TAG = "[Account Profile Mode Fragment]"
+ }
+
+ private lateinit var binding: AccountProfileSecureModeFragmentBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ binding = AccountProfileSecureModeFragmentBinding.inflate(layoutInflater)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.lifecycleOwner = viewLifecycleOwner
+
+ binding.setBackClickListener {
+ findNavController().popBackStack()
+ }
+
+ binding.setContinueClickListener {
+ findNavController().popBackStack()
+ }
+
+ binding.setDefaultModeTooltipClickListener {
+ val dialog = DialogUtils.getAccountModeExplanationDialog(requireActivity(), true)
+ dialog.show()
+ }
+
+ binding.setInteropModeTooltipClickListener {
+ val dialog = DialogUtils.getAccountModeExplanationDialog(requireActivity(), false)
+ dialog.show()
+ }
+ }
+}
diff --git a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt
index c1e85af3e..02549cc33 100644
--- a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt
@@ -58,7 +58,7 @@ class AccountProfileViewModel @UiThread constructor() : ViewModel() {
account = found
accountModel.postValue(AccountModel(account))
currentMode.postValue(
- "Mode ${AppUtils.getString(R.string.assistant_secure_mode_default_title)}"
+ AppUtils.getString(R.string.manage_account_secure_mode_default_title)
) // TODO FIXME
registerEnabled.postValue(account.params.isRegisterEnabled)
diff --git a/app/src/main/java/org/linphone/utils/DialogUtils.kt b/app/src/main/java/org/linphone/utils/DialogUtils.kt
index 4b0d0fc12..06955a9e6 100644
--- a/app/src/main/java/org/linphone/utils/DialogUtils.kt
+++ b/app/src/main/java/org/linphone/utils/DialogUtils.kt
@@ -32,6 +32,7 @@ import androidx.core.content.ContextCompat
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding
import org.linphone.R
+import org.linphone.databinding.DialogAccountModesExplanationBinding
import org.linphone.databinding.DialogAssistantAcceptConditionsAndPolicyBinding
import org.linphone.databinding.DialogAssistantCreateAccountConfirmPhoneNumberBinding
import org.linphone.databinding.DialogCancelContactChangesBinding
@@ -82,6 +83,28 @@ class DialogUtils {
return getDialog(context, binding)
}
+ @UiThread
+ fun getAccountModeExplanationDialog(
+ context: Context,
+ defaultMode: Boolean
+ ): Dialog {
+ lateinit var dialog: Dialog
+
+ val binding: DialogAccountModesExplanationBinding = DataBindingUtil.inflate(
+ LayoutInflater.from(context),
+ R.layout.dialog_account_modes_explanation,
+ null,
+ false
+ )
+ binding.defaultMode = defaultMode
+ binding.setDismissClickListener {
+ dialog.dismiss()
+ }
+
+ dialog = getDialog(context, binding)
+ return dialog
+ }
+
@UiThread
fun getNumberOrAddressPickerDialog(
context: Context,
diff --git a/app/src/main/res/layout/account_profile_fragment.xml b/app/src/main/res/layout/account_profile_fragment.xml
index 7e6b182c0..455b9fe1f 100644
--- a/app/src/main/res/layout/account_profile_fragment.xml
+++ b/app/src/main/res/layout/account_profile_fragment.xml
@@ -28,6 +28,7 @@
-
@@ -302,7 +303,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="@{viewModel.currentMode, default=@string/assistant_secure_mode_default_title}"
+ android:text="@{viewModel.currentMode, default=@string/manage_account_secure_mode_default_title}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toTopOf="@id/mode_background"
diff --git a/app/src/main/res/layout/account_profile_secure_mode_fragment.xml b/app/src/main/res/layout/account_profile_secure_mode_fragment.xml
new file mode 100644
index 000000000..0bcc7091d
--- /dev/null
+++ b/app/src/main/res/layout/account_profile_secure_mode_fragment.xml
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/assistant_login_fragment.xml b/app/src/main/res/layout/assistant_login_fragment.xml
index 4058fc8ad..6793cd5bb 100644
--- a/app/src/main/res/layout/assistant_login_fragment.xml
+++ b/app/src/main/res/layout/assistant_login_fragment.xml
@@ -28,6 +28,7 @@
-
@@ -121,7 +123,7 @@
android:paddingBottom="21dp"
android:paddingStart="17dp"
android:paddingEnd="17dp"
- android:text="Explication :\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam velit sapien, egestas sit amet dictum eget, condimentum a ligula. "
+ android:text="@string/manage_account_secure_mode_default_summary"
android:textSize="14sp"
android:gravity="center"
app:layout_constraintTop_toBottomOf="@id/default_mode"
@@ -213,7 +215,7 @@
app:layout_constraintEnd_toEndOf="@id/image2"
app:layout_constraintBottom_toBottomOf="@id/image2"/>
-
@@ -253,7 +256,7 @@
android:paddingBottom="21dp"
android:paddingStart="17dp"
android:paddingEnd="17dp"
- android:text="Explication :\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam velit sapien, egestas sit amet dictum eget, condimentum a ligula. "
+ android:text="@string/dialog_account_secure_mode_interoperable_summary"
android:textSize="14sp"
android:gravity="center"
app:layout_constraintTop_toBottomOf="@id/interop_mode"
@@ -266,19 +269,21 @@
android:id="@+id/login"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginTop="138dp"
+ android:layout_marginTop="32dp"
+ android:layout_marginBottom="32dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="@string/dialog_continue"
+ android:text="@string/assistant_secure_mode_finish_account_login"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
android:gravity="center"
android:background="@drawable/primary_button_background"
app:layout_constraintWidth_max="@dimen/button_max_width"
+ app:layout_constraintVertical_bias="1"
app:layout_constraintTop_toBottomOf="@id/interop_mode_summary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/assistant_third_party_sip_account_login_fragment.xml b/app/src/main/res/layout/assistant_third_party_sip_account_login_fragment.xml
index ea1213a32..c9e1d86c4 100644
--- a/app/src/main/res/layout/assistant_third_party_sip_account_login_fragment.xml
+++ b/app/src/main/res/layout/assistant_third_party_sip_account_login_fragment.xml
@@ -16,6 +16,7 @@
diff --git a/app/src/main/res/layout/assistant_third_party_sip_account_warning_fragment.xml b/app/src/main/res/layout/assistant_third_party_sip_account_warning_fragment.xml
index b78be72d6..7f915313b 100644
--- a/app/src/main/res/layout/assistant_third_party_sip_account_warning_fragment.xml
+++ b/app/src/main/res/layout/assistant_third_party_sip_account_warning_fragment.xml
@@ -22,6 +22,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/main_nav_graph.xml b/app/src/main/res/navigation/main_nav_graph.xml
index eb46e8929..284cc7f39 100644
--- a/app/src/main/res/navigation/main_nav_graph.xml
+++ b/app/src/main/res/navigation/main_nav_graph.xml
@@ -41,8 +41,8 @@
android:name="accountIdentity"
app:argType="string" />
+ android:id="@+id/accountProfileModeFragment"
+ android:name="org.linphone.ui.main.settings.fragment.AccountProfileModeFragment"
+ android:label="AccountProfileModeFragment"
+ tools:layout="@layout/account_profile_secure_mode_fragment"/>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 25689c64c..89b7ba198 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -41,6 +41,7 @@
OK
Call
Delete
+ Close
Do not show this dialog anymore
General terms & privacy policy
blah blah blah
@@ -58,6 +59,8 @@
Which canal do you choose?
Do you really want to delete all calls history?
All calls will be deleted of the history
+ Blah
+ Blah
QR code validated!
Invalid QR code!
@@ -89,6 +92,7 @@
You may change that mode later
Default
Interoperable
+ Continue
Default
Manage the profile
@@ -116,6 +120,12 @@
International Prefix
Account settings
Delete account
+ Choose account mode
+ Apply
+ Default mode
+ Interoperable mode
+ Blah
+ Blah
Online
Online on %s