Replace on/off vectors with color states

This commit is contained in:
Naveen 2022-11-05 21:02:26 +05:30
parent 81f0a385dc
commit cd00d725ae
4 changed files with 67 additions and 39 deletions

View File

@ -44,7 +44,7 @@ class CallActivity : SimpleActivity() {
}
private var isSpeakerOn = false
private var isMicrophoneOn = true
private var isMicrophoneOff = false
private var isCallEnded = false
private var callContact: CallContact? = null
private var proximityWakeLock: PowerManager.WakeLock? = null
@ -185,13 +185,19 @@ class CallActivity : SimpleActivity() {
dialpad_hashtag_holder.setOnClickListener { dialpadPressed('#') }
dialpad_wrapper.setBackgroundColor(getProperBackgroundColor())
arrayOf(
call_toggle_microphone, call_toggle_speaker, call_dialpad, dialpad_close,
call_sim_image, call_toggle_hold, call_add, call_swap, call_merge, call_manage
).forEach {
arrayOf(dialpad_close, call_sim_image).forEach {
it.applyColorFilter(getProperTextColor())
}
arrayOf(
call_toggle_microphone, call_toggle_speaker, call_dialpad,
call_toggle_hold, call_add, call_swap, call_merge, call_manage
).forEach {
val bgColor = getInactiveButtonColor()
it.applyColorFilter(bgColor.getContrastColor())
it.background.applyColorFilter(getInactiveButtonColor())
}
arrayOf(
call_toggle_microphone, call_toggle_speaker, call_dialpad,
call_toggle_hold, call_add, call_swap, call_merge, call_manage
@ -371,8 +377,10 @@ class CallActivity : SimpleActivity() {
private fun toggleSpeaker() {
isSpeakerOn = !isSpeakerOn
val drawable = if (isSpeakerOn) R.drawable.ic_speaker_on_vector else R.drawable.ic_speaker_off_vector
call_toggle_speaker.setImageDrawable(getDrawable(drawable))
val color = if (isSpeakerOn) getActiveButtonColor() else getInactiveButtonColor()
call_toggle_speaker.background.applyColorFilter(color)
call_toggle_speaker.applyColorFilter(color.getContrastColor())
audioManager.isSpeakerphoneOn = isSpeakerOn
val newRoute = if (isSpeakerOn) CallAudioState.ROUTE_SPEAKER else CallAudioState.ROUTE_EARPIECE
@ -387,12 +395,13 @@ class CallActivity : SimpleActivity() {
}
private fun toggleMicrophone() {
isMicrophoneOn = !isMicrophoneOn
val drawable = if (isMicrophoneOn) R.drawable.ic_microphone_vector else R.drawable.ic_microphone_off_vector
call_toggle_microphone.setImageDrawable(getDrawable(drawable))
audioManager.isMicrophoneMute = !isMicrophoneOn
CallManager.inCallService?.setMuted(!isMicrophoneOn)
call_toggle_microphone.contentDescription = getString(if (isMicrophoneOn) R.string.turn_microphone_off else R.string.turn_microphone_on)
isMicrophoneOff = !isMicrophoneOff
val color = if (isMicrophoneOff) getActiveButtonColor() else getInactiveButtonColor()
call_toggle_microphone.background.applyColorFilter(color)
call_toggle_microphone.applyColorFilter(color.getContrastColor())
audioManager.isMicrophoneMute = isMicrophoneOff
CallManager.inCallService?.setMuted(isMicrophoneOff)
call_toggle_microphone.contentDescription = getString(if (isMicrophoneOff) R.string.turn_microphone_on else R.string.turn_microphone_off)
}
private fun toggleDialpadVisibility() {
@ -427,8 +436,9 @@ class CallActivity : SimpleActivity() {
private fun toggleHold() {
val isOnHold = CallManager.toggleHold()
val drawable = if (isOnHold) R.drawable.ic_pause_crossed_vector else R.drawable.ic_pause_vector
call_toggle_hold.setImageDrawable(getDrawable(drawable))
val drawable = if (isOnHold) getActiveButtonColor() else getInactiveButtonColor()
call_toggle_hold.background.applyColorFilter(drawable)
call_toggle_hold.applyColorFilter(drawable.getContrastColor())
call_toggle_hold.contentDescription = getString(if (isOnHold) R.string.resume_call else R.string.hold_call)
hold_status_label.beVisibleIf(isOnHold)
}
@ -689,4 +699,8 @@ class CallActivity : SimpleActivity() {
alpha = if (enabled) 1.0f else LOWER_ALPHA
}
}
private fun getActiveButtonColor() = getProperPrimaryColor()
private fun getInactiveButtonColor() = getProperBackgroundColor().darkenColor(4)
}

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:id="@+id/button_background_holder">
<layer-list>
<item android:id="@+id/button_background_shape">
<shape android:shape="oval">
<solid android:color="?attr/colorPrimary" />
<corners android:radius="@dimen/material_button_corner_radius" />
</shape>
</item>
</layer-list>
</item>
</ripple>

View File

@ -163,10 +163,10 @@
android:id="@+id/call_toggle_microphone"
android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size"
android:background="?attr/selectableItemBackgroundBorderless"
android:background="@drawable/circle_button_background"
android:contentDescription="@string/turn_microphone_off"
android:padding="@dimen/medium_margin"
android:src="@drawable/ic_microphone_vector"
android:padding="@dimen/activity_margin"
android:src="@drawable/ic_microphone_off_vector"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/call_toggle_speaker"
app:layout_constraintStart_toStartOf="parent"
@ -177,10 +177,10 @@
android:id="@+id/call_toggle_speaker"
android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size"
android:background="?attr/selectableItemBackgroundBorderless"
android:background="@drawable/circle_button_background"
android:contentDescription="@string/turn_speaker_on"
android:padding="@dimen/medium_margin"
android:src="@drawable/ic_speaker_off_vector"
android:padding="@dimen/activity_margin"
android:src="@drawable/ic_speaker_on_vector"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/call_dialpad"
app:layout_constraintStart_toEndOf="@+id/call_toggle_microphone"
@ -191,9 +191,9 @@
android:id="@+id/call_dialpad"
android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size"
android:background="?attr/selectableItemBackgroundBorderless"
android:background="@drawable/circle_button_background"
android:contentDescription="@string/show_dialpad"
android:padding="@dimen/medium_margin"
android:padding="@dimen/activity_margin"
android:src="@drawable/ic_dialpad_vector"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@ -205,10 +205,10 @@
android:id="@+id/call_toggle_hold"
android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:layout_marginTop="@dimen/big_margin"
android:background="@drawable/circle_button_background"
android:contentDescription="@string/hold_call"
android:padding="10dp"
android:padding="@dimen/activity_margin"
android:src="@drawable/ic_pause_vector"
app:layout_constraintEnd_toEndOf="@+id/call_toggle_microphone"
app:layout_constraintStart_toStartOf="@+id/call_toggle_microphone"
@ -218,10 +218,10 @@
android:id="@+id/call_add"
android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:layout_marginTop="@dimen/big_margin"
android:background="@drawable/circle_button_background"
android:contentDescription="@string/call_add"
android:padding="10dp"
android:padding="@dimen/activity_margin"
android:src="@drawable/ic_add_call_vector"
app:layout_constraintEnd_toEndOf="@+id/call_toggle_speaker"
app:layout_constraintStart_toStartOf="@+id/call_toggle_speaker"
@ -231,10 +231,10 @@
android:id="@+id/call_manage"
android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:layout_marginTop="@dimen/big_margin"
android:background="@drawable/circle_button_background"
android:contentDescription="@string/conference_manage"
android:padding="10dp"
android:padding="@dimen/activity_margin"
android:src="@drawable/ic_people_vector"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="@+id/call_dialpad"
@ -246,10 +246,10 @@
android:id="@+id/call_swap"
android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:layout_marginTop="@dimen/big_margin"
android:background="@drawable/circle_button_background"
android:contentDescription="@string/call_swap"
android:padding="@dimen/medium_margin"
android:padding="@dimen/activity_margin"
android:src="@drawable/ic_call_swap_vector"
app:layout_constraintEnd_toEndOf="@+id/call_toggle_microphone"
app:layout_constraintHorizontal_bias="0.5"
@ -260,10 +260,10 @@
android:id="@+id/call_merge"
android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:layout_marginTop="@dimen/big_margin"
android:background="@drawable/circle_button_background"
android:contentDescription="@string/call_merge"
android:padding="@dimen/medium_margin"
android:padding="@dimen/activity_margin"
android:src="@drawable/ic_call_merge_vector"
app:layout_constraintEnd_toEndOf="@+id/call_toggle_speaker"
app:layout_constraintHorizontal_bias="0.5"

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="dialpad_button_size">60dp</dimen>
<dimen name="dialpad_button_size">72dp</dimen>
<dimen name="dialpad_button_size_small">50dp</dimen>
<dimen name="incoming_call_arrow_size">50dp</dimen>
<dimen name="incoming_call_button_size">72dp</dimen>