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