Merge changes from topic "api-review-result-receiver"

* changes:
  Added error method to interface Bluetooth stats
  [API Review] Replace ResultReceiver by Executor
This commit is contained in:
Etienne Ruffieux 2022-03-29 20:36:29 +00:00 committed by Gerrit Code Review
commit b7de235729
2 changed files with 47 additions and 3 deletions

View File

@ -556,8 +556,31 @@ 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,
new BluetoothAdapter.OnBluetoothActivityEnergyInfoCallback() {
@Override
public void onBluetoothActivityEnergyInfoAvailable(
BluetoothActivityEnergyInfo info) {
Bundle bundle = new Bundle();
bundle.putParcelable(
BatteryStats.RESULT_RECEIVER_CONTROLLER_KEY, info);
resultReceiver.send(0, bundle);
}
@Override
public void onBluetoothActivityEnergyInfoError(int errorCode) {
Slog.w(TAG, "error reading Bluetooth stats: " + errorCode);
Bundle bundle = new Bundle();
bundle.putParcelable(
BatteryStats.RESULT_RECEIVER_CONTROLLER_KEY, null);
resultReceiver.send(0, bundle);
}
}
);
bluetoothReceiver = resultReceiver;
}
}

View File

@ -1618,7 +1618,28 @@ public class StatsPullAtomService extends SystemService {
if (adapter != null) {
SynchronousResultReceiver bluetoothReceiver =
new SynchronousResultReceiver("bluetooth");
adapter.requestControllerActivityEnergyInfo(bluetoothReceiver);
adapter.requestControllerActivityEnergyInfo(
Runnable::run,
new BluetoothAdapter.OnBluetoothActivityEnergyInfoCallback() {
@Override
public void onBluetoothActivityEnergyInfoAvailable(
BluetoothActivityEnergyInfo info) {
Bundle bundle = new Bundle();
bundle.putParcelable(
BatteryStats.RESULT_RECEIVER_CONTROLLER_KEY, info);
bluetoothReceiver.send(0, bundle);
}
@Override
public void onBluetoothActivityEnergyInfoError(int errorCode) {
Slog.w(TAG, "error reading Bluetooth stats: " + errorCode);
Bundle bundle = new Bundle();
bundle.putParcelable(
BatteryStats.RESULT_RECEIVER_CONTROLLER_KEY, null);
bluetoothReceiver.send(0, bundle);
}
}
);
return awaitControllerInfo(bluetoothReceiver);
} else {
Slog.e(TAG, "Failed to get bluetooth adapter!");