package com.kika.IME.controller;
import android.app.UiModeManager;
import android.content.Context;
import android.util.Log;
public class ThemeController {
private static final String TAG = "ThemeController";
private UiModeManager mUiModeManager;
private Context mContext;
private ThemeController() {
}
private static class ThemeControllerHolder {
private static final ThemeController INSTANCE = new ThemeController();
}
public static ThemeController getInstance() {
return ThemeControllerHolder.INSTANCE;
}
public void init(Context context) {
Log.d(TAG, "init: ");
mContext = context;
mUiModeManager = (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);
}
public void setNightMode(boolean isNightMode) {
if (isNightModeActive(mContext) == isNightMode) {
Log.i(TAG, "setNightMode: same value, return");
return;
}
Log.d(TAG, "setNightMode() called with: isNightMode = [" + isNightMode + "]");
if (mUiModeManager != null) {
mUiModeManager.setNightMode(isNightMode ? UiModeManager.MODE_NIGHT_YES : UiModeManager.MODE_NIGHT_NO);
} else {
Log.e(TAG, "setNightMode UiModeManager is null. Cannot set night mode.");
}
}
public boolean isNightModeActive(Context context) {
mUiModeManager = (UiModeManager) mContext.getSystemService(Context.UI_MODE_SERVICE);
if (mUiModeManager != null) {
int mode = mUiModeManager.getNightMode();
return mode == UiModeManager.MODE_NIGHT_YES;
}
return false;
}
}