Fix issue #1983406: Soft keyboard doesn't show up in an EditText with "digits" attribute set
Also pretend to fix #2054990 (com.android.frameworktest: java.lang.NullPointerException
at android.accessibilityservice.AccessibilityService$IEventListenerWrapper.executeMessage(
AccessibilityService.java:215))... simply by making the variable that apparently was
null final, to assure myself that there is no possible way in the world for it to be
null. :p
Change-Id: I73e337d65b8360721896a0296691257b3e47564b
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index 8c422a2..03346fe 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -185,7 +185,7 @@
private final HandlerCaller mCaller;
- private AccessibilityService mTarget;
+ private final AccessibilityService mTarget;
public IEventListenerWrapper(AccessibilityService context) {
mTarget = context;
@@ -211,9 +211,9 @@
switch (message.what) {
case DO_ON_ACCESSIBILITY_EVENT :
AccessibilityEvent event = (AccessibilityEvent) message.obj;
- if (event != null){
- mTarget.onAccessibilityEvent(event);
- event.recycle();
+ if (event != null) {
+ mTarget.onAccessibilityEvent(event);
+ event.recycle();
}
return;
case DO_ON_INTERRUPT :
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index a611d5a..e98fd13 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -732,7 +732,11 @@
}
} else if (digits != null) {
mInput = DigitsKeyListener.getInstance(digits.toString());
- mInputType = inputType;
+ // If no input type was specified, we will default to generic
+ // text, since we can't tell the IME about the set of digits
+ // that was selected.
+ mInputType = inputType != EditorInfo.TYPE_NULL
+ ? inputType : EditorInfo.TYPE_CLASS_TEXT;
} else if (inputType != EditorInfo.TYPE_NULL) {
setInputType(inputType, true);
singleLine = (inputType&(EditorInfo.TYPE_MASK_CLASS