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);
}
/**
* 设置是否为夜间模式
*
* @param isNightMode true: 夜间模式
*/
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.");
}
}
/**
* 获取是否为夜间模式
*
* @param context 上下文
* @return true: 夜间模式
*/
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;
}
}
Android原生设置黑白主题
Android原生设置黑白主题
最新推荐文章于 2025-12-05 11:27:21 发布
454

被折叠的 条评论
为什么被折叠?



