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

Commit 50e9c10a authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 12229688 from 4deae2fc to 24Q4-release

Change-Id: I2ed10bf0964c30760bd17ed713de81e0e6537fc7
parents 9fcb0071 4deae2fc
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
cmanton@google.com
eruffieux@google.com
hallstrom@google.com
henrichataing@google.com
jpawlowski@google.com
mylesgw@google.com
okamil@google.com
+2 −2
Original line number Diff line number Diff line
@@ -50,8 +50,8 @@ interface IBluetooth
    @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
    int getState();

    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
    oneway void enable(boolean quietMode, in AttributionSource attributionSource);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
    oneway void offToBleOn(boolean quietMode, in AttributionSource attributionSource);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
    oneway void disable(in AttributionSource attributionSource);

+8 −8
Original line number Diff line number Diff line
@@ -2304,16 +2304,16 @@ public class AdapterService extends Service {
        }

        @Override
        public void enable(boolean quietMode, AttributionSource source) {
        public void offToBleOn(boolean quietMode, AttributionSource source) {
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "enable")
                    || !Utils.checkConnectPermissionForDataDelivery(
                            service, source, "AdapterService enable")) {
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "offToBleOn")) {
                return;
            }

            service.enable(quietMode);
            service.enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, null);

            service.offToBleOn(quietMode);
        }

        @Override
@@ -4611,11 +4611,11 @@ public class AdapterService extends Service {
        return BluetoothAdapter.STATE_OFF;
    }

    public synchronized void enable(boolean quietMode) {
    public synchronized void offToBleOn(boolean quietMode) {
        // Enforce the user restriction for disallowing Bluetooth if it was set.
        if (mUserManager.hasUserRestrictionForUser(
                UserManager.DISALLOW_BLUETOOTH, UserHandle.SYSTEM)) {
            Log.d(TAG, "enable() called when Bluetooth was disallowed");
            Log.d(TAG, "offToBleOn() called when Bluetooth was disallowed");
            return;
        }
        if (Flags.fastBindToApp()) {
@@ -4623,7 +4623,7 @@ public class AdapterService extends Service {
            mHandler.post(() -> init());
        }

        Log.i(TAG, "enable() - Enable called with quiet mode status =  " + quietMode);
        Log.i(TAG, "offToBleOn() - Enable called with quiet mode status =  " + quietMode);
        mQuietmode = quietMode;
        mAdapterStateMachine.sendMessage(AdapterState.BLE_TURN_ON);
    }
+22 −6
Original line number Diff line number Diff line
@@ -619,8 +619,8 @@ public class AppScanStats {

        if (Flags.bleScanAdvMetricsRedesign()) {
            logger.logRadioScanStopped(
                    sRadioScanWorkSourceUtil.getUids(),
                    sRadioScanWorkSourceUtil.getTags(),
                    getRadioScanUids(),
                    getRadioScanTags(),
                    sRadioScanType,
                    convertScanMode(sRadioScanMode),
                    sRadioScanIntervalMs,
@@ -644,6 +644,22 @@ public class AppScanStats {
        }
    }

    private static int[] getRadioScanUids() {
        synchronized (sLock) {
            return sRadioScanWorkSourceUtil != null
                    ? sRadioScanWorkSourceUtil.getUids()
                    : new int[] {0};
        }
    }

    private static String[] getRadioScanTags() {
        synchronized (sLock) {
            return sRadioScanWorkSourceUtil != null
                    ? sRadioScanWorkSourceUtil.getTags()
                    : new String[] {""};
        }
    }

    @GuardedBy("sLock")
    private static void recordScreenOnOffMetrics(boolean isScreenOn) {
        if (isScreenOn) {
@@ -680,8 +696,8 @@ public class AppScanStats {
            if (Flags.bleScanAdvMetricsRedesign()) {
                BluetoothStatsLog.write(
                        BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED,
                        sRadioScanWorkSourceUtil.getUids(),
                        sRadioScanWorkSourceUtil.getTags(),
                        getRadioScanUids(),
                        getRadioScanTags(),
                        1 /* num_results */,
                        BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED__LE_SCAN_TYPE__SCAN_TYPE_REGULAR,
                        sIsScreenOn);
@@ -704,8 +720,8 @@ public class AppScanStats {
        if (Flags.bleScanAdvMetricsRedesign()) {
            BluetoothStatsLog.write(
                    BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED,
                    sRadioScanWorkSourceUtil.getUids(),
                    sRadioScanWorkSourceUtil.getTags(),
                    getRadioScanUids(),
                    getRadioScanTags(),
                    numRecords,
                    BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED__LE_SCAN_TYPE__SCAN_TYPE_BATCH,
                    sIsScreenOn);
+13 −12
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicReference;

/** Class that handles Bluetooth LE scan related operations. */
public class ScanManager {
@@ -120,8 +121,6 @@ public class ScanManager {
    private final Context mContext;
    private final TransitionalScanHelper mScanHelper;
    private final AdapterService mAdapterService;
    private BroadcastReceiver mBatchAlarmReceiver;
    private boolean mBatchAlarmReceiverRegistered;
    private ScanNative mScanNative;
    private volatile ClientHandler mHandler;
    private BluetoothAdapterProxy mBluetoothAdapterProxy;
@@ -993,9 +992,12 @@ public class ScanManager {
        private final Set<Integer> mAllPassRegularClients = new HashSet<>();
        private final Set<Integer> mAllPassBatchClients = new HashSet<>();

        private AlarmManager mAlarmManager;
        private PendingIntent mBatchScanIntervalIntent;
        private ScanNativeInterface mNativeInterface;
        private final AtomicReference<BroadcastReceiver> mBatchAlarmReceiver =
                new AtomicReference<>();

        private final AlarmManager mAlarmManager;
        private final PendingIntent mBatchScanIntervalIntent;
        private final ScanNativeInterface mNativeInterface;

        ScanNative(TransitionalScanHelper scanHelper) {
            mNativeInterface = ScanObjectsFactory.getInstance().getScanNativeInterface();
@@ -1011,7 +1013,7 @@ public class ScanManager {
            IntentFilter filter = new IntentFilter();
            filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
            filter.addAction(ACTION_REFRESH_BATCHED_SCAN);
            mBatchAlarmReceiver =
            mBatchAlarmReceiver.set(
                    new BroadcastReceiver() {
                        @Override
                        public void onReceive(Context context, Intent intent) {
@@ -1028,9 +1030,8 @@ public class ScanManager {
                                }
                            }
                        }
                    };
            mContext.registerReceiver(mBatchAlarmReceiver, filter);
            mBatchAlarmReceiverRegistered = true;
                    });
            mContext.registerReceiver(mBatchAlarmReceiver.get(), filter);
        }

        private void callbackDone(int scannerId, int status) {
@@ -1484,10 +1485,10 @@ public class ScanManager {
        void cleanup() {
            mAlarmManager.cancel(mBatchScanIntervalIntent);
            // Protect against multiple calls of cleanup.
            if (mBatchAlarmReceiverRegistered) {
                mContext.unregisterReceiver(mBatchAlarmReceiver);
            BroadcastReceiver receiver = mBatchAlarmReceiver.getAndSet(null);
            if (receiver != null) {
                mContext.unregisterReceiver(receiver);
            }
            mBatchAlarmReceiverRegistered = false;
            mNativeInterface.cleanup();
        }

Loading