summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Keith <javelinanddart@gmail.com>2018-08-08 21:21:39 +0200
committerPaul Keith <javelinanddart@gmail.com>2018-08-08 21:44:45 +0200
commit82d586cc16427227797ae416224a78b7a4209c80 (patch)
tree397954d2f7e1d2e73d20f23c3140a390bc2f0f84
parent7f833b824b3acee887350af7707b0cb377325f0d (diff)
downloadandroid_hardware_lineage_lineagehw-82d586cc16427227797ae416224a78b7a4209c80.tar.gz
android_hardware_lineage_lineagehw-82d586cc16427227797ae416224a78b7a4209c80.tar.bz2
android_hardware_lineage_lineagehw-82d586cc16427227797ae416224a78b7a4209c80.zip
lineagehw: Add support for sysfs ReadingEnhancement
Change-Id: Iaef35f184d93fb40386c6122cfa25119578bcecd
-rw-r--r--src/org/lineageos/hardware/ReadingEnhancement.java34
1 files changed, 26 insertions, 8 deletions
diff --git a/src/org/lineageos/hardware/ReadingEnhancement.java b/src/org/lineageos/hardware/ReadingEnhancement.java
index f043713..62addc7 100644
--- a/src/org/lineageos/hardware/ReadingEnhancement.java
+++ b/src/org/lineageos/hardware/ReadingEnhancement.java
@@ -21,7 +21,7 @@ import android.os.IBinder;
import android.os.Parcel;
import android.os.RemoteException;
import android.os.ServiceManager;
-import android.util.Slog;
+import android.util.Log;
import com.android.server.LocalServices;
import com.android.server.display.DisplayTransformManager;
@@ -36,10 +36,13 @@ public class ReadingEnhancement {
private static final String TAG = "ReadingEnhancement";
+ private static final String FILE_READING = "/sys/class/graphics/fb0/reading_mode";
+
private static final int LEVEL_COLOR_MATRIX_READING = LEVEL_COLOR_MATRIX_GRAYSCALE + 1;
private static final int MODE_UNSUPPORTED = 0;
private static final int MODE_HWC2_COLOR_TRANSFORM = 1;
+ private static final int MODE_SYSFS_READING = 2;
private static final int sMode;
@@ -71,6 +74,8 @@ public class ReadingEnhancement {
if (ActivityThread.currentApplication().getApplicationContext().getResources().getBoolean(
com.android.internal.R.bool.config_setColorTransformAccelerated)) {
sMode = MODE_HWC2_COLOR_TRANSFORM;
+ } else if (FileUtils.isFileWritable(FILE_READING)) {
+ sMode = MODE_SYSFS_READING;
} else {
sMode = MODE_UNSUPPORTED;
}
@@ -92,6 +97,14 @@ public class ReadingEnhancement {
* or the operation failed while reading the status; true in any other case.
*/
public static boolean isEnabled() {
+ if (sMode == MODE_SYSFS_READING) {
+ try {
+ return Integer.parseInt(FileUtils.readOneLine(FILE_READING)) > 0;
+ } catch (Exception e) {
+ Log.e(TAG, e.getMessage(), e);
+ }
+ }
+
return sEnabled;
}
@@ -103,16 +116,21 @@ public class ReadingEnhancement {
* failed; true in any other case.
*/
public static boolean setEnabled(boolean status) {
- if (sDTMService == null) {
- sDTMService = LocalServices.getService(DisplayTransformManager.class);
+ if (sMode == MODE_SYSFS_READING) {
+ return FileUtils.writeLine(FILE_READING, status ? "1" : "0");
+ } else if (sMode == MODE_HWC2_COLOR_TRANSFORM) {
if (sDTMService == null) {
- return false;
+ sDTMService = LocalServices.getService(DisplayTransformManager.class);
+ if (sDTMService == null) {
+ return false;
+ }
}
+ sDTMService.setColorMatrix(LEVEL_COLOR_MATRIX_READING,
+ status ? MATRIX_GRAYSCALE : MATRIX_NORMAL);
+ sEnabled = status;
+ return true;
}
- sDTMService.setColorMatrix(LEVEL_COLOR_MATRIX_READING,
- status ? MATRIX_GRAYSCALE : MATRIX_NORMAL);
- sEnabled = status;
- return true;
+ return false;
}
}