From 42ab1eed88536022f7932b4dd2a961d19e0de5ff Mon Sep 17 00:00:00 2001 From: gialexpro Date: Fri, 21 Jul 2023 14:47:25 +0300 Subject: [PATCH] Added more layouts, components and fixed UDP --- .idea/.name | 2 +- android/GG/.idea/.name | 2 +- android/GG/app/build.gradle | 4 +- android/GG/app/src/main/AndroidManifest.xml | 17 +- .../java/cf/cafelutza/gg/MainActivity.java | 226 +++++------ .../main/java/cf/cafelutza/gg/MainScreen.java | 108 +++-- .../cf/cafelutza/gg/PresentationActivity.java | 73 ++++ .../java/cf/cafelutza/gg/TextboxActivity.java | 101 +++++ .../cf/cafelutza/gg/TrackpadActivity.java | 100 +++++ .../java/cf/cafelutza/gg/TrackpadView.java | 20 +- .../main/java/cf/cafelutza/gg/UDP_Client.java | 63 +-- .../main/res/layout/activity_mainscreen.xml | 53 +-- .../main/res/layout/activity_presentetion.xml | 109 +++++ .../src/main/res/layout/textbox_activity.xml | 130 ++++++ .../src/main/res/layout/trackpad_activity.xml | 184 +++++++++ android/GG/app/src/main/res/values/arrays.xml | 7 + android/GG/app/src/main/res/values/refs.xml | 2 + .../GG/app/src/main/res/values/strings.xml | 4 +- arduino/esp32-s3/gg/gg.ino | 375 +++++++++++++++++- 19 files changed, 1335 insertions(+), 245 deletions(-) create mode 100644 android/GG/app/src/main/java/cf/cafelutza/gg/PresentationActivity.java create mode 100644 android/GG/app/src/main/java/cf/cafelutza/gg/TextboxActivity.java create mode 100644 android/GG/app/src/main/java/cf/cafelutza/gg/TrackpadActivity.java create mode 100644 android/GG/app/src/main/res/layout/activity_presentetion.xml create mode 100644 android/GG/app/src/main/res/layout/textbox_activity.xml create mode 100644 android/GG/app/src/main/res/layout/trackpad_activity.xml create mode 100644 android/GG/app/src/main/res/values/refs.xml diff --git a/.idea/.name b/.idea/.name index 52e0c37..76a3d8a 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -UDPtest000 \ No newline at end of file +GG diff --git a/android/GG/.idea/.name b/android/GG/.idea/.name index 76a3d8a..52e0c37 100644 --- a/android/GG/.idea/.name +++ b/android/GG/.idea/.name @@ -1 +1 @@ -GG +UDPtest000 \ No newline at end of file diff --git a/android/GG/app/build.gradle b/android/GG/app/build.gradle index af41551..4156383 100644 --- a/android/GG/app/build.gradle +++ b/android/GG/app/build.gradle @@ -27,8 +27,8 @@ android { } } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_15 + targetCompatibility JavaVersion.VERSION_15 } buildFeatures { compose true diff --git a/android/GG/app/src/main/AndroidManifest.xml b/android/GG/app/src/main/AndroidManifest.xml index fcfc466..2f63f8d 100644 --- a/android/GG/app/src/main/AndroidManifest.xml +++ b/android/GG/app/src/main/AndroidManifest.xml @@ -3,6 +3,8 @@ xmlns:tools="http://schemas.android.com/tools"> + + + android:label="@string/title_activity_main"/> + + + - \ No newline at end of file diff --git a/android/GG/app/src/main/java/cf/cafelutza/gg/MainActivity.java b/android/GG/app/src/main/java/cf/cafelutza/gg/MainActivity.java index be55575..200aaaa 100644 --- a/android/GG/app/src/main/java/cf/cafelutza/gg/MainActivity.java +++ b/android/GG/app/src/main/java/cf/cafelutza/gg/MainActivity.java @@ -48,6 +48,9 @@ public class MainActivity extends AppCompatActivity { l2b=findViewById(R.id.l2b); r2b=findViewById(R.id.r2b); + + UDP_Client client = MainScreen.client; + //frameLayout=findViewById(R.id.framelayout); //frameLayout.addView(new TrackpadView(getBaseContext())); @@ -55,76 +58,65 @@ public class MainActivity extends AppCompatActivity { leftb.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:4|BUPD:1|;"; - break; + client.Send("GG:1|BTTN:4|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:4|BUPD:0|;"; + client.Send("GG:1|BTTN:4|BUPD:0|;"); + return true; + default: + return false; } - if(Client.Message!=null) { - Client.Send(); - return true; - } - return false; + } }); rightb.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:1|BUPD:1|;"; - break; + client.Send("GG:1|BTTN:1|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:1|BUPD:0|;"; + client.Send("GG:1|BTTN:1|BUPD:0|;"); + return true; + default: + return false; } - if(Client.Message!=null) { - Client.Send(); - return true; - } - return false; } }); upb.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:3|BUPD:1|;"; - break; + client.Send ("GG:1|BTTN:3|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:3|BUPD:0|;"; - } - if(Client.Message!=null) { - Client.Send(); - return true; + client.Send ("GG:1|BTTN:3|BUPD:0|;"); + return true; + default: + return false; } - return false; } }); downb.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:0|BUPD:1|;"; - break; + client.Send ("GG:1|BTTN:0|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:0|BUPD:0|;"; - } - if(Client.Message!=null) { - Client.Send(); - return true; + client.Send ( "GG:1|BTTN:0|BUPD:0|;"); + return true; + default: + return false; } - return false; } }); @@ -138,83 +130,67 @@ public class MainActivity extends AppCompatActivity { - - - - leftb2.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|DBTN:7|DBUD:1|;"; - break; + client.Send ( "GG:1|DBTN:7|DBUD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|DBTN:7|DBUD:0|;"; + client.Send ( "GG:1|DBTN:7|DBUD:0|;"); + return true; + default: + return false; } - if(Client.Message!=null) { - Client.Send(); - return true; - } - return false; } }); rightb2.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|DBTN:3|DBUD:1|;"; - break; + client.Send ("GG:1|DBTN:3|DBUD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|DBTN:3|DBUD:0|;"; - } - if(Client.Message!=null) { - Client.Send(); - return true; + client.Send ("GG:1|DBTN:3|DBUD:0|;"); + return true; + default: + return false; } - return false; } }); upb2.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|DBTN:1|DBUD:1|;"; - break; + client.Send ( "GG:1|DBTN:1|DBUD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|DBTN:1|DBUD:0|;"; - } - if(Client.Message!=null) { - Client.Send(); - return true; + client.Send ( "GG:1|DBTN:1|DBUD:0|;"); + return true; + default: + return false; } - return false; } }); downb2.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); - switch(event.getAction()) { + switch (event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|DBTN:5|DBUD:1|;"; - break; + client.Send("GG:1|DBTN:5|DBUD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|DBTN:5|DBUD:0|;"; - } - if(Client.Message!=null) { - Client.Send(); - return true; + client.Send("GG:1|DBTN:5|DBUD:0|;"); + return true; + default: + return false; } - return false; } }); @@ -240,76 +216,67 @@ public class MainActivity extends AppCompatActivity { l1b.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:6|BUPD:1|;"; - break; + client.Send ( "GG:1|BTTN:6|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:6|BUPD:0|;"; + client.Send ( "GG:1|BTTN:6|BUPD:0|;"); + return true; + default: + return false; } - if(Client.Message!=null) { - Client.Send(); - return true; - } - return false; } }); r1b.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); + switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:7|BUPD:1|;"; - break; + client.Send ("GG:1|BTTN:7|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:7|BUPD:0|;"; + client.Send ( "GG:1|BTTN:7|BUPD:0|;"); + return true; + default: + return false; } - if(Client.Message!=null) { - Client.Send(); - return true; - } - return false; } }); l2b.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); + switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:8|BUPD:1|;"; - break; + client.Send ("GG:1|BTTN:8|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:8|BUPD:0|;"; - } - if(Client.Message!=null) { - Client.Send(); - return true; + client.Send ( "GG:1|BTTN:8|BUPD:0|;"); + return true; + default: + return false; } - return false; } }); r2b.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); + switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:9|BUPD:1|;"; - break; + client.Send ("GG:1|BTTN:9|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:9|BUPD:0|;"; - } - if(Client.Message!=null) { - Client.Send(); - return true; + client.Send ( "GG:1|BTTN:9|BUPD:0|;"); + return true; + default: + return false; } - return false; } }); @@ -317,41 +284,36 @@ public class MainActivity extends AppCompatActivity { select.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); + switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:10|BUPD:1|;"; - break; + client.Send ( "GG:1|BTTN:10|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:10|BUPD:0|;"; - } - if(Client.Message!=null) { - Client.Send(); - return true; + client.Send ( "GG:1|BTTN:10|BUPD:0|;"); + return true; + default: + return false; } - return false; } }); start.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { - UDP_Client Client = new UDP_Client(); + switch(event.getAction()) { case MotionEvent.ACTION_DOWN: - Client.Message = "GG:1|BTTN:11|BUPD:1|;"; - break; + client.Send ("GG:1|BTTN:11|BUPD:1|;"); + return true; case MotionEvent.ACTION_UP: - Client.Message = "GG:1|BTTN:11|BUPD:0|;"; - } - if(Client.Message!=null) { - Client.Send(); - return true; + client.Send ("GG:1|BTTN:11|BUPD:0|;"); + return true; + default: + return false; } - return false; } }); - } } \ No newline at end of file diff --git a/android/GG/app/src/main/java/cf/cafelutza/gg/MainScreen.java b/android/GG/app/src/main/java/cf/cafelutza/gg/MainScreen.java index cb9ed2a..3299107 100644 --- a/android/GG/app/src/main/java/cf/cafelutza/gg/MainScreen.java +++ b/android/GG/app/src/main/java/cf/cafelutza/gg/MainScreen.java @@ -4,9 +4,10 @@ import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; -import android.view.MotionEvent; import android.view.View; +import android.widget.AdapterView; import android.widget.Button; +import android.widget.Spinner; import androidx.appcompat.app.AppCompatActivity; import androidx.preference.PreferenceManager; @@ -15,16 +16,21 @@ import androidx.preference.PreferenceManager; import java.util.Random; public class MainScreen extends AppCompatActivity { + public static UDP_Client client = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mainscreen); + client = new UDP_Client(); Button startbutt = findViewById(R.id.startbutt); Button settbutt = findViewById(R.id.settbutt); Button sendbutt = findViewById(R.id.sendbutt); + Spinner spinner = findViewById(R.id.spinner); + SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); + final String[] sel = {"Default"}; String ip = pref.getString("ip", "192.168.4.1"); String port = pref.getString("port", "9696"); @@ -34,55 +40,77 @@ public class MainScreen extends AppCompatActivity { int adminToken = Integer.parseInt(pref.getString("admintoken", "1234")); - - - startbutt.setOnTouchListener(new View.OnTouchListener() { + spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override - public boolean onTouch(View view, MotionEvent motionEvent) { - Intent switchActivityIntent = new Intent(MainScreen.this, MainActivity.class); - startActivity(switchActivityIntent); - return true; + public void onItemSelected(AdapterView adapterView, View view, int i, long l) { + sel[0] = spinner.getSelectedItem().toString(); } - + @Override + public void onNothingSelected(AdapterView adapterView) { + sel[0] ="Default"; + } }); - settbutt.setOnTouchListener(new View.OnTouchListener() { - @Override - public boolean onTouch(View view, MotionEvent motionEvent) { - Intent switchActivityIntent = new Intent(MainScreen.this, SettingsActivity.class); - startActivity(switchActivityIntent); - return true; + + startbutt.setOnTouchListener((view, motionEvent) -> { + Intent switchActivityIntent= new Intent(MainScreen.this, MainActivity.class); + switch (sel[0]) { + case "Presentation": + switchActivityIntent = new Intent(MainScreen.this, PresentationActivity.class); + break; + case "Textbox": + switchActivityIntent = new Intent(MainScreen.this, TextboxActivity.class); + break; + case "Trackpad": + switchActivityIntent = new Intent(MainScreen.this, TrackpadActivity.class); + break; + case "Default": + switchActivityIntent = new Intent(MainScreen.this, MainActivity.class); + break; + default: + switchActivityIntent = new Intent(MainScreen.this, MainActivity.class); + break; } + startActivity(switchActivityIntent); + return true; }); - sendbutt.setOnTouchListener(new View.OnTouchListener() { + settbutt.setOnTouchListener((view, motionEvent) -> { + Intent switchActivityIntent = new Intent(MainScreen.this, SettingsActivity.class); + startActivity(switchActivityIntent); + return true; + }); - @Override - public boolean onTouch(View view, MotionEvent motionEvent) { - UDP_Client client = new UDP_Client(); - client.Message = "GG:1|PREF:" + String.valueOf(adminToken) + "|LCIP:" + ip + "|;"; - client.Send(); - client.Message = "GG:1|PREF:" + String.valueOf(adminToken) + "|PORT:" + port + "|;"; - client.Send(); - client.Message = "GG:1|PREF:" + String.valueOf(adminToken) + "|HIDD:" + (isHidden?"1":"0") + "|;"; - client.Send(); - client.Message = "GG:1|PREF:" + String.valueOf(adminToken) + "|SSID:" + ssid + "|;"; - client.Send(); - client.Message = "GG:1|PREF:" + String.valueOf(adminToken) + "|PASS:" + pass + "|;"; - client.Send(); - - Random rnd = new Random(System.currentTimeMillis()); - int newtok = rnd.nextInt(100000); - client.Message = "GG:1|PREF:" + String.valueOf(adminToken) + "|ATOK:" + String.valueOf(newtok) + "|;"; - client.Send(); - pref.edit().putString("admintoken", String.valueOf(newtok)).apply(); - Log.d("TEST ", String.valueOf(newtok)); - - - return true; - } + sendbutt.setOnTouchListener((view, motionEvent) -> { + client.Send("GG:1|PREF:" + String.valueOf(adminToken) + "|LCIP:" + ip + "|;"); + + client.Send("GG:1|PREF:" + String.valueOf(adminToken) + "|PORT:" + port + "|;"); + + client.Send("GG:1|PREF:" + String.valueOf(adminToken) + "|HIDD:" + (isHidden?"1":"0") + "|;"); + + client.Send("GG:1|PREF:" + String.valueOf(adminToken) + "|SSID:" + ssid + "|;"); + + client.Send("GG:1|PREF:" + String.valueOf(adminToken) + "|PASS:" + pass + "|;"); + + + Random rnd = new Random(System.currentTimeMillis()); + int newtok = rnd.nextInt(100000); + client.Send("GG:1|PREF:" + String.valueOf(adminToken) + "|ATOK:" + String.valueOf(newtok) + "|;"); + + pref.edit().putString("admintoken", String.valueOf(newtok)).apply(); + Log.d("TEST ", String.valueOf(newtok)); + + + return true; }); } + + + @Override + protected void onDestroy() { + super.onDestroy(); + client.Close(); + } } diff --git a/android/GG/app/src/main/java/cf/cafelutza/gg/PresentationActivity.java b/android/GG/app/src/main/java/cf/cafelutza/gg/PresentationActivity.java new file mode 100644 index 0000000..cc0dc85 --- /dev/null +++ b/android/GG/app/src/main/java/cf/cafelutza/gg/PresentationActivity.java @@ -0,0 +1,73 @@ +package cf.cafelutza.gg; + +import static java.lang.Math.abs; + +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.os.Bundle; +import android.util.Log; +import android.widget.Button; +import android.widget.ToggleButton; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public class PresentationActivity extends AppCompatActivity { + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_presentetion); + + SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); + Sensor gyroscope=sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); + sensorManager.registerListener(new SensorEventListener() { + @Override + public void onSensorChanged(SensorEvent sensorEvent) { + if(sensorEvent.sensor.getType()==Sensor.TYPE_GYROSCOPE) + { + + ToggleButton toggleGyro=findViewById(R.id.toggleGyro); + int gyroscopeX= (int) (sensorEvent.values[2]*-10); + int gyroscopeY= (int) (sensorEvent.values[0]*-10); + + if (toggleGyro.isChecked()) { + if(abs(gyroscopeX)>0||abs(gyroscopeY)>0) { + MainScreen.client.Send("GG:1|MOUS:0|XYMS:"+gyroscopeX+"|"+gyroscopeY+"|;"); + Log.d("GYROX:", String.valueOf(gyroscopeX)); + } + + } + } + } + + @Override + public void onAccuracyChanged(Sensor sensor, int i) { + + } + }, gyroscope, SensorManager.SENSOR_DELAY_FASTEST); + + Button bpen=findViewById(R.id.bpen); + Button berase=findViewById(R.id.berase); + Button binapoi=findViewById(R.id.binapoi); + Button binainte=findViewById(R.id.binainte); + + ToggleButton toggleGyro=findViewById(R.id.toggleGyro); + + UDP_Client client = MainScreen.client; + + bpen.setOnClickListener(view -> { + client.Send("GG:1|KYBD:0|KBKY:b|;"); + }); + berase.setOnClickListener(view -> { + client.Send("GG:1|KYBD:0|KBKY:e|;"); + }); + binapoi.setOnClickListener(view -> { + client.Send("GG:1|HTKY:0|HBKS:1|;"); + }); + binainte.setOnClickListener(view -> { + client.Send("GG:1|HTKY:0|HNTR:1|;"); + }); + } +} diff --git a/android/GG/app/src/main/java/cf/cafelutza/gg/TextboxActivity.java b/android/GG/app/src/main/java/cf/cafelutza/gg/TextboxActivity.java new file mode 100644 index 0000000..968a5f7 --- /dev/null +++ b/android/GG/app/src/main/java/cf/cafelutza/gg/TextboxActivity.java @@ -0,0 +1,101 @@ +package cf.cafelutza.gg; + +import android.os.Bundle; +import android.text.InputFilter; +import android.text.SpannableStringBuilder; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ToggleButton; + +import androidx.appcompat.app.AppCompatActivity; + +public class TextboxActivity extends AppCompatActivity { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.textbox_activity); + EditText text=findViewById(R.id.editTextText); + ToggleButton lctrl=findViewById(R.id.lctrl); + ToggleButton lshift=findViewById(R.id.lshift); + ToggleButton lalt=findViewById(R.id.lalt); + ToggleButton lgui=findViewById(R.id.lgui); + ToggleButton rctrl=findViewById(R.id.rctrl); + ToggleButton rshift=findViewById(R.id.rshift); + ToggleButton ralt=findViewById(R.id.ralt); + ToggleButton rgui=findViewById(R.id.rgui); + Button send=findViewById(R.id.send); + + UDP_Client client = MainScreen.client; + text.setSingleLine(true); + text.setFilters(new InputFilter[]{ + (source, start, end, spanned, i2, i3) -> { + if (source instanceof SpannableStringBuilder) { + SpannableStringBuilder sourceAsSpannableBuilder = (SpannableStringBuilder)source; + for (int i = end - 1; i >= start; i--) { + char currentChar = source.charAt(i); + if (!(currentChar>='!'&¤tChar<='~')) { + sourceAsSpannableBuilder.delete(i, i+1); + } + } + return source; + } else { + StringBuilder filteredStringBuilder = new StringBuilder(); + for (int i = start; i < end; i++) { + char currentChar = source.charAt(i); + if (!(currentChar>='!'&¤tChar<='~')) { + filteredStringBuilder.append(currentChar); + } + } + return filteredStringBuilder.toString(); + } + } + }); +/* + lctrl.setOnClickListener(view -> lctrl.toggle() ); + lshift.setOnClickListener(view-> lshift.toggle()); + lalt.setOnClickListener(view -> lalt.toggle() ); + lgui.setOnClickListener(view -> lgui.toggle() ); + + rctrl.setOnClickListener(view -> rctrl.toggle() ); + rshift.setOnClickListener(view-> rshift.toggle()); + ralt.setOnClickListener(view -> ralt.toggle() ); + rgui.setOnClickListener(view -> rgui.toggle() );*/ + + send.setOnClickListener(view -> { + boolean holdlctrl=lctrl.isChecked(); + boolean holdlshift=lshift.isChecked(); + boolean holdlalt=lalt.isChecked(); + boolean holdlgui=lgui.isChecked(); + boolean holdrctrl=rctrl.isChecked(); + boolean holdrshift=rshift.isChecked(); + boolean holdralt=ralt.isChecked(); + boolean holdrgui=rgui.isChecked(); + int mods=0; + int bits=1; + + if(holdlctrl) { mods|=bits; } bits<<=1; + if(holdlshift) { mods|=bits; } bits<<=1; + if(holdlalt) { mods|=bits; } bits<<=1; + if(holdlgui) { mods|=bits; } bits<<=1; + if(holdrctrl) { mods|=bits; } bits<<=1; + if(holdrshift) { mods|=bits; } bits<<=1; + if(holdralt) { mods|=bits; } bits<<=1; + if(holdrgui) { mods|=bits; } bits<<=1; + + client.Send("GG:1|KYBD:0|KBMD:"+mods+"|;"); + + + String tosend=text.getText().toString(); + client.Send( "GG:1|KYBD:"+tosend.length()+"|KBKS:"+tosend+"|;"); + +// for (int i=0;i { + client.Send("GG:1|MBTN:4|MBUD:1|;"); + + client.Send("GG:1|MBTN:4|MBUD:0|;"); + + }); + + b10.setOnClickListener(view -> { + client.Send("GG:1|MBTN:5|MBUD:1|;"); + + client.Send("GG:1|MBTN:5|MBUD:0|;"); + + }); + + + b01.setOnClickListener(view -> { + client.Send("GG:1|MBTN:2|MBUD:1|;"); + + client.Send("GG:1|MBTN:2|MBUD:0|;"); + + }); + + b02.setOnClickListener(view -> { + client.Send("GG:1|HTKY:0|HNTR:1|;"); + + }); + + b03.setOnClickListener(view -> { + client.Send("GG:1|HTKY:0|HSTB:1|;"); + + }); + + b13.setOnClickListener(view -> { + client.Send("GG:1|HTKY:0|HTAB:1|;"); + + }); + + b11.setOnClickListener(view -> { + client.Send("GG:1|MBTN:6|MBUD:1|;"); + + client.Send("GG:1|MBTN:6|MBUD:0|;"); + + }); + + b12.setOnClickListener(view -> { + client.Send("GG:1|MBTN:7|MBUD:1|;"); + + client.Send("GG:1|MBTN:7|MBUD:0|;"); + + }); + + b20.setOnClickListener(view -> { + client.Send("GG:1|HTKY:0|HCMI:1|;"); + + }); + + b21.setOnClickListener(view -> { + client.Send("GG:1|HTKY:0|HCPL:1|;"); + + }); + + b22.setOnClickListener(view -> { + client.Send("GG:1|HTKY:0|HCTW:1|;"); + + }); + + b23.setOnClickListener(view -> { + client.Send("GG:1|HTKY:0|HCTT:1|;"); + + }); + } +} diff --git a/android/GG/app/src/main/java/cf/cafelutza/gg/TrackpadView.java b/android/GG/app/src/main/java/cf/cafelutza/gg/TrackpadView.java index 506f8ea..07912de 100644 --- a/android/GG/app/src/main/java/cf/cafelutza/gg/TrackpadView.java +++ b/android/GG/app/src/main/java/cf/cafelutza/gg/TrackpadView.java @@ -7,6 +7,7 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PointF; +import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; @@ -27,8 +28,8 @@ public class TrackpadView extends View { private float reY = 0; - public TrackpadView(Context c) { - super(c); + public TrackpadView(Context c, AttributeSet attrs) { + super(c,attrs); mPaint = new Paint(); mPaint.setAntiAlias(true); @@ -102,11 +103,14 @@ public class TrackpadView extends View { mY = y; - UDP_Client Client = new UDP_Client(); int frx= (int) rx; int fry= (int) ry; - Client.Message = "MRX"+frx+"Y"+fry; - Client.Send(); + +// MainScreen.client.Send("GG:1|MOUS:0|XMUS:"+frx+"|;"); +// +// MainScreen.client.Send("GG:1|MOUS:0|YMUS:"+fry+"|;"); + MainScreen.client.Send("GG:1|MOUS:0|XYMS:"+frx+"|"+fry+"|;"); + } @@ -155,10 +159,10 @@ public class TrackpadView extends View { int yDiff = (int) Math.abs(curr.y - start.y); if (xDiff < CLICK && yDiff < CLICK) { - UDP_Client Client = new UDP_Client(); - Client.Message = "CL"; - Client.Send(); + MainScreen.client.Send("GG:1|MBTN:1|MBUD:1|;"); + MainScreen.client.Send("GG:1|MBTN:1|MBUD:0|;"); + } touch_up(); diff --git a/android/GG/app/src/main/java/cf/cafelutza/gg/UDP_Client.java b/android/GG/app/src/main/java/cf/cafelutza/gg/UDP_Client.java index bddeec1..aec481e 100644 --- a/android/GG/app/src/main/java/cf/cafelutza/gg/UDP_Client.java +++ b/android/GG/app/src/main/java/cf/cafelutza/gg/UDP_Client.java @@ -2,6 +2,7 @@ package cf.cafelutza.gg; import android.annotation.SuppressLint; import android.os.AsyncTask; +import android.util.Log; import java.net.DatagramPacket; import java.net.DatagramSocket; @@ -13,35 +14,49 @@ public class UDP_Client { private AsyncTask async_cient; public String Message; + DatagramSocket ds = null; + public UDP_Client() { + try + { + ds = new DatagramSocket(9696); + + Log.d("Port: ", String.valueOf(9696)); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + public void Close() { + if (ds != null) + { + Log.d("Close: ", "ds"); + ds.close(); + } + } + @SuppressLint("NewApi") - public void Send() + public void Send(String message) { new Thread(() -> { - DatagramSocket ds = null; - try - { - byte[] ipAddr = new byte[]{ (byte) 192, (byte) 168,(byte)4, (byte) 1}; - InetAddress addr = InetAddress.getByAddress(ipAddr); - ds = new DatagramSocket(9696); - DatagramPacket dp; - dp = new DatagramPacket(Message.getBytes(), Message.getBytes().length, addr, 9696); - ds.setBroadcast(true); - ds.send(dp); - } - catch (Exception e) - { - e.printStackTrace(); - } - finally - { - if (ds != null) - { - ds.close(); - } - } - }).start(); + Log.d("Send: ", message); + try { + byte[] ipAddr = new byte[]{ (byte) 192, (byte) 168,(byte)4, (byte) 1}; + InetAddress addr = InetAddress.getByAddress(ipAddr); + DatagramPacket dp; + dp = new DatagramPacket(message.getBytes(), message.getBytes().length, addr, 9696); + ds.setBroadcast(true); + ds.send(dp); + } + catch (Exception e) + { + e.printStackTrace(); + } + }).start(); + /* async_cient = new AsyncTask() diff --git a/android/GG/app/src/main/res/layout/activity_mainscreen.xml b/android/GG/app/src/main/res/layout/activity_mainscreen.xml index d549ffa..52cd419 100644 --- a/android/GG/app/src/main/res/layout/activity_mainscreen.xml +++ b/android/GG/app/src/main/res/layout/activity_mainscreen.xml @@ -12,54 +12,45 @@ android:layout_height="wrap_content" android:text="Start" app:layout_constraintBottom_toTopOf="@+id/guideline19" - app:layout_constraintEnd_toStartOf="@+id/guideline18" - app:layout_constraintStart_toStartOf="@+id/guideline15" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" />