17898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project/* 27898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * Copyright (C) 2009 The Android Open Source Project 37898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * 47898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 57898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * you may not use this file except in compliance with the License. 67898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * You may obtain a copy of the License at 77898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * 87898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 97898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * 107898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 117898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 127898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * See the License for the specific language governing permissions and 147898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * limitations under the License. 157898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 167898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 177898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Projectpackage com.android.inputmethod.pinyin; 187898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 197898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Projectimport android.content.Context; 207898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Projectimport android.content.res.Configuration; 217898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Projectimport android.view.Display; 227898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Projectimport android.view.WindowManager; 237898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 247898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project/** 257898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * Global environment configurations for showing soft keyboard and candidate 267898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * view. All original dimension values are defined in float, and the real size 277898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * is calculated from the float values of and screen size. In this way, this 287898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * input method can work even when screen size is changed. 297898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 307898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Projectpublic class Environment { 317898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 327898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * The key height for portrait mode. It is relative to the screen height. 337898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 347898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float KEY_HEIGHT_RATIO_PORTRAIT = 0.105f; 357898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 367898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 377898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * The key height for landscape mode. It is relative to the screen height. 387898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 397898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float KEY_HEIGHT_RATIO_LANDSCAPE = 0.147f; 407898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 417898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 427898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * The height of the candidates area for portrait mode. It is relative to 437898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * screen height. 447898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 457898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float CANDIDATES_AREA_HEIGHT_RATIO_PORTRAIT = 0.084f; 467898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 477898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 487898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * The height of the candidates area for portrait mode. It is relative to 497898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * screen height. 507898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 517898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float CANDIDATES_AREA_HEIGHT_RATIO_LANDSCAPE = 0.125f; 527898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 537898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 547898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * How much should the balloon width be larger than width of the real key. 557898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * It is relative to the smaller one of screen width and height. 567898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 577898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float KEY_BALLOON_WIDTH_PLUS_RATIO = 0.08f; 587898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 597898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 607898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * How much should the balloon height be larger than that of the real key. 617898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * It is relative to the smaller one of screen width and height. 627898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 637898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float KEY_BALLOON_HEIGHT_PLUS_RATIO = 0.07f; 647898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 657898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 667898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * The text size for normal keys. It is relative to the smaller one of 677898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * screen width and height. 687898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 697898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float NORMAL_KEY_TEXT_SIZE_RATIO = 0.075f; 707898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 717898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 727898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * The text size for function keys. It is relative to the smaller one of 737898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * screen width and height. 747898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 757898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float FUNCTION_KEY_TEXT_SIZE_RATIO = 0.055f; 767898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 777898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 787898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * The text size balloons of normal keys. It is relative to the smaller one 797898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * of screen width and height. 807898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 817898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float NORMAL_BALLOON_TEXT_SIZE_RATIO = 0.14f; 827898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 837898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 847898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * The text size balloons of function keys. It is relative to the smaller 857898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * one of screen width and height. 867898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 877898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static final float FUNCTION_BALLOON_TEXT_SIZE_RATIO = 0.085f; 887898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 897898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project /** 907898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project * The configurations are managed in a singleton. 917898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project */ 927898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private static Environment mInstance; 937898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 947898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mScreenWidth; 957898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mScreenHeight; 967898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mKeyHeight; 977898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mCandidatesAreaHeight; 987898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mKeyBalloonWidthPlus; 997898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mKeyBalloonHeightPlus; 1007898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mNormalKeyTextSize; 1017898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mFunctionKeyTextSize; 1027898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mNormalBalloonTextSize; 1037898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private int mFunctionBalloonTextSize; 1047898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private Configuration mConfig = new Configuration(); 1057898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private boolean mDebug = false; 1067898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1077898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project private Environment() { 1087898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1097898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1107898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public static Environment getInstance() { 1117898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project if (null == mInstance) { 1127898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mInstance = new Environment(); 1137898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1147898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mInstance; 1157898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1167898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1177898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public void onConfigurationChanged(Configuration newConfig, Context context) { 1187898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project if (mConfig.orientation != newConfig.orientation) { 1197898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project WindowManager wm = (WindowManager) context 1207898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project .getSystemService(Context.WINDOW_SERVICE); 1217898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project Display d = wm.getDefaultDisplay(); 1227898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mScreenWidth = d.getWidth(); 1237898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mScreenHeight = d.getHeight(); 1247898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1257898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project int scale; 1267898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project if (mScreenHeight > mScreenWidth) { 1277898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mKeyHeight = (int) (mScreenHeight * KEY_HEIGHT_RATIO_PORTRAIT); 1287898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mCandidatesAreaHeight = (int) (mScreenHeight * CANDIDATES_AREA_HEIGHT_RATIO_PORTRAIT); 1297898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project scale = mScreenWidth; 1307898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } else { 1317898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mKeyHeight = (int) (mScreenHeight * KEY_HEIGHT_RATIO_LANDSCAPE); 1327898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mCandidatesAreaHeight = (int) (mScreenHeight * CANDIDATES_AREA_HEIGHT_RATIO_LANDSCAPE); 1337898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project scale = mScreenHeight; 1347898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1357898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mNormalKeyTextSize = (int) (scale * NORMAL_KEY_TEXT_SIZE_RATIO); 1367898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mFunctionKeyTextSize = (int) (scale * FUNCTION_KEY_TEXT_SIZE_RATIO); 1377898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mNormalBalloonTextSize = (int) (scale * NORMAL_BALLOON_TEXT_SIZE_RATIO); 1387898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mFunctionBalloonTextSize = (int) (scale * FUNCTION_BALLOON_TEXT_SIZE_RATIO); 1397898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mKeyBalloonWidthPlus = (int) (scale * KEY_BALLOON_WIDTH_PLUS_RATIO); 1407898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mKeyBalloonHeightPlus = (int) (scale * KEY_BALLOON_HEIGHT_PLUS_RATIO); 1417898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1427898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1437898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project mConfig.updateFrom(newConfig); 1447898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1457898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1467898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public Configuration getConfiguration() { 1477898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mConfig; 1487898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1497898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1507898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public int getScreenWidth() { 1517898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mScreenWidth; 1527898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1537898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1547898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public int getScreenHeight() { 1557898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mScreenHeight; 1567898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1577898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1587898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public int getHeightForCandidates() { 1597898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mCandidatesAreaHeight; 1607898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1617898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1627898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public float getKeyXMarginFactor() { 1637898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return 1.0f; 1647898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1657898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1667898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public float getKeyYMarginFactor() { 1677898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project if (Configuration.ORIENTATION_LANDSCAPE == mConfig.orientation) { 1687898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return 0.7f; 1697898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1707898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return 1.0f; 1717898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1727898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1737898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public int getKeyHeight() { 1747898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mKeyHeight; 1757898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1767898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1777898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public int getKeyBalloonWidthPlus() { 1787898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mKeyBalloonWidthPlus; 1797898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1807898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1817898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public int getKeyBalloonHeightPlus() { 1827898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mKeyBalloonHeightPlus; 1837898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1847898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1857898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public int getSkbHeight() { 1867898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project if (Configuration.ORIENTATION_PORTRAIT == mConfig.orientation) { 1877898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mKeyHeight * 4; 1887898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } else if (Configuration.ORIENTATION_LANDSCAPE == mConfig.orientation) { 1897898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mKeyHeight * 4; 1907898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1917898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return 0; 1927898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 1937898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 1947898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public int getKeyTextSize(boolean isFunctionKey) { 1957898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project if (isFunctionKey) { 1967898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mFunctionKeyTextSize; 1977898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } else { 1987898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mNormalKeyTextSize; 1997898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 2007898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 2017898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 2027898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public int getBalloonTextSize(boolean isFunctionKey) { 2037898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project if (isFunctionKey) { 2047898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mFunctionBalloonTextSize; 2057898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } else { 2067898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mNormalBalloonTextSize; 2077898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 2087898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 2097898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 2107898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public boolean hasHardKeyboard() { 2117898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project if (mConfig.keyboard == Configuration.KEYBOARD_NOKEYS 2127898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project || mConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) { 2137898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return false; 2147898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 2157898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return true; 2167898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 2177898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project 2187898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project public boolean needDebug() { 2197898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project return mDebug; 2207898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project } 2217898d76cc005bbe1c5893a9f57439561e0771ccThe Android Open Source Project} 222