Gruppe 1
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MainActivity.java 8.8KB

11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. package com.example.ueberwachungssystem;
  2. import androidx.camera.core.ExperimentalGetImage;
  3. import androidx.fragment.app.Fragment;
  4. import androidx.fragment.app.FragmentTransaction;
  5. import androidx.annotation.NonNull;
  6. import androidx.appcompat.app.AppCompatActivity;
  7. import android.annotation.SuppressLint;
  8. import android.content.ComponentName;
  9. import android.content.Context;
  10. import android.content.Intent;
  11. import android.content.ServiceConnection;
  12. import android.os.Bundle;
  13. import android.os.IBinder;
  14. import android.util.Log;
  15. import android.view.Menu;
  16. import android.view.MenuItem;
  17. import android.view.View;
  18. import android.widget.Button;
  19. import android.widget.ImageView;
  20. import android.widget.TextView;
  21. import android.widget.Toast;
  22. import android.widget.ToggleButton;
  23. import com.example.ueberwachungssystem.Fragments.Fragment1;
  24. import com.example.ueberwachungssystem.Detection.DetectorService;
  25. import com.example.ueberwachungssystem.Fragments.Fragment3;
  26. import com.example.ueberwachungssystem.Fragments.VideoListFragment;
  27. import java.util.OptionalInt;
  28. @ExperimentalGetImage
  29. public class MainActivity extends AppCompatActivity implements Fragment3.OnImageViewReadyListener{
  30. //StringBuffer
  31. private StringBuffer messageBuffer = new StringBuffer();
  32. //Fragmente
  33. private Fragment aktuellesFragment;
  34. private Fragment fragment1_;
  35. private Fragment fragment2_;
  36. private Fragment fragment3_;
  37. private Fragment1 fragment1;
  38. private Fragment3 fragment3;
  39. private ImageView fragmentImage;
  40. private ImageView fragmentImage2;
  41. private VideoListFragment videoListFragment = new VideoListFragment();
  42. private DetectorService detectorService = new DetectorService();
  43. int num = 0;
  44. //Textviews
  45. private TextView Auswahl;
  46. private TextView AoderA;
  47. private String auswahltext = "Wahl des Detektionsmodus";
  48. private String auswahlAoderA = "Wahl von Alarmmeldungen oder Auswahl von Alarmaufzeichnungen";
  49. //Buttons
  50. private ToggleButton toggleKamera;
  51. private ToggleButton toggleAudio;
  52. private ToggleButton toggleBewegung;
  53. @Override
  54. protected void onCreate(Bundle savedInstanceState) {
  55. super.onCreate(savedInstanceState);
  56. setTitle("Supervision");
  57. setContentView(R.layout.activity_main);
  58. Auswahl = findViewById(R.id.textAuswahl);
  59. Auswahl.setText(auswahltext);
  60. AoderA = findViewById(R.id.textAoderA);
  61. AoderA.setText(auswahlAoderA);
  62. toggleKamera = findViewById(R.id.toggleKamera);
  63. toggleAudio = findViewById(R.id.toggleAudio);
  64. toggleBewegung = findViewById(R.id.toggleBewegung);
  65. }
  66. @Override
  67. protected void onResume() {
  68. super.onResume();
  69. PermissionHandler permissionHandler = new PermissionHandler(this);
  70. //permissionHandler.getPermissions();
  71. if (permissionHandler.hasPermissions()) {
  72. Intent serviceIntent = new Intent(this, DetectorService.class);
  73. bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE);
  74. startService(serviceIntent);
  75. toggleKamera.setOnClickListener(new View.OnClickListener() {
  76. @Override
  77. public void onClick(View v) {
  78. if (toggleKamera.isChecked()) {
  79. if(detectorService != null) {
  80. detectorService.videoDetector.startDetection();
  81. }
  82. } else {
  83. if(detectorService != null) {
  84. detectorService.videoDetector.stopDetection();
  85. }
  86. }
  87. }
  88. });
  89. toggleAudio.setOnClickListener(new View.OnClickListener() {
  90. @Override
  91. public void onClick(View v) {
  92. if (toggleAudio.isChecked()) {
  93. if(detectorService != null) {
  94. detectorService.audioDetector.startDetection();
  95. }
  96. } else {
  97. if(detectorService != null) {
  98. detectorService.audioDetector.stopDetection();
  99. }
  100. }
  101. }
  102. });
  103. toggleBewegung.setOnClickListener(new View.OnClickListener() {
  104. @Override
  105. public void onClick(View v) {
  106. if (toggleBewegung.isChecked()) {
  107. if(detectorService != null) {
  108. detectorService.motionDetector.startDetection();
  109. }
  110. } else {
  111. if(detectorService != null) {
  112. detectorService.motionDetector.stopDetection();
  113. }
  114. }
  115. }
  116. });
  117. }else{
  118. Toast.makeText(this,"Bitte Rechte geben", Toast.LENGTH_SHORT).show();
  119. }
  120. }
  121. public boolean onCreateOptionsMenu(Menu menu) {
  122. getMenuInflater().inflate(R.menu.options_menu, menu);
  123. return true;
  124. }
  125. public boolean onOptionsItemSelected(MenuItem item) {
  126. Toast.makeText(this, "Selected Item: " + item.getTitle(), Toast.LENGTH_SHORT).show();
  127. PopUpClass popUpClass;
  128. switch (item.getItemId()) {
  129. case R.id.Rechteverwaltung:
  130. popUpClass = new PopUpClass(MainActivity.this);
  131. popUpClass.showPopupWindow(toggleAudio);
  132. popUpClass.RechtePrüfen();
  133. return true;
  134. case R.id.Sensoren:
  135. popUpClass = new PopUpClass(MainActivity.this);
  136. popUpClass.showPopupWindow(toggleAudio);
  137. popUpClass.Sensoren();
  138. return true;
  139. case R.id.Impressum:
  140. popUpClass = new PopUpClass(MainActivity.this);
  141. popUpClass.showPopupWindow(toggleAudio);
  142. popUpClass.Impressum();
  143. return true;
  144. case R.id.Detection:
  145. popUpClass = new PopUpClass(MainActivity.this);
  146. popUpClass.showPopupWindow(toggleAudio);
  147. popUpClass.DetectionTotal(num);
  148. return true;
  149. default:
  150. return super.onOptionsItemSelected(item);
  151. }
  152. }
  153. private ServiceConnection serviceConnection = new ServiceConnection() {
  154. @Override
  155. public void onServiceConnected(ComponentName name, IBinder service) {
  156. DetectorService.ServiceBinder binder = (DetectorService.ServiceBinder) service;
  157. detectorService = binder.getBoundService();
  158. detectorService.setOnDetectionListener(new DetectorService.OnDetectionListener() {
  159. @Override
  160. public void onDetection(@NonNull StringBuffer stringBuffer) {
  161. Log.d("onDetection", stringBuffer.toString()); //Für oli hier Textview einbauen
  162. num = stringBuffer.toString().split("\n").length;
  163. messageBuffer = stringBuffer;
  164. if ((aktuellesFragment == fragment1_) && (aktuellesFragment != null)) {
  165. Log.d("Fragment", aktuellesFragment.toString() + " " + fragment1_.toString());
  166. fragment1_ = zeigeFragment(fragment1.erstellen(messageBuffer.toString()));
  167. }
  168. }
  169. });
  170. }
  171. @Override
  172. public void onServiceDisconnected(ComponentName name) {
  173. }
  174. };
  175. public void onClickZeigeFragment1(View view) {
  176. Button button = (Button) view;
  177. fragment1_ = zeigeFragment(fragment1.erstellen(messageBuffer.toString()));
  178. }
  179. public void onClickZeigeFragment2(View view) {
  180. Button button = (Button) view;
  181. //zeigeFragment(fragment2.erstellen("Hier stehen dann die Videos"));
  182. fragment2_ = zeigeFragment(videoListFragment);
  183. }
  184. public void onClickZeigeFragment3(View view) {
  185. Button button = (Button) view;
  186. fragment3_ = zeigeFragment(fragment3.erstellen(view));
  187. }
  188. public void onImageViewReady(ImageView imageView, ImageView imageView2) {
  189. fragmentImage = imageView;
  190. fragmentImage2 = imageView2;
  191. detectorService.videoDetector.debugProcessing(fragmentImage, fragmentImage2); //inputImageView
  192. }
  193. public void onClickEntferneFragment(View view) {
  194. entferneFragment();
  195. }
  196. private Fragment zeigeFragment(Fragment fragment) {
  197. FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
  198. ft.replace(R.id.frame, fragment);
  199. ft.commit();
  200. aktuellesFragment = fragment;
  201. return aktuellesFragment;
  202. }
  203. private void entferneFragment() {
  204. if (aktuellesFragment != null) {
  205. FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
  206. ft.remove(aktuellesFragment);
  207. ft.commit();
  208. aktuellesFragment = null ;
  209. }
  210. }
  211. }