Loading play-services-nearby-core/src/main/kotlin/org/microg/gms/nearby/exposurenotification/AdvertiserService.kt +3 −4 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ class AdvertiserService : Service() { get() = BluetoothAdapter.getDefaultAdapter()?.bluetoothLeAdvertiser private val alarmManager: AlarmManager get() = getSystemService(Context.ALARM_SERVICE) as AlarmManager private lateinit var database: ExposureDatabase private val callback: AdvertiseCallback = object : AdvertiseCallback() { override fun onStartSuccess(settingsInEffect: AdvertiseSettings?) { Log.d(TAG, "Advertising active for ${settingsInEffect?.timeout}ms") Loading Loading @@ -64,7 +63,6 @@ class AdvertiserService : Service() { override fun onCreate() { super.onCreate() database = ExposureDatabase.ref(this) registerReceiver(trigger, IntentFilter().also { it.addAction("android.bluetooth.adapter.action.STATE_CHANGED") }) } Loading @@ -84,7 +82,6 @@ class AdvertiserService : Service() { unregisterReceiver(trigger) stopOrRestartAdvertising() handler.removeCallbacks(startLaterRunnable) database.unref() } override fun onBind(intent: Intent?): IBinder? { Loading Loading @@ -123,7 +120,9 @@ class AdvertiserService : Service() { else -> return } var nextSend = nextKeyMillis.coerceAtLeast(10000) val payload = database.generateCurrentPayload(aemBytes) val payload = ExposureDatabase.with(this@AdvertiserService) { database -> database.generateCurrentPayload(aemBytes) } val data = AdvertiseData.Builder().addServiceUuid(SERVICE_UUID).addServiceData(SERVICE_UUID, payload).build() val (uuid, _) = ByteBuffer.wrap(payload).let { UUID(it.long, it.long) to it.int } Log.i(TAG, "Starting advertiser for RPI $uuid") Loading play-services-nearby-core/src/main/kotlin/org/microg/gms/nearby/exposurenotification/ScannerService.kt +3 −4 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ class ScannerService : Service() { private var lastStartTime = 0L private var seenAdvertisements = 0L private var lastAdvertisement = 0L private lateinit var database: ExposureDatabase private val callback = object : ScanCallback() { override fun onScanResult(callbackType: Int, result: ScanResult?) { result?.let { onScanResult(it) } Loading Loading @@ -82,7 +81,9 @@ class ScannerService : Service() { fun onScanResult(result: ScanResult) { val data = result.scanRecord?.serviceData?.get(SERVICE_UUID) ?: return if (data.size < 16) return // Ignore invalid advertisements ExposureDatabase.with(this) { database -> database.noteAdvertisement(data.sliceArray(0..15), data.drop(16).toByteArray(), result.rssi) } seenAdvertisements++ lastAdvertisement = System.currentTimeMillis() } Loading @@ -97,7 +98,6 @@ class ScannerService : Service() { override fun onCreate() { super.onCreate() database = ExposureDatabase.ref(this) registerReceiver(trigger, IntentFilter().also { it.addAction("android.bluetooth.adapter.action.STATE_CHANGED") }) } Loading @@ -105,7 +105,6 @@ class ScannerService : Service() { super.onDestroy() unregisterReceiver(trigger) stopScan() database.unref() } override fun onBind(intent: Intent?): IBinder? { Loading Loading
play-services-nearby-core/src/main/kotlin/org/microg/gms/nearby/exposurenotification/AdvertiserService.kt +3 −4 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ class AdvertiserService : Service() { get() = BluetoothAdapter.getDefaultAdapter()?.bluetoothLeAdvertiser private val alarmManager: AlarmManager get() = getSystemService(Context.ALARM_SERVICE) as AlarmManager private lateinit var database: ExposureDatabase private val callback: AdvertiseCallback = object : AdvertiseCallback() { override fun onStartSuccess(settingsInEffect: AdvertiseSettings?) { Log.d(TAG, "Advertising active for ${settingsInEffect?.timeout}ms") Loading Loading @@ -64,7 +63,6 @@ class AdvertiserService : Service() { override fun onCreate() { super.onCreate() database = ExposureDatabase.ref(this) registerReceiver(trigger, IntentFilter().also { it.addAction("android.bluetooth.adapter.action.STATE_CHANGED") }) } Loading @@ -84,7 +82,6 @@ class AdvertiserService : Service() { unregisterReceiver(trigger) stopOrRestartAdvertising() handler.removeCallbacks(startLaterRunnable) database.unref() } override fun onBind(intent: Intent?): IBinder? { Loading Loading @@ -123,7 +120,9 @@ class AdvertiserService : Service() { else -> return } var nextSend = nextKeyMillis.coerceAtLeast(10000) val payload = database.generateCurrentPayload(aemBytes) val payload = ExposureDatabase.with(this@AdvertiserService) { database -> database.generateCurrentPayload(aemBytes) } val data = AdvertiseData.Builder().addServiceUuid(SERVICE_UUID).addServiceData(SERVICE_UUID, payload).build() val (uuid, _) = ByteBuffer.wrap(payload).let { UUID(it.long, it.long) to it.int } Log.i(TAG, "Starting advertiser for RPI $uuid") Loading
play-services-nearby-core/src/main/kotlin/org/microg/gms/nearby/exposurenotification/ScannerService.kt +3 −4 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ class ScannerService : Service() { private var lastStartTime = 0L private var seenAdvertisements = 0L private var lastAdvertisement = 0L private lateinit var database: ExposureDatabase private val callback = object : ScanCallback() { override fun onScanResult(callbackType: Int, result: ScanResult?) { result?.let { onScanResult(it) } Loading Loading @@ -82,7 +81,9 @@ class ScannerService : Service() { fun onScanResult(result: ScanResult) { val data = result.scanRecord?.serviceData?.get(SERVICE_UUID) ?: return if (data.size < 16) return // Ignore invalid advertisements ExposureDatabase.with(this) { database -> database.noteAdvertisement(data.sliceArray(0..15), data.drop(16).toByteArray(), result.rssi) } seenAdvertisements++ lastAdvertisement = System.currentTimeMillis() } Loading @@ -97,7 +98,6 @@ class ScannerService : Service() { override fun onCreate() { super.onCreate() database = ExposureDatabase.ref(this) registerReceiver(trigger, IntentFilter().also { it.addAction("android.bluetooth.adapter.action.STATE_CHANGED") }) } Loading @@ -105,7 +105,6 @@ class ScannerService : Service() { super.onDestroy() unregisterReceiver(trigger) stopScan() database.unref() } override fun onBind(intent: Intent?): IBinder? { Loading