Fix for 0 showing up when longpressed in emergency dialer
Add the same logic in Dialer that erases the previous digit into
Emergency Dialer. Also remove some unneeded legacy code.
Bug: 18102844
Change-Id: If46cf7d44f9f25c58cfc395bded4788233e245c2
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index eb74956..106484b 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -442,13 +442,10 @@
switch (id) {
case R.id.deleteButton: {
mDigits.getText().clear();
- // TODO: The framework forgets to clear the pressed
- // status of disabled button. Until this is fixed,
- // clear manually the pressed status. b/2133127
- mDelete.setPressed(false);
return true;
}
case R.id.zero: {
+ removePreviousDigitIfPossible();
keyPressed(KeyEvent.KEYCODE_PLUS);
return true;
}
@@ -623,4 +620,16 @@
mDelete.setEnabled(notEmpty);
}
+
+ /**
+ * Remove the digit just before the current position. Used by various long pressed callbacks
+ * to remove the digit that was populated as a result of the short click.
+ */
+ private void removePreviousDigitIfPossible() {
+ final int currentPosition = mDigits.getSelectionStart();
+ if (currentPosition > 0) {
+ mDigits.setSelection(currentPosition);
+ mDigits.getText().delete(currentPosition - 1, currentPosition);
+ }
+ }
}