From 8d4a9f8d724511979d37c3546342b1bf17e297bf Mon Sep 17 00:00:00 2001 From: Etienne Ruffieux Date: Thu, 10 Mar 2022 15:59:01 +0000 Subject: [PATCH] [API Review] Replace ResultReceiver by Executor Bug: 223344084 Test: build Tag: #feature Merged-In: I5c6fc4780b41406dc41c26050a10768b7a2114df Change-Id: I5c6fc4780b41406dc41c26050a10768b7a2114df --- .../server/am/BatteryExternalStatsWorker.java | 14 ++++++++++++-- .../server/stats/pull/StatsPullAtomService.java | 9 ++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java index b3b74a1090831..d6cd054ce6c8f 100644 --- a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java +++ b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java @@ -556,8 +556,18 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync { // We were asked to fetch Bluetooth data. final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); if (adapter != null) { - bluetoothReceiver = new SynchronousResultReceiver("bluetooth"); - adapter.requestControllerActivityEnergyInfo(bluetoothReceiver); + SynchronousResultReceiver resultReceiver = + new SynchronousResultReceiver("bluetooth"); + adapter.requestControllerActivityEnergyInfo( + Runnable::run, + info -> { + Bundle bundle = new Bundle(); + bundle.putParcelable(BatteryStats.RESULT_RECEIVER_CONTROLLER_KEY, + info); + resultReceiver.send(0, bundle); + } + ); + bluetoothReceiver = resultReceiver; } } diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java index 99c675d4b22fb..86c3e23d32c0c 100644 --- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java +++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java @@ -1618,7 +1618,14 @@ public class StatsPullAtomService extends SystemService { if (adapter != null) { SynchronousResultReceiver bluetoothReceiver = new SynchronousResultReceiver("bluetooth"); - adapter.requestControllerActivityEnergyInfo(bluetoothReceiver); + adapter.requestControllerActivityEnergyInfo( + Runnable::run, + info -> { + Bundle bundle = new Bundle(); + bundle.putParcelable(BatteryStats.RESULT_RECEIVER_CONTROLLER_KEY, info); + bluetoothReceiver.send(0, bundle); + } + ); return awaitControllerInfo(bluetoothReceiver); } else { Slog.e(TAG, "Failed to get bluetooth adapter!");