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