Advertisement
Guest User

Untitled

a guest
May 26th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. package express.copter.cleverrc
  2.  
  3. import android.content.Context
  4. import android.os.Build
  5. import android.support.v7.app.AppCompatActivity
  6. import android.os.Bundle
  7. import android.view.View
  8. import android.view.WindowManager
  9. import android.webkit.JavascriptInterface
  10. import kotlinx.android.synthetic.main.activity_main.*
  11. import org.json.JSONObject
  12. import java.net.DatagramPacket
  13. import java.net.DatagramSocket
  14. import java.net.InetAddress
  15. import java.nio.ByteBuffer
  16.  
  17. fun pack(x: Short, y: Short, z: Short, r: Short): ByteArray {
  18. val pump_on_buf: ByteBuffer = ByteBuffer.allocate(8)
  19. pump_on_buf.putShort(r)
  20. pump_on_buf.putShort(z)
  21. pump_on_buf.putShort(y)
  22. pump_on_buf.putShort(x)
  23.  
  24. return pump_on_buf.array().reversedArray()
  25. }
  26.  
  27. fun send(host: String, port: Int, data: ByteArray, senderPort: Int = 0): Boolean {
  28. var ret = false
  29. var socket: DatagramSocket? = null
  30. try {
  31. socket = DatagramSocket(senderPort)
  32. val address = InetAddress.getByName(host)
  33. val packet = DatagramPacket(data, data.size, address, port)
  34. socket.send(packet)
  35. ret = true
  36. } catch (e: Exception) {
  37. e.printStackTrace()
  38. } finally {
  39. socket?.close()
  40. }
  41. return ret
  42. }
  43.  
  44. class MainActivity : AppCompatActivity() {
  45.  
  46. override fun onCreate(savedInstanceState: Bundle?) {
  47. super.onCreate(savedInstanceState)
  48. setContentView(R.layout.activity_main)
  49. fullScreenCall()
  50. main_web.loadUrl("file:///android_asset/index.html")
  51.  
  52. main_web.settings.apply {
  53. domStorageEnabled = true
  54. javaScriptEnabled = true
  55. loadWithOverviewMode = true
  56. useWideViewPort = true
  57. setSupportZoom(false)
  58. }
  59.  
  60. main_web.addJavascriptInterface(WebAppInterface(this), "appInterface")
  61. }
  62.  
  63. private fun fullScreenCall() {
  64. window.setFlags(
  65. WindowManager.LayoutParams.FLAG_FULLSCREEN,
  66. WindowManager.LayoutParams.FLAG_FULLSCREEN
  67. )
  68. if (Build.VERSION.SDK_INT < 19) {
  69. val v = this.window.decorView
  70. v.systemUiVisibility = View.GONE
  71. } else {
  72. //for higher api versions.
  73. val decorView = window.decorView
  74. val uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
  75. decorView.systemUiVisibility = uiOptions
  76. }
  77. }
  78. }
  79.  
  80. class WebAppInterface(c: Context) {
  81. @JavascriptInterface
  82. public fun postMessage(message: String) {
  83. val data = JSONObject(message)
  84. send("255.255.255.255", 35602, pack(data.getInt("x").toShort(), data.getInt("y").toShort(), data.getInt("z").toShort(), dax))
  85. }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement