mirror of
https://github.com/S3NEO/android_device_samsung_msm8226-common.git
synced 2024-11-06 21:55:45 +00:00
msm8974-common: Enable HBM for outdoor mode
Add a device-specific SunlightEnhancement CMHW class. In addition to enabling outdoor mode, crank the display brightness up, allowing for much better visibility in bright sunlight. Change-Id: I6a87d438a0aecd9e068de932d4133e69e0563cf8
This commit is contained in:
parent
6279ca895c
commit
e05835ea4d
2 changed files with 92 additions and 0 deletions
|
@ -38,6 +38,9 @@ BOARD_CHARGING_CMDLINE_NAME := "androidboot.bootchg"
|
|||
BOARD_CHARGING_CMDLINE_VALUE := "true"
|
||||
WITH_LINEAGE_CHARGER := false
|
||||
|
||||
# CMHW
|
||||
BOARD_HARDWARE_CLASS += device/samsung/msm8974-common/lineagehw
|
||||
|
||||
# Dexpreopt
|
||||
ifeq ($(HOST_OS),linux)
|
||||
ifneq ($(TARGET_BUILD_VARIANT),eng)
|
||||
|
|
89
lineagehw/org/lineageos/hardware/SunlightEnhancement.java
Normal file
89
lineagehw/org/lineageos/hardware/SunlightEnhancement.java
Normal file
|
@ -0,0 +1,89 @@
|
|||
/*
|
||||
* Copyright (C) 2016 The CyanogenMod Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.lineageos.hardware;
|
||||
|
||||
import org.lineageos.internal.util.FileUtils;
|
||||
|
||||
/**
|
||||
* Sunlight Readability Enhancement support, aka Facemelt Mode.
|
||||
*
|
||||
* Brightens up the screen via image processing or other tricks when
|
||||
* under aggressive lighting conditions. Usually depends on CABC
|
||||
* support.
|
||||
*/
|
||||
public class SunlightEnhancement {
|
||||
|
||||
private static final String FILE_SRE = "/sys/class/mdnie/mdnie/outdoor";
|
||||
private static final String FILE_HBM = "/sys/class/lcd/panel/panel/auto_brightness";
|
||||
|
||||
/**
|
||||
* Whether device supports SRE
|
||||
*
|
||||
* @return boolean Supported devices must return always true
|
||||
*/
|
||||
public static boolean isSupported() {
|
||||
return FileUtils.isFileWritable(FILE_SRE) &&
|
||||
FileUtils.isFileReadable(FILE_SRE) &&
|
||||
FileUtils.isFileWritable(FILE_HBM) &&
|
||||
FileUtils.isFileReadable(FILE_HBM);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method return the current activation status of SRE
|
||||
*
|
||||
* @return boolean Must be false when SRE is not supported or not activated, or
|
||||
* the operation failed while reading the status; true in any other case.
|
||||
*/
|
||||
public static boolean isEnabled() {
|
||||
return "1".equals(FileUtils.readOneLine(FILE_SRE)) &&
|
||||
"6".equals(FileUtils.readOneLine(FILE_HBM));
|
||||
}
|
||||
|
||||
/**
|
||||
* This method allows to setup SRE.
|
||||
*
|
||||
* @param status The new SRE status
|
||||
* @return boolean Must be false if SRE is not supported or the operation
|
||||
* failed; true in any other case.
|
||||
*/
|
||||
public static boolean setEnabled(boolean status) {
|
||||
return FileUtils.writeLine(FILE_SRE, status ? "1" : "0") &&
|
||||
FileUtils.writeLine(FILE_HBM, status ? "6" : "0");
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether adaptive backlight (CABL / CABC) is required to be enabled
|
||||
*
|
||||
* @return boolean false if adaptive backlight is not a dependency
|
||||
*/
|
||||
public static boolean isAdaptiveBacklightRequired() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set this to true if the implementation is self-managed and does
|
||||
* it's own ambient sensing. In this case, setEnabled is assumed
|
||||
* to toggle the feature on or off, but not activate it. If set
|
||||
* to false, LiveDisplay will call setEnabled when the ambient lux
|
||||
* threshold is crossed.
|
||||
*
|
||||
* @return true if this enhancement is self-managed
|
||||
*/
|
||||
public static boolean isSelfManaged() {
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue