From bb41536eb12ede451857bc0d47a0943e24e440be Mon Sep 17 00:00:00 2001 From: Mygod Date: Thu, 4 Apr 2019 11:31:27 +0800 Subject: [PATCH] Update to Android Q beta 2 APIs --- build.gradle | 2 +- .../java/be/mygod/vpnhotspot/LocalOnlyHotspotService.kt | 2 +- .../src/main/java/be/mygod/vpnhotspot/TetheringService.kt | 2 +- .../java/be/mygod/vpnhotspot/client/ClientViewModel.kt | 3 ++- .../mygod/vpnhotspot/manage/TetherListeningTileService.kt | 7 ++++--- .../java/be/mygod/vpnhotspot/manage/TetheringFragment.kt | 5 +++-- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index e3cfcaba..2b2cacd9 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ buildscript { } } dependencies { - classpath "com.android.tools.build:gradle:3.4.0-rc02" + classpath 'com.android.tools.build:gradle:3.4.0-rc03' classpath 'com.github.ben-manes:gradle-versions-plugin:0.21.0' classpath 'com.google.gms:google-services:4.2.0' classpath 'io.fabric.tools:gradle:1.28.1' diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/LocalOnlyHotspotService.kt b/mobile/src/main/java/be/mygod/vpnhotspot/LocalOnlyHotspotService.kt index fe7cb571..2ec37e78 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/LocalOnlyHotspotService.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/LocalOnlyHotspotService.kt @@ -41,7 +41,7 @@ class LocalOnlyHotspotService : IpNeighbourMonitoringService() { private var routingManager: RoutingManager? = null private var receiverRegistered = false private val receiver = broadcastReceiver { _, intent -> - val ifaces = intent.localOnlyTetheredIfaces + val ifaces = intent.localOnlyTetheredIfaces ?: return@broadcastReceiver DebugHelper.log(TAG, "onTetherStateChangedLocked: $ifaces") check(ifaces.size <= 1) val iface = ifaces.singleOrNull() diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/TetheringService.kt b/mobile/src/main/java/be/mygod/vpnhotspot/TetheringService.kt index 33bbffcc..b803cd4f 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/TetheringService.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/TetheringService.kt @@ -48,7 +48,7 @@ class TetheringService : IpNeighbourMonitoringService() { private val receiver = broadcastReceiver { _, intent -> synchronized(downstreams) { val toRemove = downstreams.toMutableMap() // make a copy - for (iface in intent.tetheredIfaces) { + for (iface in intent.tetheredIfaces ?: return@synchronized) { val downstream = toRemove.remove(iface) ?: continue if (downstream.monitor) downstream.start() } diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/client/ClientViewModel.kt b/mobile/src/main/java/be/mygod/vpnhotspot/client/ClientViewModel.kt index 7983ea25..09c7c479 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/client/ClientViewModel.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/client/ClientViewModel.kt @@ -20,7 +20,8 @@ import be.mygod.vpnhotspot.util.broadcastReceiver class ClientViewModel : ViewModel(), ServiceConnection, IpNeighbourMonitor.Callback { private var tetheredInterfaces = emptySet() private val receiver = broadcastReceiver { _, intent -> - tetheredInterfaces = intent.tetheredIfaces.toSet() + intent.localOnlyTetheredIfaces + tetheredInterfaces = (intent.tetheredIfaces ?: return@broadcastReceiver).toSet() + + (intent.localOnlyTetheredIfaces ?: return@broadcastReceiver) populateClients() } diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherListeningTileService.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherListeningTileService.kt index 0917b7e0..7c29933f 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherListeningTileService.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherListeningTileService.kt @@ -12,14 +12,15 @@ abstract class TetherListeningTileService : KillableTileService() { protected var tethered: List = emptyList() private val receiver = broadcastReceiver { _, intent -> - tethered = intent.tetheredIfaces + tethered = intent.tetheredIfaces ?: return@broadcastReceiver updateTile() } override fun onStartListening() { super.onStartListening() - val intent = registerReceiver(receiver, IntentFilter(TetheringManager.ACTION_TETHER_STATE_CHANGED)) - if (intent != null) tethered = intent.tetheredIfaces + registerReceiver(receiver, IntentFilter(TetheringManager.ACTION_TETHER_STATE_CHANGED))?.tetheredIfaces?.let { + tethered = it + } } override fun onStopListening() { diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringFragment.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringFragment.kt index 13ca8d05..1b616cea 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringFragment.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringFragment.kt @@ -98,8 +98,9 @@ class TetheringFragment : Fragment(), ServiceConnection, MenuItem.OnMenuItemClic var binder: TetheringService.Binder? = null private val adapter = ManagerAdapter() private val receiver = broadcastReceiver { _, intent -> - adapter.update(intent.tetheredIfaces, intent.localOnlyTetheredIfaces, - intent.getStringArrayListExtra(TetheringManager.EXTRA_ERRORED_TETHER)) + adapter.update(intent.tetheredIfaces ?: return@broadcastReceiver, + intent.localOnlyTetheredIfaces ?: return@broadcastReceiver, + intent.getStringArrayListExtra(TetheringManager.EXTRA_ERRORED_TETHER) ?: return@broadcastReceiver) } private fun updateMonitorList(canMonitor: List = emptyList()) {