Add a lot more QS tiles

Fix #53. Also fix Bluetooth connection leaks.
This commit is contained in:
Mygod
2018-12-25 11:37:36 +08:00
parent 365287202e
commit 426b93226d
15 changed files with 481 additions and 163 deletions

View File

@@ -88,8 +88,8 @@ class TetheringFragment : Fragment(), ServiceConnection {
var ifaceLookup: Map<String, NetworkInterface> = emptyMap()
var enabledTypes = emptySet<TetherType>()
private lateinit var binding: FragmentTetheringBinding
var tetheringBinder: TetheringService.Binder? = null
val adapter = ManagerAdapter()
var binder: TetheringService.Binder? = null
private val adapter = ManagerAdapter()
private val receiver = broadcastReceiver { _, intent ->
val extras = intent.extras ?: return@broadcastReceiver
adapter.update(TetheringManager.getTetheredIfaces(extras),
@@ -130,14 +130,14 @@ class TetheringFragment : Fragment(), ServiceConnection {
}
override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
tetheringBinder = service as TetheringService.Binder
service.fragment = this
binder = service as TetheringService.Binder
service.routingsChanged[this] = { adapter.notifyDataSetChanged() }
requireContext().registerReceiver(receiver, IntentFilter(TetheringManager.ACTION_TETHER_STATE_CHANGED))
}
override fun onServiceDisconnected(name: ComponentName?) {
(tetheringBinder ?: return).fragment = null
tetheringBinder = null
(binder ?: return).routingsChanged -= this
binder = null
requireContext().unregisterReceiver(receiver)
}
}