From cd00d725ae2a2419e27b0fc2920c12e429d65011 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sat, 5 Nov 2022 21:02:26 +0530 Subject: [PATCH 1/9] 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 From 18d0275f7ac6a774446a3f47cffc1f64ef01e017 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sat, 5 Nov 2022 21:34:00 +0530 Subject: [PATCH 2/9] Improve animation with interpolator --- .../dialer/activities/CallActivity.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 06a6697a..54ea56cc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt @@ -17,6 +17,7 @@ import android.telecom.CallAudioState import android.view.MotionEvent import android.view.View import android.view.WindowManager +import android.view.animation.OvershootInterpolator import android.widget.ImageView import androidx.core.view.children import com.simplemobiletools.commons.extensions.* @@ -35,7 +36,6 @@ import kotlin.math.min class CallActivity : SimpleActivity() { companion object { - private const val ANIMATION_DURATION = 250L fun getStartIntent(context: Context): Intent { val openAppIntent = Intent(context, CallActivity::class.java) openAppIntent.flags = Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT or Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_REORDER_TO_FRONT @@ -418,18 +418,18 @@ class CallActivity : SimpleActivity() { viewsUnderDialpad.addAll(findVisibleViewsUnderDialpad()) viewsUnderDialpad.forEach { (view, _) -> view.run { - animate().scaleX(0f).alpha(0f).withEndAction { beGone() }.duration = ANIMATION_DURATION - animate().scaleY(0f).alpha(0f).withEndAction { beGone() }.duration = ANIMATION_DURATION + animate().scaleX(0f).alpha(0f).withEndAction { beGone() }.duration = 250L + animate().scaleY(0f).alpha(0f).withEndAction { beGone() }.duration = 250L } } } private fun hideDialpad() { - dialpad_wrapper.animate().alpha(0f).withEndAction { dialpad_wrapper.beGone() } + dialpad_wrapper.animate().alpha(0f).withEndAction { dialpad_wrapper.beGone() }.duration = 150L viewsUnderDialpad.forEach { (view, alpha) -> view.run { - animate().withStartAction { beVisible() }.scaleX(1f).alpha(alpha).duration = ANIMATION_DURATION - animate().withStartAction { beVisible() }.scaleY(1f).alpha(alpha).duration = ANIMATION_DURATION + animate().withStartAction { beVisible() }.setInterpolator(OvershootInterpolator()).scaleX(1f).alpha(alpha).duration = 250L + animate().withStartAction { beVisible() }.setInterpolator(OvershootInterpolator()).scaleY(1f).alpha(alpha).duration = 250L } } } From c56fa014cb64553b1616d251b5eb0c06d1dc1aed Mon Sep 17 00:00:00 2001 From: Naveen Date: Sat, 5 Nov 2022 21:49:55 +0530 Subject: [PATCH 3/9] Remove unused drawable --- app/src/main/res/drawable/ic_speaker_off_vector.xml | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_speaker_off_vector.xml diff --git a/app/src/main/res/drawable/ic_speaker_off_vector.xml b/app/src/main/res/drawable/ic_speaker_off_vector.xml deleted file mode 100644 index 4a1da552..00000000 --- a/app/src/main/res/drawable/ic_speaker_off_vector.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - From e660f387e4bcdb22c87bae97c6bd260cb2b3d45b Mon Sep 17 00:00:00 2001 From: Naveen Date: Tue, 8 Nov 2022 21:14:43 +0530 Subject: [PATCH 4/9] Remove ripple from toggle buttons --- ...d.xml => circle_button_background_ripple.xml} | 0 app/src/main/res/layout/activity_call.xml | 16 ++++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) rename app/src/main/res/drawable/{circle_button_background.xml => circle_button_background_ripple.xml} (100%) diff --git a/app/src/main/res/drawable/circle_button_background.xml b/app/src/main/res/drawable/circle_button_background_ripple.xml similarity index 100% rename from app/src/main/res/drawable/circle_button_background.xml rename to app/src/main/res/drawable/circle_button_background_ripple.xml diff --git a/app/src/main/res/layout/activity_call.xml b/app/src/main/res/layout/activity_call.xml index 14ec163d..1e825e09 100644 --- a/app/src/main/res/layout/activity_call.xml +++ b/app/src/main/res/layout/activity_call.xml @@ -163,7 +163,7 @@ android:id="@+id/call_toggle_microphone" android:layout_width="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size" - android:background="@drawable/circle_button_background" + android:background="@drawable/circle_background" android:contentDescription="@string/turn_microphone_off" android:padding="@dimen/activity_margin" android:src="@drawable/ic_microphone_off_vector" @@ -177,7 +177,7 @@ android:id="@+id/call_toggle_speaker" android:layout_width="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size" - android:background="@drawable/circle_button_background" + android:background="@drawable/circle_background" android:contentDescription="@string/turn_speaker_on" android:padding="@dimen/activity_margin" android:src="@drawable/ic_speaker_on_vector" @@ -191,7 +191,7 @@ android:id="@+id/call_dialpad" android:layout_width="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size" - android:background="@drawable/circle_button_background" + android:background="@drawable/circle_button_background_ripple" android:contentDescription="@string/show_dialpad" android:padding="@dimen/activity_margin" android:src="@drawable/ic_dialpad_vector" @@ -206,7 +206,7 @@ android:layout_width="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size" android:layout_marginTop="@dimen/big_margin" - android:background="@drawable/circle_button_background" + android:background="@drawable/circle_background" android:contentDescription="@string/hold_call" android:padding="@dimen/activity_margin" android:src="@drawable/ic_pause_vector" @@ -219,7 +219,7 @@ android:layout_width="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size" android:layout_marginTop="@dimen/big_margin" - android:background="@drawable/circle_button_background" + android:background="@drawable/circle_button_background_ripple" android:contentDescription="@string/call_add" android:padding="@dimen/activity_margin" android:src="@drawable/ic_add_call_vector" @@ -232,7 +232,7 @@ android:layout_width="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size" android:layout_marginTop="@dimen/big_margin" - android:background="@drawable/circle_button_background" + android:background="@drawable/circle_button_background_ripple" android:contentDescription="@string/conference_manage" android:padding="@dimen/activity_margin" android:src="@drawable/ic_people_vector" @@ -247,7 +247,7 @@ android:layout_width="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size" android:layout_marginTop="@dimen/big_margin" - android:background="@drawable/circle_button_background" + android:background="@drawable/circle_button_background_ripple" android:contentDescription="@string/call_swap" android:padding="@dimen/activity_margin" android:src="@drawable/ic_call_swap_vector" @@ -261,7 +261,7 @@ android:layout_width="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size" android:layout_marginTop="@dimen/big_margin" - android:background="@drawable/circle_button_background" + android:background="@drawable/circle_button_background_ripple" android:contentDescription="@string/call_merge" android:padding="@dimen/activity_margin" android:src="@drawable/ic_call_merge_vector" From 0b4048785d4bef152aab23e47f47862cf82ee418 Mon Sep 17 00:00:00 2001 From: Naveen Date: Tue, 8 Nov 2022 22:41:01 +0530 Subject: [PATCH 5/9] Always use primary color for button background --- .../dialer/activities/CallActivity.kt | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) 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 54ea56cc..ce5b0ab4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt @@ -189,13 +189,14 @@ class CallActivity : SimpleActivity() { it.applyColorFilter(getProperTextColor()) } + val bgColor = getProperBackgroundColor() + val inactiveColor = getInactiveButtonColor() 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()) + it.background.applyColorFilter(inactiveColor) } arrayOf( @@ -377,9 +378,7 @@ class CallActivity : SimpleActivity() { private fun toggleSpeaker() { isSpeakerOn = !isSpeakerOn - val color = if (isSpeakerOn) getActiveButtonColor() else getInactiveButtonColor() - call_toggle_speaker.background.applyColorFilter(color) - call_toggle_speaker.applyColorFilter(color.getContrastColor()) + toggleButtonColor(call_toggle_speaker, isSpeakerOn) audioManager.isSpeakerphoneOn = isSpeakerOn @@ -396,9 +395,7 @@ class CallActivity : SimpleActivity() { private fun toggleMicrophone() { isMicrophoneOff = !isMicrophoneOff - val color = if (isMicrophoneOff) getActiveButtonColor() else getInactiveButtonColor() - call_toggle_microphone.background.applyColorFilter(color) - call_toggle_microphone.applyColorFilter(color.getContrastColor()) + toggleButtonColor(call_toggle_microphone, isMicrophoneOff) 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) @@ -436,9 +433,7 @@ class CallActivity : SimpleActivity() { private fun toggleHold() { val isOnHold = CallManager.toggleHold() - val drawable = if (isOnHold) getActiveButtonColor() else getInactiveButtonColor() - call_toggle_hold.background.applyColorFilter(drawable) - call_toggle_hold.applyColorFilter(drawable.getContrastColor()) + toggleButtonColor(call_toggle_hold, isOnHold) call_toggle_hold.contentDescription = getString(if (isOnHold) R.string.resume_call else R.string.hold_call) hold_status_label.beVisibleIf(isOnHold) } @@ -702,5 +697,16 @@ class CallActivity : SimpleActivity() { private fun getActiveButtonColor() = getProperPrimaryColor() - private fun getInactiveButtonColor() = getProperBackgroundColor().darkenColor(4) + private fun getInactiveButtonColor() = getActiveButtonColor().adjustAlpha(0.2f) + + private fun toggleButtonColor(view: ImageView, enabled: Boolean) { + if (enabled) { + val color = getActiveButtonColor() + view.background.applyColorFilter(color) + view.applyColorFilter(color.getContrastColor()) + } else { + view.background.applyColorFilter(getInactiveButtonColor()) + view.applyColorFilter(getProperBackgroundColor().getContrastColor()) + } + } } From 5751789b8605f8e20ffcf39dca8dd426c08d2ea6 Mon Sep 17 00:00:00 2001 From: Naveen Date: Tue, 8 Nov 2022 23:05:56 +0530 Subject: [PATCH 6/9] Add some margin and align the views --- app/src/main/res/layout/item_recent_call.xml | 26 ++++++++++++-------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/layout/item_recent_call.xml b/app/src/main/res/layout/item_recent_call.xml index 9e6d371c..0e35bccf 100644 --- a/app/src/main/res/layout/item_recent_call.xml +++ b/app/src/main/res/layout/item_recent_call.xml @@ -26,6 +26,7 @@ android:layout_marginEnd="@dimen/small_margin" android:padding="@dimen/small_margin" android:src="@drawable/ic_person_vector" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -33,7 +34,8 @@ android:id="@+id/item_recents_name" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginEnd="0dp" + android:layout_marginStart="@dimen/small_margin" + android:layout_marginEnd="@dimen/small_margin" android:ellipsize="end" android:maxLines="1" android:textSize="@dimen/bigger_text_size" @@ -44,8 +46,9 @@ + app:layout_constraintTop_toTopOf="@+id/item_recents_date_time" + tools:visibility="visible" /> Date: Wed, 9 Nov 2022 11:58:02 +0530 Subject: [PATCH 7/9] Animate the dialpad --- .../dialer/activities/CallActivity.kt | 28 +++++++++++++++++-- app/src/main/res/layout/activity_call.xml | 2 +- 2 files changed, 27 insertions(+), 3 deletions(-) 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 ce5b0ab4..ff21a4b7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt @@ -17,6 +17,7 @@ import android.telecom.CallAudioState import android.view.MotionEvent import android.view.View import android.view.WindowManager +import android.view.animation.AccelerateDecelerateInterpolator import android.view.animation.OvershootInterpolator import android.widget.ImageView import androidx.core.view.children @@ -55,6 +56,7 @@ class CallActivity : SimpleActivity() { private var dragDownX = 0f private var stopAnimation = false private var viewsUnderDialpad = arrayListOf>() + private var dialpadHeight = 0f override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -213,6 +215,10 @@ class CallActivity : SimpleActivity() { call_sim_id.setTextColor(getProperTextColor().getContrastColor()) dialpad_input.disableKeyboard() + + dialpad_wrapper.onGlobalLayout { + dialpadHeight = dialpad_wrapper.height.toFloat() + } } @SuppressLint("ClickableViewAccessibility") @@ -410,7 +416,18 @@ class CallActivity : SimpleActivity() { } private fun showDialpad() { - dialpad_wrapper.animate().withStartAction { dialpad_wrapper.beVisible() }.alpha(1f) + dialpad_wrapper.apply { + translationY = dialpadHeight + alpha = 0f + animate() + .withStartAction { beVisible() } + .setInterpolator(AccelerateDecelerateInterpolator()) + .setDuration(200L) + .alpha(1f) + .translationY(0f) + .start() + } + viewsUnderDialpad.clear() viewsUnderDialpad.addAll(findVisibleViewsUnderDialpad()) viewsUnderDialpad.forEach { (view, _) -> @@ -422,7 +439,14 @@ class CallActivity : SimpleActivity() { } private fun hideDialpad() { - dialpad_wrapper.animate().alpha(0f).withEndAction { dialpad_wrapper.beGone() }.duration = 150L + dialpad_wrapper.animate() + .withEndAction { dialpad_wrapper.beGone() } + .setInterpolator(AccelerateDecelerateInterpolator()) + .setDuration(200L) + .alpha(0f) + .translationY(dialpadHeight) + .start() + viewsUnderDialpad.forEach { (view, alpha) -> view.run { animate().withStartAction { beVisible() }.setInterpolator(OvershootInterpolator()).scaleX(1f).alpha(alpha).duration = 250L diff --git a/app/src/main/res/layout/activity_call.xml b/app/src/main/res/layout/activity_call.xml index 1e825e09..ad65c6da 100644 --- a/app/src/main/res/layout/activity_call.xml +++ b/app/src/main/res/layout/activity_call.xml @@ -429,7 +429,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:visibility="gone" + android:visibility="invisible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"> From 0c1caaeac01bb61d5b4f61048c1dc029e5ee14dc Mon Sep 17 00:00:00 2001 From: Naveen Date: Wed, 9 Nov 2022 12:18:17 +0530 Subject: [PATCH 8/9] Use grey-ish color tone for inactive state --- .../com/simplemobiletools/dialer/activities/CallActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ff21a4b7..56694c6e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt @@ -721,7 +721,7 @@ class CallActivity : SimpleActivity() { private fun getActiveButtonColor() = getProperPrimaryColor() - private fun getInactiveButtonColor() = getActiveButtonColor().adjustAlpha(0.2f) + private fun getInactiveButtonColor() = getProperTextColor().adjustAlpha(0.10f) private fun toggleButtonColor(view: ImageView, enabled: Boolean) { if (enabled) { From 092d0a800dde32c04fde7c3cbdfdd5bacf9d3103 Mon Sep 17 00:00:00 2001 From: Naveen Date: Wed, 9 Nov 2022 14:43:55 +0530 Subject: [PATCH 9/9] Elevate dialpad a little --- app/src/main/res/layout/activity_call.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/layout/activity_call.xml b/app/src/main/res/layout/activity_call.xml index ad65c6da..a51bbff0 100644 --- a/app/src/main/res/layout/activity_call.xml +++ b/app/src/main/res/layout/activity_call.xml @@ -428,6 +428,7 @@ android:id="@+id/dialpad_wrapper" android:layout_width="match_parent" android:layout_height="wrap_content" + android:elevation="@dimen/medium_margin" android:orientation="vertical" android:visibility="invisible" app:layout_constraintBottom_toBottomOf="parent"