Skip to content

Commit 0c7f113

Browse files
committed
bluetooth connection persistence additions
1 parent 63d8818 commit 0c7f113

19 files changed

+2026
-477
lines changed

app/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,6 @@ dependencies {
2828
implementation "org.jetbrains.anko:anko-commons:$anko_version"
2929
implementation "org.jetbrains.anko:anko-sdk25:$anko_version"
3030
implementation 'com.chibatching.kotpref:kotpref:2.6.0'
31+
implementation 'com.android.support:localbroadcastmanager:28.0.0'
3132

3233
}

app/src/main/java/com/github/rostopira/kontroller/BluetoothController.kt

+46-462
Large diffs are not rendered by default.

app/src/main/java/com/github/rostopira/kontroller/DescriptorCollection.kt

+746
Large diffs are not rendered by default.

app/src/main/java/com/github/rostopira/kontroller/SelectDeviceActivity.kt

+119-15
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package com.github.rostopira.kontroller
22

33
import android.annotation.SuppressLint
44
import android.app.Activity
5+
import android.app.AlertDialog
56
import android.content.Context
7+
import android.content.DialogInterface
68
import android.hardware.Sensor
79
import android.hardware.SensorManager
810
import android.os.Bundle
@@ -18,11 +20,8 @@ import com.github.rostopira.kontroller.senders.SensorSender
1820
import com.github.rostopira.kontroller.listeners.ViewListener
1921
import org.jetbrains.anko.*
2022
import com.github.rostopira.kontroller.extraLibraries.CustomGestureDetector
21-
22-
23-
24-
25-
23+
import com.github.rostopira.kontroller.senders.KeyboardSender
24+
import android.widget.CheckBox
2625

2726

2827

@@ -32,9 +31,11 @@ class SelectDeviceActivity: Activity(),KeyEvent.Callback {
3231
private lateinit var linearLayout: _LinearLayout
3332
private var sender: SensorSender? = null
3433
//private var viewTouchListener : ViewListener? = null
35-
34+
private var modifier_checked_state : Int =0
3635
private var rMouseSender : RelativeMouseSender? = null
3736

37+
private var rKeyboardSender : KeyboardSender? = null
38+
3839

3940
@SuppressLint("ResourceType")
4041
public override fun onCreate(savedInstanceState: Bundle?) {
@@ -54,12 +55,12 @@ class SelectDeviceActivity: Activity(),KeyEvent.Callback {
5455
linearLayout = this
5556
id = 0x69
5657
//gravity = Gravity.CENTER
57-
button("TEST") {
58-
setOnClickListener {
59-
rMouseSender?.sendTestClick() ?: toast("Not connected")
60-
61-
}
62-
}
58+
// button("TEST") {
59+
// setOnClickListener {
60+
// rMouseSender?.sendTestClick() ?: toast("Not connected")
61+
//
62+
// }
63+
// }
6364

6465

6566

@@ -117,6 +118,7 @@ class SelectDeviceActivity: Activity(),KeyEvent.Callback {
117118
val trackPadView = find<View>(R.id.mouseView)
118119

119120

121+
120122
BluetoothController.init(this)
121123

122124
BluetoothController.getSender { hidd, device ->
@@ -125,6 +127,14 @@ class SelectDeviceActivity: Activity(),KeyEvent.Callback {
125127

126128
mainHandler.post(object : Runnable{
127129
override fun run() {
130+
131+
////to be removed
132+
rKeyboardSender= KeyboardSender(hidd,device)
133+
134+
135+
/// end removed
136+
137+
128138
val rMouseSender = RelativeMouseSender(hidd,device)
129139
Log.i("TAGdddUI", Thread.currentThread().getName());
130140
val viewTouchListener = ViewListener(hidd, device, rMouseSender)
@@ -216,18 +226,85 @@ class SelectDeviceActivity: Activity(),KeyEvent.Callback {
216226

217227
public override fun onPause() {
218228
super.onPause()
229+
230+
}
231+
232+
public override fun onStop() {
233+
super.onStop()
234+
BluetoothController.btHid?.unregisterApp()
235+
236+
BluetoothController.hostDevice=null
237+
BluetoothController.btHid=null
219238
}
220239

240+
221241
public override fun onCreateOptionsMenu(menu: Menu?): Boolean {
222242

223-
val trackPadView = find<View>(R.id.mouseView)
243+
// val trackPadView = find<View>(R.id.mouseView)
224244

225245
menuInflater.inflate(R.menu.select_device_activity_menu, menu)
226246

247+
// val checkBox = menu?.findItem(R.id.check_modifier_state)?.actionView as CheckBox
248+
// checkBox.text = "Modifier Released"
249+
227250
//getMenuInflater().inflate(R.menu.select_device_activity_menu, menu);
228251
return super.onCreateOptionsMenu(menu)
229252
}
230253

254+
// companion object {
255+
// fun callAlert(){
256+
// val builder = AlertDialog.Builder(SelectDeviceActivity.this)
257+
// builder.setTitle("Make your selection")
258+
// builder.setItems(items, DialogInterface.OnClickListener { dialog, item ->
259+
// // Do something with the selection
260+
// mDoneButton.setText(items[item])
261+
// })
262+
// val alert = builder.create()
263+
// alert.show()
264+
// }
265+
// }
266+
267+
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
268+
269+
Log.d("keyeventdown_tag","desc is - $event")
270+
271+
272+
if(rKeyboardSender !=null && event !=null) {
273+
var rvalue: Boolean? = false
274+
//rvalue = rKeyboardSender?.sendKeyboard(keyCode, event,modifier_checked_state)
275+
276+
if (rvalue == true) return true
277+
278+
279+
else return super.onKeyDown(keyCode, event)
280+
281+
}
282+
else return super.onKeyDown(keyCode, event)
283+
284+
285+
}
286+
287+
288+
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
289+
290+
291+
Log.d("keyeventup_tag","desc is - $event")
292+
293+
if(rKeyboardSender !=null && event !=null) {
294+
var rvalue: Boolean? = false
295+
rvalue = rKeyboardSender?.sendKeyboard(keyCode, event,modifier_checked_state)
296+
297+
if (rvalue == true) return true
298+
299+
300+
else return super.onKeyDown(keyCode, event)
301+
302+
}
303+
else return super.onKeyUp(keyCode, event)
304+
305+
306+
}
307+
231308

232309
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
233310
R.id.action_settings -> {
@@ -240,11 +317,38 @@ class SelectDeviceActivity: Activity(),KeyEvent.Callback {
240317

241318

242319

243-
// val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
244-
// imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0)
320+
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
321+
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0)
322+
245323

246324

247325

326+
true
327+
}
328+
329+
R.id.check_modifier_state -> {
330+
331+
// item.isChecked = !item.isChecked
332+
// Log.i("bbbb","${item.isChecked}")
333+
// if(item.isChecked)
334+
// modifier_checked_state=1
335+
// else modifier_checked_state=0
336+
if(modifier_checked_state==1)
337+
{
338+
modifier_checked_state=0
339+
item.title="MODIFIER RELEASED"
340+
rKeyboardSender?.sendNullKeys()
341+
342+
}
343+
344+
else
345+
{
346+
modifier_checked_state=1
347+
item.title="MODIFIER PRESSED"
348+
349+
}
350+
351+
248352

249353
true
250354
}

0 commit comments

Comments
 (0)