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

Unverified Commit cad34b5f authored by Georg Veichtlbauer's avatar Georg Veichtlbauer Committed by Michael Bestas
Browse files

LatinIME: Cause theme reload when dark mode has changed

Fixes icon colors not being updated

Change-Id: Id72ffa3e062a0f180eae6f238625b6bf7c342dbf
parent b9dee201
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.inputmethod.keyboard;

import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.util.Log;
import android.view.ContextThemeWrapper;
@@ -67,6 +68,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {

    private KeyboardTheme mKeyboardTheme;
    private Context mThemeContext;
    private int mActiveUiMode;

    private static final KeyboardSwitcher sInstance = new KeyboardSwitcher();

@@ -101,10 +103,14 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {

    private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context,
            final KeyboardTheme keyboardTheme) {
        if (mThemeContext == null || !keyboardTheme.equals(mKeyboardTheme)
        final boolean darkModeChanged = (mActiveUiMode & Configuration.UI_MODE_NIGHT_MASK)
                != (context.getResources().getConfiguration().uiMode
                    & Configuration.UI_MODE_NIGHT_MASK);
        if (mThemeContext == null || !keyboardTheme.equals(mKeyboardTheme) || darkModeChanged
                || !mThemeContext.getResources().equals(context.getResources())) {
            mKeyboardTheme = keyboardTheme;
            mThemeContext = new ContextThemeWrapper(context, keyboardTheme.mStyleId);
            mActiveUiMode = context.getResources().getConfiguration().uiMode;
            KeyboardLayoutSet.onKeyboardThemeChanged();
            return true;
        }