@Implementation public void setTo(Configuration o) { // commented out lines are coming in a newer version of Android SDK realConfiguration.fontScale = o.fontScale; realConfiguration.mcc = o.mcc; realConfiguration.mnc = o.mnc; if (o.locale != null) { realConfiguration.locale = (Locale) o.locale.clone(); // realConfiguration.textLayoutDirection = o.textLayoutDirection; } // realConfiguration.userSetLocale = o.userSetLocale; realConfiguration.touchscreen = o.touchscreen; realConfiguration.keyboard = o.keyboard; realConfiguration.keyboardHidden = o.keyboardHidden; realConfiguration.hardKeyboardHidden = o.hardKeyboardHidden; realConfiguration.navigation = o.navigation; realConfiguration.navigationHidden = o.navigationHidden; realConfiguration.orientation = o.orientation; realConfiguration.screenLayout = o.screenLayout; realConfiguration.uiMode = o.uiMode; realConfiguration.screenWidthDp = o.screenWidthDp; realConfiguration.screenHeightDp = o.screenHeightDp; realConfiguration.smallestScreenWidthDp = o.smallestScreenWidthDp; // realConfiguration.compatScreenWidthDp = o.compatScreenWidthDp; // realConfiguration.compatScreenHeightDp = o.compatScreenHeightDp; // realConfiguration.compatSmallestScreenWidthDp = o.compatSmallestScreenWidthDp; // realConfiguration.seq = o.seq; }
/** Change the configuration used when retrieving resources. Not for use by applications. */ @Override public void setConfiguration( int mcc, int mnc, String locale, int orientation, int touchscreen, int density, int keyboard, int keyboardHidden, int navigation, int screenWidth, int screenHeight, int version) { Configuration c = new Configuration(); c.mcc = mcc; c.mnc = mnc; c.locale = new Locale(locale); c.touchscreen = touchscreen; c.keyboard = keyboard; c.keyboardHidden = keyboardHidden; c.navigation = navigation; c.orientation = orientation; }
@Test public void testForceMakeKeyboardsOnOrientationChange() { final Configuration configuration = RuntimeEnvironment.application.getResources().getConfiguration(); configuration.orientation = Configuration.ORIENTATION_LANDSCAPE; mAnySoftKeyboardUnderTest.onConfigurationChanged(configuration); Mockito.verify(mAnySoftKeyboardUnderTest.getSpiedKeyboardSwitcher()).flushKeyboardsCache(); // sanity Mockito.reset(mAnySoftKeyboardUnderTest.getSpiedKeyboardSwitcher()); mAnySoftKeyboardUnderTest.onConfigurationChanged(configuration); Mockito.verify(mAnySoftKeyboardUnderTest.getSpiedKeyboardSwitcher(), Mockito.never()) .flushKeyboardsCache(); }
@SmallTest public void testClientSidePreferenceSharedPreferencesConfiguration() { SharedPreferences sharedPreferences = MozcPreferenceUtil.getSharedPreferences( getInstrumentation().getContext(), "CLIENT_SIDE_PREF"); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_PORTRAIT_KEYBOARD_LAYOUT_KEY, PORTRAIT_KEYBOARD_LAYOUT.name()); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_PORTRAIT_INPUT_STYLE_KEY, PORTRAIT_INPUT_STYLE.name()); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_PORTRAIT_QWERTY_LAYOUT_FOR_ALPHABET_KEY, PORTRAIT_QWERTY_LAYOUT_FOR_ALPHABET); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_PORTRAIT_FLICK_SENSITIVITY_KEY, PORTRAIT_FLICK_SENSITIVITY); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_LANDSCAPE_KEYBOARD_LAYOUT_KEY, LANDSCAPE_KEYBOARD_LAYOUT.name()); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_LANDSCAPE_INPUT_STYLE_KEY, LANDSCAPE_INPUT_STYLE.name()); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_LANDSCAPE_QWERTY_LAYOUT_FOR_ALPHABET_KEY, LANDSCAPE_QWERTY_LAYOUT_FOR_ALPHABET); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_LANDSCAPE_FLICK_SENSITIVITY_KEY, LANDSCAPE_FLICK_SENSITIVITY); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_PORTRAIT_FULLSCREEN_KEY, PORTRAIT_FULLSCREEN_MODE); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_LANDSCAPE_FULLSCREEN_KEY, LANDSCAPE_FULLSCREEN_MODE); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_PORTRAIT_LAYOUT_ADJUSTMENT_KEY, PORTRAIT_LAYOUT_ADJUSTMENT.name()); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_LANDSCAPE_LAYOUT_ADJUSTMENT_KEY, LANDSCAPE_LAYOUT_ADJUSTMENT.name()); MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_SKIN_TYPE, SkinType.BLUE_LIGHTGRAY.name()); class TestData extends Parameter { final int orientation; final boolean usePortraitKeyboardSettingsForLandscape; final KeyboardLayout expectedKeyboardLayout; final InputStyle expectedInputStyle; final boolean expectedQwertyLayoutForAlphabet; final int expectedFlickSensitivity; final boolean expectedFullscreenMode; final LayoutAdjustment expectedLayoutAdjustment; final SkinType expectedSkinType; TestData( int orientation, boolean usePortraitKeyboardSettingsForLandscape, KeyboardLayout expectedKeyboardLayout, InputStyle expectedInputStyle, boolean expectedQwertyLayoutForAlphabet, int expectedFlickSensitivity, LayoutAdjustment expectedLayoutAdjustment, boolean expectedFullscreenMode, SkinType expectedSkinType) { this.orientation = orientation; this.usePortraitKeyboardSettingsForLandscape = usePortraitKeyboardSettingsForLandscape; this.expectedKeyboardLayout = expectedKeyboardLayout; this.expectedInputStyle = expectedInputStyle; this.expectedQwertyLayoutForAlphabet = expectedQwertyLayoutForAlphabet; this.expectedFlickSensitivity = expectedFlickSensitivity; this.expectedLayoutAdjustment = expectedLayoutAdjustment; this.expectedFullscreenMode = expectedFullscreenMode; this.expectedSkinType = expectedSkinType; } } TestData[] testDataList = { new TestData( Configuration.ORIENTATION_PORTRAIT, false, PORTRAIT_KEYBOARD_LAYOUT, PORTRAIT_INPUT_STYLE, PORTRAIT_QWERTY_LAYOUT_FOR_ALPHABET, PORTRAIT_FLICK_SENSITIVITY, PORTRAIT_LAYOUT_ADJUSTMENT, PORTRAIT_FULLSCREEN_MODE, SkinType.BLUE_LIGHTGRAY), new TestData( Configuration.ORIENTATION_LANDSCAPE, false, LANDSCAPE_KEYBOARD_LAYOUT, LANDSCAPE_INPUT_STYLE, LANDSCAPE_QWERTY_LAYOUT_FOR_ALPHABET, LANDSCAPE_FLICK_SENSITIVITY, LANDSCAPE_LAYOUT_ADJUSTMENT, LANDSCAPE_FULLSCREEN_MODE, SkinType.BLUE_LIGHTGRAY), new TestData( Configuration.ORIENTATION_PORTRAIT, true, PORTRAIT_KEYBOARD_LAYOUT, PORTRAIT_INPUT_STYLE, PORTRAIT_QWERTY_LAYOUT_FOR_ALPHABET, PORTRAIT_FLICK_SENSITIVITY, PORTRAIT_LAYOUT_ADJUSTMENT, PORTRAIT_FULLSCREEN_MODE, SkinType.BLUE_LIGHTGRAY), new TestData( Configuration.ORIENTATION_LANDSCAPE, true, PORTRAIT_KEYBOARD_LAYOUT, PORTRAIT_INPUT_STYLE, PORTRAIT_QWERTY_LAYOUT_FOR_ALPHABET, PORTRAIT_FLICK_SENSITIVITY, PORTRAIT_LAYOUT_ADJUSTMENT, LANDSCAPE_FULLSCREEN_MODE, SkinType.BLUE_LIGHTGRAY), }; for (TestData testData : testDataList) { MozcPreferenceUtil.updateSharedPreference( sharedPreferences, PreferenceUtil.PREF_USE_PORTRAIT_KEYBOARD_SETTINGS_FOR_LANDSCAPE_KEY, testData.usePortraitKeyboardSettingsForLandscape); Configuration configuration = new Configuration(); configuration.orientation = testData.orientation; ClientSidePreference preference = new ClientSidePreference(sharedPreferences, configuration); assertEquals( testData.toString(), testData.expectedKeyboardLayout, preference.getKeyboardLayout()); assertEquals(testData.toString(), testData.expectedInputStyle, preference.getInputStyle()); assertEquals( testData.toString(), testData.expectedQwertyLayoutForAlphabet, preference.isQwertyLayoutForAlphabet()); assertEquals( testData.toString(), testData.expectedFlickSensitivity, preference.getFlickSensitivity()); assertEquals( testData.toString(), testData.expectedLayoutAdjustment, preference.getLayoutAdjustment()); assertEquals( testData.toString(), testData.expectedFullscreenMode, preference.isFullscreenMode()); assertEquals(testData.toString(), testData.expectedSkinType, preference.getSkinType()); } }
private Configuration getConfiguration() { Configuration config = new Configuration(); HardwareConfig hardwareConfig = mParams.getHardwareConfig(); ScreenSize screenSize = hardwareConfig.getScreenSize(); if (screenSize != null) { switch (screenSize) { case SMALL: config.screenLayout |= Configuration.SCREENLAYOUT_SIZE_SMALL; break; case NORMAL: config.screenLayout |= Configuration.SCREENLAYOUT_SIZE_NORMAL; break; case LARGE: config.screenLayout |= Configuration.SCREENLAYOUT_SIZE_LARGE; break; case XLARGE: config.screenLayout |= Configuration.SCREENLAYOUT_SIZE_XLARGE; break; } } Density density = hardwareConfig.getDensity(); if (density == null) { density = Density.MEDIUM; } config.screenWidthDp = hardwareConfig.getScreenWidth() / density.getDpiValue(); config.screenHeightDp = hardwareConfig.getScreenHeight() / density.getDpiValue(); if (config.screenHeightDp < config.screenWidthDp) { //noinspection SuspiciousNameCombination config.smallestScreenWidthDp = config.screenHeightDp; } else { config.smallestScreenWidthDp = config.screenWidthDp; } config.densityDpi = density.getDpiValue(); // never run in compat mode: config.compatScreenWidthDp = config.screenWidthDp; config.compatScreenHeightDp = config.screenHeightDp; ScreenOrientation orientation = hardwareConfig.getOrientation(); if (orientation != null) { switch (orientation) { case PORTRAIT: config.orientation = Configuration.ORIENTATION_PORTRAIT; break; case LANDSCAPE: config.orientation = Configuration.ORIENTATION_LANDSCAPE; break; case SQUARE: //noinspection deprecation config.orientation = Configuration.ORIENTATION_SQUARE; break; } } else { config.orientation = Configuration.ORIENTATION_UNDEFINED; } // TODO: fill in more config info. return config; }