String.ValueOf(Object e)注意事项

本文介绍了将对象转换为字符串时的一个重要细节:当对象为null时,使用String.valueOf(object)得到的并非null,而是字符串null。这对于理解Java中null值的行为至关重要。

object转字符串注意事项

当object为null 时,String.valueOf(object)的值是字符串”null”,而不是null。
如图:
在这里插入图片描述

package com.oplus.engineermode.lights.base; import android.content.Context; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraManager; import android.os.OplusPropertyList; import android.os.PowerManager; import android.provider.Settings; import android.provider.Settings.System; import android.text.TextUtils; import android.view.Window; import android.view.WindowManager; import com.oplus.engineermode.device.config.DevicesFeatureOptions; import com.oplus.engineermode.display.sdk.OplusDisplayPanelFeature; import com.oplus.engineermode.display.sdk.constants.DisplayID; import com.oplus.engineermode.display.sdk.constants.DisplayPanelFeatureID; import com.oplus.engineermode.core.sdk.utils.Log; import com.oplus.engineermode.misc.sdk.utils.OplusMiscHelper; import com.oplus.engineermode.util.OplusFeatureConfigManager; import com.oplus.engineermode.core.sdk.utils.ReflectionHelper; import com.oplus.engineermode.core.sdk.utils.SystemProperties; public final class LightsManager { /* public static final int DEFAULT_BREATHLIGHT_COLOR = 0xFFFFFFFF; public static final int DEFAULT_BREATHLIGHT_COLOR_RED = 0xFFFF0000; public static final int DEFAULT_BREATHLIGHT_COLOR_GREEN = 0xFF00FF00; public static final int DEFAULT_BREATHLIGHT_COLOR_BLUE = 0xFF0000FF; public static final int DEFAULT_BREATHLIGHT_COLOR_OFF = 0xFF000000; public static final int DEFAULT_BREATHLIGHT_BRIGHTNESS = 0x000000FF; */ public static final int BIT_16 = 16; public static final int BIT_8 = 8; public static final int BREATH_LIGHT_ON = 500; public static final int BREATH_LIGHT_OFF = 500; public static final int BREATH_LIGHT_BRIGHTNESS = 5; public static final int BREATH_LIGHT_TR1 = 11; public static final int BREATH_LIGHT_TOFF = 14; public static final int BREATH_LIGHT_FREQ = 3; public static final int BREATH_LIGHT_DUTY = 5; public static final int DEFAULT_BUTTONLIGHT_BRIGHTNESS = 255; public static final float WM_OVERRIDE_BRIGHTNESS_DISABLE = -1.0f; public static final float WM_OVERRIDE_BRIGHTNESS_BRIGHT_RATIO = 1.0f; public static final boolean TORCH_SWITCH_ON = true; public static final boolean TORCH_SWITCH_OFF = false; /* public static final int BREATH_LIGHT_BRIGHTNESS = 50; public static final int BREATH_LIGHT_BREATH = 51; public static final int BREATH_LIGHT_DELAY_ON = 52; public static final int BREATH_LIGHT_DELAY_OFF = 53; public static final int BREATH_LIGHT_STATUS_LEDS = 54; public static final int BREATH_LIGHT_BLINKS = 55; */ /*RGB lights*/ public static final int RED_BREATH_LIGHT = 0; public static final int GREEN_BREATH_LIGHT = 1; public static final int BLUE_BREATH_LIGHT = 2; public static final int WHITE_BREATH_LIGHT = 3; public static final int WHITE_MIXTURE_BREATH_LIGHT = 4; public static final int MIXTURE_1_BREATH_LIGHT = 5; public static final int MIXTURE_2_BREATH_LIGHT = 6; public static final int MIXTURE_3_BREATH_LIGHT = 7; /*red brightness & trigger*/ public static final int RED_BREATH_LIGHT_SUPPORT = 180; public static final int RED_BREATH_LIGHT_BRIGHTNESS = 185; public static final int RED_BREATH_LIGHT_TRIGGER = 186; /*red time mode*/ //public static final int RED_BREATH_LIGHT_DELAY_ON = 52; //public static final int RED_BREATH_LIGHT_DELAY_OFF = 53; /*red breath mode*/ //public static final int RED_BREATH_LIGHT_TR1 = 54; //public static final int RED_BREATH_LIGHT_TOFF = 55; /*red pwm mode*/ //public static final int RED_BREATH_LIGHT_FREQ = 56; //public static final int RED_BREATH_LIGHT_DUTY = 57; /*red breath mode2*/ //public static final int RED_BREATH_LIGHT_TF1 = 58; //public static final int RED_BREATH_LIGHT_TON = 59; /*green brightness & trigger*/ public static final int GREEN_BREATH_LIGHT_BRIGHTNESS = 205; public static final int GREEN_BREATH_LIGHT_TRIGGER = 206; /*green time mode*/ //public static final int GREEN_BREATH_LIGHT_DELAY_ON = 62; //public static final int GREEN_BREATH_LIGHT_DELAY_OFF = 63; /*green breath mode*/ //public static final int GREEN_BREATH_LIGHT_TR1 = 64; //public static final int GREEN_BREATH_LIGHT_TOFF = 65; /*green pwm mode*/ //public static final int GREEN_BREATH_LIGHT_FREQ = 66; //public static final int GREEN_BREATH_LIGHT_DUTY = 67; /*green breath mode2*/ //public static final int GREEN_BREATH_LIGHT_TF1 = 68; //public static final int GREEN_BREATH_LIGHT_TON = 69; /*blue brightness & trigger*/ public static final int BLUE_BREATH_LIGHT_BRIGHTNESS = 225; public static final int BLUE_BREATH_LIGHT_TRIGGER = 226; /*blue time mode*/ //public static final int BLUE_BREATH_LIGHT_DELAY_ON = 72; //public static final int BLUE_BREATH_LIGHT_DELAY_OFF = 73; /*blue breath mode*/ //public static final int BLUE_BREATH_LIGHT_TR1 = 74; //public static final int BLUE_BREATH_LIGHT_TOFF = 75; /*blue pwm mode*/ //public static final int BLUE_BREATH_LIGHT_FREQ = 76; //public static final int BLUE_BREATH_LIGHT_DUTY = 77; /*blue breath mode2*/ //public static final int BLUE_BREATH_LIGHT_TF1 = 78; //public static final int BLUE_BREATH_LIGHT_TON = 79; /*white brightness & trigger*/ public static final int WHITE_BREATH_LIGHT_BRIGHTNESS = 245; public static final int WHITE_BREATH_LIGHT_TRIGGER = 246; public static final String BREATH_MODE_CC = "cc_mode"; public static final String BREATH_MODE_BREATH = "breath_mode"; public static final String BREATH_MODE_MARQUEE = "marquee_mode"; private static final String BREATH_MODE_TIMER = "timer"; private static final String BREATH_MODE_PWM = "pwm_mode"; private static final String METHOD_GET_MAX_BRIGHTNESS = "getMaxBrightness"; private static final String METHOD_GET_DEFAULT_BRIGHTNESS = "getDefaultBrightness"; private static final String METHOD_GET_MIN_BRIGHTNESS = "getMinBrightness"; private static final String METHOD_GET_BRIGHTNESS_BY_NIT = "getDisplaysBrightnessByNit"; private static final String CLASS_ANDROID_OS_POWER_MANAGER = "android.os.OplusPowerManager"; private static final String TAG = "LightsManager"; private static final boolean DEBUG = true; private static final String OPLUS_GHBM_MODE = "display_gloableHBM_settings"; private static final String PROPERTY_RO_BRIGHTNESS_MODE_EXP_PER_20 = "ro.display.brightness.mode.exp.per_20"; private static final String PROPERTY_RO_BRIGHTNESS_MODE = "ro.display.brightness.brightness.mode"; private static final int BRIGHTNESS_MODE_LINEAR = 0; private static final int BRIGHTNESS_MODE_EXP = 1; private PowerManager mPowerManager; private boolean mMultiBitsSupport; private Context mContext; public LightsManager(Context context) { mContext = context; mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mMultiBitsSupport = OplusFeatureConfigManager.isDisplayMultiBitsDimmingSupport(); } public static int getLcdBrightnessMode(Context context) { return Settings.System.getInt(context.getContentResolver(), System.SCREEN_BRIGHTNESS_MODE, System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); } public static boolean setLcdBrightnessMode(Context context, int mode) { return Settings.System.putInt(context.getContentResolver(), System.SCREEN_BRIGHTNESS_MODE, mode); } public static int getGlobalHighBrightnessMode(Context context) { return Settings.Secure.getInt(context.getContentResolver(), OPLUS_GHBM_MODE, 1); } public static boolean setGlobalHighBrightnessMode(Context context, int mode) { return Settings.Secure.putInt(context.getContentResolver(), OPLUS_GHBM_MODE, mode); } public int getLcdBacklightDefaultBrightnessLevel() { if (mMultiBitsSupport) { try { Class<?> OplusPowerManager = Class.forName(CLASS_ANDROID_OS_POWER_MANAGER); Object oplusPowerManager = OplusPowerManager.getDeclaredConstructor().newInstance(); Object defaultLevel = ReflectionHelper .callDeclaredMethod(oplusPowerManager, CLASS_ANDROID_OS_POWER_MANAGER, METHOD_GET_DEFAULT_BRIGHTNESS, null, null); if (defaultLevel != null) { return (int) defaultLevel; } } catch (Exception e) { Log.i(TAG, "getLcdBacklightDefaultBrightnessLevel : " + e.getMessage()); } } return mPowerManager.getDefaultScreenBrightnessSetting(); } public int getLcdBacklightMinimumBrightnessLevel() { if (mMultiBitsSupport) { try { Class<?> OplusPowerManager = Class.forName(CLASS_ANDROID_OS_POWER_MANAGER); Object oplusPowerManager = OplusPowerManager.getDeclaredConstructor().newInstance(); Object minLevel = ReflectionHelper .callDeclaredMethod(oplusPowerManager, CLASS_ANDROID_OS_POWER_MANAGER, METHOD_GET_MIN_BRIGHTNESS, null, null); if (minLevel != null) { return (int) minLevel; } } catch (Exception e) { Log.i(TAG, "getLcdBacklightMinimumBrightnessLevel : " + e.getMessage()); } } return mPowerManager.getMinimumScreenBrightnessSetting(); } public int getLcdBacklightMaximumBrightnessLevel() { if (mMultiBitsSupport) { try { Class<?> OplusPowerManager = Class.forName(CLASS_ANDROID_OS_POWER_MANAGER); Object oplusPowerManager = OplusPowerManager.getDeclaredConstructor().newInstance(); Object maxLevel = ReflectionHelper .callDeclaredMethod(oplusPowerManager, CLASS_ANDROID_OS_POWER_MANAGER, METHOD_GET_MAX_BRIGHTNESS, null, null); if (maxLevel != null) { return (int) maxLevel; } } catch (Exception e) { Log.i(TAG, "getLcdBacklightMaximumBrightnessLevel : " + e.getMessage()); } } return mPowerManager.getMaximumScreenBrightnessSetting(); } public float getWindowManagerBrightnessOverrideDimRatio() { return getLcdBacklightMinimumBrightnessLevel() / (float) getLcdBacklightMaximumBrightnessLevel(); } public float getWindowManagerBrightnessOverrideDefaultRatio() { return getLcdBacklightDefaultBrightnessLevel() / (float) getLcdBacklightMaximumBrightnessLevel(); } public void setCurrentWindowBrightness(Window window, float ratio) { WindowManager.LayoutParams localLayoutParams = window.getAttributes(); localLayoutParams.screenBrightness = ratio; window.setAttributes(localLayoutParams); } public static int getBreathLightMaxBrightness() { return OplusMiscHelper.getBreathLightMaxBrightness(); } public static boolean isSingleColorSupport() { return OplusMiscHelper.isSingleColorSupport(); } public static boolean isMarqueeSupport() { return OplusMiscHelper.isMarqueeSupport(); } public void setBreathLightBrightness(int color, int brightness) { if (DEBUG) { Log.i(TAG, "setBreathLightOn color = " + color + " brightness = " + brightness); } switch (color) { case RED_BREATH_LIGHT: OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); break; case GREEN_BREATH_LIGHT: OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); break; case BLUE_BREATH_LIGHT: OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); break; case WHITE_BREATH_LIGHT: OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); break; default: break; } } public void setBreathLightOn(int color, int brightness) { if (DEBUG) { Log.i(TAG, "setBreathLightOn color = " + color + " brightness = " + brightness); } switch (color) { case RED_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); } else { OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case GREEN_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); } else { OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case BLUE_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); } else { OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case WHITE_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); } else { OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case WHITE_MIXTURE_BREATH_LIGHT: OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(51)); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(26)); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(15)); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(160)); break; case MIXTURE_1_BREATH_LIGHT: OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(131)); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(58)); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); break; case MIXTURE_2_BREATH_LIGHT: OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(102)); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(62)); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); break; case MIXTURE_3_BREATH_LIGHT: OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(79)); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(81)); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); break; default: break; } } public void setBreathLightBreath(int color, int brightness/*, int tr1, int toff*/) { if (DEBUG) { Log.i(TAG, "setBreathLightBreath color = " + color + " brightness = " + brightness/* + " tr1 = " + tr1 + " toff = " + toff*/); } switch (color) { case RED_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_BREATH); /*OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TOFF, String.valueOf(toff)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TR1, String.valueOf(tr1));*/ } else { OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_BREATH); /*OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TOFF, String.valueOf(toff)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TR1, String.valueOf(tr1));*/ OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case GREEN_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_BREATH); /*OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TOFF, String.valueOf(toff)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TR1, String.valueOf(tr1));*/ } else { OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_BREATH); /*OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TOFF, String.valueOf(toff)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TR1, String.valueOf(tr1));*/ OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case BLUE_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_BREATH); /*OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TOFF, String.valueOf(toff)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TR1, String.valueOf(tr1));*/ } else { OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_BREATH); /*OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TOFF, String.valueOf(toff)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TR1, String.valueOf(tr1));*/ OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case WHITE_BREATH_LIGHT: if (DevicesFeatureOptions.isWhiteLightSupport()) { if (brightness == 0) { OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_BREATH); } else { OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_BREATH); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; } default: break; } } public void setBreathLightTimerBlink(int color, int brightness/*, int onMS, int offMS*/) { if (DEBUG) { Log.i(TAG, "setBreathLightTimerBlink color = " + color + " brightness = " + brightness/* + " onMS = " + onMS + " offMS = " + offMS*/); } /*if ((onMS == 0) || (offMS == 0)) { Log.i(TAG, "invalid on or off MS"); return; }*/ switch (color) { case RED_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_TIMER); /*OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_DELAY_ON, String.valueOf(onMS)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_DELAY_OFF, String.valueOf(offMS));*/ } else { OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_TIMER); /*OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_DELAY_ON, String.valueOf(onMS)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_DELAY_OFF, String.valueOf(offMS));*/ OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case GREEN_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_TIMER); /*OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_DELAY_ON, String.valueOf(onMS)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_DELAY_OFF, String.valueOf(offMS));*/ } else { OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_TIMER); /*OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_DELAY_ON, String.valueOf(onMS)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_DELAY_OFF, String.valueOf(offMS));*/ OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case BLUE_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_TIMER); /*OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_DELAY_ON, String.valueOf(onMS)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_DELAY_OFF, String.valueOf(offMS));*/ } else { OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_TIMER); /*OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_DELAY_ON, String.valueOf(onMS)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_DELAY_OFF, String.valueOf(offMS));*/ OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case WHITE_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_TIMER); } else { OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_TIMER); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; default: break; } } public void setBreathLightPwmBlink(int color, int brightness/*, int freq, int duty*/) { if (DEBUG) { Log.i(TAG, "setBreathLightPwmBlink color = " + color + " brightness = " + brightness/* + " freq = " + freq + " duty = " + duty*/); } switch (color) { case RED_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_PWM); /*OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_FREQ, String.valueOf(freq)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_DUTY, String.valueOf(duty));*/ } else { OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_PWM); /*OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_FREQ, String.valueOf(freq)); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_DUTY, String.valueOf(duty));*/ OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case GREEN_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_PWM); /*OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_FREQ, String.valueOf(freq)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_DUTY, String.valueOf(duty));*/ } else { OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_PWM); /*OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_FREQ, String.valueOf(freq)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_DUTY, String.valueOf(duty));*/ OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case BLUE_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_PWM); /*OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_FREQ, String.valueOf(freq)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_DUTY, String.valueOf(duty));*/ } else { OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_PWM); /*OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_FREQ, String.valueOf(freq)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_DUTY, String.valueOf(duty));*/ OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; case WHITE_BREATH_LIGHT: if (brightness == 0) { OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_PWM); } else { OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_PWM); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(brightness)); } break; default: break; } } public void setBreathLightOff(int color) { //if (DEBUG) { Log.i(TAG, "setBreathLightOff color = " + color); //} switch (color) { case RED_BREATH_LIGHT: OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); break; case GREEN_BREATH_LIGHT: OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); break; case BLUE_BREATH_LIGHT: OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); break; case WHITE_BREATH_LIGHT: OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); break; case WHITE_MIXTURE_BREATH_LIGHT: case MIXTURE_1_BREATH_LIGHT: case MIXTURE_2_BREATH_LIGHT: case MIXTURE_3_BREATH_LIGHT: OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setMixtureBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); OplusMiscHelper.setMixtureBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); OplusMiscHelper.setMixtureBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); OplusMiscHelper.setMixtureBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); break; default: break; } } public void setBreathLightOff() { if (DEBUG) { Log.i(TAG, "setBreathLightOff"); } OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_TRIGGER, BREATH_MODE_CC); OplusMiscHelper.setBreathLightStatus(RED_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); OplusMiscHelper.setBreathLightStatus(GREEN_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); OplusMiscHelper.setBreathLightStatus(BLUE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); OplusMiscHelper.setWhiteBreathLightStatus(WHITE_BREATH_LIGHT_BRIGHTNESS, String.valueOf(0)); } public void setButtonLightOn(int brightness) { if (DEBUG) { Log.i(TAG, "setButtonLightOn brightness = " + Integer.toHexString(brightness)); } //TODO } public void setButtonLightOff() { if (DEBUG) { Log.i(TAG, "setButtonLightOff"); } //TODO } public void setTorchState(boolean state) { if (DEBUG) { Log.i(TAG, "setTorchOn state = " + state); } try { String availableCameraId = null; CameraManager cameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE); if (cameraManager != null) { for (String cameraId : cameraManager.getCameraIdList()) { Boolean flashAvailable = cameraManager.getCameraCharacteristics(cameraId). get(CameraCharacteristics.FLASH_INFO_AVAILABLE); if (Boolean.TRUE.equals(flashAvailable)) { availableCameraId = cameraId; break; } } if (availableCameraId != null) { cameraManager.setTorchMode(availableCameraId, state); } else { Log.e(TAG, "can not find available camera id"); } } else { Log.e(TAG, "get camera service failed"); } } catch (CameraAccessException e) { Log.e(TAG, e.getMessage()); } } public int getLcdBackLightBrightnessFromNode() { return OplusDisplayPanelFeature.getDisplayPanelFeatureValueAsInt(DisplayPanelFeatureID.OMMDPMAX_BRIGHTNESS.getId()); } public void setLcdBackLightBrightness(Context context, int nBrightness) { Log.i(TAG, "setLcdBackLightBrightness : " + nBrightness); if (mMultiBitsSupport) { Settings.System.putString(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, Integer.toString(nBrightness)); } else { Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, nBrightness); } } public int getLcdBackLightBrightness(Context context) { int brightness = -1; if (mMultiBitsSupport) { final String content = Settings.System.getString(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); if (!TextUtils.isEmpty(content)) { try { return Integer.parseInt(content); } catch (NumberFormatException e) { Log.i(TAG, "getLcdBackLightBrightness e : " + e.getMessage()); } } } else { brightness = Settings.System.getInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 0); } Log.i(TAG, "getLcdBackLightBrightness : " + brightness); return brightness; } public int getTwentyPercentBrightnessLevel() { int brightness = -1; if (SystemProperties.getInt(OplusPropertyList.PROPETY_BRIGHTNESS_MODE, BRIGHTNESS_MODE_LINEAR) == BRIGHTNESS_MODE_EXP) { final float[] brightnessByNit = getDisplaysBrightnessByNit(100); if (brightnessByNit != null) { brightness = (int) brightnessByNit[0]; Log.e(TAG, "getTwentyPercentBrightnessLevel brightness by 100 nits = " + brightness); } } if (brightness == -1) { brightness = (int) (0.2f * getLcdBacklightMaximumBrightnessLevel()); } return brightness; } public float getTwentyPercentBrightnessRatio() { float ratio = 0.2f; if (SystemProperties.getInt(OplusPropertyList.PROPETY_BRIGHTNESS_MODE, BRIGHTNESS_MODE_LINEAR) == BRIGHTNESS_MODE_EXP) { final float[] brightnessByNit = getDisplaysBrightnessByNit(100); if (brightnessByNit != null) { final int brightness = (int) brightnessByNit[0]; Log.e(TAG, "getTwentyPercentBrightnessRatio brightness by 100 nits = " + brightness); if (brightness != -1) { ratio = brightness * 1.0f / getLcdBacklightMaximumBrightnessLevel(); } } } return ratio; } public float[] getDisplaysBrightnessByNit(final float nit) { try { Class<?> OplusPowerManager = Class.forName(CLASS_ANDROID_OS_POWER_MANAGER); Object oplusPowerManager = OplusPowerManager.getDeclaredConstructor().newInstance(); Object brightness = ReflectionHelper .callDeclaredMethod(oplusPowerManager, CLASS_ANDROID_OS_POWER_MANAGER, METHOD_GET_BRIGHTNESS_BY_NIT, new Class[]{float.class}, new Object[]{nit}); if (brightness != null) { return (float[]) brightness; } } catch (Exception e) { Log.i(TAG, "getDisplaysBrightnessByNit : " + e.getMessage()); } return null; } public float getBrightnessRatioByNit(final DisplayID displayID, final float nit) { final float[] brightnessByNit = getDisplaysBrightnessByNit(nit); if (brightnessByNit != null) { final int max = getLcdBacklightMaximumBrightnessLevel(); float brightness = brightnessByNit[displayID.ordinal()]; return (brightness / max); } else if ((brightnessByNit == null) && (OplusDisplayPanelFeature.isColorCaliDualBrightnessSupport())) { return 0.20f; } return -1.0f; } }
07-10
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值