Merge "Dump more info for View when IMM#DEBUG is true." into nyc-dev

This commit is contained in:
Yohei Yukawa
2016-03-28 18:20:55 +00:00
committed by Android (Google) Code Review

View File

@@ -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();
}
}