Skip to content
This repository was archived by the owner on Aug 15, 2021. It is now read-only.

Commit f715178

Browse files
committed
2020-02-05 Version 1.1.0: Added Debug Monitor implementation for tests and run the app without Arduino
1 parent c10dfbe commit f715178

File tree

28 files changed

+342
-189
lines changed

28 files changed

+342
-189
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ android {
1212
minSdkVersion 21
1313
targetSdkVersion 29
1414
versionCode 1
15-
versionName "1.0.1"
15+
versionName "1.1.0"
1616
}
1717
}
1818

app/src/main/java/com/smlnskgmail/jaman/remotetemperaturecontrol/MainActivity.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ package com.smlnskgmail.jaman.remotetemperaturecontrol
33
import android.os.Bundle
44
import androidx.appcompat.app.AppCompatActivity
55
import androidx.fragment.app.Fragment
6-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.targets.BtPauseTarget
7-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.ui.MonitorHandleFragment
6+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.MonitorFragment
7+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.entities.targets.BtPauseTarget
88

99
class MainActivity : AppCompatActivity() {
1010

1111
override fun onCreate(savedInstanceState: Bundle?) {
1212
super.onCreate(savedInstanceState)
13-
showFragment(MonitorHandleFragment())
13+
showFragment(MonitorFragment())
1414
}
1515

1616
private fun showFragment(fragment: Fragment) {

app/src/main/java/com/smlnskgmail/jaman/remotetemperaturecontrol/components/fragments/BaseFragment.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,10 @@ import android.view.View
66
import android.view.ViewGroup
77
import androidx.fragment.app.Fragment
88
import com.smlnskgmail.jaman.remotetemperaturecontrol.components.bottomsheets.BaseBottomSheet
9-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.targets.BtPauseTarget
9+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.entities.targets.BtPauseTarget
1010

1111
abstract class BaseFragment : Fragment(), BtPauseTarget {
1212

13-
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
14-
initializeFragment(view)
15-
}
16-
17-
abstract fun initializeFragment(view: View)
18-
1913
override fun onCreateView(
2014
inflater: LayoutInflater,
2115
container: ViewGroup?,

app/src/main/java/com/smlnskgmail/jaman/remotetemperaturecontrol/logic/deviceselector/BtDevicesBottomSheet.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package com.smlnskgmail.jaman.remotetemperaturecontrol.logic.deviceselector
33
import com.smlnskgmail.jaman.remotetemperaturecontrol.R
44
import com.smlnskgmail.jaman.remotetemperaturecontrol.components.bottomsheets.BaseBottomSheet
55
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.deviceselector.recycler.BtDevicesAdapter
6-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.entities.BtDevice
7-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.targets.BtConnectTarget
6+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.entities.BtDevice
7+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.entities.targets.BtConnectTarget
88
import kotlinx.android.synthetic.main.bottom_sheet_bt_devices.*
99

1010
class BtDevicesBottomSheet : BaseBottomSheet() {

app/src/main/java/com/smlnskgmail/jaman/remotetemperaturecontrol/logic/deviceselector/recycler/BtDeviceHolder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.smlnskgmail.jaman.remotetemperaturecontrol.logic.deviceselector.recy
22

33
import android.view.View
44
import androidx.recyclerview.widget.RecyclerView
5-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.entities.BtDevice
5+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.entities.BtDevice
66
import kotlinx.android.synthetic.main.item_bt_device.view.*
77

88
class BtDeviceHolder(

app/src/main/java/com/smlnskgmail/jaman/remotetemperaturecontrol/logic/deviceselector/recycler/BtDevicesAdapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import android.view.LayoutInflater
44
import android.view.ViewGroup
55
import androidx.recyclerview.widget.RecyclerView
66
import com.smlnskgmail.jaman.remotetemperaturecontrol.R
7-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.entities.BtDevice
7+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.entities.BtDevice
88

99
class BtDevicesAdapter(
1010
private val btDevices: List<BtDevice>
Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,43 @@
1-
package com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.ui
1+
package com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor
22

3+
import android.annotation.SuppressLint
34
import android.bluetooth.BluetoothAdapter
45
import android.content.DialogInterface
6+
import android.os.Bundle
57
import android.view.View
68
import android.widget.TextView
79
import com.smlnskgmail.jaman.remotetemperaturecontrol.R
810
import com.smlnskgmail.jaman.remotetemperaturecontrol.components.dialogs.AppDialog
911
import com.smlnskgmail.jaman.remotetemperaturecontrol.components.fragments.BaseFragment
1012
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.deviceselector.BtDevicesBottomSheet
11-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.MonitorHandleTarget
12-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.MonitorSignalType
13-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.BtMonitor
14-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.MonitorBtConnection
15-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.entities.BtDevice
16-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.targets.BtConnectTarget
17-
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.btmonitor.connection.targets.BtDisconnectTarget
13+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.BtConnection
14+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.BtMonitor
15+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.BtMonitorSignalType
16+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.BtMonitorTarget
17+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.entities.BtDevice
18+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.entities.targets.BtConnectTarget
19+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api.entities.targets.BtDisconnectTarget
20+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.impl.debugbt.DebugBtConnection
21+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.impl.debugbt.DebugBtMonitor
22+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.impl.devicebt.DeviceBtConnection
23+
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.impl.devicebt.DeviceBtMonitor
1824
import com.smlnskgmail.jaman.remotetemperaturecontrol.logic.settings.SettingsBottomSheet
1925
import kotlinx.android.synthetic.main.fragment_monitor.*
2026

2127
@SuppressWarnings("TooManyFunctions")
22-
class MonitorHandleFragment : BaseFragment(), MonitorHandleTarget {
28+
class MonitorFragment : BaseFragment(), BtMonitorTarget {
2329

24-
private var monitorBtConnection: MonitorBtConnection? = null
30+
private var monitorBtConnection: BtConnection? = null
2531
private var btAdapter: BluetoothAdapter? = null
2632

2733
private var btMonitor: BtMonitor? = null
2834

29-
override fun initializeFragment(view: View) {
30-
enableMonitor()
31-
}
32-
33-
private fun enableMonitor() {
35+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
3436
if (btIsEnabled()) {
3537
btAdapter = BluetoothAdapter.getDefaultAdapter()
3638
val btDevices = getBtDevices()
3739
if (btDevices.isNotEmpty()) {
38-
btMonitor = BtMonitor(this)
40+
btMonitor = DeviceBtMonitor(this)
3941
showDevicesList(btDevices)
4042
} else {
4143
showBtDevicesNotFoundWarning()
@@ -45,14 +47,26 @@ class MonitorHandleFragment : BaseFragment(), MonitorHandleTarget {
4547
}
4648
}
4749

50+
@SuppressLint("SetTextI18n")
51+
@Suppress("unused")
52+
private fun startInDebugMode() {
53+
btMonitor = DebugBtMonitor(this)
54+
monitorBtConnection = DebugBtConnection(btMonitor!!)
55+
monitorBtConnection!!.start()
56+
57+
tv_connected_device_info.text = "DEBUG"
58+
btn_main_options.isEnabled = false
59+
btn_reset_monitor.isEnabled = false
60+
}
61+
4862
private fun btIsEnabled() = true
4963

5064
private fun showDevicesList(btDevices: List<BtDevice>) {
5165
val devicesBottomSheet = BtDevicesBottomSheet()
5266
devicesBottomSheet.setBtDevices(btDevices)
5367
devicesBottomSheet.setBtDeviceSelectCallback(object : BtConnectTarget {
5468
override fun onBtDeviceSelected(name: String, address: String) {
55-
monitorBtConnection = MonitorBtConnection(
69+
monitorBtConnection = DeviceBtConnection(
5670
btAdapter!!,
5771
address,
5872
btMonitor!!
@@ -70,7 +84,10 @@ class MonitorHandleFragment : BaseFragment(), MonitorHandleTarget {
7084
private fun getBtDevices(): List<BtDevice> {
7185
val bondedDevices= btAdapter!!.bondedDevices
7286
return bondedDevices.mapTo(ArrayList(bondedDevices.size)) {
73-
BtDevice(it.name, it.address)
87+
BtDevice(
88+
it.name,
89+
it.address
90+
)
7491
}
7592
}
7693

@@ -151,21 +168,19 @@ class MonitorHandleFragment : BaseFragment(), MonitorHandleTarget {
151168

152169
private fun initializeButtons() {
153170
btn_reset_monitor.setOnClickListener {
154-
monitorBtConnection!!.send(MonitorSignalType.Reset)
171+
monitorBtConnection!!.send(BtMonitorSignalType.Reset)
155172
}
156173
btn_main_options.setOnClickListener {
157174
showSettings()
158175
}
159176
}
160177

161178
private fun showSettings() {
162-
val settingsBottomSheet =
163-
SettingsBottomSheet()
179+
val settingsBottomSheet = SettingsBottomSheet()
164180
settingsBottomSheet.setBtDisconnectListener(object : BtDisconnectTarget {
165181
override fun btDisconnect() {
166182
monitorBtConnection!!.disconnect()
167183
resetRequired()
168-
enableMonitor()
169184
}
170185
})
171186
showBottomSheet(settingsBottomSheet)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api
2+
3+
abstract class BtConnection : Thread() {
4+
5+
open fun connect() {
6+
7+
}
8+
9+
open fun disconnect() {
10+
11+
}
12+
13+
open fun handleOnResume() {
14+
15+
}
16+
17+
open fun send(btMonitorSignalType: BtMonitorSignalType) {
18+
19+
}
20+
21+
}

app/src/main/java/com/smlnskgmail/jaman/remotetemperaturecontrol/logic/monitor/Monitor.kt renamed to app/src/main/java/com/smlnskgmail/jaman/remotetemperaturecontrol/logic/monitor/api/BtMonitor.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor
1+
package com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api
22

3-
interface Monitor {
3+
interface BtMonitor {
44

55
fun onNewDataAvailable(
6-
monitorSignalType: MonitorSignalType,
6+
btMonitorSignalType: BtMonitorSignalType,
77
rawData: String
88
)
99

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor
1+
package com.smlnskgmail.jaman.remotetemperaturecontrol.logic.monitor.api
22

3-
enum class MonitorSignalType {
3+
enum class BtMonitorSignalType {
44

55
Temperature,
66
TemperatureMinimum,
@@ -13,7 +13,7 @@ enum class MonitorSignalType {
1313

1414
companion object {
1515

16-
fun fromRawData(rawData: String): MonitorSignalType {
16+
fun fromRawData(rawData: String): BtMonitorSignalType {
1717
return when (rawData[0].toString()) {
1818
"t" -> Temperature
1919
"i" -> TemperatureMinimum
@@ -26,8 +26,8 @@ enum class MonitorSignalType {
2626
}
2727
}
2828

29-
fun signalOf(monitorSignalType: MonitorSignalType): String {
30-
return when (monitorSignalType) {
29+
fun signalOf(btMonitorSignalType: BtMonitorSignalType): String {
30+
return when (btMonitorSignalType) {
3131
Temperature -> "t"
3232
TemperatureMinimum -> "i"
3333
TemperatureMaximum -> "m"

0 commit comments

Comments
 (0)