1
+ package io.emqx.mqtt
2
+
3
+ import android.util.Log
4
+ import android.view.View
5
+ import android.widget.Button
6
+ import android.widget.EditText
7
+ import android.widget.RadioButton
8
+ import android.widget.Toast
9
+ import org.eclipse.paho.client.mqttv3.IMqttActionListener
10
+ import org.eclipse.paho.client.mqttv3.IMqttToken
11
+ import org.eclipse.paho.client.mqttv3.MqttAsyncClient
12
+
13
+ class ConnectionFragment : BaseFragment () {
14
+ private lateinit var mHost: EditText
15
+ private lateinit var mPort: EditText
16
+ private lateinit var mClientId: EditText
17
+ private lateinit var mUsername: EditText
18
+ private lateinit var mPassword: EditText
19
+ private lateinit var mTlsButton: RadioButton
20
+ private lateinit var mButton: Button
21
+ override val layoutResId: Int
22
+ get() = R .layout.fragment_connection
23
+
24
+ override fun setUpView (view : View ) {
25
+ mHost = view.findViewById(R .id.host)
26
+ mHost.setText(" broker.emqx.io" )
27
+ mPort = view.findViewById(R .id.port)
28
+ mClientId = view.findViewById(R .id.clientid)
29
+ mClientId.setText(MqttAsyncClient .generateClientId())
30
+ mUsername = view.findViewById(R .id.username)
31
+ mPassword = view.findViewById(R .id.password)
32
+ mTlsButton = view.findViewById(R .id.tls_true)
33
+ mButton = view.findViewById(R .id.btn_connect)
34
+ mButton.setOnClickListener {
35
+ if (mButton.text.toString() == getString(R .string.connect)) {
36
+ val connection = Connection (
37
+ fragmentActivity!! ,
38
+ mHost.text.toString(),
39
+ mPort.text.toString().toInt(),
40
+ mClientId.text.toString(),
41
+ mUsername.text.toString(),
42
+ mPassword.text.toString(),
43
+ mTlsButton.isChecked
44
+ )
45
+ (fragmentActivity as MainActivity ).connect(
46
+ connection,
47
+ object : IMqttActionListener {
48
+ override fun onSuccess (asyncActionToken : IMqttToken ) {
49
+ Log .d(
50
+ " ConnectionFragment" ,
51
+ " Connected to: " + asyncActionToken.client.serverURI
52
+ )
53
+ updateButtonText()
54
+ }
55
+
56
+ override fun onFailure (asyncActionToken : IMqttToken , exception : Throwable ) {
57
+ Toast .makeText(
58
+ fragmentActivity,
59
+ exception.toString(),
60
+ Toast .LENGTH_SHORT
61
+ ).show()
62
+ exception.printStackTrace()
63
+ }
64
+ })
65
+ } else {
66
+ (fragmentActivity as MainActivity ).disconnect()
67
+ }
68
+ }
69
+ }
70
+
71
+ fun updateButtonText () {
72
+ if ((fragmentActivity as MainActivity ).notConnected(false )) {
73
+ mButton.text = getText(R .string.connect)
74
+ } else {
75
+ mButton.text = getString(R .string.disconnect)
76
+ }
77
+ }
78
+
79
+ companion object {
80
+ fun newInstance (): ConnectionFragment {
81
+ return ConnectionFragment ()
82
+ }
83
+ }
84
+ }
0 commit comments