From 52b7533338de361512d0ab7535f1b3dc1a6f3774 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Sat, 15 Nov 2014 14:50:29 +0700 Subject: [PATCH 1/3] TelephonyManager: set properties in Broadcom-style as expected by RIL For i9082 Change-Id: I475fdd164b3316720387fefb14a3e12fbc262b39 --- .../java/android/telephony/TelephonyManager.java | 63 +++++++--------------- 1 file changed, 19 insertions(+), 44 deletions(-) diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 4ee5c01..63062d2 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -3017,49 +3017,19 @@ public class TelephonyManager { * @hide */ public static void setTelephonyProperty(int phoneId, String property, String value) { - String propVal = ""; - String p[] = null; - String prop = SystemProperties.get(property); - - if (value == null) { - value = ""; - } - - if (prop != null) { - p = prop.split(","); - } - if (!SubscriptionManager.isValidPhoneId(phoneId)) { Rlog.d(TAG, "setTelephonyProperty: invalid phoneId=" + phoneId + - " property=" + property + " value: " + value + " prop=" + prop); + " property=" + property + " value: " + value); return; } - for (int i = 0; i < phoneId; i++) { - String str = ""; - if ((p != null) && (i < p.length)) { - str = p[i]; - } - propVal = propVal + str + ","; - } - - propVal = propVal + value; - if (p != null) { - for (int i = phoneId + 1; i < p.length; i++) { - propVal = propVal + "," + p[i]; - } - } - - if (property.length() > SystemProperties.PROP_NAME_MAX - || propVal.length() > SystemProperties.PROP_VALUE_MAX) { - Rlog.d(TAG, "setTelephonyProperty: property to long phoneId=" + phoneId + - " property=" + property + " value: " + value + " propVal=" + propVal); - return; + if (phoneId > 0) { + property += "_" + phoneId; } Rlog.d(TAG, "setTelephonyProperty: success phoneId=" + phoneId + - " property=" + property + " value: " + value + " propVal=" + propVal); - SystemProperties.set(property, propVal); + " property=" + property + " value: " + value); + SystemProperties.set(property, value); } /** @@ -3156,17 +3126,22 @@ public class TelephonyManager { * @hide */ public static String getTelephonyProperty(int phoneId, String property, String defaultVal) { - String propVal = null; - String prop = SystemProperties.get(property); - if ((prop != null) && (prop.length() > 0)) { - String values[] = prop.split(","); - if ((phoneId >= 0) && (phoneId < values.length) && (values[phoneId] != null)) { - propVal = values[phoneId]; - } + if (!SubscriptionManager.isValidPhoneId(phoneId)) { + Rlog.d(TAG, "getTelephonyProperty: invalid phoneId=" + phoneId + + " property=" + property); + return defaultVal; + } + + if (phoneId > 0) { + property += "_" + phoneId; } + + String propVal = SystemProperties.get(property); + Rlog.d(TAG, "getTelephonyProperty: return propVal='" + propVal + "' phoneId=" + phoneId - + " property='" + property + "' defaultVal='" + defaultVal + "' prop=" + prop); - return propVal == null ? defaultVal : propVal; + + " property='" + property + "' defaultVal='" + defaultVal); + + return propVal.isEmpty() ? defaultVal : propVal; } /** -- 1.9.1 From 81f8e414533dfc83bc44ac704fd0c97cbaccf4da Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Sat, 15 Nov 2014 22:33:16 +0700 Subject: [PATCH 2/3] Camera: HACK: i9082: API hacks CTS 5.0 requires the presence of an auto mode, so applications may try to use auto without checking. Also change ENODEV to MAX_CAMERAS_IN_USE to please the CTS Change-Id: I929feffa4f79c69e9d7be7d1acacb3c228280bfe --- core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java | 2 +- core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java | 2 +- core/java/android/hardware/camera2/utils/CameraBinderDecorator.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java index 347db05..5acf583 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java +++ b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java @@ -1100,7 +1100,7 @@ public class LegacyMetadataMapper { return CONTROL_AE_ANTIBANDING_MODE_OFF; } case Camera.Parameters.ANTIBANDING_50HZ: { - return CONTROL_AE_ANTIBANDING_MODE_50HZ; + return /* CONTROL_AE_ANTIBANDING_MODE_50HZ */ CONTROL_AE_ANTIBANDING_MODE_AUTO; } case Camera.Parameters.ANTIBANDING_60HZ: { return CONTROL_AE_ANTIBANDING_MODE_60HZ; diff --git a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java index 61f7b8b..f370103 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java +++ b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java @@ -617,7 +617,7 @@ public class LegacyRequestMapper { return Parameters.ANTIBANDING_60HZ; } case CONTROL_AE_ANTIBANDING_MODE_AUTO: { - return Parameters.ANTIBANDING_AUTO; + return Parameters.ANTIBANDING_50HZ /* Parameters.ANTIBANDING_AUTO */; } default: { return null; diff --git a/core/java/android/hardware/camera2/utils/CameraBinderDecorator.java b/core/java/android/hardware/camera2/utils/CameraBinderDecorator.java index d461bca..a34a758 100644 --- a/core/java/android/hardware/camera2/utils/CameraBinderDecorator.java +++ b/core/java/android/hardware/camera2/utils/CameraBinderDecorator.java @@ -124,7 +124,7 @@ public class CameraBinderDecorator { case EUSERS: throw new CameraRuntimeException(MAX_CAMERAS_IN_USE); case ENODEV: - throw new CameraRuntimeException(CAMERA_DISCONNECTED); + throw new CameraRuntimeException(/*CAMERA_DISCONNECTED*/ MAX_CAMERAS_IN_USE); case EOPNOTSUPP: throw new CameraRuntimeException(CAMERA_DEPRECATED_HAL); case INVALID_OPERATION: -- 1.9.1 From 9a0b6efe16eaa2740160306bbde768758f6259d2 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Sun, 21 Dec 2014 16:23:31 +0700 Subject: [PATCH 3/3] PowerManagerService: only turn on button light when any button is pressed This more closely emulates stock Samsung behavior Change-Id: I6b15c45b713bcbc290a1026805c46109060f9990 --- .../core/java/com/android/server/power/PowerManagerService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 8105ff8..b3d2023 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -235,6 +235,7 @@ public final class PowerManagerService extends SystemService // Timestamp of the last call to user activity. private long mLastUserActivityTime; private long mLastUserActivityTimeNoChangeLights; + private long mLastButtonActivityTime; // Timestamp of last interactive power hint. private long mLastInteractivePowerHintTime; @@ -1145,6 +1146,11 @@ public final class PowerManagerService extends SystemService return true; } } else { + if (eventTime > mLastButtonActivityTime && (event & PowerManager.USER_ACTIVITY_EVENT_BUTTON) != 0) { + mLastButtonActivityTime = eventTime; + mDirty |= DIRTY_USER_ACTIVITY; + } + if (eventTime > mLastUserActivityTime) { mLastUserActivityTime = eventTime; mDirty |= DIRTY_USER_ACTIVITY; @@ -1648,7 +1654,7 @@ public final class PowerManagerService extends SystemService mKeyboardLight.setBrightness(mKeyboardVisible ? keyboardBrightness : 0); if (mButtonTimeout != 0 - && now > mLastUserActivityTime + mButtonTimeout) { + && now > mLastButtonActivityTime + mButtonTimeout) { mButtonsLight.setBrightness(0); } else { if (!mProximityPositive) { -- 1.9.1