From 9b86c694ff82d88036deba374a208861788f7874 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 Sep 2018 10:58:51 +0200 Subject: [PATCH] implement char clearing at the dialpad --- .../contacts/activities/DialpadActivity.kt | 19 +++++++++++++++++++ app/src/main/res/layout/activity_dialpad.xml | 18 ++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/DialpadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/DialpadActivity.kt index 0c5ad59a..5f8190dd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/DialpadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/DialpadActivity.kt @@ -1,8 +1,11 @@ package com.simplemobiletools.contacts.activities import android.os.Bundle +import android.text.SpannableStringBuilder +import com.simplemobiletools.commons.extensions.applyColorFilter import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.contacts.R +import com.simplemobiletools.contacts.extensions.config import kotlinx.android.synthetic.main.activity_dialpad.* class DialpadActivity : SimpleActivity() { @@ -22,14 +25,30 @@ class DialpadActivity : SimpleActivity() { dialpad_9.setOnClickListener { dialpadPressed("9") } dialpad_asterisk.setOnClickListener { dialpadPressed("*") } dialpad_hashtag.setOnClickListener { dialpadPressed("#") } + dialpad_clear_char.setOnClickListener { clearChar() } + dialpad_clear_char.setOnLongClickListener { clearInput(); true } } override fun onResume() { super.onResume() updateTextColors(dialpad_wrapper) + dialpad_clear_char.applyColorFilter(config.textColor) } private fun dialpadPressed(char: String) { dialpad_input.append(char) } + + private fun clearChar() { + val curPostion = dialpad_input.selectionEnd + val reducedPos = Math.max(curPostion - 1, 0) + val selectedString = SpannableStringBuilder(dialpad_input.text) + selectedString.replace(reducedPos, curPostion, "") + dialpad_input.text = selectedString + dialpad_input.setSelection(reducedPos) + } + + private fun clearInput() { + dialpad_input.setText("") + } } diff --git a/app/src/main/res/layout/activity_dialpad.xml b/app/src/main/res/layout/activity_dialpad.xml index 80e2955e..5a9f8f5d 100644 --- a/app/src/main/res/layout/activity_dialpad.xml +++ b/app/src/main/res/layout/activity_dialpad.xml @@ -18,13 +18,27 @@ + app:layout_constraintBottom_toTopOf="@+id/dialpad_2" + app:layout_constraintEnd_toStartOf="@+id/dialpad_clear_char" + app:layout_constraintStart_toStartOf="parent"/> + +