From cd00d725ae2a2419e27b0fc2920c12e429d65011 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sat, 5 Nov 2022 21:02:26 +0530 Subject: [PATCH] Replace on/off vectors with color states --- .../dialer/activities/CallActivity.kt | 44 ++++++++++++------ .../res/drawable/circle_button_background.xml | 14 ++++++ app/src/main/res/layout/activity_call.xml | 46 +++++++++---------- app/src/main/res/values/dimens.xml | 2 +- 4 files changed, 67 insertions(+), 39 deletions(-) create mode 100644 app/src/main/res/drawable/circle_button_background.xml diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt index d871f581..06a6697a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt @@ -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) } diff --git a/app/src/main/res/drawable/circle_button_background.xml b/app/src/main/res/drawable/circle_button_background.xml new file mode 100644 index 00000000..92073d65 --- /dev/null +++ b/app/src/main/res/drawable/circle_button_background.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_call.xml b/app/src/main/res/layout/activity_call.xml index afb50536..14ec163d 100644 --- a/app/src/main/res/layout/activity_call.xml +++ b/app/src/main/res/layout/activity_call.xml @@ -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" diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 08b31931..bc83e3e1 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,6 +1,6 @@ - 60dp + 72dp 50dp 50dp 72dp