diff --git a/app/src/main/java/org/linphone/ui/assistant/AssistantActivity.kt b/app/src/main/java/org/linphone/ui/assistant/AssistantActivity.kt
index 41b6de5f1..37651a4ce 100644
--- a/app/src/main/java/org/linphone/ui/assistant/AssistantActivity.kt
+++ b/app/src/main/java/org/linphone/ui/assistant/AssistantActivity.kt
@@ -20,8 +20,6 @@
package org.linphone.ui.assistant
import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
import android.view.ViewGroup
import androidx.annotation.DrawableRes
import androidx.annotation.UiThread
@@ -32,8 +30,7 @@ import androidx.lifecycle.lifecycleScope
import org.linphone.LinphoneApplication
import org.linphone.R
import org.linphone.databinding.AssistantActivityBinding
-import org.linphone.databinding.ToastGreenBinding
-import org.linphone.databinding.ToastRedBinding
+import org.linphone.utils.AppUtils
import org.linphone.utils.slideInToastFromTopForDuration
@UiThread
@@ -53,15 +50,7 @@ class AssistantActivity : AppCompatActivity() {
}
fun showGreenToast(message: String, @DrawableRes icon: Int) {
- val greenToast: ToastGreenBinding = DataBindingUtil.inflate(
- LayoutInflater.from(this),
- R.layout.toast_green,
- binding.toastsArea,
- false
- )
- greenToast.message = message
- greenToast.icon = icon
- greenToast.root.visibility = View.GONE
+ val greenToast = AppUtils.getGreenToast(this, binding.toastsArea, message, icon)
binding.toastsArea.addView(greenToast.root)
greenToast.root.slideInToastFromTopForDuration(
@@ -71,15 +60,7 @@ class AssistantActivity : AppCompatActivity() {
}
fun showRedToast(message: String, @DrawableRes icon: Int) {
- val redToast: ToastRedBinding = DataBindingUtil.inflate(
- LayoutInflater.from(this),
- R.layout.toast_red,
- binding.toastsArea,
- false
- )
- redToast.message = message
- redToast.icon = icon
- redToast.root.visibility = View.GONE
+ val redToast = AppUtils.getRedToast(this, binding.toastsArea, message, icon)
binding.toastsArea.addView(redToast.root)
redToast.root.slideInToastFromTopForDuration(
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 477b4db87..d264c285b 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
@@ -84,15 +84,13 @@ class QrCodeScannerFragment : Fragment() {
viewModel.qrCodeFoundEvent.observe(viewLifecycleOwner) {
it.consume { isValid ->
if (isValid) {
- // TODO FIXME: show translated string
(requireActivity() as AssistantActivity).showGreenToast(
- "QR code validated!",
+ getString(R.string.toast_assistant_qr_code_valid),
R.drawable.check_fat_fill
)
} else {
- // TODO FIXME: show translated string
(requireActivity() as AssistantActivity).showRedToast(
- "Invalid QR code!",
+ getString(R.string.toast_assistant_qr_code_invalid),
R.drawable.warning_circle
)
}
diff --git a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountCreationViewModel.kt b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountCreationViewModel.kt
index f2da59699..befb070ad 100644
--- a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountCreationViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountCreationViewModel.kt
@@ -34,6 +34,7 @@ import org.json.JSONException
import org.json.JSONObject
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.LinphoneApplication.Companion.corePreferences
+import org.linphone.R
import org.linphone.core.AccountCreator
import org.linphone.core.AccountCreatorListenerStub
import org.linphone.core.Core
@@ -288,8 +289,10 @@ class AccountCreationViewModel @UiThread constructor() : ViewModel(), CountryPic
if (status == AccountCreator.PhoneNumberStatus.Ok.toInt()) {
val normalizedPhoneNumber = accountCreator.phoneNumber
- // TODO FIXME: use translated string
- val message = "We have sent a verification code on your phone number “$normalizedPhoneNumber”.\n\nPlease enter the verification code below:"
+ val message = coreContext.context.getString(
+ R.string.assistant_account_creation_sms_confirmation_explanation,
+ normalizedPhoneNumber
+ )
confirmationMessage.postValue(message)
Log.i(
diff --git a/app/src/main/java/org/linphone/ui/main/MainActivity.kt b/app/src/main/java/org/linphone/ui/main/MainActivity.kt
index d73b45384..19a34ce08 100644
--- a/app/src/main/java/org/linphone/ui/main/MainActivity.kt
+++ b/app/src/main/java/org/linphone/ui/main/MainActivity.kt
@@ -38,7 +38,7 @@ import androidx.navigation.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.databinding.MainActivityBinding
-import org.linphone.databinding.ToastGreenBinding
+import org.linphone.databinding.ToastBinding
import org.linphone.utils.slideInToastFromTopForDuration
@UiThread
@@ -95,18 +95,19 @@ class MainActivity : AppCompatActivity() {
RECORD_AUDIO_PERMISSION_REQUEST
)
}
+ if (checkSelfPermission(Manifest.permission.MANAGE_OWN_CALLS) != PackageManager.PERMISSION_GRANTED) {
+ requestPermissions(
+ arrayOf(Manifest.permission.MANAGE_OWN_CALLS),
+ MANAGE_OWN_CALLS_PERMISSION_REQUEST
+ )
+ }
+ // TODO FIXME : use compatibility
if (checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(
arrayOf(Manifest.permission.POST_NOTIFICATIONS),
POST_NOTIFICATIONS_PERMISSION_REQUEST
)
}
- if (checkSelfPermission(Manifest.permission.MANAGE_OWN_CALLS) != PackageManager.PERMISSION_GRANTED) {
- requestPermissions(
- arrayOf(Manifest.permission.POST_NOTIFICATIONS),
- MANAGE_OWN_CALLS_PERMISSION_REQUEST
- )
- }
}
override fun onRequestPermissionsResult(
@@ -139,14 +140,16 @@ class MainActivity : AppCompatActivity() {
}
fun showGreenToast(message: String, @DrawableRes icon: Int) {
- val greenToast: ToastGreenBinding = DataBindingUtil.inflate(
+ val greenToast: ToastBinding = DataBindingUtil.inflate(
LayoutInflater.from(this),
- R.layout.toast_green,
+ R.layout.toast,
binding.toastsArea,
false
)
greenToast.message = message
greenToast.icon = icon
+ greenToast.shadowColor = R.drawable.shape_toast_green_shadow
+ greenToast.textColor = R.color.green_online
greenToast.root.visibility = View.GONE
binding.toastsArea.addView(greenToast.root)
diff --git a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallFragment.kt b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallFragment.kt
index 5628e3472..056816af2 100644
--- a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallFragment.kt
@@ -118,9 +118,8 @@ class CallFragment : GenericFragment() {
it.consume {
sharedViewModel.forceRefreshCallLogsListEvent.value = Event(true)
- // TODO FIXME: show translated string
(requireActivity() as MainActivity).showGreenToast(
- "Historique supprimé",
+ getString(R.string.toast_call_history_deleted),
R.drawable.check_fat_fill
)
goBack() // TODO FIXME : issue with tablet when pane can't be closed
@@ -133,9 +132,8 @@ class CallFragment : GenericFragment() {
val label = "SIP address"
clipboard.setPrimaryClip(ClipData.newPlainText(label, value))
- // TODO FIXME: show translated string
(requireActivity() as MainActivity).showGreenToast(
- "Numéro copié dans le presse-papier",
+ getString(R.string.toast_sip_address_copied_to_clipboard),
R.drawable.check_fat_fill
)
}
diff --git a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt
index 1e8846a66..1f1ae4c2a 100644
--- a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt
@@ -160,10 +160,9 @@ class CallsListFragment : GenericFragment() {
listViewModel.historyDeletedEvent.observe(viewLifecycleOwner) {
it.consume {
- Log.w("$TAG Deleting all call history")
- // TODO FIXME: show translated string
+ Log.w("$TAG All call logs have been deleted")
(requireActivity() as MainActivity).showGreenToast(
- "Historique supprimé",
+ getString(R.string.toast_call_history_deleted),
R.drawable.check_fat_fill
)
}
@@ -231,9 +230,8 @@ class CallsListFragment : GenericFragment() {
val label = "SIP address"
clipboard.setPrimaryClip(ClipData.newPlainText(label, value))
- // TODO FIXME: show translated string
(requireActivity() as MainActivity).showGreenToast(
- "Numéro copié dans le presse-papier",
+ getString(R.string.toast_sip_address_copied_to_clipboard),
R.drawable.check_fat_fill
)
}
diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt
index 0eb5f6cfd..438c403dc 100644
--- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt
@@ -212,9 +212,13 @@ class ContactFragment : GenericFragment() {
val label = if (isSip) "SIP address" else "Phone number"
clipboard.setPrimaryClip(ClipData.newPlainText(label, value))
- // TODO FIXME: show translated string
+ val message = if (isSip) {
+ getString(R.string.toast_sip_address_copied_to_clipboard)
+ } else {
+ getString(R.string.toast_phone_number_copied_to_clipboard)
+ }
(requireActivity() as MainActivity).showGreenToast(
- "Numéro copié dans le presse-papier",
+ message,
R.drawable.check_fat_fill
)
}
diff --git a/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt
index ee41b66d3..5eaf879d8 100644
--- a/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt
@@ -24,10 +24,12 @@ import android.net.Uri
import android.provider.ContactsContract
import androidx.annotation.WorkerThread
import androidx.lifecycle.MutableLiveData
+import org.linphone.R
import org.linphone.core.ConsolidatedPresence
import org.linphone.core.Friend
import org.linphone.core.FriendListenerStub
import org.linphone.core.tools.Log
+import org.linphone.utils.AppUtils
import org.linphone.utils.LinphoneUtils
import org.linphone.utils.TimestampUtils
@@ -113,7 +115,7 @@ class ContactAvatarModel @WorkerThread constructor(val friend: Friend) {
val presenceString = when (presence) {
ConsolidatedPresence.Online -> {
- "Online"
+ AppUtils.getString(R.string.friend_presence_status_online)
}
ConsolidatedPresence.Busy -> {
val timestamp = friend.presenceModel?.latestActivityTimestamp ?: -1L
@@ -124,16 +126,20 @@ class ContactAvatarModel @WorkerThread constructor(val friend: Friend) {
timestamp,
timestampInSecs = true
)
- val text = "Online today at"
- "$text $time"
+ AppUtils.getFormattedString(
+ R.string.friend_presence_status_was_online_today_at,
+ time
+ )
}
TimestampUtils.isYesterday(timestamp) -> {
val time = TimestampUtils.timeToString(
timestamp,
timestampInSecs = true
)
- val text = "Online yesterday at"
- "$text $time"
+ AppUtils.getFormattedString(
+ R.string.friend_presence_status_was_online_yesterday_at,
+ time
+ )
}
else -> {
val date = TimestampUtils.toString(
@@ -142,16 +148,18 @@ class ContactAvatarModel @WorkerThread constructor(val friend: Friend) {
shortDate = false,
hideYear = true
)
- val text = "Online on"
- "$text $date"
+ AppUtils.getFormattedString(
+ R.string.friend_presence_status_was_online_on,
+ date
+ )
}
}
} else {
- "Away"
+ AppUtils.getString(R.string.friend_presence_status_away)
}
}
ConsolidatedPresence.DoNotDisturb -> {
- "Do not disturb"
+ AppUtils.getString(R.string.friend_presence_status_do_not_disturb)
}
else -> ""
}
diff --git a/app/src/main/java/org/linphone/ui/main/conversations/ConversationMenuDialogFragment.kt b/app/src/main/java/org/linphone/ui/main/conversations/ConversationMenuDialogFragment.kt
index c970b907f..24ad25cec 100644
--- a/app/src/main/java/org/linphone/ui/main/conversations/ConversationMenuDialogFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/conversations/ConversationMenuDialogFragment.kt
@@ -52,7 +52,6 @@ class ConversationMenuDialogFragment(
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
- // TODO FIXME: use a viewmodel and use core thread
val view = ChatRoomMenuBinding.inflate(layoutInflater)
view.isMuted = chatRoom.muted
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 d83b0e051..aed57118b 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
@@ -24,10 +24,12 @@ import androidx.annotation.UiThread
import androidx.annotation.WorkerThread
import androidx.lifecycle.MutableLiveData
import org.linphone.LinphoneApplication.Companion.coreContext
+import org.linphone.R
import org.linphone.core.Account
import org.linphone.core.AccountListenerStub
import org.linphone.core.RegistrationState
import org.linphone.core.tools.Log
+import org.linphone.utils.AppUtils
import org.linphone.utils.LinphoneUtils
class AccountModel @WorkerThread constructor(
@@ -135,11 +137,21 @@ class AccountModel @WorkerThread constructor(
isDefault.postValue(coreContext.core.defaultAccount == account)
val state = when (account.state) {
- RegistrationState.None, RegistrationState.Cleared -> "Disabled"
- RegistrationState.Progress -> "Connection..."
- RegistrationState.Failed -> "Error"
- RegistrationState.Ok -> "Connected"
- RegistrationState.Refreshing -> "Refreshing"
+ RegistrationState.None, RegistrationState.Cleared -> AppUtils.getString(
+ R.string.drawer_menu_account_connection_status_cleared
+ )
+ RegistrationState.Progress -> AppUtils.getString(
+ R.string.drawer_menu_account_connection_status_progress
+ )
+ RegistrationState.Failed -> AppUtils.getString(
+ R.string.drawer_menu_account_connection_status_failed
+ )
+ RegistrationState.Ok -> AppUtils.getString(
+ R.string.drawer_menu_account_connection_status_connected
+ )
+ RegistrationState.Refreshing -> AppUtils.getString(
+ R.string.drawer_menu_account_connection_status_refreshing
+ )
else -> "${account.state}"
}
diff --git a/app/src/main/java/org/linphone/ui/voip/VoipActivity.kt b/app/src/main/java/org/linphone/ui/voip/VoipActivity.kt
index 6ba630a76..36bd012ff 100644
--- a/app/src/main/java/org/linphone/ui/voip/VoipActivity.kt
+++ b/app/src/main/java/org/linphone/ui/voip/VoipActivity.kt
@@ -20,8 +20,6 @@
package org.linphone.ui.voip
import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
import android.view.ViewGroup
import androidx.annotation.DrawableRes
import androidx.annotation.UiThread
@@ -38,9 +36,6 @@ import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication
import org.linphone.R
import org.linphone.core.tools.Log
-import org.linphone.databinding.ToastBlueBinding
-import org.linphone.databinding.ToastGreenBinding
-import org.linphone.databinding.ToastRedBinding
import org.linphone.databinding.VoipActivityBinding
import org.linphone.ui.voip.fragment.ActiveCallFragmentDirections
import org.linphone.ui.voip.fragment.AudioDevicesMenuDialogFragment
@@ -50,6 +45,7 @@ import org.linphone.ui.voip.model.AudioDeviceModel
import org.linphone.ui.voip.viewmodel.CallsViewModel
import org.linphone.ui.voip.viewmodel.CurrentCallViewModel
import org.linphone.ui.voip.viewmodel.SharedCallViewModel
+import org.linphone.utils.AppUtils
import org.linphone.utils.slideInToastFromTop
import org.linphone.utils.slideInToastFromTopForDuration
@@ -141,12 +137,16 @@ class VoipActivity : AppCompatActivity() {
callsViewModel.showLowSignalEvent.observe(this) {
it.consume { show ->
if (show) {
- // TODO FIXME: show translated string
- showRedToast("Low Wi-Fi signal!", R.drawable.wifi_low)
+ showRedToast(
+ getString(R.string.toast_alert_low_wifi_signal),
+ R.drawable.wifi_low
+ )
} else {
hideRedToast()
- // TODO FIXME: show translated string
- showGreenToast("Wi-Fi signal no longer low", R.drawable.wifi_high)
+ showGreenToast(
+ getString(R.string.toast_alert_low_wifi_signal_cleared),
+ R.drawable.wifi_high
+ )
}
}
}
@@ -159,15 +159,7 @@ class VoipActivity : AppCompatActivity() {
}
fun showBlueToast(message: String, @DrawableRes icon: Int) {
- val blueToast: ToastBlueBinding = DataBindingUtil.inflate(
- LayoutInflater.from(this),
- R.layout.toast_blue,
- binding.toastsArea,
- false
- )
- blueToast.message = message
- blueToast.icon = icon
- blueToast.root.visibility = View.GONE
+ val blueToast = AppUtils.getBlueToast(this, binding.toastsArea, message, icon)
binding.toastsArea.addView(blueToast.root)
blueToast.root.slideInToastFromTopForDuration(
@@ -177,15 +169,7 @@ class VoipActivity : AppCompatActivity() {
}
private fun showRedToast(message: String, @DrawableRes icon: Int) {
- val redToast: ToastRedBinding = DataBindingUtil.inflate(
- LayoutInflater.from(this),
- R.layout.toast_red,
- binding.toastsArea,
- false
- )
- redToast.message = message
- redToast.icon = icon
- redToast.root.visibility = View.GONE
+ val redToast = AppUtils.getRedToast(this, binding.toastsArea, message, icon)
binding.toastsArea.addView(redToast.root)
redToast.root.slideInToastFromTop(
@@ -200,15 +184,7 @@ class VoipActivity : AppCompatActivity() {
}
private fun showGreenToast(message: String, @DrawableRes icon: Int) {
- val greenToast: ToastGreenBinding = DataBindingUtil.inflate(
- LayoutInflater.from(this),
- R.layout.toast_green,
- binding.toastsArea,
- false
- )
- greenToast.message = message
- greenToast.icon = icon
- greenToast.root.visibility = View.GONE
+ val greenToast = AppUtils.getGreenToast(this, binding.toastsArea, message, icon)
binding.toastsArea.addView(greenToast.root)
greenToast.root.slideInToastFromTopForDuration(
diff --git a/app/src/main/java/org/linphone/ui/voip/fragment/ActiveCallFragment.kt b/app/src/main/java/org/linphone/ui/voip/fragment/ActiveCallFragment.kt
index 7ad092934..96f0975c6 100644
--- a/app/src/main/java/org/linphone/ui/voip/fragment/ActiveCallFragment.kt
+++ b/app/src/main/java/org/linphone/ui/voip/fragment/ActiveCallFragment.kt
@@ -111,12 +111,12 @@ class ActiveCallFragment : GenericCallFragment() {
callViewModel.isRemoteDeviceTrusted.observe(viewLifecycleOwner) { trusted ->
if (trusted) {
(requireActivity() as VoipActivity).showBlueToast(
- "This call can be trusted",
+ getString(R.string.toast_call_can_be_trusted),
R.drawable.trusted
)
// TODO: improve
binding.avatar.avatarBorderColor = resources.getColor(
- R.color.trusted_blue,
+ R.color.blue_trusted,
requireContext().theme
)
binding.avatar.avatarBorderWidth = AppUtils.getDimension(
diff --git a/app/src/main/java/org/linphone/utils/AppUtils.kt b/app/src/main/java/org/linphone/utils/AppUtils.kt
index e70e32bb4..c370c1ac1 100644
--- a/app/src/main/java/org/linphone/utils/AppUtils.kt
+++ b/app/src/main/java/org/linphone/utils/AppUtils.kt
@@ -19,14 +19,98 @@
*/
package org.linphone.utils
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
import androidx.annotation.AnyThread
+import androidx.annotation.DimenRes
+import androidx.annotation.DrawableRes
+import androidx.annotation.MainThread
+import androidx.annotation.StringRes
+import androidx.databinding.DataBindingUtil
import org.linphone.LinphoneApplication.Companion.coreContext
+import org.linphone.R
+import org.linphone.databinding.ToastBinding
class AppUtils {
companion object {
@AnyThread
- fun getDimension(id: Int): Float {
+ fun getDimension(@DimenRes id: Int): Float {
return coreContext.context.resources.getDimension(id)
}
+
+ @AnyThread
+ fun getString(@StringRes id: Int): String {
+ return coreContext.context.getString(id)
+ }
+
+ @AnyThread
+ fun getFormattedString(@StringRes id: Int, args: Any): String {
+ return coreContext.context.getString(id, args)
+ }
+
+ @MainThread
+ fun getRedToast(
+ context: Context,
+ parent: ViewGroup,
+ message: String,
+ @DrawableRes icon: Int
+ ): ToastBinding {
+ val redToast: ToastBinding = DataBindingUtil.inflate(
+ LayoutInflater.from(context),
+ R.layout.toast,
+ parent,
+ false
+ )
+ redToast.message = message
+ redToast.icon = icon
+ redToast.shadowColor = R.drawable.shape_toast_red_shadow
+ redToast.textColor = R.color.red_danger
+ redToast.root.visibility = View.GONE
+ return redToast
+ }
+
+ @MainThread
+ fun getGreenToast(
+ context: Context,
+ parent: ViewGroup,
+ message: String,
+ @DrawableRes icon: Int
+ ): ToastBinding {
+ val greenToast: ToastBinding = DataBindingUtil.inflate(
+ LayoutInflater.from(context),
+ R.layout.toast,
+ parent,
+ false
+ )
+ greenToast.message = message
+ greenToast.icon = icon
+ greenToast.shadowColor = R.drawable.shape_toast_green_shadow
+ greenToast.textColor = R.color.green_online
+ greenToast.root.visibility = View.GONE
+ return greenToast
+ }
+
+ @MainThread
+ fun getBlueToast(
+ context: Context,
+ parent: ViewGroup,
+ message: String,
+ @DrawableRes icon: Int
+ ): ToastBinding {
+ val blueToast: ToastBinding = DataBindingUtil.inflate(
+ LayoutInflater.from(context),
+ R.layout.toast,
+ parent,
+ false
+ )
+ blueToast.message = message
+ blueToast.icon = icon
+ blueToast.shadowColor = R.drawable.shape_toast_blue_shadow
+ blueToast.textColor = R.color.blue_trusted
+ blueToast.root.visibility = View.GONE
+ return blueToast
+ }
}
}
diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt
index f33dae9a2..1bf99d394 100644
--- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt
+++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt
@@ -20,6 +20,7 @@
package org.linphone.utils
import android.content.Context
+import android.graphics.PorterDuff
import android.text.Editable
import android.text.TextWatcher
import android.view.LayoutInflater
@@ -31,10 +32,12 @@ import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import android.widget.ImageView
import androidx.annotation.ColorInt
+import androidx.annotation.ColorRes
import androidx.annotation.UiThread
import androidx.appcompat.widget.AppCompatEditText
import androidx.appcompat.widget.AppCompatTextView
import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
@@ -205,6 +208,16 @@ fun ImageView.setPresenceIcon(presence: ConsolidatedPresence?) {
setImageResource(icon)
}
+@BindingAdapter("tint")
+fun ImageView.setTintColor(@ColorRes color: Int) {
+ setColorFilter(ContextCompat.getColor(context, color), PorterDuff.Mode.SRC_IN)
+}
+
+@BindingAdapter("textColor")
+fun AppCompatTextView.setColor(@ColorRes color: Int) {
+ setTextColor(ContextCompat.getColor(context, color))
+}
+
@UiThread
@BindingAdapter("avatarInitials")
fun AvatarView.loadInitials(initials: String?) {
@@ -230,7 +243,7 @@ fun AvatarView.loadAccountAvatar(account: AccountModel?) {
if (account.showTrust.value == true) {
avatarBorderColor =
- resources.getColor(R.color.trusted_blue, context.theme)
+ resources.getColor(R.color.blue_trusted, context.theme)
avatarBorderWidth =
AppUtils.getDimension(R.dimen.avatar_trust_border_width).toInt()
} else {
@@ -251,7 +264,7 @@ fun AvatarView.loadAccountAvatar(account: AccountModel?) {
avatarInitials = account.initials.value.orEmpty()
if (account.showTrust.value == true) {
- avatarBorderColor = resources.getColor(R.color.trusted_blue, context.theme)
+ avatarBorderColor = resources.getColor(R.color.blue_trusted, context.theme)
avatarBorderWidth = AppUtils.getDimension(R.dimen.avatar_trust_border_width).toInt()
} else {
avatarBorderWidth = AppUtils.getDimension(R.dimen.zero).toInt()
@@ -281,7 +294,7 @@ fun AvatarView.loadContactAvatar(contact: ContactAvatarModel?) {
if (contact.showTrust.value == true) {
avatarBorderColor =
- resources.getColor(R.color.trusted_blue, context.theme)
+ resources.getColor(R.color.blue_trusted, context.theme)
avatarBorderWidth =
AppUtils.getDimension(R.dimen.avatar_trust_border_width).toInt()
} else {
diff --git a/app/src/main/res/drawable/shape_toast_blue_shadow.xml b/app/src/main/res/drawable/shape_toast_blue_shadow.xml
index 7a286b6c4..3b7aeac5f 100644
--- a/app/src/main/res/drawable/shape_toast_blue_shadow.xml
+++ b/app/src/main/res/drawable/shape_toast_blue_shadow.xml
@@ -4,7 +4,7 @@
-
-
+
-
diff --git a/app/src/main/res/layout-land/bottom_nav_bar.xml b/app/src/main/res/layout-land/bottom_nav_bar.xml
index 6f674583a..267faf642 100644
--- a/app/src/main/res/layout-land/bottom_nav_bar.xml
+++ b/app/src/main/res/layout-land/bottom_nav_bar.xml
@@ -38,7 +38,7 @@
android:drawablePadding="10dp"
android:drawableTint="@{viewModel.contactsSelected ? @color/primary_color : @color/gray_9, default=@color/gray_9}"
android:onClick="@{onContactsClicked}"
- android:text="Contacts"
+ android:text="@string/bottom_navigation_contacts_label"
android:textStyle="@{viewModel.contactsSelected ? Typeface.BOLD : Typeface.NORMAL}"
app:layout_constraintBottom_toTopOf="@id/calls"
app:layout_constraintStart_toStartOf="parent"
@@ -54,7 +54,7 @@
android:drawableTop="@drawable/phone"
android:drawableTint="@{viewModel.callsSelected ? @color/primary_color : @color/gray_9, default=@color/gray_9}"
android:drawablePadding="10dp"
- android:text="Calls"
+ android:text="@string/bottom_navigation_calls_label"
android:textStyle="@{viewModel.callsSelected ? Typeface.BOLD : Typeface.NORMAL}"
app:layout_constraintBottom_toTopOf="@id/conversations"
app:layout_constraintStart_toStartOf="parent"
@@ -86,7 +86,7 @@
android:drawablePadding="10dp"
android:drawableTint="@{viewModel.conversationsSelected ? @color/primary_color : @color/gray_9, default=@color/gray_9}"
android:onClick="@{onConversationsClicked}"
- android:text="Conversations"
+ android:text="@string/bottom_navigation_conversations_label"
android:textStyle="@{viewModel.conversationsSelected ? Typeface.BOLD : Typeface.NORMAL}"
app:layout_constraintBottom_toTopOf="@id/meetings"
app:layout_constraintStart_toStartOf="parent"
@@ -103,7 +103,7 @@
android:drawableTop="@drawable/users_three"
android:drawablePadding="10dp"
android:drawableTint="@{viewModel.meetingsSelected ? @color/primary_color : @color/gray_9, default=@color/gray_9}"
- android:text="Meetings"
+ android:text="@string/bottom_navigation_meetings_label"
android:textStyle="@{viewModel.meetingsSelected ? Typeface.BOLD : Typeface.NORMAL}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout-land/calls_list_fragment.xml b/app/src/main/res/layout-land/calls_list_fragment.xml
index 520f84902..40fb2f14d 100644
--- a/app/src/main/res/layout-land/calls_list_fragment.xml
+++ b/app/src/main/res/layout-land/calls_list_fragment.xml
@@ -85,7 +85,7 @@
android:id="@+id/no_calls_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="No calls for the moment..."
+ android:text="@string/calls_list_empty_history"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@id/background"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout-land/contacts_list_fragment.xml b/app/src/main/res/layout-land/contacts_list_fragment.xml
index 2b07447c4..697e89678 100644
--- a/app/src/main/res/layout-land/contacts_list_fragment.xml
+++ b/app/src/main/res/layout-land/contacts_list_fragment.xml
@@ -89,7 +89,7 @@
android:id="@+id/no_contacts_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="No contacts for the moment..."
+ android:text="@string/contacts_list_empty"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@id/background"
app:layout_constraintEnd_toEndOf="parent"
@@ -106,7 +106,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
- android:text="Favourites"
+ android:text="@string/contacts_list_favourites_title"
android:drawableEnd="@drawable/caret_up"
android:drawableTint="@color/gray_9"
android:textSize="16sp"
@@ -135,7 +135,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp"
- android:text="All contacts"
+ android:text="@string/contacts_list_all_contacts_title"
android:textSize="16sp"
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/account_list_cell.xml b/app/src/main/res/layout/account_list_cell.xml
index ec490c250..7e13c2109 100644
--- a/app/src/main/res/layout/account_list_cell.xml
+++ b/app/src/main/res/layout/account_list_cell.xml
@@ -82,7 +82,7 @@
android:paddingBottom="4dp"
android:background="@drawable/shape_chip_gray_background"
android:gravity="center"
- android:text="@{model.registrationState, default=`Connected`}"
+ android:text="@{model.registrationState, default=@string/drawer_menu_account_connection_status_connected}"
android:textColor="@{model.isConnected ? @color/green_online : model.inError ? @color/red_danger : @color/gray_1, default=@color/green_online}"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="@id/name"
@@ -94,7 +94,7 @@
android:visibility="@{model.isDefault ? View.VISIBLE : View.GONE}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Default"
+ android:text="@string/drawer_menu_default_account_label"
android:textSize="12sp"
android:gravity="center"
android:drawableStart="@drawable/check_fat_fill"
diff --git a/app/src/main/res/layout/account_popup_menu.xml b/app/src/main/res/layout/account_popup_menu.xml
index 478e7686d..0f366a4c3 100644
--- a/app/src/main/res/layout/account_popup_menu.xml
+++ b/app/src/main/res/layout/account_popup_menu.xml
@@ -22,7 +22,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
- android:text="Manage the profile"
+ android:text="@string/drawer_menu_manage_account"
android:textSize="14sp"
android:textColor="@color/gray_1"
android:drawableStart="@drawable/user_gear"
diff --git a/app/src/main/res/layout/account_profile_fragment.xml b/app/src/main/res/layout/account_profile_fragment.xml
index 3ed0d612b..4c73ef802 100644
--- a/app/src/main/res/layout/account_profile_fragment.xml
+++ b/app/src/main/res/layout/account_profile_fragment.xml
@@ -43,7 +43,7 @@
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:gravity="center_vertical"
- android:text="Account profile"
+ android:text="@string/manage_account_title"
android:textColor="@color/primary_color"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -79,7 +79,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:text="Add a picture"
+ android:text="@string/manage_account_add_picture"
android:textSize="14sp"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintStart_toStartOf="parent"
@@ -92,7 +92,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
- android:text="SIP address"
+ android:text="@string/sip_address"
android:textSize="13sp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintStart_toStartOf="@id/sip_uri"
@@ -127,7 +127,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
- android:text="Display Name"
+ android:text="@string/sip_address_display_name"
android:textSize="13sp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintStart_toStartOf="@id/first_name"
@@ -161,7 +161,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
- android:text="International Prefix"
+ android:text="@string/manage_account_international_prefix"
android:textSize="13sp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintStart_toStartOf="@id/international_prefix"
diff --git a/app/src/main/res/layout/assistant_country_picker_fragment.xml b/app/src/main/res/layout/assistant_country_picker_fragment.xml
index 46e0c4727..da53fc54b 100644
--- a/app/src/main/res/layout/assistant_country_picker_fragment.xml
+++ b/app/src/main/res/layout/assistant_country_picker_fragment.xml
@@ -26,7 +26,7 @@
android:layout_height="match_parent"
android:gravity="center_vertical|center"
android:singleLine="true"
- android:text="Choose your country"/>
+ android:text="@string/assistant_country_picker_title"/>
@@ -39,7 +39,7 @@
android:layout_toLeftOf="@id/clear_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:hint="Country name">
+ android:hint="@string/assistant_country_picker_hint">
diff --git a/app/src/main/res/layout/assistant_login_fragment.xml b/app/src/main/res/layout/assistant_login_fragment.xml
index 9e1bf59d4..db053e78d 100644
--- a/app/src/main/res/layout/assistant_login_fragment.xml
+++ b/app/src/main/res/layout/assistant_login_fragment.xml
@@ -66,7 +66,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:paddingBottom="30dp"
- android:text="Login"
+ android:text="@string/assistant_account_login"
android:textSize="20sp"
android:textColor="@color/white"
app:layout_constraintTop_toTopOf="parent"
@@ -80,7 +80,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:layout_marginEnd="16dp"
- android:text="Username*"
+ android:text="@{@string/username + `*`}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toBottomOf="@id/title"
@@ -100,7 +100,7 @@
android:textColor="@color/gray_9"
android:background="@drawable/edit_text_background"
android:inputType="text"
- android:hint="Username"
+ android:hint="@string/username"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/username_label"
app:layout_constraintStart_toStartOf="parent"
@@ -113,7 +113,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp"
- android:text="Password*"
+ android:text="@{@string/password + `*`}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
@@ -133,7 +133,7 @@
android:textSize="14sp"
android:textColor="@color/gray_9"
android:background="@drawable/edit_text_background"
- android:hint="Password"
+ android:hint="@string/password"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
android:inputType="@{viewModel.showPassword ? InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD, default=textPassword}"
app:layout_constraintTop_toBottomOf="@id/password_label"
@@ -167,7 +167,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="Login"
+ android:text="@string/assistant_account_login"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
android:gravity="center"
@@ -203,7 +203,7 @@
android:layout_marginTop="28dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
- android:text="or"
+ android:text="@string/or"
android:textSize="14sp"
android:textColor="@color/gray_1"
app:layout_constraintStart_toStartOf="parent"
@@ -243,7 +243,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="Scan QR code"
+ android:text="@string/assistant_scan_qr_code"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
android:gravity="center"
@@ -269,7 +269,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="Use third party SIP account"
+ android:text="@string/assistant_login_third_party_sip_account"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
android:gravity="center"
@@ -286,7 +286,7 @@
android:layout_height="wrap_content"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="No account yet?"
+ android:text="@string/assistant_no_account_yet"
android:textSize="14sp"
android:textColor="@color/gray_8"
app:layout_constraintHorizontal_chainStyle="packed"
@@ -308,7 +308,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="Register"
+ android:text="@string/assistant_account_register"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
android:gravity="center"
diff --git a/app/src/main/res/layout/assistant_qr_code_scanner_fragment.xml b/app/src/main/res/layout/assistant_qr_code_scanner_fragment.xml
index a72fab4df..3cb37546b 100644
--- a/app/src/main/res/layout/assistant_qr_code_scanner_fragment.xml
+++ b/app/src/main/res/layout/assistant_qr_code_scanner_fragment.xml
@@ -48,7 +48,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
- android:text="Scan a QR Code"
+ android:text="@string/assistant_scan_qr_code_title"
android:textSize="20sp"
android:textColor="@color/white"
android:gravity="center"
diff --git a/app/src/main/res/layout/assistant_register_confirm_sms_code_fragment.xml b/app/src/main/res/layout/assistant_register_confirm_sms_code_fragment.xml
index 2b8c91094..1ff064f8e 100644
--- a/app/src/main/res/layout/assistant_register_confirm_sms_code_fragment.xml
+++ b/app/src/main/res/layout/assistant_register_confirm_sms_code_fragment.xml
@@ -53,7 +53,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:paddingBottom="30dp"
- android:text="Register"
+ android:text="@string/assistant_account_register"
android:textSize="20sp"
android:textColor="@color/white"
app:layout_constraintTop_toTopOf="parent"
@@ -68,7 +68,7 @@
android:layout_marginTop="100dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="@{viewModel.confirmationMessage, default=`We have sent a verification code on your phone number.\n\nPlease enter the verification code below:`}"
+ android:text="@{viewModel.confirmationMessage, default=@string/assistant_account_creation_sms_confirmation_explanation}"
android:textSize="14sp"
android:textColor="@color/gray_9"
android:gravity="center_horizontal"
@@ -184,7 +184,7 @@
android:paddingBottom="6dp"
android:paddingStart="12dp"
android:paddingEnd="12dp"
- android:text="Wrong number?"
+ android:text="@string/assistant_account_creation_wrong_phone_number"
android:textSize="13sp"
android:textColor="@color/secondary_button_label_color"
android:gravity="center"
diff --git a/app/src/main/res/layout/assistant_register_fragment.xml b/app/src/main/res/layout/assistant_register_fragment.xml
index 148293de8..f86e197b1 100644
--- a/app/src/main/res/layout/assistant_register_fragment.xml
+++ b/app/src/main/res/layout/assistant_register_fragment.xml
@@ -70,7 +70,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:paddingBottom="30dp"
- android:text="Register"
+ android:text="@string/assistant_account_register"
android:textSize="20sp"
android:textColor="@color/white"
app:layout_constraintTop_toTopOf="parent"
@@ -84,7 +84,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="48dp"
android:layout_marginEnd="16dp"
- android:text="Username*"
+ android:text="@{@string/username + `*`}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toBottomOf="@id/title"
@@ -104,7 +104,7 @@
android:textColor="@color/gray_9"
android:background="@{viewModel.usernameError.length() > 0 ? @drawable/shape_edit_text_error_background : @drawable/edit_text_background, default=@drawable/edit_text_background}"
android:inputType="text"
- android:hint="Username"
+ android:hint="@string/username"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/username_label"
app:layout_constraintStart_toStartOf="parent"
@@ -130,7 +130,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp"
- android:text="Phone Number*"
+ android:text="@{@string/phone_number + `*`}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toBottomOf="@id/username_error"
@@ -150,7 +150,7 @@
android:inputType="phone"
android:drawableStart="@drawable/separator"
android:drawablePadding="10dp"
- android:hint="Phone number"
+ android:hint="@string/phone_number"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/phone_number_label"
app:layout_constraintStart_toStartOf="@id/username"
@@ -193,7 +193,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp"
- android:text="Password*"
+ android:text="@{@string/password + `*`}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toBottomOf="@id/phone_number_error"
@@ -212,7 +212,7 @@
android:textSize="14sp"
android:textColor="@color/gray_9"
android:background="@drawable/edit_text_background"
- android:hint="Password"
+ android:hint="@string/password"
android:inputType="@{viewModel.showPassword ? InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD, default=textPassword}"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/password_label"
@@ -244,7 +244,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="Create"
+ android:text="@string/assistant_account_create"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
android:gravity="center"
@@ -261,7 +261,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="34dp"
android:gravity="center"
- android:text="Create an account with your email on:"
+ android:text="@string/assistant_create_account_using_email_on_our_web_platform"
android:textSize="14sp"
android:textColor="@color/gray_8"
app:layout_constraintTop_toBottomOf="@id/create"
@@ -279,7 +279,7 @@
android:paddingBottom="6dp"
android:paddingStart="12dp"
android:paddingEnd="12dp"
- android:text="subscribe.linphone.org"
+ android:text="@string/assistant_web_platform_link"
android:textSize="13sp"
android:textColor="@color/secondary_button_label_color"
android:gravity="center"
@@ -295,7 +295,7 @@
android:layout_height="wrap_content"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="Already an account?"
+ android:text="@string/assistant_already_have_an_account"
android:textSize="14sp"
android:textColor="@color/gray_8"
app:layout_constraintHorizontal_chainStyle="packed"
@@ -317,7 +317,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="Login"
+ android:text="@string/assistant_account_login"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
android:gravity="center"
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 37f1454c3..08fa7ff40 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
@@ -41,7 +41,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
- android:text="Use a third party SIP Account"
+ android:text="@string/assistant_login_third_party_sip_account"
android:textSize="20sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toTopOf="parent"
@@ -56,7 +56,7 @@
android:layout_marginTop="38dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="Username*"
+ android:text="@{@string/username + `*`}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toBottomOf="@id/title"
@@ -76,7 +76,7 @@
android:textColor="@color/gray_9"
android:background="@drawable/edit_text_background"
android:inputType="text"
- android:hint="Username"
+ android:hint="@string/username"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/username_label"
app:layout_constraintStart_toStartOf="parent"
@@ -90,7 +90,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp"
- android:text="Password*"
+ android:text="@{@string/password + `*`}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toBottomOf="@id/username"
@@ -109,7 +109,7 @@
android:textSize="14sp"
android:textColor="@color/gray_9"
android:background="@drawable/edit_text_background"
- android:hint="Password"
+ android:hint="@string/password"
android:inputType="@{viewModel.showPassword ? InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD, default=textPassword}"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/password_label"
@@ -137,7 +137,7 @@
android:layout_marginTop="18dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="Domain*"
+ android:text="@{@string/sip_address_domain + `*`}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toBottomOf="@id/password"
@@ -157,7 +157,7 @@
android:textColor="@color/gray_9"
android:background="@drawable/edit_text_background"
android:inputType="text|textUri"
- android:hint="Domain"
+ android:hint="@string/sip_address_domain"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/domain_label"
app:layout_constraintStart_toStartOf="parent"
@@ -171,7 +171,7 @@
android:layout_marginTop="18dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="Display Name"
+ android:text="@string/sip_address_display_name"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toBottomOf="@id/domain"
@@ -191,7 +191,7 @@
android:textColor="@color/gray_9"
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName"
- android:hint="Display Name"
+ android:hint="@string/sip_address_display_name"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/display_name_label"
app:layout_constraintStart_toStartOf="parent"
@@ -205,7 +205,7 @@
android:layout_marginTop="18dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="Transport*"
+ android:text="@{@string/assistant_sip_account_transport_protocol + `*`}"
android:textSize="13sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toBottomOf="@id/display_name"
@@ -249,7 +249,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="Login"
+ android:text="@string/assistant_account_login"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
android:gravity="center"
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 df9ba1fea..4380054e7 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
@@ -48,7 +48,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
- android:text="Use a third party SIP Account"
+ android:text="@string/assistant_login_third_party_sip_account"
android:textSize="20sp"
android:textColor="@color/gray_9"
app:layout_constraintTop_toTopOf="parent"
@@ -91,7 +91,7 @@
android:layout_marginTop="42dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="Some features require a Linphone account, such as group messaging, video conferences...\n\nThese features are hidden when you register with a third party SIP account.\n\nTo enable it in a commercial projet, please contact us. "
+ android:text="@string/assistant_third_party_sip_account_warning_explanation"
android:textSize="14sp"
android:gravity="center"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
@@ -110,7 +110,7 @@
android:paddingBottom="6dp"
android:paddingStart="12dp"
android:paddingEnd="12dp"
- android:text="linphone.org/contact"
+ android:text="@string/assistant_linphone_contact_us_link"
android:textSize="13sp"
android:textColor="@color/secondary_button_label_color"
android:gravity="center"
@@ -133,7 +133,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="I prefer to create an account"
+ android:text="@string/assistant_third_party_sip_account_create_linphone_account"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
android:gravity="center"
@@ -158,7 +158,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="I understand"
+ android:text="@string/assistant_third_party_sip_account_warning_ok"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
android:gravity="center"
diff --git a/app/src/main/res/layout/bottom_nav_bar.xml b/app/src/main/res/layout/bottom_nav_bar.xml
index c0b4fcbb7..aa4921464 100644
--- a/app/src/main/res/layout/bottom_nav_bar.xml
+++ b/app/src/main/res/layout/bottom_nav_bar.xml
@@ -40,7 +40,7 @@
android:drawableTop="@drawable/address_book"
android:drawablePadding="10dp"
android:drawableTint="@{viewModel.contactsSelected ? @color/primary_color : @color/gray_9, default=@color/gray_9}"
- android:text="Contacts"
+ android:text="@string/bottom_navigation_contacts_label"
android:textStyle="@{viewModel.contactsSelected ? Typeface.BOLD : Typeface.NORMAL}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/calls"
@@ -59,7 +59,7 @@
android:drawableTop="@drawable/phone"
android:drawablePadding="10dp"
android:drawableTint="@{viewModel.callsSelected ? @color/primary_color : @color/gray_9, default=@color/gray_9}"
- android:text="Calls"
+ android:text="@string/bottom_navigation_calls_label"
android:textStyle="@{viewModel.callsSelected ? Typeface.BOLD : Typeface.NORMAL}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/conversations"
@@ -97,7 +97,7 @@
android:drawableTop="@drawable/chat_text"
android:drawablePadding="10dp"
android:drawableTint="@{viewModel.conversationsSelected ? @color/primary_color : @color/gray_9, default=@color/gray_9}"
- android:text="Conversations"
+ android:text="@string/bottom_navigation_conversations_label"
android:textStyle="@{viewModel.conversationsSelected ? Typeface.BOLD : Typeface.NORMAL}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/meetings"
@@ -117,7 +117,7 @@
android:drawableTop="@drawable/users_three"
android:drawablePadding="10dp"
android:drawableTint="@{viewModel.meetingsSelected ? @color/primary_color : @color/gray_9, default=@color/gray_9}"
- android:text="Meetings"
+ android:text="@string/bottom_navigation_meetings_label"
android:textStyle="@{viewModel.meetingsSelected ? Typeface.BOLD : Typeface.NORMAL}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/call_fragment.xml b/app/src/main/res/layout/call_fragment.xml
index 5f8e35ff5..51d6affaa 100644
--- a/app/src/main/res/layout/call_fragment.xml
+++ b/app/src/main/res/layout/call_fragment.xml
@@ -44,7 +44,7 @@
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:gravity="center_vertical"
- android:text="Call history"
+ android:text="@string/call_history_title"
android:textColor="@color/primary_color"
android:textSize="16sp"
app:layout_constraintEnd_toStartOf="@id/menu"
@@ -134,7 +134,7 @@
android:visibility="@{viewModel.callLogModel.avatarModel.presenceStatus == ConsolidatedPresence.Offline ? View.GONE : View.VISIBLE}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@{viewModel.callLogModel.avatarModel.lastPresenceInfo, default=`En ligne`}"
+ android:text="@{viewModel.callLogModel.avatarModel.lastPresenceInfo, default=@string/friend_presence_status_online}"
android:textColor="@{viewModel.callLogModel.avatarModel.presenceStatus == ConsolidatedPresence.Online ? @color/green_online : @color/orange_away, default=@color/green_online}"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -162,7 +162,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:text="Call"
+ android:text="@string/friend_call_action"
android:textSize="14sp"
app:layout_constraintTop_toBottomOf="@id/call"
app:layout_constraintStart_toStartOf="@id/call"
@@ -189,7 +189,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:text="Message"
+ android:text="@string/friend_message_action"
android:textSize="14sp"
app:layout_constraintTop_toBottomOf="@id/chat"
app:layout_constraintStart_toStartOf="@id/chat"
@@ -216,7 +216,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:text="Video Call"
+ android:text="@string/friend_video_call_action"
android:textSize="14sp"
app:layout_constraintTop_toBottomOf="@id/video_call"
app:layout_constraintStart_toStartOf="@id/video_call"
diff --git a/app/src/main/res/layout/call_history_list_cell.xml b/app/src/main/res/layout/call_history_list_cell.xml
index 61bdeb7de..62c6ed419 100644
--- a/app/src/main/res/layout/call_history_list_cell.xml
+++ b/app/src/main/res/layout/call_history_list_cell.xml
@@ -33,7 +33,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
- android:text="@{model.isOutgoing() ? `Appel sortant` : `Appel entrant`, default=`Appel sortant`}"
+ android:text="@{model.isOutgoing() ? @string/call_outgoing : @string/call_incoming, default=@string/call_outgoing}"
android:textSize="14sp"
android:textColor="@color/gray_8"
app:layout_constraintStart_toEndOf="@id/call_status"
@@ -48,7 +48,7 @@
android:layout_marginBottom="16dp"
android:layout_marginStart="5dp"
android:gravity="center"
- android:text="@{model.dateTime, default=`13 aout 2023 | 19:47`}"
+ android:text="@{model.dateTime, default=`August 13th 2023 | 07:47 PM`}"
android:textSize="12sp"
android:textColor="@{model.isSuccessful ? @color/gray_9 : @color/red_danger, default=@color/gray_9}"
app:layout_constraintStart_toEndOf="@id/call_status"
diff --git a/app/src/main/res/layout/call_popup_menu.xml b/app/src/main/res/layout/call_popup_menu.xml
index e65b4dcda..f8824369b 100644
--- a/app/src/main/res/layout/call_popup_menu.xml
+++ b/app/src/main/res/layout/call_popup_menu.xml
@@ -39,7 +39,7 @@
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:gravity="left|center_vertical"
- android:text="Ajouter aux contacts"
+ android:text="@string/menu_add_address_to_contacts"
android:textSize="14sp"
android:textColor="@color/gray_1"
android:drawableStart="@drawable/plus_circle"
@@ -62,7 +62,7 @@
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:gravity="left|center_vertical"
- android:text="Voir le contact"
+ android:text="@string/menu_see_existing_contact"
android:textSize="14sp"
android:textColor="@color/gray_1"
android:drawableStart="@drawable/user_circle"
@@ -83,7 +83,7 @@
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:gravity="left|center_vertical"
- android:text="Copier le numéro"
+ android:text="@string/menu_copy_sip_address"
android:textSize="14sp"
android:textColor="@color/gray_1"
android:drawableStart="@drawable/copy"
@@ -105,7 +105,7 @@
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:gravity="left|center_vertical"
- android:text="Delete all history"
+ android:text="@string/menu_delete_history"
android:textSize="14sp"
android:textColor="@color/red_danger"
android:drawableStart="@drawable/trash_simple"
diff --git a/app/src/main/res/layout/call_start_fragment.xml b/app/src/main/res/layout/call_start_fragment.xml
index 027a1266b..400b529ba 100644
--- a/app/src/main/res/layout/call_start_fragment.xml
+++ b/app/src/main/res/layout/call_start_fragment.xml
@@ -47,7 +47,7 @@
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:gravity="center_vertical"
- android:text="New call"
+ android:text="@string/call_start_title"
android:textColor="@color/primary_color"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -76,7 +76,7 @@
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="@color/gray_9"
- android:hint="Search contact or history call"
+ android:hint="@string/call_start_search_bar_filter_hint"
android:inputType="textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
@@ -150,7 +150,7 @@
android:layout_marginEnd="16dp"
android:drawableEnd="@drawable/caret_right"
android:padding="5dp"
- android:text="Create a group call"
+ android:text="@string/call_start_create_group_call"
android:textColor="@color/black"
android:textSize="16sp"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.GONE : View.VISIBLE}"
@@ -179,7 +179,7 @@
style="@style/default_text_style_800"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:text="No suggestion and no contact for the moment..."
+ android:text="@string/call_start_no_suggestion_nor_contact"
android:textSize="16sp"
android:gravity="center"
android:visibility="@{viewModel.emptyContactsList && viewModel.suggestionsList.size() == 0 ? View.VISIBLE : View.GONE}"
@@ -196,7 +196,7 @@
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:padding="5dp"
- android:text="Contacts"
+ android:text="@string/contacts_list_title"
android:textSize="16sp"
android:visibility="@{viewModel.emptyContactsList ? View.GONE : View.VISIBLE}"
app:layout_constraintVertical_chainStyle="packed"
@@ -234,7 +234,7 @@
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:padding="5dp"
- android:text="Suggestions"
+ android:text="@string/call_start_suggestions_list_title"
android:textSize="16sp"
android:visibility="@{viewModel.suggestionsList.size() == 0 ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/calls_list_fragment.xml b/app/src/main/res/layout/calls_list_fragment.xml
index 63dc048b6..3ebc5bf13 100644
--- a/app/src/main/res/layout/calls_list_fragment.xml
+++ b/app/src/main/res/layout/calls_list_fragment.xml
@@ -85,7 +85,7 @@
android:id="@+id/no_calls_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="No calls for the moment..."
+ android:text="@string/calls_list_empty_history"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@id/background"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/calls_list_long_press_menu.xml b/app/src/main/res/layout/calls_list_long_press_menu.xml
index d03b912f8..79d17c4e2 100644
--- a/app/src/main/res/layout/calls_list_long_press_menu.xml
+++ b/app/src/main/res/layout/calls_list_long_press_menu.xml
@@ -32,7 +32,7 @@
android:visibility="@{contactExists ? View.GONE : View.VISIBLE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:text="Ajouter aux contacts"
+ android:text="@string/menu_add_address_to_contacts"
style="@style/context_menu_action_label_style"
android:background="@drawable/menu_item_background"
android:layout_marginBottom="1dp"
@@ -47,7 +47,7 @@
android:visibility="@{contactExists ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:text="Voir le contact"
+ android:text="@string/menu_see_existing_contact"
style="@style/context_menu_action_label_style"
android:background="@drawable/menu_item_background"
android:layout_marginBottom="1dp"
@@ -61,7 +61,7 @@
android:onClick="@{copyNumberClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:text="Copier le numéro"
+ android:text="@string/menu_copy_sip_address"
style="@style/context_menu_action_label_style"
android:background="@drawable/menu_item_background"
android:layout_marginBottom="1dp"
@@ -75,7 +75,7 @@
android:onClick="@{deleteClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:text="Supprimer"
+ android:text="@string/menu_delete_selected_item"
style="@style/context_menu_danger_action_label_style"
android:background="@drawable/menu_item_background"
android:layout_marginBottom="1dp"
diff --git a/app/src/main/res/layout/calls_list_popup_menu.xml b/app/src/main/res/layout/calls_list_popup_menu.xml
index dd7b4fdc4..6caaf2aa2 100644
--- a/app/src/main/res/layout/calls_list_popup_menu.xml
+++ b/app/src/main/res/layout/calls_list_popup_menu.xml
@@ -22,7 +22,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
- android:text="Delete all history"
+ android:text="@string/menu_delete_history"
android:textSize="14sp"
android:textColor="@color/red_danger"
android:drawableStart="@drawable/trash_simple"
diff --git a/app/src/main/res/layout/contact_device_trust_list_cell.xml b/app/src/main/res/layout/contact_device_trust_list_cell.xml
index 53237df00..08f0da561 100644
--- a/app/src/main/res/layout/contact_device_trust_list_cell.xml
+++ b/app/src/main/res/layout/contact_device_trust_list_cell.xml
@@ -68,7 +68,7 @@
android:gravity="center"
android:drawableStart="@drawable/warning_circle"
android:drawablePadding="8dp"
- android:text="Vérifier l'appareil"
+ android:text="@string/friend_make_call_check_device_trust"
android:textColor="@color/tertiary_button_label_color"
android:textSize="13sp"
android:maxLines="1"
diff --git a/app/src/main/res/layout/contact_fragment.xml b/app/src/main/res/layout/contact_fragment.xml
index aaa2df83b..93e1ca83a 100644
--- a/app/src/main/res/layout/contact_fragment.xml
+++ b/app/src/main/res/layout/contact_fragment.xml
@@ -149,7 +149,7 @@
android:visibility="@{viewModel.contact.presenceStatus == ConsolidatedPresence.Offline ? View.GONE : View.VISIBLE}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@{viewModel.contact.lastPresenceInfo, default=`En ligne`}"
+ android:text="@{viewModel.contact.lastPresenceInfo, default=@string/friend_presence_status_online}"
android:textColor="@{viewModel.contact.presenceStatus == ConsolidatedPresence.Online ? @color/green_online : @color/orange_away, default=@color/green_online}"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -177,7 +177,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:text="Call"
+ android:text="@string/friend_call_action"
android:textSize="14sp"
app:layout_constraintTop_toBottomOf="@id/call"
app:layout_constraintStart_toStartOf="@id/call"
@@ -204,7 +204,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:text="Message"
+ android:text="@string/friend_message_action"
android:textSize="14sp"
app:layout_constraintTop_toBottomOf="@id/chat"
app:layout_constraintStart_toStartOf="@id/chat"
@@ -231,7 +231,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:text="Video Call"
+ android:text="@string/friend_video_call_action"
android:textSize="14sp"
app:layout_constraintTop_toBottomOf="@id/video_call"
app:layout_constraintStart_toStartOf="@id/video_call"
@@ -247,7 +247,7 @@
android:layout_marginStart="26dp"
android:layout_marginEnd="26dp"
android:layout_marginTop="32dp"
- android:text="Numbers & addresses"
+ android:text="@string/contact_details_numbers_and_addresses_title"
android:drawableEnd="@{viewModel.expandNumbersAndAddresses ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="@color/gray_9"
android:textSize="16sp"
@@ -294,7 +294,7 @@
android:layout_marginStart="10dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
- android:text="Company :"
+ android:text="@string/contact_details_company_name"
android:textSize="14sp"
app:layout_constraintStart_toStartOf="@id/info_background"
app:layout_constraintTop_toTopOf="@id/info_background"/>
@@ -323,7 +323,7 @@
android:layout_marginStart="10dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
- android:text="Title :"
+ android:text="@string/contact_details_job_title"
android:textSize="14sp"
app:layout_constraintStart_toStartOf="@id/info_background"
app:layout_constraintTop_toBottomOf="@id/company"/>
@@ -353,7 +353,7 @@
android:layout_marginStart="26dp"
android:layout_marginTop="16dp"
android:padding="5dp"
- android:text="Trust"
+ android:text="@string/contact_details_trust_title"
android:textSize="16sp"
android:drawableEnd="@drawable/question"
android:drawableTint="@color/gray_9"
@@ -399,7 +399,7 @@
android:layout_marginEnd="17dp"
android:layout_marginTop="20dp"
android:textSize="14sp"
- android:text="Nombre d'appareils vérifiés :"
+ android:text="@string/contact_details_trusted_devices_count"
app:layout_constraintStart_toStartOf="@id/trust_background"
app:layout_constraintEnd_toEndOf="@id/trust_background"
app:layout_constraintTop_toTopOf="@id/trust_background" />
@@ -414,7 +414,7 @@
app:trackCornerRadius="50dp"
app:trackThickness="22dp"
app:trackColor="@color/gray_3"
- app:indicatorColor="@color/trusted_blue"
+ app:indicatorColor="@color/blue_trusted"
android:max="100"
android:progress="75"
app:layout_constraintStart_toStartOf="@id/trust_background"
@@ -458,7 +458,7 @@
android:layout_marginStart="26dp"
android:layout_marginEnd="26dp"
android:layout_marginTop="16dp"
- android:text="Other actions"
+ android:text="@string/contact_details_actions_title"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -485,7 +485,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="17dp"
android:layout_marginEnd="17dp"
- android:text="Edit"
+ android:text="@string/contact_details_edit"
android:drawableStart="@drawable/pencil_simple"
android:background="@drawable/action_background"
app:layout_constraintTop_toTopOf="@id/actions_background"
@@ -511,7 +511,7 @@
android:layout_marginStart="17dp"
android:layout_marginEnd="17dp"
android:background="@drawable/action_background"
- android:text="@{viewModel.isFavourite ? `Remove from favourites` : `Add to favourites`, default=`Add to favourites`}"
+ android:text="@{viewModel.isFavourite ? @string/contact_details_remove_from_favourites : @string/contact_details_add_to_favourites, default=@string/contact_details_add_to_favourites}"
android:drawableStart="@{viewModel.isFavourite ? @drawable/heart_fill : @drawable/heart, default=@drawable/heart_fill}"
android:drawableTint="@{viewModel.isFavourite ? @color/red_danger : @color/gray_1, default=@color/gray_1}"
app:layout_constraintTop_toBottomOf="@id/action_edit"
@@ -537,7 +537,7 @@
android:layout_marginStart="17dp"
android:layout_marginEnd="17dp"
android:background="@drawable/action_background"
- android:text="Share"
+ android:text="@string/contact_details_share"
android:drawableStart="@drawable/share_network"
app:layout_constraintTop_toBottomOf="@id/action_favorite"
app:layout_constraintStart_toStartOf="parent"
@@ -562,7 +562,7 @@
android:layout_marginStart="17dp"
android:layout_marginEnd="17dp"
android:background="@drawable/action_background"
- android:text="Delete"
+ android:text="@string/contact_details_delete"
android:drawableStart="@drawable/trash_simple"
app:layout_constraintTop_toBottomOf="@id/action_share"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/contact_new_or_edit_cell.xml b/app/src/main/res/layout/contact_new_or_edit_cell.xml
index e46aeef2b..664d6540f 100644
--- a/app/src/main/res/layout/contact_new_or_edit_cell.xml
+++ b/app/src/main/res/layout/contact_new_or_edit_cell.xml
@@ -22,7 +22,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:text="@{model.isSip ? `SIP address` : `Phone number`, default=`SIP address`}"
+ android:text="@{model.isSip ? @string/sip_address : @string/phone_number, default=@string/sip_address}"
android:textSize="13sp"
app:layout_constraintStart_toStartOf="@id/field"
app:layout_constraintTop_toTopOf="parent"/>
diff --git a/app/src/main/res/layout/contact_new_or_edit_fragment.xml b/app/src/main/res/layout/contact_new_or_edit_fragment.xml
index f9c5dc5e9..8b96c8909 100644
--- a/app/src/main/res/layout/contact_new_or_edit_fragment.xml
+++ b/app/src/main/res/layout/contact_new_or_edit_fragment.xml
@@ -43,7 +43,7 @@
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:gravity="center_vertical"
- android:text="@{viewModel.isEdit ? `Edit contact` : `New contact`, default=`New contact`}"
+ android:text="@{viewModel.isEdit ? @string/contact_edit_title : @string/contact_new_title, default=@string/contact_new_title}"
android:textColor="@color/primary_color"
android:textSize="16sp"
app:layout_constraintEnd_toStartOf="@id/save"
@@ -107,7 +107,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:text="Add a picture"
+ android:text="@string/manage_account_add_picture"
android:textSize="14sp"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintStart_toStartOf="parent"
@@ -120,7 +120,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
- android:text="First Name"
+ android:text="@string/contact_editor_first_name"
android:textSize="13sp"
app:layout_constraintStart_toStartOf="@id/first_name"
app:layout_constraintTop_toBottomOf="@id/add_picture_label"/>
@@ -153,7 +153,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
- android:text="Last Name"
+ android:text="@string/contact_editor_last_name"
android:textSize="13sp"
app:layout_constraintStart_toStartOf="@id/last_name"
app:layout_constraintTop_toBottomOf="@id/first_name"/>
@@ -212,7 +212,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
- android:text="Company"
+ android:text="@string/contact_editor_company"
android:textSize="13sp"
app:layout_constraintStart_toStartOf="@id/company"
app:layout_constraintTop_toBottomOf="@id/phone_numbers"/>
@@ -245,7 +245,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
- android:text="Job"
+ android:text="@string/contact_editor_job_title"
android:textSize="13sp"
app:layout_constraintStart_toStartOf="@id/job_title"
app:layout_constraintTop_toBottomOf="@id/company"/>
diff --git a/app/src/main/res/layout/contact_number_address_list_cell.xml b/app/src/main/res/layout/contact_number_address_list_cell.xml
index 8725a9f5c..1f34d43bc 100644
--- a/app/src/main/res/layout/contact_number_address_list_cell.xml
+++ b/app/src/main/res/layout/contact_number_address_list_cell.xml
@@ -26,7 +26,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
- android:text="@{model.sip ? `SIP address` : model.label.length() > 0 ? `Phone (` + model.label + `)` : `Phone`, default=`Phone (Home)`}"
+ android:text="@{model.sip ? @string/sip_address : model.label.length() > 0 ? @string/phone_number + ` (` + model.label + `)` : @string/phone_number, default=`Phone number (Home)`}"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
diff --git a/app/src/main/res/layout/contact_number_or_address_long_press_menu.xml b/app/src/main/res/layout/contact_number_or_address_long_press_menu.xml
index 7a5387292..71c1c86c1 100644
--- a/app/src/main/res/layout/contact_number_or_address_long_press_menu.xml
+++ b/app/src/main/res/layout/contact_number_or_address_long_press_menu.xml
@@ -29,7 +29,7 @@
android:id="@+id/copy"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:text="Copier le numéro"
+ android:text="@string/menu_copy_sip_address"
android:background="@drawable/menu_item_background"
android:layout_marginBottom="1dp"
android:drawableStart="@drawable/copy"
@@ -44,7 +44,7 @@
android:id="@+id/invite"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:text="Inviter"
+ android:text="@string/menu_invite"
android:background="@drawable/menu_item_background"
android:layout_marginBottom="1dp"
android:drawableStart="@drawable/qr_code"
diff --git a/app/src/main/res/layout/contacts_list_fragment.xml b/app/src/main/res/layout/contacts_list_fragment.xml
index 336c25d96..2b84130c8 100644
--- a/app/src/main/res/layout/contacts_list_fragment.xml
+++ b/app/src/main/res/layout/contacts_list_fragment.xml
@@ -79,7 +79,7 @@
android:id="@+id/no_contacts_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="No contacts for the moment..."
+ android:text=""
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@id/background"
app:layout_constraintEnd_toEndOf="parent"
@@ -97,7 +97,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="15dp"
- android:text="Favourites"
+ android:text="@string/contacts_list_favourites_title"
android:drawableEnd="@{viewModel.showFavourites ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="@color/gray_9"
android:textSize="16sp"
@@ -127,7 +127,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
- android:text="All contacts"
+ android:text="@string/contacts_list_all_contacts_title"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/contacts_list_long_press_menu.xml b/app/src/main/res/layout/contacts_list_long_press_menu.xml
index 5c9ecd925..16951ede1 100644
--- a/app/src/main/res/layout/contacts_list_long_press_menu.xml
+++ b/app/src/main/res/layout/contacts_list_long_press_menu.xml
@@ -34,7 +34,7 @@
android:layout_height="wrap_content"
android:layout_marginBottom="1dp"
android:background="@drawable/menu_item_background"
- android:text="@{isFavourite ? `Remove from favourites` : `Add to favourites`, default=`Add to favourites`}"
+ android:text="@{isFavourite ? @string/contact_details_remove_from_favourites : @string/contact_details_add_to_favourites, default=@string/contact_details_add_to_favourites}"
android:drawableStart="@{isFavourite ? @drawable/heart_fill : @drawable/heart, default=@drawable/heart_fill}"
android:drawableTint="@{isFavourite ? @color/red_danger : @color/gray_1, default=@color/gray_1}"
app:layout_constraintBottom_toTopOf="@id/share"
@@ -46,7 +46,7 @@
android:onClick="@{shareClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:text="Partager"
+ android:text="@string/contact_details_share"
style="@style/context_menu_action_label_style"
android:background="@drawable/menu_item_background"
android:layout_marginBottom="1dp"
@@ -60,7 +60,7 @@
android:onClick="@{deleteClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:text="Supprimer"
+ android:text="@string/contact_details_delete"
style="@style/context_menu_danger_action_label_style"
android:background="@drawable/menu_item_background"
android:layout_marginBottom="1dp"
diff --git a/app/src/main/res/layout/dialog_assistant_accept_conditions_and_policy.xml b/app/src/main/res/layout/dialog_assistant_accept_conditions_and_policy.xml
index 2760cb085..3e002d22e 100644
--- a/app/src/main/res/layout/dialog_assistant_accept_conditions_and_policy.xml
+++ b/app/src/main/res/layout/dialog_assistant_accept_conditions_and_policy.xml
@@ -48,7 +48,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:paddingTop="@dimen/dialog_top_bottom_margin"
- android:text="Conditions de service"
+ android:text="@string/dialog_general_terms_and_privacy_policy_title"
android:textSize="16sp"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@id/message"
@@ -64,7 +64,7 @@
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_marginTop="10dp"
- android:text="@{viewModel.message, default=`En continuant, vous notre politique de confidentialité et nos conditions d'utilisation.`}"
+ android:text="@{viewModel.message, default=@string/dialog_general_terms_and_privacy_policy_message}"
android:textSize="14sp"
android:autoLink="web"
app:layout_constraintBottom_toTopOf="@id/cancel"
@@ -85,7 +85,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/secondary_button_background"
- android:text="Deny"
+ android:text="@string/dialog_deny"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -106,7 +106,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/primary_button_background"
- android:text="Accept"
+ android:text="@string/dialog_accept"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
diff --git a/app/src/main/res/layout/dialog_assistant_create_account_confirm_phone_number.xml b/app/src/main/res/layout/dialog_assistant_create_account_confirm_phone_number.xml
index 1727415dd..1fbc3f70a 100644
--- a/app/src/main/res/layout/dialog_assistant_create_account_confirm_phone_number.xml
+++ b/app/src/main/res/layout/dialog_assistant_create_account_confirm_phone_number.xml
@@ -46,7 +46,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:paddingTop="@dimen/dialog_top_bottom_margin"
- android:text="Confirm phone number"
+ android:text="@string/dialog_confirm_phone_number_title"
android:textSize="16sp"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@id/message"
@@ -62,7 +62,7 @@
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_marginTop="10dp"
- android:text="@{viewModel.message, default=`Are you sure you want to use this phone number?`}"
+ android:text="@{viewModel.message, default=@string/dialog_confirm_phone_number_message}"
android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@id/cancel"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -82,7 +82,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/secondary_button_background"
- android:text="Cancel"
+ android:text="@string/dialog_cancel"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -103,7 +103,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/primary_button_background"
- android:text="Continue"
+ android:text="@string/dialog_continue"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
diff --git a/app/src/main/res/layout/dialog_cancel_contact_changes.xml b/app/src/main/res/layout/dialog_cancel_contact_changes.xml
index f6f05ca62..a5cd92f61 100644
--- a/app/src/main/res/layout/dialog_cancel_contact_changes.xml
+++ b/app/src/main/res/layout/dialog_cancel_contact_changes.xml
@@ -47,7 +47,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:paddingTop="@dimen/dialog_top_bottom_margin"
- android:text="Don't save changes?"
+ android:text="@string/dialog_contact_new_or_edit_abort_confirmation_title"
android:textSize="16sp"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@id/message"
@@ -63,7 +63,7 @@
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_marginTop="10dp"
- android:text="All changes will be lost"
+ android:text="@string/dialog_contact_new_or_edit_abort_confirmation_message"
android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@id/cancel"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -83,7 +83,7 @@
android:paddingTop="13dp"
android:gravity="center"
android:background="@drawable/secondary_button_background"
- android:text="Cancel"
+ android:text="@string/dialog_cancel"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -104,7 +104,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/primary_button_background"
- android:text="Ok"
+ android:text="@string/dialog_ok"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
diff --git a/app/src/main/res/layout/dialog_confirm_zrtp_sas.xml b/app/src/main/res/layout/dialog_confirm_zrtp_sas.xml
index 5506761c2..618eac29a 100644
--- a/app/src/main/res/layout/dialog_confirm_zrtp_sas.xml
+++ b/app/src/main/res/layout/dialog_confirm_zrtp_sas.xml
@@ -48,7 +48,7 @@
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:paddingTop="@dimen/dialog_top_bottom_margin"
- android:text="Vérifiez l'appareil"
+ android:text="@string/dialog_zrtp_validate_trust_title"
android:textSize="16sp"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@id/message"
@@ -64,7 +64,7 @@
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_marginTop="10dp"
- android:text="@{viewModel.message}"
+ android:text="@{viewModel.message, default=@string/dialog_zrtp_validate_trust_message}"
android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@id/letters_1"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -168,7 +168,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/shape_red_outlined_button_background"
- android:text="Letters don't match!"
+ android:text="@string/dialog_zrtp_validate_trust_letters_do_not_match"
android:textSize="18sp"
android:textColor="@color/red_danger"
app:layout_constraintStart_toStartOf="@id/dialog_background"
diff --git a/app/src/main/res/layout/dialog_contact_confirm_trust_call.xml b/app/src/main/res/layout/dialog_contact_confirm_trust_call.xml
index 252605b87..6a325e79e 100644
--- a/app/src/main/res/layout/dialog_contact_confirm_trust_call.xml
+++ b/app/src/main/res/layout/dialog_contact_confirm_trust_call.xml
@@ -46,7 +46,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:paddingTop="@dimen/dialog_top_bottom_margin"
- android:text="Increase trust level"
+ android:text="@string/dialog_contact_increase_trust_level_title"
android:textSize="16sp"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@id/message"
@@ -62,7 +62,7 @@
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_marginTop="10dp"
- android:text="@{viewModel.message, default=`You're about to make a call to %s's device %s.\nDo you want to make the call?`}"
+ android:text="@{viewModel.message, default=@string/dialog_contact_increase_trust_level_message}"
android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@id/cancel"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -82,7 +82,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/secondary_button_background"
- android:text="Cancel"
+ android:text="@string/dialog_cancel"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -103,7 +103,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/primary_button_background"
- android:text="Call"
+ android:text="@string/dialog_call"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -119,7 +119,7 @@
android:layout_marginTop="16dp"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
- android:text="Don't show this dialog anymore"
+ android:text="@string/dialog_do_not_show_anymore"
android:textSize="14sp"
android:checked="@={viewModel.doNotShowAnymore}"
app:buttonTint="@color/primary_color"
diff --git a/app/src/main/res/layout/dialog_contact_trust_process.xml b/app/src/main/res/layout/dialog_contact_trust_process.xml
index 2acdc75d5..2a3198141 100644
--- a/app/src/main/res/layout/dialog_contact_trust_process.xml
+++ b/app/src/main/res/layout/dialog_contact_trust_process.xml
@@ -46,7 +46,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:paddingTop="@dimen/dialog_top_bottom_margin"
- android:text="What does it mean?"
+ android:text="@string/dialog_contact_devices_trust_help_title"
android:textSize="16sp"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@id/message"
@@ -62,7 +62,7 @@
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_marginTop="10dp"
- android:text="Lorem ipsum dolot sit amet"
+ android:text="@string/dialog_contact_devices_trust_help_message"
android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@id/confirm"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -82,7 +82,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/primary_button_background"
- android:text="Ok"
+ android:text="@string/dialog_ok"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
diff --git a/app/src/main/res/layout/dialog_number_address_list_cell.xml b/app/src/main/res/layout/dialog_number_address_list_cell.xml
index 15de1bcb2..e84846a4d 100644
--- a/app/src/main/res/layout/dialog_number_address_list_cell.xml
+++ b/app/src/main/res/layout/dialog_number_address_list_cell.xml
@@ -25,7 +25,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
- android:text="@{model.sip ? `SIP address` : model.label.length() > 0 ? `Phone (` + model.label + `)` : `Phone`, default=`Phone (Home)`}"
+ android:text="@{model.sip ? @string/sip_address : model.label.length() > 0 ? @string/phone_number + ` (` + model.label + `)` : @string/phone_number, default=`Phone number (Home)`}"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
diff --git a/app/src/main/res/layout/dialog_pick_number_or_address.xml b/app/src/main/res/layout/dialog_pick_number_or_address.xml
index ec531041a..42ef53022 100644
--- a/app/src/main/res/layout/dialog_pick_number_or_address.xml
+++ b/app/src/main/res/layout/dialog_pick_number_or_address.xml
@@ -47,7 +47,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:paddingTop="@dimen/dialog_top_bottom_margin"
- android:text="Which canal do you choose?"
+ android:text="@string/dialog_pick_phone_number_or_sip_address_title"
android:textSize="16sp"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@id/numbers_and_addresses"
diff --git a/app/src/main/res/layout/dialog_remove_all_call_logs.xml b/app/src/main/res/layout/dialog_remove_all_call_logs.xml
index 4c3c8c2d6..427acda6e 100644
--- a/app/src/main/res/layout/dialog_remove_all_call_logs.xml
+++ b/app/src/main/res/layout/dialog_remove_all_call_logs.xml
@@ -47,7 +47,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:paddingTop="@dimen/dialog_top_bottom_margin"
- android:text="Do you really want to delete all calls history?"
+ android:text="@string/dialog_delete_all_call_logs_title"
android:textSize="16sp"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@id/message"
@@ -63,7 +63,7 @@
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_marginTop="10dp"
- android:text="All calls will be deleted of the history"
+ android:text="@string/dialog_delete_all_call_logs_message"
android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@id/cancel"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -83,7 +83,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/secondary_button_background"
- android:text="Cancel"
+ android:text="@string/dialog_cancel"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
@@ -104,7 +104,7 @@
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:gravity="center"
android:background="@drawable/primary_button_background"
- android:text="Ok"
+ android:text="@string/dialog_delete"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
app:layout_constraintStart_toStartOf="@id/dialog_background"
diff --git a/app/src/main/res/layout/drawer_menu.xml b/app/src/main/res/layout/drawer_menu.xml
index 243b0c794..351dbb330 100644
--- a/app/src/main/res/layout/drawer_menu.xml
+++ b/app/src/main/res/layout/drawer_menu.xml
@@ -80,7 +80,7 @@
style="@style/default_text_style"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:text="No account configured yet" />
+ android:text="@string/drawer_menu_no_account_configured_yet" />
@@ -99,7 +99,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="Add an account"
+ android:text="@string/drawer_menu_add_account"
android:textSize="18sp"
android:textColor="@color/secondary_button_label_color"
android:gravity="center"
@@ -133,7 +133,7 @@
android:layout_marginBottom="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="Settings"
+ android:text="@string/settings_title"
android:textSize="13sp"
android:drawableStart="@drawable/gear"
android:drawableEnd="@drawable/caret_right"
@@ -152,7 +152,7 @@
android:layout_marginBottom="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="Recordings"
+ android:text="@string/recordings_title"
android:textSize="13sp"
android:drawableStart="@drawable/recordings"
android:drawableEnd="@drawable/caret_right"
@@ -171,7 +171,7 @@
android:layout_marginBottom="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:text="Help"
+ android:text="@string/help_title"
android:textSize="13sp"
android:drawableStart="@drawable/question"
android:drawableEnd="@drawable/caret_right"
diff --git a/app/src/main/res/layout/help_fragment.xml b/app/src/main/res/layout/help_fragment.xml
index 365216a88..4f9b12fb6 100644
--- a/app/src/main/res/layout/help_fragment.xml
+++ b/app/src/main/res/layout/help_fragment.xml
@@ -37,7 +37,7 @@
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:gravity="center_vertical"
- android:text="Help"
+ android:text="@string/help_title"
android:textColor="@color/primary_color"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/operation_in_progress.xml b/app/src/main/res/layout/operation_in_progress.xml
index 4a76dab1c..95817220b 100644
--- a/app/src/main/res/layout/operation_in_progress.xml
+++ b/app/src/main/res/layout/operation_in_progress.xml
@@ -27,7 +27,7 @@
style="@style/default_text_style_800"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Operation in progress, please wait"
+ android:text="@string/operation_in_progress_overlay"
android:textColor="@color/primary_color"
android:textSize="18sp"
android:layout_below="@id/progress"
diff --git a/app/src/main/res/layout/recordings_fragment.xml b/app/src/main/res/layout/recordings_fragment.xml
index 5937a585b..e3ec7f622 100644
--- a/app/src/main/res/layout/recordings_fragment.xml
+++ b/app/src/main/res/layout/recordings_fragment.xml
@@ -37,7 +37,7 @@
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:gravity="center_vertical"
- android:text="Recordings"
+ android:text="@string/recordings_title"
android:textColor="@color/primary_color"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/settings_fragment.xml b/app/src/main/res/layout/settings_fragment.xml
index b7e639ae5..159772c0c 100644
--- a/app/src/main/res/layout/settings_fragment.xml
+++ b/app/src/main/res/layout/settings_fragment.xml
@@ -37,7 +37,7 @@
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:gravity="center_vertical"
- android:text="Settings"
+ android:text="@string/settings_title"
android:textColor="@color/primary_color"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/toast_blue.xml b/app/src/main/res/layout/toast.xml
similarity index 84%
rename from app/src/main/res/layout/toast_blue.xml
rename to app/src/main/res/layout/toast.xml
index 51d464ab8..cad136366 100644
--- a/app/src/main/res/layout/toast_blue.xml
+++ b/app/src/main/res/layout/toast.xml
@@ -12,6 +12,12 @@
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/toast_red.xml b/app/src/main/res/layout/toast_red.xml
deleted file mode 100644
index a2bdff942..000000000
--- a/app/src/main/res/layout/toast_red.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/voip_active_call_fragment.xml b/app/src/main/res/layout/voip_active_call_fragment.xml
index ff5518735..8d7d52077 100644
--- a/app/src/main/res/layout/voip_active_call_fragment.xml
+++ b/app/src/main/res/layout/voip_active_call_fragment.xml
@@ -40,7 +40,7 @@
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:visibility="@{viewModel.fullScreenMode ? View.GONE : View.VISIBLE}"
- android:text="@{viewModel.isOutgoing ? `Outgoing call` : `Incoming call`, default=`Outgoing call`}"
+ android:text="@{viewModel.isOutgoing ? @string/call_outgoing : @string/call_incoming, default=@string/call_outgoing}"
android:textColor="@color/white"
android:textSize="16sp"
app:layout_constraintStart_toEndOf="@id/call_direction_icon"
diff --git a/app/src/main/res/layout/voip_incoming_call_fragment.xml b/app/src/main/res/layout/voip_incoming_call_fragment.xml
index 3d65e54a1..b7b08e61e 100644
--- a/app/src/main/res/layout/voip_incoming_call_fragment.xml
+++ b/app/src/main/res/layout/voip_incoming_call_fragment.xml
@@ -34,7 +34,7 @@
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
- android:text="Incoming call"
+ android:text="@string/call_incoming"
android:textColor="@color/white"
android:textSize="16sp"
app:layout_constraintStart_toEndOf="@id/call_direction_icon"
diff --git a/app/src/main/res/layout/voip_outgoing_call_fragment.xml b/app/src/main/res/layout/voip_outgoing_call_fragment.xml
index f6606fb6a..1f6d07e24 100644
--- a/app/src/main/res/layout/voip_outgoing_call_fragment.xml
+++ b/app/src/main/res/layout/voip_outgoing_call_fragment.xml
@@ -34,7 +34,7 @@
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
- android:text="Outgoing call"
+ android:text="@string/call_outgoing"
android:textColor="@color/white"
android:textSize="16sp"
app:layout_constraintStart_toEndOf="@id/call_direction_icon"
diff --git a/app/src/main/res/layout/welcome_activity.xml b/app/src/main/res/layout/welcome_activity.xml
index a540ad1c3..81eebe6c2 100644
--- a/app/src/main/res/layout/welcome_activity.xml
+++ b/app/src/main/res/layout/welcome_activity.xml
@@ -79,7 +79,7 @@
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="20dp"
android:paddingEnd="20dp"
- android:text="Next"
+ android:text="@string/next"
android:textSize="18sp"
android:textColor="@color/primary_button_label_color"
android:gravity="center"
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 4046720a6..59bfcfd93 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -13,7 +13,7 @@
#09C5F4
#DFECF2
#F4F4F7
- #4AA8FF
+ #4AA8FF
#FFA645
#E1E1E1
#FFEACB
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4438d2d9f..9b6457779 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -7,19 +7,162 @@
Linphone
- |
-
+ |
+ subscribe.linphone.org
+ linphone.org/contact
linphone_notification_call_id
- &appName; incoming calls notifications
linphone_notification_service_id
+
+ SIP address
+ Display name
+ Domain
+ Cancel
+ Username
+ Password
+ Phone number
+ or
+ next
+
+ &appName; incoming calls notifications
&appName; service notification
- Skip
-
- Forgotten password?
-
Hangup
Answer
+ Contacts
+ Calls
+ Conversations
+ Meetings
+
+ Deny
+ Accept
+ Cancel
+ Continue
+ Ok
+ Call
+ Delete
+ Do not show this dialog anymore
+ General terms & privacy policy
+ blah blah blah
+ Confirm phone number
+ Are you sure you want to use this phone number?
+ Don\'t save changes?
+ All changes will be lost
+ Validate the device
+ Blah
+ Letters don\'t match!
+ Increase trust level
+ You\'re about to make a call to $1%s\'s device $2%s.\nDo you want to make the call?
+ What does it mean?
+ Blah blah blah
+ Which canal do you choose?
+ Do you really want to delete all calls history?
+ All calls will be deleted of the history
+
+ QR code validated!
+ Invalid QR code!
+ SIP address copied into clipboard
+ Number copied into clipboard
+ History has been deleted
+ Low Wi-Fi signal!
+ Wi-Fi signal no longer low
+ This call can be trusted
+
+ Choose your country
+ Country name
+ Login
+ Scan QR code
+ Use a third party SIP account
+ No account yet?
+ Register
+ Scan a QR code
+ We have sent a verification code on your phone number %1$s.\n\nPlease enter the verification code below:
+ Wrong number?
+ Create
+ Create an account with your email on:
+ Already have an account?
+ Transport
+ Some features require a Linphone account, such as group messaging, video conferences…\n\nThese features are hidden when you register with a third party SIP account.\n\nTo enable it in a commercial project, please contact us.
+ I prefer to create an account
+ I understand
+
+ Default
+ Manage the profile
+ Connected
+ Refreshing
+ Disabled
+ Connecting…
+ Error
+ No account configured yet
+ Add an account
+
+ Settings
+ Recordings
+ Help
+
+ Account profile
+ Add a picture
+ Edit picture
+ International Prefix
+
+ Online
+ Online on $1%s
+ Online today at $1%s
+ Online yesterday at $1%s
+ Away
+ Do not disturb
+ Call
+ Message
+ Video Call
+ Verify device
+
+ Add to contacts
+ See contact
+ Copy SIP address
+ Delete history
+ Delete
+ Invite
+
+ Call history
+ New call
+ Search contact or history call
+ Create a group call
+ No suggestion and no contact for the moment…
+ Suggestions
+
+ No call for the moment…
+
+ Contacts
+ No contact for the moment…
+ Favourites
+ All contacts
+
+ New contact
+ Edit contact
+ First name
+ Last name
+ Company
+ Job title
+
+ Phone numbers & SIP addresses
+ Company:
+ Job title:
+ Trust
+ Number of trusted devices:
+ Trust
+ Edit
+ Add to favourites
+ Remove from favourites
+ Share
+ Delete
+
+ Outgoing call
+ Incoming call
+
+ Operation in progress, please wait
+
+
+ Skip
+ Forgotten password?
Skip
\ No newline at end of file