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 38f9e989d5f09e72f5c9a59d713521f37d3fdd93ddJeff Brown /*package*/ static InputMethodManager getInstance() { 39f9e989d5f09e72f5c9a59d713521f37d3fdd93ddJeff Brown synchronized (InputMethodManager.class) { 40f9e989d5f09e72f5c9a59d713521f37d3fdd93ddJeff Brown InputMethodManager imm = InputMethodManager.peekInstance(); 41f9e989d5f09e72f5c9a59d713521f37d3fdd93ddJeff Brown if (imm == null) { 42f9e989d5f09e72f5c9a59d713521f37d3fdd93ddJeff Brown imm = new InputMethodManager( 43f9e989d5f09e72f5c9a59d713521f37d3fdd93ddJeff Brown new BridgeIInputMethodManager(), Looper.getMainLooper()); 44f9e989d5f09e72f5c9a59d713521f37d3fdd93ddJeff Brown InputMethodManager.sInstance = imm; 4596131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet } 46f9e989d5f09e72f5c9a59d713521f37d3fdd93ddJeff Brown return imm; 47af64556de0064eeb5a4d4e6d634c3f074f5f40ceXavier Ducrohet } 4896131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet } 4996131eef3869f2be1300e1620f5c3874b41bb534Xavier Ducrohet} 50