Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7de2357 authored by Etienne Ruffieux's avatar Etienne Ruffieux Committed by Gerrit Code Review
Browse files

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

* changes:
  Added error method to interface Bluetooth stats
  [API Review] Replace ResultReceiver by Executor
parents 4797e99e bc0501e2
Loading
Loading
Loading
Loading
+25 −2
Original line number Diff line number Diff line
@@ -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;
            }
        }

+22 −1
Original line number Diff line number Diff line
@@ -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!");