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);
+        }
+    }
 }