diff --git a/MobileApp/.idea/misc.xml b/MobileApp/.idea/misc.xml index 675626e..7b77ba6 100644 --- a/MobileApp/.idea/misc.xml +++ b/MobileApp/.idea/misc.xml @@ -25,7 +25,7 @@ - + diff --git a/MobileApp/app/src/main/java/com/example/lfrmobileapp/MainActivity.java b/MobileApp/app/src/main/java/com/example/lfrmobileapp/MainActivity.java index 3db5872..6f60d74 100644 --- a/MobileApp/app/src/main/java/com/example/lfrmobileapp/MainActivity.java +++ b/MobileApp/app/src/main/java/com/example/lfrmobileapp/MainActivity.java @@ -29,7 +29,7 @@ public class MainActivity extends AppCompatActivity { private ActivityMainBinding binding; private ExtendedSocket socket; private DataTransferAsyncTask dataTransferAsyncTask; - Boolean connected = false; + public Boolean connected = false; @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/dashboard/DashboardFragment.java b/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/dashboard/DashboardFragment.java index d3a696d..b642cb3 100644 --- a/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/dashboard/DashboardFragment.java +++ b/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/dashboard/DashboardFragment.java @@ -19,6 +19,7 @@ import androidx.lifecycle.ViewModelProvider; import com.example.lfrmobileapp.Communication; import com.example.lfrmobileapp.DataTransferAsyncTask; +import com.example.lfrmobileapp.MainActivity; import com.example.lfrmobileapp.R; import com.example.lfrmobileapp.databinding.FragmentAutomatikBinding; @@ -28,14 +29,21 @@ import java.util.Arrays; import kotlin.collections.UArraySortingKt; +// Autonomous Mode public class DashboardFragment extends Fragment { Communication com = new Communication(); private FragmentAutomatikBinding binding; + MainActivity mainActivity; + //Keys for Shared Preferences String listKey = "listkey"; - DataTransferAsyncTask dataTransferAsyncTask; + @Override + public void onAttach(Context context) { + super.onAttach(context); + mainActivity = (MainActivity) context; + } public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -59,10 +67,12 @@ public class DashboardFragment extends Fragment { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if(isChecked){ - dataTransferAsyncTask.writeTelegram(com.telegram(true, autoList)); - }else{ - dataTransferAsyncTask.writeTelegram(com.telegram(false, autoList)); + if (mainActivity.connected){ + if(isChecked){ + mainActivity.sendTelegram(com.telegram(true, autoList)); + }else{ + mainActivity.sendTelegram(com.telegram(false, autoList)); + } } } }); @@ -149,7 +159,6 @@ public class DashboardFragment extends Fragment { @Override public void onDestroyView() { super.onDestroyView(); - dataTransferAsyncTask.cancel(false); binding = null; } diff --git a/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/home/HomeFragment.java b/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/home/HomeFragment.java index c9a6f01..e81f938 100644 --- a/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/home/HomeFragment.java +++ b/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/home/HomeFragment.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -74,29 +75,41 @@ public class HomeFragment extends Fragment { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View v, MotionEvent event) { - - if(event.getAction() == MotionEvent.ACTION_UP){ + boolean send = false; + if (System.currentTimeMillis() - lastOnMoveCall > 250){ + send = true; + lastOnMoveCall = System.currentTimeMillis(); + } + if (send && mainActivity.connected) { + if (event.getAction() == MotionEvent.ACTION_UP) { binding.rotateLeft.performClick(); mainActivity.sendTelegram(com.telegram(new int[]{0, 0, 0, 0}, 0)); return true; - }else{ + } else { mainActivity.sendTelegram(com.telegram(new int[]{-1, 1, -1, 1}, 100)); } - return false; } - }); + return false; + } + }); binding.rotateRight.setOnTouchListener(new View.OnTouchListener(){ @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View v, MotionEvent event) { - - if(event.getAction() == MotionEvent.ACTION_UP){ - binding.rotateRight.performClick(); - mainActivity.sendTelegram(com.telegram(new int[]{0, 0, 0, 0}, 0)); - return true; - }else{ - mainActivity.sendTelegram(com.telegram(new int[]{1, -1, 1, -1}, 100)); + boolean send = false; + if (System.currentTimeMillis() - lastOnMoveCall > 250){ + send = true; + lastOnMoveCall = System.currentTimeMillis(); + } + if (send && mainActivity.connected){ + if(event.getAction() == MotionEvent.ACTION_UP){ + binding.rotateRight.performClick(); + mainActivity.sendTelegram(com.telegram(new int[]{0, 0, 0, 0}, 0)); + return true; + }else{ + mainActivity.sendTelegram(com.telegram(new int[]{1, -1, 1, -1}, 100)); + } } return false; } @@ -145,9 +158,10 @@ public class HomeFragment extends Fragment { joystick.setBackgroundResource(R.mipmap.blank); telegram = com.telegram(new int[]{0, 0, 0, 0}, strength); } - if (send) + if (send && mainActivity.connected) { mainActivity.sendTelegram(telegram); + // Log.v("TAG", telegram + "\n"); } } }); diff --git a/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/notifications/NotificationsFragment.java b/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/notifications/NotificationsFragment.java index 1efa499..9ddd199 100644 --- a/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/notifications/NotificationsFragment.java +++ b/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/notifications/NotificationsFragment.java @@ -59,8 +59,8 @@ public class NotificationsFragment extends Fragment { String connectionFailed = "Verbindung fehlgeschlagen."; String connectionSuccessful = "Verbindung erfolgreich."; - String ipAddress = "192.168.0.1"; - int port = 8000; + String ipAddress = "192.168.4.1"; + int port = 8080; int duration = Toast.LENGTH_LONG; DataTransferAsyncTask dataTransferAsyncTask; @@ -100,8 +100,12 @@ public class NotificationsFragment extends Fragment { final Button button = binding.connect; button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { - ipAddress = String.valueOf(binding.ipAdress.getText()); - port = Integer.parseInt(String.valueOf(binding.port.getText())); + try { + ipAddress = String.valueOf(binding.ipAdress.getText()); + port = Integer.parseInt(String.valueOf(binding.port.getText())); + } catch (Exception e){ + System.err.println("Parse Exception: " + e.getMessage()); + } connected = mainActivity.connectToWifi(ipAddress, port);