Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(449)

Side by Side Diff: content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java

Issue 1278593004: Introduce ThreadedInputConnection behind a switch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed ImeTest#testDoesNotHang_rendererCrashes which does not test anything Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.content.browser.input; 5 package org.chromium.content.browser.input;
6 6
7 import android.annotation.TargetApi; 7 import android.annotation.TargetApi;
8 import android.content.Context; 8 import android.content.Context;
9 import android.os.Build; 9 import android.os.Build;
10 import android.os.IBinder; 10 import android.os.IBinder;
11 import android.os.ResultReceiver; 11 import android.os.ResultReceiver;
12 import android.view.View; 12 import android.view.View;
13 import android.view.inputmethod.CursorAnchorInfo; 13 import android.view.inputmethod.CursorAnchorInfo;
14 import android.view.inputmethod.InputMethodManager; 14 import android.view.inputmethod.InputMethodManager;
15 15
16 import org.chromium.base.Log; 16 import org.chromium.base.Log;
17 17
18 import java.lang.reflect.InvocationTargetException;
19 import java.lang.reflect.Method;
20
18 /** 21 /**
19 * Wrapper around Android's InputMethodManager 22 * Wrapper around Android's InputMethodManager
20 */ 23 */
21 public class InputMethodManagerWrapper { 24 public class InputMethodManagerWrapper {
22 private static final String TAG = "cr_Ime"; 25 private static final String TAG = "cr_Ime";
23 26
24 private final Context mContext; 27 private final Context mContext;
25 28
26 public InputMethodManagerWrapper(Context context) { 29 public InputMethodManagerWrapper(Context context) {
27 Log.d(TAG, "Constructor"); 30 Log.d(TAG, "Constructor");
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 * @see android.view.inputmethod.InputMethodManager#updateCursorAnchorInfo(V iew, 84 * @see android.view.inputmethod.InputMethodManager#updateCursorAnchorInfo(V iew,
82 * CursorAnchorInfo) 85 * CursorAnchorInfo)
83 */ 86 */
84 @TargetApi(Build.VERSION_CODES.LOLLIPOP) 87 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
85 public void updateCursorAnchorInfo(View view, CursorAnchorInfo cursorAnchorI nfo) { 88 public void updateCursorAnchorInfo(View view, CursorAnchorInfo cursorAnchorI nfo) {
86 Log.d(TAG, "updateCursorAnchorInfo"); 89 Log.d(TAG, "updateCursorAnchorInfo");
87 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 90 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
88 getInputMethodManager().updateCursorAnchorInfo(view, cursorAnchorInf o); 91 getInputMethodManager().updateCursorAnchorInfo(view, cursorAnchorInf o);
89 } 92 }
90 } 93 }
94
95 /**
96 * Notify that a user took some action with the current input method. Withou t this call
97 * an input method app may wait longer when the user switches methods within the app.
98 */
99 public void notifyUserAction() {
100 // On N and above, this is not needed.
101 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) return;
102 Log.d(TAG, "notifyUserAction");
103 InputMethodManager manager = getInputMethodManager();
104 try {
105 Method method = InputMethodManager.class.getMethod("notifyUserAction ");
106 method.invoke(manager);
107 } catch (NoSuchMethodException | IllegalAccessException | IllegalArgumen tException
palmer 2016/02/25 23:49:55 These are all subclasses of RuntimeException, righ
Changwan Ryu 2016/02/26 02:41:19 Hmm... I think it is a matter of readability and d
108 | InvocationTargetException e) {
109 Log.d(TAG, "notifyUserAction failed");
110 return;
111 }
112 }
91 } 113 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698