diff options
5 files changed, 124 insertions, 4 deletions
diff --git a/core/java/android/util/BoostFramework.java b/core/java/android/util/BoostFramework.java index 3afe69dda2ef..59ec6caba3ed 100644 --- a/core/java/android/util/BoostFramework.java +++ b/core/java/android/util/BoostFramework.java @@ -57,8 +57,12 @@ public class BoostFramework { private static Method sReleaseFunc = null; private static Method sReleaseHandlerFunc = null; private static Method sFeedbackFunc = null; + private static Method sFeedbackFuncExtn = null; private static Method sPerfGetPropFunc = null; private static Method sAcqAndReleaseFunc = null; + private static Method sperfHintAcqRelFunc = null; + private static Method sperfHintRenewFunc = null; + private static Method sPerfEventFunc = null; private static Method sIOPStart = null; private static Method sIOPStop = null; @@ -229,6 +233,9 @@ public class BoostFramework { argClasses = new Class[] {int.class, String.class}; sFeedbackFunc = sPerfClass.getMethod("perfGetFeedback", argClasses); + argClasses = new Class[] {int.class, String.class, int.class, int[].class}; + sFeedbackFuncExtn = sPerfClass.getMethod("perfGetFeedbackExtn", argClasses); + argClasses = new Class[] {int.class, String.class, String.class}; sIOPStart = sPerfClass.getDeclaredMethod("perfIOPrefetchStart", argClasses); @@ -241,6 +248,17 @@ public class BoostFramework { argClasses = new Class[] {int.class, int.class, int.class, int.class, int[].class}; sAcqAndReleaseFunc = sPerfClass.getMethod("perfLockAcqAndRelease", argClasses); + argClasses = new Class[] {int.class, String.class, int.class, int[].class}; + sPerfEventFunc = sPerfClass.getMethod("perfEvent", argClasses); + + argClasses = new Class[] {int.class, int.class, String.class, int.class, + int.class, int.class, int[].class}; + sperfHintAcqRelFunc = sPerfClass.getMethod("perfHintAcqRel", argClasses); + + argClasses = new Class[] {int.class, int.class, String.class, int.class, + int.class, int.class, int[].class}; + sperfHintRenewFunc = sPerfClass.getMethod("perfHintRenew", argClasses); + try { argClasses = new Class[] {int.class, int.class, String.class, int.class, String.class}; sUXEngineEvents = sPerfClass.getDeclaredMethod("perfUXEngine_events", @@ -342,11 +360,25 @@ public class BoostFramework { } /** @hide */ - public int perfGetFeedback(int req, String userDataStr) { + public int perfGetFeedback(int req, String pkg_name) { int ret = -1; try { if (sFeedbackFunc != null) { - Object retVal = sFeedbackFunc.invoke(mPerf, req, userDataStr); + Object retVal = sFeedbackFunc.invoke(mPerf, req, pkg_name); + ret = (int)retVal; + } + } catch(Exception e) { + Log.e(TAG,"Exception " + e); + } + return ret; + } + +/** @hide */ + public int perfGetFeedbackExtn(int req, String pkg_name, int numArgs, int... list) { + int ret = -1; + try { + if (sFeedbackFuncExtn != null) { + Object retVal = sFeedbackFuncExtn.invoke(mPerf, req, pkg_name, numArgs, list); ret = (int)retVal; } } catch(Exception e) { @@ -454,6 +486,84 @@ public class BoostFramework { return ret; } +/** @hide */ + public void perfEvent(int eventId, String pkg_name) { + perfEvent(eventId, pkg_name, 0); + } + +/** @hide */ + public void perfEvent(int eventId, String pkg_name, int numArgs, int... list) { + try { + if (sPerfEventFunc != null) { + sPerfEventFunc.invoke(mPerf, eventId, pkg_name, numArgs, list); + } + } catch(Exception e) { + Log.e(TAG,"Exception " + e); + } + } + +/** @hide */ + public int perfHintAcqRel(int handle, int hint, String pkg_name) { + return perfHintAcqRel(handle, hint, pkg_name, -1, -1, 0); + } + +/** @hide */ + public int perfHintAcqRel(int handle, int hint, String pkg_name, int duration) { + return perfHintAcqRel(handle, hint, pkg_name, duration, -1, 0); + } + +/** @hide */ + public int perfHintAcqRel(int handle, int hint, String pkg_name, int duration, int hintType) { + return perfHintAcqRel(handle, hint, pkg_name, duration, hintType, 0); + } + +/** @hide */ + public int perfHintAcqRel(int handle, int hint, String pkg_name, int duration, + int hintType, int numArgs, int... list) { + int ret = -1; + try { + if (sperfHintAcqRelFunc != null) { + Object retVal = sperfHintAcqRelFunc.invoke(mPerf,handle, hint, pkg_name, + duration, hintType, numArgs, list); + ret = (int)retVal; + } + } catch(Exception e) { + Log.e(TAG,"Exception " + e); + } + return ret; + } + +/** @hide */ + public int perfHintRenew(int handle, int hint, String pkg_name) { + return perfHintRenew(handle, hint, pkg_name, -1, -1, 0); + } + +/** @hide */ + public int perfHintRenew(int handle, int hint, String pkg_name, int duration) { + return perfHintRenew(handle, hint, pkg_name, duration, -1, 0); + } + +/** @hide */ + public int perfHintRenew(int handle, int hint, String pkg_name, int duration, int hintType) { + return perfHintRenew(handle, hint, pkg_name, duration, hintType, 0); + } + +/** @hide */ + public int perfHintRenew(int handle, int hint, String pkg_name, int duration, + int hintType, int numArgs, int... list) { + int ret = -1; + try { + if (sperfHintRenewFunc != null) { + Object retVal = sperfHintRenewFunc.invoke(mPerf,handle, hint, pkg_name, + duration, hintType, numArgs, list); + ret = (int)retVal; + } + } catch(Exception e) { + Log.e(TAG,"Exception " + e); + } + return ret; + } + /** @hide */ public static class ScrollOptimizer { /** @hide */ diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java index 8e886e82d352..02b2d3b416d2 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java @@ -299,6 +299,7 @@ public class CellularTile extends QSTileImpl<SignalState> { @Override public void setMobileDataEnabled(boolean enabled) { mDetailAdapter.setMobileDataEnabled(enabled); + refreshState(mInfo); } } diff --git a/services/core/java/com/android/server/audio/AudioDeviceBroker.java b/services/core/java/com/android/server/audio/AudioDeviceBroker.java index fa7cf360f18d..9dcb0349a8e0 100644 --- a/services/core/java/com/android/server/audio/AudioDeviceBroker.java +++ b/services/core/java/com/android/server/audio/AudioDeviceBroker.java @@ -613,7 +613,10 @@ import java.util.concurrent.atomic.AtomicBoolean; boolean suppressNoisyIntent, int a2dpVolume) { final BtDeviceConnectionInfo info = new BtDeviceConnectionInfo(device, state, profile, suppressNoisyIntent, a2dpVolume); - sendLMsgNoDelay(MSG_L_A2DP_ACTIVE_DEVICE_CHANGE_EXT, SENDMSG_QUEUE, info); + synchronized (mDeviceStateLock) { + removeScheduledA2dpEvents(info.mDevice, info.mProfile); + sendLMsgNoDelay(MSG_L_A2DP_ACTIVE_DEVICE_CHANGE_EXT, SENDMSG_QUEUE, info); + } } private static final class HearingAidDeviceConnectionInfo { diff --git a/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java b/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java index 02d978dfdf99..6608b9636671 100644 --- a/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java +++ b/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java @@ -519,6 +519,12 @@ class SoundTriggerModule implements IHwBinder.DeathRecipient { hidlConfig.base.header.captureDevice = mSession.mDeviceHandle; hidlConfig.base.header.captureHandle = mSession.mIoHandle; mHalService.startRecognition(mHandle, hidlConfig, this, 0); + try { + hidlConfig.base.data.close(); + } catch (Exception e) { + // will be handled during finalize() + Log.e(TAG, "Failed to close hidl memory", e); + } setState(ModelState.ACTIVE); } diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 44dc476c950d..7ac37790fd89 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -5988,7 +5988,7 @@ public class CarrierConfigManager { return; } loader.updateConfigForPhoneId(phoneId, simState); - } catch (RemoteException ex) { + } catch (RemoteException | IllegalArgumentException ex) { Rlog.e(TAG, "Error updating config for phoneId=" + phoneId + ": " + ex.toString()); } } |