Loading android/app/src/com/android/bluetooth/gatt/AppScanStats.java +9 −5 Original line number Diff line number Diff line Loading @@ -60,11 +60,13 @@ import java.util.Objects; ContextMap mContextMap; // GattService is needed to add scan event protos to be dumped later GattService mGattService; final GattService mGattService; // Battery stats is used to keep track of scans and result stats BatteryStatsManager mBatteryStatsManager; private final AdapterService mAdapterService; class LastScan { public long duration; public long suspendDuration; Loading Loading @@ -164,6 +166,7 @@ import java.util.Objects; } mWorkSource = source; mWorkSourceUtil = new WorkSourceUtil(source); mAdapterService = Objects.requireNonNull(AdapterService.getAdapterService()); } synchronized void addResult(int scannerId) { Loading Loading @@ -272,7 +275,7 @@ import java.util.Objects; mTotalSuspendTime += suspendDuration; } mOngoingScans.remove(scannerId); if (mLastScans.size() >= getNumScanDurationsKept()) { if (mLastScans.size() >= mAdapterService.getScanQuotaCount()) { mLastScans.remove(0); } mLastScans.add(scan); Loading Loading @@ -355,19 +358,20 @@ import java.util.Objects; } synchronized boolean isScanningTooFrequently() { if (mLastScans.size() < getNumScanDurationsKept()) { if (mLastScans.size() < mAdapterService.getScanQuotaCount()) { return false; } return (SystemClock.elapsedRealtime() - mLastScans.get(0).timestamp) < getExcessiveScanningPeriodMillis(); < mAdapterService.getScanQuotaWindowMillis(); } synchronized boolean isScanningTooLong() { if (!isScanning()) { return false; } return (SystemClock.elapsedRealtime() - mScanStartTime) > getScanTimeoutMillis(); return (SystemClock.elapsedRealtime() - mScanStartTime) > mAdapterService.getScanTimeoutMillis(); } synchronized boolean hasRecentScan() { Loading android/app/src/com/android/bluetooth/gatt/GattService.java +1 −1 Original line number Diff line number Diff line Loading @@ -317,7 +317,7 @@ public class GattService extends ProfileService { mAdvertiseManager = new AdvertiseManager(this, mAdapterService); mAdvertiseManager.start(); mScanManager = new ScanManager(this); mScanManager = new ScanManager(this, mAdapterService); mScanManager.start(); mPeriodicScanManager = new PeriodicScanManager(mAdapterService); Loading android/app/src/com/android/bluetooth/gatt/ScanManager.java +7 −5 Original line number Diff line number Diff line Loading @@ -95,7 +95,8 @@ public class ScanManager { private BatchScanParams mBatchScanParms; private Integer mCurUsedTrackableAdvertisements; private GattService mService; private final GattService mService; private final AdapterService mAdapterService; private BroadcastReceiver mBatchAlarmReceiver; private boolean mBatchAlarmReceiverRegistered; private ScanNative mScanNative; Loading Loading @@ -129,7 +130,7 @@ public class ScanManager { } } ScanManager(GattService service) { ScanManager(GattService service, AdapterService adapterService) { mRegularScanClients = Collections.newSetFromMap(new ConcurrentHashMap<ScanClient, Boolean>()); mBatchClients = Collections.newSetFromMap(new ConcurrentHashMap<ScanClient, Boolean>()); Loading @@ -141,6 +142,7 @@ public class ScanManager { mDm = mService.getSystemService(DisplayManager.class); mActivityManager = mService.getSystemService(ActivityManager.class); mLocationManager = mService.getSystemService(LocationManager.class); mAdapterService = adapterService; mPriorityMap.put(ScanSettings.SCAN_MODE_OPPORTUNISTIC, 0); mPriorityMap.put(ScanSettings.SCAN_MODE_SCREEN_OFF, 1); Loading Loading @@ -383,7 +385,7 @@ public class ScanManager { Message msg = obtainMessage(MSG_SCAN_TIMEOUT); msg.obj = client; // Only one timeout message should exist at any time sendMessageDelayed(msg, AppScanStats.getScanTimeoutMillis()); sendMessageDelayed(msg, mAdapterService.getScanTimeoutMillis()); } } } Loading Loading @@ -547,7 +549,7 @@ public class ScanManager { } private boolean upgradeScanModeBeforeStart(ScanClient client) { if (client.started || AppScanStats.getScanUpgradeDurationMillis() == 0) { if (client.started || mAdapterService.getScanUpgradeDurationMillis() == 0) { return false; } if (client.stats == null || client.stats.hasRecentScan()) { Loading @@ -563,7 +565,7 @@ public class ScanManager { if (DBG) { Log.d(TAG, "scanMode is upgraded for " + client); } sendMessageDelayed(msg, AppScanStats.getScanUpgradeDurationMillis()); sendMessageDelayed(msg, mAdapterService.getScanUpgradeDurationMillis()); return true; } return false; Loading Loading
android/app/src/com/android/bluetooth/gatt/AppScanStats.java +9 −5 Original line number Diff line number Diff line Loading @@ -60,11 +60,13 @@ import java.util.Objects; ContextMap mContextMap; // GattService is needed to add scan event protos to be dumped later GattService mGattService; final GattService mGattService; // Battery stats is used to keep track of scans and result stats BatteryStatsManager mBatteryStatsManager; private final AdapterService mAdapterService; class LastScan { public long duration; public long suspendDuration; Loading Loading @@ -164,6 +166,7 @@ import java.util.Objects; } mWorkSource = source; mWorkSourceUtil = new WorkSourceUtil(source); mAdapterService = Objects.requireNonNull(AdapterService.getAdapterService()); } synchronized void addResult(int scannerId) { Loading Loading @@ -272,7 +275,7 @@ import java.util.Objects; mTotalSuspendTime += suspendDuration; } mOngoingScans.remove(scannerId); if (mLastScans.size() >= getNumScanDurationsKept()) { if (mLastScans.size() >= mAdapterService.getScanQuotaCount()) { mLastScans.remove(0); } mLastScans.add(scan); Loading Loading @@ -355,19 +358,20 @@ import java.util.Objects; } synchronized boolean isScanningTooFrequently() { if (mLastScans.size() < getNumScanDurationsKept()) { if (mLastScans.size() < mAdapterService.getScanQuotaCount()) { return false; } return (SystemClock.elapsedRealtime() - mLastScans.get(0).timestamp) < getExcessiveScanningPeriodMillis(); < mAdapterService.getScanQuotaWindowMillis(); } synchronized boolean isScanningTooLong() { if (!isScanning()) { return false; } return (SystemClock.elapsedRealtime() - mScanStartTime) > getScanTimeoutMillis(); return (SystemClock.elapsedRealtime() - mScanStartTime) > mAdapterService.getScanTimeoutMillis(); } synchronized boolean hasRecentScan() { Loading
android/app/src/com/android/bluetooth/gatt/GattService.java +1 −1 Original line number Diff line number Diff line Loading @@ -317,7 +317,7 @@ public class GattService extends ProfileService { mAdvertiseManager = new AdvertiseManager(this, mAdapterService); mAdvertiseManager.start(); mScanManager = new ScanManager(this); mScanManager = new ScanManager(this, mAdapterService); mScanManager.start(); mPeriodicScanManager = new PeriodicScanManager(mAdapterService); Loading
android/app/src/com/android/bluetooth/gatt/ScanManager.java +7 −5 Original line number Diff line number Diff line Loading @@ -95,7 +95,8 @@ public class ScanManager { private BatchScanParams mBatchScanParms; private Integer mCurUsedTrackableAdvertisements; private GattService mService; private final GattService mService; private final AdapterService mAdapterService; private BroadcastReceiver mBatchAlarmReceiver; private boolean mBatchAlarmReceiverRegistered; private ScanNative mScanNative; Loading Loading @@ -129,7 +130,7 @@ public class ScanManager { } } ScanManager(GattService service) { ScanManager(GattService service, AdapterService adapterService) { mRegularScanClients = Collections.newSetFromMap(new ConcurrentHashMap<ScanClient, Boolean>()); mBatchClients = Collections.newSetFromMap(new ConcurrentHashMap<ScanClient, Boolean>()); Loading @@ -141,6 +142,7 @@ public class ScanManager { mDm = mService.getSystemService(DisplayManager.class); mActivityManager = mService.getSystemService(ActivityManager.class); mLocationManager = mService.getSystemService(LocationManager.class); mAdapterService = adapterService; mPriorityMap.put(ScanSettings.SCAN_MODE_OPPORTUNISTIC, 0); mPriorityMap.put(ScanSettings.SCAN_MODE_SCREEN_OFF, 1); Loading Loading @@ -383,7 +385,7 @@ public class ScanManager { Message msg = obtainMessage(MSG_SCAN_TIMEOUT); msg.obj = client; // Only one timeout message should exist at any time sendMessageDelayed(msg, AppScanStats.getScanTimeoutMillis()); sendMessageDelayed(msg, mAdapterService.getScanTimeoutMillis()); } } } Loading Loading @@ -547,7 +549,7 @@ public class ScanManager { } private boolean upgradeScanModeBeforeStart(ScanClient client) { if (client.started || AppScanStats.getScanUpgradeDurationMillis() == 0) { if (client.started || mAdapterService.getScanUpgradeDurationMillis() == 0) { return false; } if (client.stats == null || client.stats.hasRecentScan()) { Loading @@ -563,7 +565,7 @@ public class ScanManager { if (DBG) { Log.d(TAG, "scanMode is upgraded for " + client); } sendMessageDelayed(msg, AppScanStats.getScanUpgradeDurationMillis()); sendMessageDelayed(msg, mAdapterService.getScanUpgradeDurationMillis()); return true; } return false; Loading