Skip to content

Commit

Permalink
When Bluetooth is disabled by the user, finish DeviceServiceExploreAc…
Browse files Browse the repository at this point in the history
…tivity and CharacteristicActivity
  • Loading branch information
sandy-8925 committed Mar 25, 2021
1 parent 54322a2 commit 995951f
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ class CharacteristicActivity : AppCompatActivity() {
finish()
}
)

supportFragmentManager.beginTransaction()
.add(ExitActivityOnBluetoothDisable(), null)
.commit()
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import org.ligi.blexplorer.R
import org.ligi.blexplorer.bluetoothController
import org.ligi.blexplorer.databinding.ActivityWithRecyclerBinding
import org.ligi.blexplorer.databinding.ItemServiceBinding
import org.ligi.blexplorer.ui.CharacteristicActivity
import org.ligi.blexplorer.util.DevicePropertiesDescriber
import org.ligi.blexplorer.util.KEY_BLUETOOTH_DEVICE
import org.ligi.snackengage.SnackEngage
Expand Down Expand Up @@ -101,6 +100,10 @@ class DeviceServiceExploreActivity : AppCompatActivity() {
supportFragmentManager.beginTransaction().add(ExitOnDismissAlertDialog(rxbleDevice), ExitOnDismissAlertDialog.TAG).commit()
}
)

supportFragmentManager.beginTransaction()
.add(ExitActivityOnBluetoothDisable(), null)
.commit()
}

override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
Expand Down
28 changes: 28 additions & 0 deletions android/src/main/java/org/ligi/blexplorer/ui/UIUtils.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.ligi.blexplorer.ui

import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.lifecycle.Lifecycle
import com.polidea.rxandroidble2.RxBleClient
import com.uber.autodispose.AutoDispose
import com.uber.autodispose.android.lifecycle.AndroidLifecycleScopeProvider
import io.reactivex.BackpressureStrategy
import io.reactivex.android.schedulers.AndroidSchedulers
import org.ligi.blexplorer.bluetoothController

class ExitActivityOnBluetoothDisable : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val autoDisposable = AutoDispose.autoDisposable<RxBleClient.State>(AndroidLifecycleScopeProvider.from(this, Lifecycle.Event.ON_DESTROY))
bluetoothController.bluetoothStateEvents
.toFlowable(BackpressureStrategy.LATEST)
.filter { it == RxBleClient.State.BLUETOOTH_NOT_ENABLED }
.take(1)
.observeOn(AndroidSchedulers.mainThread())
.`as`(autoDisposable)
.subscribe(
{ activity?.finish() },
{}
)
}
}

0 comments on commit 995951f

Please sign in to comment.