196131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet/* 296131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * Copyright (C) 2011 The Android Open Source Project 396131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * 496131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License"); 596131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * you may not use this file except in compliance with the License. 696131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * You may obtain a copy of the License at 796131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * 896131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * http://www.apache.org/licenses/LICENSE-2.0 996131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * 1096131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * Unless required by applicable law or agreed to in writing, software 1196131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS, 1296131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1396131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * See the License for the specific language governing permissions and 1496131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * limitations under the License. 1596131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet */ 1696131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet 1796131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohetpackage android.view.inputmethod; 1896131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet 1996131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohetimport com.android.layoutlib.bridge.android.BridgeIInputMethodManager; 2096131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohetimport com.android.tools.layoutlib.annotations.LayoutlibDelegate; 2196131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet 22af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohetimport android.content.Context; 2396131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohetimport android.os.Looper; 2496131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet 2596131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet 2696131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet/** 2796131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * Delegate used to provide new implementation of a select few methods of {@link InputMethodManager} 2896131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * 2996131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * Through the layoutlib_create tool, the original methods of InputMethodManager have been replaced 3096131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * by calls to methods of the same name in this delegate class. 3196131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet * 3296131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet */ 3396131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohetpublic class InputMethodManager_Delegate { 3496131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet 3596131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet // ---- Overridden methods ---- 3696131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet 3796131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet @LayoutlibDelegate 3896131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet /*package*/ static InputMethodManager getInstance(Looper mainLooper) { 3996131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet synchronized (InputMethodManager.mInstanceSync) { 4096131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet if (InputMethodManager.mInstance != null) { 4196131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet return InputMethodManager.mInstance; 4296131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet } 4396131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet 4496131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet InputMethodManager.mInstance = new InputMethodManager(new BridgeIInputMethodManager(), 4596131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet mainLooper); 4696131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet } 4796131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet return InputMethodManager.mInstance; 48af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet } 49af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet 50af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet @LayoutlibDelegate 51af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet /*package*/ static InputMethodManager getInstance(Context context) { 52af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet synchronized (InputMethodManager.mInstanceSync) { 53af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet if (InputMethodManager.mInstance != null) { 54af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet return InputMethodManager.mInstance; 55af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet } 5696131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet 57af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet InputMethodManager.mInstance = new InputMethodManager(new BridgeIInputMethodManager(), 58af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet Looper.myLooper()); 59af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet } 60af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet return InputMethodManager.mInstance; 6196131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet } 6296131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet} 63