Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5effd7e8 authored by Alan Viverette's avatar Alan Viverette
Browse files

Partial revert "Load device default theme mapping from resources"

This reverts commit e4ab72d54cf41d16819b72e94d9b0d0d51289647.

Change-Id: Id17170312c75993fc1f7859d52c7e050b2aeaf80
parent 5d039c45
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -473,14 +473,14 @@ class ContextImpl extends Context {
        registerService(NOTIFICATION_SERVICE, new ServiceFetcher() {
                public Object createService(ContextImpl ctx) {
                    final Context outerContext = ctx.getOuterContext();
                    // TODO: Why are we not just using the theme attribute
                    // that defines the dialog theme?
                    return new NotificationManager(
                        new ContextThemeWrapper(outerContext,
                                outerContext.getResources().selectSystemTheme(0,
                                Resources.selectSystemTheme(0,
                                        outerContext.getApplicationInfo().targetSdkVersion,
                                        com.android.internal.R.array.system_theme_sdks,
                                        com.android.internal.R.array.system_theme_dialog_styles)),
                                        com.android.internal.R.style.Theme_Dialog,
                                        com.android.internal.R.style.Theme_Holo_Dialog,
                                        com.android.internal.R.style.Theme_DeviceDefault_Dialog,
                                        com.android.internal.R.style.Theme_DeviceDefault_Light_Dialog)),
                        ctx.mMainThread.getHandler());
                }});

@@ -731,7 +731,7 @@ class ContextImpl extends Context {
    @Override
    public Resources.Theme getTheme() {
        if (mTheme == null) {
            mThemeResource = mResources.selectDefaultTheme(mThemeResource,
            mThemeResource = Resources.selectDefaultTheme(mThemeResource,
                    getOuterContext().getApplicationInfo().targetSdkVersion);
            mTheme = mResources.newTheme();
            mTheme.applyStyle(mThemeResource, true);
+23 −26
Original line number Diff line number Diff line
@@ -137,45 +137,42 @@ public class Resources {

    /**
     * Returns the most appropriate default theme for the specified target SDK version.
     * <ul>
     * <li>Below API 11: Gingerbread
     * <li>APIs 11 thru 14: Holo
     * <li>APIs 14 thru XX: Device default dark
     * <li>API XX and above: Device default light with dark action bar
     * </ul>
     *
     * @param curTheme The current theme, or 0 if not specified.
     * @param targetSdkVersion The target SDK version.
     * @return A theme resource identifier
     * @hide
     */
    public int selectDefaultTheme(int curTheme, int targetSdkVersion) {
    public static int selectDefaultTheme(int curTheme, int targetSdkVersion) {
        return selectSystemTheme(curTheme, targetSdkVersion,
                com.android.internal.R.array.system_theme_sdks,
                com.android.internal.R.array.system_theme_styles);
                com.android.internal.R.style.Theme,
                com.android.internal.R.style.Theme_Holo,
                com.android.internal.R.style.Theme_DeviceDefault,
                com.android.internal.R.style.Theme_DeviceDefault_Light_DarkActionBar);
    }

    /**
     * Returns the most appropriate default theme for the specified target SDK version.
     *
     * @param curTheme The current theme, or 0 if not specified.
     * @param targetSdkVersion The target SDK version.
     * @param sdkArrayId Identifier for integer array resource containing
     *        sorted minimum SDK versions. First entry must be 0.
     * @param themeArrayId Identifier for array resource containing the
     *        default themes that map to SDK versions.
     * @return A theme resource identifier
     * @hide
     */
    public int selectSystemTheme(
            int curTheme, int targetSdkVersion, int sdkArrayId, int themeArrayId) {
    /** @hide */
    public static int selectSystemTheme(int curTheme, int targetSdkVersion, int orig, int holo,
            int dark, int deviceDefault) {
        if (curTheme != 0) {
            return curTheme;
        }

        final int[] targetSdks = getIntArray(sdkArrayId);
        final TypedArray defaultThemes = obtainTypedArray(themeArrayId);
        for (int i = targetSdks.length - 1; i > 0; i--) {
            if (targetSdkVersion >= targetSdks[i]) {
                return defaultThemes.getResourceId(i, 0);
        if (targetSdkVersion < Build.VERSION_CODES.HONEYCOMB) {
            return orig;
        }
        if (targetSdkVersion < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
            return holo;
        }

        return defaultThemes.getResourceId(0, 0);
        if (targetSdkVersion < Build.VERSION_CODES.CUR_DEVELOPMENT) {
            return dark;
        }
        return deviceDefault;
    }

    /**
+7 −5
Original line number Diff line number Diff line
@@ -654,11 +654,13 @@ public class InputMethodService extends AbstractInputMethodService {
        return false;
    }

    @Override
    public void onCreate() {
        mTheme = getResources().selectSystemTheme(mTheme, getApplicationInfo().targetSdkVersion,
                com.android.internal.R.array.system_theme_sdks,
                com.android.internal.R.array.system_theme_ime_styles);
    @Override public void onCreate() {
        mTheme = Resources.selectSystemTheme(mTheme,
                getApplicationInfo().targetSdkVersion,
                android.R.style.Theme_InputMethod,
                android.R.style.Theme_Holo_InputMethod,
                android.R.style.Theme_DeviceDefault_InputMethod,
                android.R.style.Theme_DeviceDefault_InputMethod);
        super.setTheme(mTheme);
        super.onCreate();
        mImm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
+1 −1
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ public class ContextThemeWrapper extends ContextWrapper {
            return mTheme;
        }

        mThemeResource = getResources().selectDefaultTheme(mThemeResource,
        mThemeResource = Resources.selectDefaultTheme(mThemeResource,
                getApplicationInfo().targetSdkVersion);
        initializeTheme();

+0 −39
Original line number Diff line number Diff line
@@ -348,43 +348,4 @@
        <item>中文 (繁體)</item>
    </string-array>

    <!-- Used by callers to Resources.selectSystemTheme(). Defines the minimum
         targetSdkVersion required for the theme style at a given index.
         NOTE: Must be sorted in ascending order. -->
    <integer-array name="system_theme_sdks">
        <item>0</item>
        <item>11</item>
        <item>14</item>
        <item>21</item>
    </integer-array>

    <!-- Used by Resources.selectDefaultTheme(). Defines the default theme style
         for the targetSdkVersion at a given index (see system_theme_sdks).
         NOTE: Must match number of entries in system_theme_sdks. -->
    <array name="system_theme_styles">
        <item>@style/Theme</item>
        <item>@style/Theme.Holo</item>
        <item>@style/Theme.DeviceDefault</item>
        <item>@style/Theme.DeviceDefault.Light.DarkActionBar</item>
    </array>

    <!-- Used by ContextImpl for notifications. Defines the default dialog theme
         style for the targetSdkVersion at a given index (see system_theme_sdks).
         NOTE: Must match number of entries in system_theme_sdks. -->
    <array name="system_theme_dialog_styles">
        <item>@style/Theme</item>
        <item>@style/Theme.Holo.Dialog</item>
        <item>@style/Theme.DeviceDefault.Dialog</item>
        <item>@style/Theme.DeviceDefault.Light.Dialog</item>
    </array>

    <!-- Used by InputMethodService.onCreate(). Defines the default IME theme
         style for the targetSdkVersion at a given index (see system_theme_sdks).
         NOTE: Must match number of entries in system_theme_sdks. -->
    <array name="system_theme_ime_styles">
        <item>@style/Theme.InputMethod</item>
        <item>@style/Theme.Holo.InputMethod</item>
        <item>@style/Theme.DeviceDefault.InputMethod</item>
        <item>@style/Theme.DeviceDefault.InputMethod</item>
    </array>
</resources>
Loading