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 isSpeakerOn = false
private var isMicrophoneOn = true private var isMicrophoneOff = false
private var isCallEnded = false private var isCallEnded = false
private var callContact: CallContact? = null private var callContact: CallContact? = null
private var proximityWakeLock: PowerManager.WakeLock? = null private var proximityWakeLock: PowerManager.WakeLock? = null
@ -185,13 +185,19 @@ class CallActivity : SimpleActivity() {
dialpad_hashtag_holder.setOnClickListener { dialpadPressed('#') } dialpad_hashtag_holder.setOnClickListener { dialpadPressed('#') }
dialpad_wrapper.setBackgroundColor(getProperBackgroundColor()) dialpad_wrapper.setBackgroundColor(getProperBackgroundColor())
arrayOf( arrayOf(dialpad_close, call_sim_image).forEach {
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 {
it.applyColorFilter(getProperTextColor()) 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( arrayOf(
call_toggle_microphone, call_toggle_speaker, call_dialpad, call_toggle_microphone, call_toggle_speaker, call_dialpad,
call_toggle_hold, call_add, call_swap, call_merge, call_manage call_toggle_hold, call_add, call_swap, call_merge, call_manage
@ -371,8 +377,10 @@ class CallActivity : SimpleActivity() {
private fun toggleSpeaker() { private fun toggleSpeaker() {
isSpeakerOn = !isSpeakerOn isSpeakerOn = !isSpeakerOn
val drawable = if (isSpeakerOn) R.drawable.ic_speaker_on_vector else R.drawable.ic_speaker_off_vector val color = if (isSpeakerOn) getActiveButtonColor() else getInactiveButtonColor()
call_toggle_speaker.setImageDrawable(getDrawable(drawable)) call_toggle_speaker.background.applyColorFilter(color)
call_toggle_speaker.applyColorFilter(color.getContrastColor())
audioManager.isSpeakerphoneOn = isSpeakerOn audioManager.isSpeakerphoneOn = isSpeakerOn
val newRoute = if (isSpeakerOn) CallAudioState.ROUTE_SPEAKER else CallAudioState.ROUTE_EARPIECE val newRoute = if (isSpeakerOn) CallAudioState.ROUTE_SPEAKER else CallAudioState.ROUTE_EARPIECE
@ -387,12 +395,13 @@ class CallActivity : SimpleActivity() {
} }
private fun toggleMicrophone() { private fun toggleMicrophone() {
isMicrophoneOn = !isMicrophoneOn isMicrophoneOff = !isMicrophoneOff
val drawable = if (isMicrophoneOn) R.drawable.ic_microphone_vector else R.drawable.ic_microphone_off_vector val color = if (isMicrophoneOff) getActiveButtonColor() else getInactiveButtonColor()
call_toggle_microphone.setImageDrawable(getDrawable(drawable)) call_toggle_microphone.background.applyColorFilter(color)
audioManager.isMicrophoneMute = !isMicrophoneOn call_toggle_microphone.applyColorFilter(color.getContrastColor())
CallManager.inCallService?.setMuted(!isMicrophoneOn) audioManager.isMicrophoneMute = isMicrophoneOff
call_toggle_microphone.contentDescription = getString(if (isMicrophoneOn) R.string.turn_microphone_off else R.string.turn_microphone_on) 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() { private fun toggleDialpadVisibility() {
@ -427,8 +436,9 @@ class CallActivity : SimpleActivity() {
private fun toggleHold() { private fun toggleHold() {
val isOnHold = CallManager.toggleHold() val isOnHold = CallManager.toggleHold()
val drawable = if (isOnHold) R.drawable.ic_pause_crossed_vector else R.drawable.ic_pause_vector val drawable = if (isOnHold) getActiveButtonColor() else getInactiveButtonColor()
call_toggle_hold.setImageDrawable(getDrawable(drawable)) 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) call_toggle_hold.contentDescription = getString(if (isOnHold) R.string.resume_call else R.string.hold_call)
hold_status_label.beVisibleIf(isOnHold) hold_status_label.beVisibleIf(isOnHold)
} }
@ -689,4 +699,8 @@ class CallActivity : SimpleActivity() {
alpha = if (enabled) 1.0f else LOWER_ALPHA 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:id="@+id/call_toggle_microphone"
android:layout_width="@dimen/dialpad_button_size" android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@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:contentDescription="@string/turn_microphone_off"
android:padding="@dimen/medium_margin" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_microphone_vector" android:src="@drawable/ic_microphone_off_vector"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/call_toggle_speaker" app:layout_constraintEnd_toStartOf="@+id/call_toggle_speaker"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -177,10 +177,10 @@
android:id="@+id/call_toggle_speaker" android:id="@+id/call_toggle_speaker"
android:layout_width="@dimen/dialpad_button_size" android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@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:contentDescription="@string/turn_speaker_on"
android:padding="@dimen/medium_margin" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_speaker_off_vector" android:src="@drawable/ic_speaker_on_vector"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/call_dialpad" app:layout_constraintEnd_toStartOf="@+id/call_dialpad"
app:layout_constraintStart_toEndOf="@+id/call_toggle_microphone" app:layout_constraintStart_toEndOf="@+id/call_toggle_microphone"
@ -191,9 +191,9 @@
android:id="@+id/call_dialpad" android:id="@+id/call_dialpad"
android:layout_width="@dimen/dialpad_button_size" android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@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:contentDescription="@string/show_dialpad"
android:padding="@dimen/medium_margin" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_dialpad_vector" android:src="@drawable/ic_dialpad_vector"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -205,10 +205,10 @@
android:id="@+id/call_toggle_hold" android:id="@+id/call_toggle_hold"
android:layout_width="@dimen/dialpad_button_size" android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin" android:layout_marginTop="@dimen/big_margin"
android:background="?attr/selectableItemBackgroundBorderless" android:background="@drawable/circle_button_background"
android:contentDescription="@string/hold_call" android:contentDescription="@string/hold_call"
android:padding="10dp" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_pause_vector" android:src="@drawable/ic_pause_vector"
app:layout_constraintEnd_toEndOf="@+id/call_toggle_microphone" app:layout_constraintEnd_toEndOf="@+id/call_toggle_microphone"
app:layout_constraintStart_toStartOf="@+id/call_toggle_microphone" app:layout_constraintStart_toStartOf="@+id/call_toggle_microphone"
@ -218,10 +218,10 @@
android:id="@+id/call_add" android:id="@+id/call_add"
android:layout_width="@dimen/dialpad_button_size" android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin" android:layout_marginTop="@dimen/big_margin"
android:background="?attr/selectableItemBackgroundBorderless" android:background="@drawable/circle_button_background"
android:contentDescription="@string/call_add" android:contentDescription="@string/call_add"
android:padding="10dp" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_add_call_vector" android:src="@drawable/ic_add_call_vector"
app:layout_constraintEnd_toEndOf="@+id/call_toggle_speaker" app:layout_constraintEnd_toEndOf="@+id/call_toggle_speaker"
app:layout_constraintStart_toStartOf="@+id/call_toggle_speaker" app:layout_constraintStart_toStartOf="@+id/call_toggle_speaker"
@ -231,10 +231,10 @@
android:id="@+id/call_manage" android:id="@+id/call_manage"
android:layout_width="@dimen/dialpad_button_size" android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin" android:layout_marginTop="@dimen/big_margin"
android:background="?attr/selectableItemBackgroundBorderless" android:background="@drawable/circle_button_background"
android:contentDescription="@string/conference_manage" android:contentDescription="@string/conference_manage"
android:padding="10dp" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_people_vector" android:src="@drawable/ic_people_vector"
android:visibility="gone" android:visibility="gone"
app:layout_constraintEnd_toEndOf="@+id/call_dialpad" app:layout_constraintEnd_toEndOf="@+id/call_dialpad"
@ -246,10 +246,10 @@
android:id="@+id/call_swap" android:id="@+id/call_swap"
android:layout_width="@dimen/dialpad_button_size" android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin" android:layout_marginTop="@dimen/big_margin"
android:background="?attr/selectableItemBackgroundBorderless" android:background="@drawable/circle_button_background"
android:contentDescription="@string/call_swap" android:contentDescription="@string/call_swap"
android:padding="@dimen/medium_margin" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_call_swap_vector" android:src="@drawable/ic_call_swap_vector"
app:layout_constraintEnd_toEndOf="@+id/call_toggle_microphone" app:layout_constraintEnd_toEndOf="@+id/call_toggle_microphone"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
@ -260,10 +260,10 @@
android:id="@+id/call_merge" android:id="@+id/call_merge"
android:layout_width="@dimen/dialpad_button_size" android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size"
android:layout_marginTop="@dimen/bigger_margin" android:layout_marginTop="@dimen/big_margin"
android:background="?attr/selectableItemBackgroundBorderless" android:background="@drawable/circle_button_background"
android:contentDescription="@string/call_merge" android:contentDescription="@string/call_merge"
android:padding="@dimen/medium_margin" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_call_merge_vector" android:src="@drawable/ic_call_merge_vector"
app:layout_constraintEnd_toEndOf="@+id/call_toggle_speaker" app:layout_constraintEnd_toEndOf="@+id/call_toggle_speaker"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <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="dialpad_button_size_small">50dp</dimen>
<dimen name="incoming_call_arrow_size">50dp</dimen> <dimen name="incoming_call_arrow_size">50dp</dimen>
<dimen name="incoming_call_button_size">72dp</dimen> <dimen name="incoming_call_button_size">72dp</dimen>