Trapping backspace at EditText level to prevent popping Docs.

When the EditText is empty, pressing backspace on soft/hardware keyboard
will call on the EditText's OnKeyListener. Since we don't handle
backspace, it will then bubble up to Activity-level, which will then pop
the document stack due to the feature of using backspace as navigation.
This will trap the call correctly if the EditText is empty.

Bug: 30066261
Change-Id: I231507b9469bfa52478872491f1d2713a1ac58ba
This commit is contained in:
Ben Lin
2016-07-11 16:25:33 -07:00
parent ab1b52a0c4
commit d9ba201f59

View File

@@ -22,6 +22,7 @@ import android.app.FragmentTransaction;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -91,6 +92,14 @@ public class SaveFragment extends Fragment {
return false;
}
// Returning false in this method will bubble the event up to
// {@link BaseActivity#onKeyDown}. In order to prevent backspace popping
// documents once the textView is empty, we are going to trap it here.
if (keyCode == KeyEvent.KEYCODE_DEL
&& TextUtils.isEmpty(mDisplayName.getText())) {
return true;
}
if (keyCode == KeyEvent.KEYCODE_ENTER && mSave.isEnabled()) {
performSave();
return true;