Updated icons according to latest changes

This commit is contained in:
Sylvain Berfini 2023-09-29 16:26:02 +02:00
parent f00c21be91
commit e35b76d0f4
25 changed files with 150 additions and 38 deletions

View file

@ -258,8 +258,8 @@ class CallActivity : AppCompatActivity() {
}
}
fun showBlueToast(message: String, @DrawableRes icon: Int) {
val blueToast = AppUtils.getBlueToast(this, binding.toastsArea, message, icon)
fun showBlueToast(message: String, @DrawableRes icon: Int, doNotTint: Boolean = false) {
val blueToast = AppUtils.getBlueToast(this, binding.toastsArea, message, icon, doNotTint)
binding.toastsArea.addView(blueToast.root)
blueToast.root.slideInToastFromTopForDuration(
@ -268,8 +268,13 @@ class CallActivity : AppCompatActivity() {
)
}
private fun showRedToast(message: String, @DrawableRes icon: Int, duration: Long = 4000) {
val redToast = AppUtils.getRedToast(this, binding.toastsArea, message, icon)
private fun showRedToast(
message: String,
@DrawableRes icon: Int,
duration: Long = 4000,
doNotTint: Boolean = false
) {
val redToast = AppUtils.getRedToast(this, binding.toastsArea, message, icon, doNotTint)
binding.toastsArea.addView(redToast.root)
redToast.root.slideInToastFromTopForDuration(
@ -279,8 +284,12 @@ class CallActivity : AppCompatActivity() {
)
}
private fun showPersistentRedToast(message: String, @DrawableRes icon: Int) {
val redToast = AppUtils.getRedToast(this, binding.toastsArea, message, icon)
private fun showPersistentRedToast(
message: String,
@DrawableRes icon: Int,
doNotTint: Boolean = false
) {
val redToast = AppUtils.getRedToast(this, binding.toastsArea, message, icon, doNotTint)
redToast.root.tag = PERSISTENT_TOAST_TAG
binding.toastsArea.addView(redToast.root)
@ -298,8 +307,13 @@ class CallActivity : AppCompatActivity() {
}
}
fun showGreenToast(message: String, @DrawableRes icon: Int, duration: Long = 4000) {
val greenToast = AppUtils.getGreenToast(this, binding.toastsArea, message, icon)
fun showGreenToast(
message: String,
@DrawableRes icon: Int,
duration: Long = 4000,
doNotTint: Boolean = false
) {
val greenToast = AppUtils.getGreenToast(this, binding.toastsArea, message, icon, doNotTint)
binding.toastsArea.addView(greenToast.root)
greenToast.root.slideInToastFromTopForDuration(

View file

@ -162,7 +162,8 @@ class ActiveCallFragment : GenericCallFragment() {
if (trusted) {
(requireActivity() as CallActivity).showBlueToast(
getString(R.string.toast_call_can_be_trusted),
R.drawable.trusted
R.drawable.trusted,
doNotTint = true
)
binding.avatar.avatarBorderWidth = AppUtils.getDimension(
R.dimen.avatar_trust_border_width

View file

@ -76,6 +76,8 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
val isRemoteRecording = MutableLiveData<Boolean>()
val remoteRecordingLabel = MutableLiveData<String>()
val isMicrophoneMuted = MutableLiveData<Boolean>()
val isSpeakerEnabled = MutableLiveData<Boolean>()
@ -156,6 +158,14 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
override fun onRemoteRecording(call: Call, recording: Boolean) {
Log.i("$TAG Remote recording changed: $recording")
isRemoteRecording.postValue(recording)
if (recording) {
remoteRecordingLabel.postValue(
AppUtils.getFormattedString(
R.string.call_remote_is_recording,
displayedName.value.orEmpty()
)
)
}
}
@WorkerThread
@ -637,9 +647,6 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
isOutgoing.postValue(call.dir == Call.Dir.Outgoing)
isRecording.postValue(call.params.isRecording)
isRemoteRecording.postValue(call.remoteParams?.isRecording)
val address = call.remoteAddress.clone()
address.clean()
displayedAddress.postValue(address.asStringUriOnly())
@ -662,6 +669,15 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
displayedName.postValue(fakeFriend.name)
}
isRecording.postValue(call.params.isRecording)
isRemoteRecording.postValue(call.remoteParams?.isRecording)
remoteRecordingLabel.postValue(
AppUtils.getFormattedString(
R.string.call_remote_is_recording,
displayedName.value.orEmpty()
)
)
callDuration.postValue(call.duration)
}

View file

@ -189,7 +189,8 @@ class AppUtils {
context: Context,
parent: ViewGroup,
message: String,
@DrawableRes icon: Int
@DrawableRes icon: Int,
doNotTint: Boolean = false
): ToastBinding {
val redToast: ToastBinding = DataBindingUtil.inflate(
LayoutInflater.from(context),
@ -197,6 +198,7 @@ class AppUtils {
parent,
false
)
redToast.doNotTint = doNotTint
redToast.message = message
redToast.icon = icon
redToast.shadowColor = R.drawable.shape_toast_red_background
@ -210,7 +212,8 @@ class AppUtils {
context: Context,
parent: ViewGroup,
message: String,
@DrawableRes icon: Int
@DrawableRes icon: Int,
doNotTint: Boolean = false
): ToastBinding {
val greenToast: ToastBinding = DataBindingUtil.inflate(
LayoutInflater.from(context),
@ -218,6 +221,7 @@ class AppUtils {
parent,
false
)
greenToast.doNotTint = doNotTint
greenToast.message = message
greenToast.icon = icon
greenToast.shadowColor = R.drawable.shape_toast_green_background
@ -231,7 +235,8 @@ class AppUtils {
context: Context,
parent: ViewGroup,
message: String,
@DrawableRes icon: Int
@DrawableRes icon: Int,
doNotTint: Boolean = false
): ToastBinding {
val blueToast: ToastBinding = DataBindingUtil.inflate(
LayoutInflater.from(context),
@ -239,6 +244,7 @@ class AppUtils {
parent,
false
)
blueToast.doNotTint = doNotTint
blueToast.message = message
blueToast.icon = icon
blueToast.shadowColor = R.drawable.shape_toast_blue_background

View file

@ -211,9 +211,11 @@ fun ImageView.setPresenceIcon(presence: ConsolidatedPresence?) {
setImageResource(icon)
}
@BindingAdapter("tint")
fun ImageView.setTintColor(@ColorRes color: Int) {
setColorFilter(AppUtils.getColor(color), PorterDuff.Mode.SRC_IN)
@BindingAdapter("tint", "disableTint")
fun ImageView.setTintColor(@ColorRes color: Int, disable: Boolean) {
if (!disable) {
setColorFilter(AppUtils.getColor(color), PorterDuff.Mode.SRC_IN)
}
}
@BindingAdapter("textColor")

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:pathData="M168,112a8,8 0,0 1,-8 8L96,120a8,8 0,0 1,0 -16h64A8,8 0,0 1,168 112ZM160,136L96,136a8,8 0,0 0,0 16h64a8,8 0,0 0,0 -16ZM232,124A100.11,100.11 0,0 1,132 224L47.67,224A15.69,15.69 0,0 1,32 208.33L32,124a100,100 0,0 1,200 0ZM216,124a84,84 0,0 0,-168 0v84h84A84.09,84.09 0,0 0,216 124Z"
android:fillColor="#4e6074"/>
</vector>

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:pathData="M229.66,77.66l-128,128a8,8 0,0 1,-11.32 0l-56,-56a8,8 0,0 1,11.32 -11.32L96,188.69 218.34,66.34a8,8 0,0 1,11.32 11.32Z"
android:fillColor="#4e6074"/>
</vector>

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:pathData="M224,48V208a16,16 0,0 1,-16 16H136a8,8 0,0 1,0 -16h72V48H48v96a8,8 0,0 1,-16 0V48A16,16 0,0 1,48 32H208A16,16 0,0 1,224 48ZM125.66,154.34a8,8 0,0 0,-11.32 0L64,204.69 45.66,186.34a8,8 0,0 0,-11.32 11.32l24,24a8,8 0,0 0,11.32 0l56,-56A8,8 0,0 0,125.66 154.34Z"
android:fillColor="#4e6074"/>
</vector>

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:pathData="M248,112L220.08,112l-47.5,-65.41a16,16 0,0 0,-25.31 -0.72l-12.85,14.9 -0.2,0.23a7.95,7.95 0,0 1,-12.44 0l-0.2,-0.23 -12.85,-14.9a16,16 0,0 0,-25.31 0.72L35.92,112L8,112a8,8 0,0 0,0 16L248,128a8,8 0,0 0,0 -16ZM96.34,56l0.19,0.23 12.85,14.89a24,24 0,0 0,37.24 0l12.85,-14.89c0.06,-0.08 0.1,-0.15 0.17,-0.23l40.66,56L55.69,112ZM180,144a36,36 0,0 0,-35.77 32L111.77,176a36,36 0,1 0,-1.83 16h36.12A36,36 0,1 0,180 144ZM76,200a20,20 0,1 1,20 -20A20,20 0,0 1,76 200ZM180,200a20,20 0,1 1,20 -20A20,20 0,0 1,180 200Z"
android:fillColor="#4e6074"/>
</vector>

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:pathData="M168,16A72.07,72.07 0,0 0,96 88a73.29,73.29 0,0 0,0.63 9.42L27.12,192.22A15.93,15.93 0,0 0,28.71 213L43,227.29a15.93,15.93 0,0 0,20.78 1.59l94.81,-69.53A73.29,73.29 0,0 0,168 160a72,72 0,1 0,0 -144ZM224,88a55.72,55.72 0,0 1,-11.16 33.52L134.49,43.16A56,56 0,0 1,224 88ZM54.32,216 L40,201.68 102.14,117A72.37,72.37 0,0 0,139 153.86ZM112,88a55.67,55.67 0,0 1,11.16 -33.51l78.34,78.34A56,56 0,0 1,112 88ZM109.65,146.34a8,8 0,0 1,0 11.31l-8,8a8,8 0,1 1,-11.31 -11.31l8,-8A8,8 0,0 1,109.67 146.33Z"
android:fillColor="#4e6074"/>
</vector>

View file

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:pathData="M128,24A104,104 0,1 0,232 128,104.11 104.11,0 0,0 128,24ZM128,216a88,88 0,1 1,88 -88A88.1,88.1 0,0 1,128 216Z"
android:fillColor="#4e6074"/>
<path
android:pathData="M128,128m-72,0a72,72 0,1 1,144 0a72,72 0,1 1,-144 0"
android:fillColor="#4e6074"/>
</vector>

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<size android:width="180dp" android:height="45dp" />
<corners android:topLeftRadius="20dp" android:bottomRightRadius="20dp"/>
<solid android:color="@color/gray_main2_600"/>
</shape>

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:pathData="M228.25,63.07l-4.66,-2.69a23.6,23.6 0,0 0,0 -8.76l4.66,-2.69a8,8 0,0 0,-8 -13.86l-4.67,2.7A23.92,23.92 0,0 0,208 33.38L208,28a8,8 0,0 0,-16 0v5.38a23.92,23.92 0,0 0,-7.58 4.39l-4.67,-2.7a8,8 0,1 0,-8 13.86l4.66,2.69a23.6,23.6 0,0 0,0 8.76l-4.66,2.69a8,8 0,0 0,4 14.93,7.92 7.92,0 0,0 4,-1.07l4.67,-2.7A23.92,23.92 0,0 0,192 78.62L192,84a8,8 0,0 0,16 0L208,78.62a23.92,23.92 0,0 0,7.58 -4.39l4.67,2.7a7.92,7.92 0,0 0,4 1.07,8 8,0 0,0 4,-14.93ZM192,56a8,8 0,1 1,8 8A8,8 0,0 1,192 56ZM221.35,104.11a8,8 0,0 0,-6.57 9.21A88.85,88.85 0,0 1,216 128a87.62,87.62 0,0 1,-22.24 58.41,79.66 79.66,0 0,0 -36.06,-28.75 48,48 0,1 0,-59.4 0,79.66 79.66,0 0,0 -36.06,28.75A88,88 0,0 1,128 40a88.76,88.76 0,0 1,14.68 1.22,8 8,0 0,0 2.64,-15.78 103.92,103.92 0,1 0,85.24 85.24A8,8 0,0 0,221.35 104.11ZM96,120a32,32 0,1 1,32 32A32,32 0,0 1,96 120ZM74.08,197.5a64,64 0,0 1,107.84 0,87.83 87.83,0 0,1 -107.84,0Z"
android:fillColor="#4e6074"/>
</vector>

View file

@ -128,7 +128,7 @@
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:background="@drawable/in_call_button_background"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/chat_dots"
android:src="@drawable/chat_teardrop_text"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="@id/chat_label"
app:layout_constraintStart_toStartOf="@id/chat_label"
@ -157,7 +157,7 @@
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:background="@drawable/in_call_button_background"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/record"
android:src="@drawable/record_fill"
android:selected="@{viewModel.isRecording()}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="@id/record_call_label"

View file

@ -25,7 +25,7 @@
android:text="@string/drawer_menu_manage_account"
android:textSize="14sp"
android:textColor="@color/gray_main2_500"
android:drawableStart="@drawable/user_gear"
android:drawableStart="@drawable/user_circle_gear"
android:drawablePadding="5dp"
app:drawableTint="@color/gray_main2_700"
app:layout_constraintStart_toStartOf="parent"

View file

@ -446,7 +446,7 @@
android:layout_marginEnd="17dp"
android:background="@drawable/action_background"
android:text="@string/manage_account_settings"
android:drawableStart="@drawable/user_gear"
android:drawableStart="@drawable/gear"
app:layout_constraintTop_toTopOf="@id/actions_background"
app:layout_constraintStart_toStartOf="@id/actions_background"
app:layout_constraintEnd_toEndOf="@id/actions_background"/>

View file

@ -219,15 +219,18 @@
style="@style/default_text_style_300"
android:id="@+id/remote_recording"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/call_remote_is_recording"
android:layout_height="45dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:text="@{viewModel.remoteRecordingLabel, default=@string/call_remote_is_recording}"
android:textSize="12sp"
android:textColor="@color/gray_900"
android:gravity="center_vertical"
android:drawableStart="@drawable/record"
android:drawableStart="@drawable/record_fill"
android:drawablePadding="10dp"
android:background="@drawable/shape_remote_recording_background"
android:visibility="@{viewModel.isRemoteRecording ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_min="180dp"
app:layout_constraintTop_toTopOf="@id/background"
app:layout_constraintStart_toStartOf="@id/background"
app:drawableTint="@color/red_danger_500" />
@ -238,7 +241,7 @@
android:layout_height="@dimen/icon_size"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:src="@drawable/record"
android:src="@drawable/record_fill"
android:visibility="@{viewModel.isRecording ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toTopOf="@id/background"
app:layout_constraintStart_toStartOf="@id/background"

View file

@ -128,7 +128,7 @@
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:src="@drawable/chat_dots"
android:src="@drawable/chat_teardrop_text"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/transfer_label"
@ -157,7 +157,7 @@
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:src="@drawable/record"
android:src="@drawable/record_fill"
android:selected="@{viewModel.isRecording()}"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"

View file

@ -59,6 +59,7 @@
android:layout_marginEnd="10dp"
android:padding="5dp"
android:src="@drawable/pencil_simple"
app:tint="@color/orange_main_500"
app:layout_constraintBottom_toBottomOf="@id/invisible_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/invisible_title" />
@ -196,7 +197,7 @@
android:layout_marginTop="20dp"
android:background="@drawable/circle_light_blue_button_background"
android:padding="16dp"
android:src="@drawable/chat_dots"
android:src="@drawable/chat_teardrop_text"
app:tint="@color/gray_main2_500"
app:layout_constraintEnd_toStartOf="@id/video_call"
app:layout_constraintStart_toEndOf="@id/call"

View file

@ -56,7 +56,7 @@
android:layout_height="35dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:src="@drawable/check_fat_fill"
android:src="@drawable/check"
android:enabled="@{viewModel.saveButtonEnabled}"
app:tint="@color/primary_color_selector"
app:layout_constraintEnd_toEndOf="parent"

View file

@ -45,7 +45,7 @@
android:onClick="@{noFilterClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/check_fat_fill"
android:src="@drawable/check"
android:visibility="@{seeAllSelected ? View.VISIBLE : View.INVISIBLE, default=invisible}"
app:tint="@color/green_success_500"
app:layout_constraintTop_toTopOf="@id/no_filter"
@ -76,7 +76,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginEnd="20dp"
android:src="@drawable/check_fat_fill"
android:src="@drawable/check"
android:visibility="@{seeAllSelected ? View.INVISIBLE : View.VISIBLE}"
app:tint="@color/green_success_500"
app:layout_constraintTop_toTopOf="@id/linphone_filter"

View file

@ -161,7 +161,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/recordings_title"
android:drawableStart="@drawable/recordings"
android:drawableStart="@drawable/microphone_stage"
android:drawableEnd="@drawable/caret_right"
android:drawablePadding="8dp"
app:drawableTint="@color/gray_main2_500"

View file

@ -79,7 +79,7 @@
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginStart="16dp"
android:src="@drawable/file_text"
android:src="@drawable/detective"
app:tint="@color/orange_main_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/privacy_policy_title"
@ -181,7 +181,7 @@
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginStart="16dp"
android:src="@drawable/file_text"
android:src="@drawable/check_square_offset"
app:tint="@color/orange_main_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/open_source_licenses_title"

View file

@ -183,7 +183,7 @@
android:layout_marginTop="20dp"
android:background="@drawable/circle_light_blue_button_background"
android:padding="16dp"
android:src="@drawable/chat_dots"
android:src="@drawable/chat_teardrop_text"
app:tint="@color/gray_main2_500"
app:layout_constraintEnd_toStartOf="@id/video_call"
app:layout_constraintStart_toEndOf="@id/call"

View file

@ -18,6 +18,9 @@
<variable
name="text_color"
type="Integer" />
<variable
name="do_not_tint"
type="Boolean" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
@ -43,7 +46,8 @@
android:layout_height="@dimen/icon_size"
android:adjustViewBounds="true"
android:src="@{icon, default=@drawable/check_fat_fill}"
tint="@{text_color, default=@color/blue_info_500}"
tint="@{text_color}"
disableTint="@{do_not_tint}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/toast_message"
app:layout_constraintStart_toStartOf="parent"