summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/inputmethod/InputMethodManager.java41
1 files changed, 26 insertions, 15 deletions
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 883930f957fd..f5908a50ec64 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -827,7 +827,7 @@ public final class InputMethodManager {
void finishInputLocked() {
mNextServedView = null;
if (mServedView != null) {
- if (DEBUG) Log.v(TAG, "FINISH INPUT: " + mServedView);
+ if (DEBUG) Log.v(TAG, "FINISH INPUT: mServedView=" + dumpViewInfo(mServedView));
if (mCurrentTextBoxAttribute != null) {
try {
mService.finishInput(mClient);
@@ -1136,10 +1136,10 @@ public final class InputMethodManager {
final View view;
synchronized (mH) {
view = mServedView;
-
+
// Make sure we have a window token for the served view.
if (DEBUG) {
- Log.v(TAG, "Starting input: view=" + view +
+ Log.v(TAG, "Starting input: view=" + dumpViewInfo(view) +
" reason=" + InputMethodClient.getStartInputReason(startInputReason));
}
if (view == null) {
@@ -1147,7 +1147,7 @@ public final class InputMethodManager {
return false;
}
}
-
+
// Now we need to get an input connection from the served view.
// This is complicated in a couple ways: we can't be holding our lock
// when calling out to the view, and we need to make sure we call into
@@ -1192,9 +1192,10 @@ public final class InputMethodManager {
// changed.
if (mServedView != view || !mServedConnecting) {
// Something else happened, so abort.
- if (DEBUG) Log.v(TAG,
- "Starting input: finished by someone else (view="
- + mServedView + " conn=" + mServedConnecting + ")");
+ if (DEBUG) Log.v(TAG,
+ "Starting input: finished by someone else. view=" + dumpViewInfo(view)
+ + " mServedView=" + dumpViewInfo(mServedView)
+ + " mServedConnecting=" + mServedConnecting);
return false;
}
@@ -1238,7 +1239,7 @@ public final class InputMethodManager {
mServedInputConnectionWrapper = servedContext;
try {
- if (DEBUG) Log.v(TAG, "START INPUT: " + view + " ic="
+ if (DEBUG) Log.v(TAG, "START INPUT: view=" + dumpViewInfo(view) + " ic="
+ ic + " tba=" + tba + " controlFlags=#"
+ Integer.toHexString(controlFlags));
final InputBindResult res = mService.startInputOrWindowGainedFocus(
@@ -1304,7 +1305,7 @@ public final class InputMethodManager {
}
void focusInLocked(View view) {
- if (DEBUG) Log.v(TAG, "focusIn: " + view);
+ if (DEBUG) Log.v(TAG, "focusIn: " + dumpViewInfo(view));
if (mCurRootView != view.getRootView()) {
// This is a request from a window that isn't in the window with
@@ -1323,9 +1324,8 @@ public final class InputMethodManager {
*/
public void focusOut(View view) {
synchronized (mH) {
- if (DEBUG) Log.v(TAG, "focusOut: " + view
- + " mServedView=" + mServedView
- + " winFocus=" + view.hasWindowFocus());
+ if (DEBUG) Log.v(TAG, "focusOut: view=" + dumpViewInfo(view)
+ + " mServedView=" + dumpViewInfo(mServedView));
if (mServedView != view) {
// The following code would auto-hide the IME if we end up
// with no more views with focus. This can happen, however,
@@ -1346,9 +1346,8 @@ public final class InputMethodManager {
*/
public void onViewDetachedFromWindow(View view) {
synchronized (mH) {
- if (DEBUG) Log.v(TAG, "onViewDetachedFromWindow: " + view
- + " mServedView=" + mServedView
- + " hasWindowFocus=" + view.hasWindowFocus());
+ if (DEBUG) Log.v(TAG, "onViewDetachedFromWindow: view=" + dumpViewInfo(view)
+ + " mServedView=" + dumpViewInfo(mServedView));
if (mServedView == view && view.hasWindowFocus()) {
mNextServedView = null;
scheduleCheckFocusLocked(view);
@@ -2306,4 +2305,16 @@ public final class InputMethodManager {
}
}
}
+
+ private static String dumpViewInfo(@Nullable final View view) {
+ if (view == null) {
+ return "null";
+ }
+ final StringBuilder sb = new StringBuilder();
+ sb.append(view);
+ sb.append(",focus=" + view.hasFocus());
+ sb.append(",windowFocus=" + view.hasWindowFocus());
+ sb.append(",window=" + view.getWindowToken());
+ return sb.toString();
+ }
}