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 9.2KB

1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
11 months ago
1 year 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
1 year ago
1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package com.example.greenwatch;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import androidx.lifecycle.Observer;
  4. import androidx.lifecycle.ViewModelProvider;
  5. import androidx.recyclerview.widget.LinearLayoutManager;
  6. import androidx.recyclerview.widget.RecyclerView;
  7. import android.app.Activity;
  8. import android.content.Context;
  9. import android.content.Intent;
  10. import android.os.Bundle;
  11. import android.view.SurfaceView;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.TextView;
  15. import android.widget.Toast;
  16. import com.example.greenwatch.adapters.AlarmHistoryListAdapter;
  17. import com.example.greenwatch.adapters.DeviceListAdapter;
  18. import com.example.greenwatch.models.Device;
  19. import com.example.greenwatch.viewmodels.MainActivityViewModel;
  20. import java.util.List;
  21. public class MainActivity extends AppCompatActivity {
  22. private Button audiodetectionButton;
  23. private Button videodetectionButton;
  24. private Button accelerometerButton;
  25. private Button audiodetectionAndAccelerometerButton;
  26. private Button videodetectionAndAccelerometerButton;
  27. private TextView tvMainActivityDeviceListRecyclerView;
  28. private TextView tvMainActivityAlarmHistoryListRecyclerView;
  29. private SurfaceView surfaceView;
  30. private MainActivityViewModel mMainActivityViewModel;
  31. private Permission permission = new Permission();
  32. private Activity activity = new Activity();
  33. private Context context;
  34. @Override
  35. protected void onCreate(Bundle savedInstanceState) {
  36. super.onCreate(savedInstanceState);
  37. setContentView(R.layout.activity_main);
  38. activity = MainActivity.this;
  39. context = MainActivity.this;
  40. surfaceView = (SurfaceView) findViewById(R.id.surfaceViewMainActivity);
  41. tvMainActivityDeviceListRecyclerView = (TextView) findViewById(R.id.tvMainActivityDeviceListRecyclerView);
  42. tvMainActivityAlarmHistoryListRecyclerView = (TextView) findViewById(R.id.tvMainActivityAlarmHistoryListRecyclerView);
  43. audiodetectionButton = (Button) findViewById(R.id.audiodetectionButton);
  44. videodetectionButton = (Button) findViewById(R.id.videodetectionButton);
  45. accelerometerButton = (Button) findViewById(R.id.accelerometerButton);
  46. audiodetectionAndAccelerometerButton = (Button) findViewById(R.id.audiodetectionAndAccelerometerButton);
  47. videodetectionAndAccelerometerButton = (Button) findViewById(R.id.videodetectionAndAccelerometerButton);
  48. RecyclerView deviceListRecyclerView = findViewById(R.id.deviceListRecyclerView);
  49. deviceListRecyclerView.setLayoutManager(new LinearLayoutManager(this));
  50. deviceListRecyclerView.setHasFixedSize(true);
  51. final DeviceListAdapter deviceListAdapter = new DeviceListAdapter();
  52. deviceListRecyclerView.setAdapter(deviceListAdapter);
  53. RecyclerView alarmHistoryListRecyclerView = findViewById(R.id.alarmHistoryListRecyclerView);
  54. alarmHistoryListRecyclerView.setLayoutManager(new LinearLayoutManager(this));
  55. alarmHistoryListRecyclerView.setHasFixedSize(true);
  56. final AlarmHistoryListAdapter alarmHistoryListAdapter = new AlarmHistoryListAdapter();
  57. alarmHistoryListRecyclerView.setAdapter(alarmHistoryListAdapter);
  58. permission.startRechtePruefen(this, this);
  59. mMainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
  60. mMainActivityViewModel.init(surfaceView.getHolder());
  61. mMainActivityViewModel.getConnectedDeviceList().observe(this, new Observer<List<Device>>() {
  62. @Override
  63. public void onChanged(List<Device> devices) {
  64. deviceListAdapter.setDevices(devices);
  65. }
  66. });
  67. mMainActivityViewModel.getAlarmHistoryList().observe(this, new Observer<List<Device>>() {
  68. @Override
  69. public void onChanged(List<Device> devices) {
  70. alarmHistoryListAdapter.setAlarmHistoryList(devices);
  71. }
  72. });
  73. mMainActivityViewModel.getStartAlarmRecording().observe(this, new Observer<Boolean>() {
  74. @Override
  75. public void onChanged(Boolean aBoolean) {
  76. if (aBoolean) {
  77. if(permission.alarmRechtePruefen(context, activity)){
  78. Toast.makeText(MainActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
  79. mMainActivityViewModel.startAlarmRecording();
  80. //todo AlarmHandling einfügen
  81. } else {
  82. permission.alarmRechteAnfordern(activity);
  83. if(permission.alarmRechtePruefen(context, activity)){
  84. Toast.makeText(MainActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
  85. mMainActivityViewModel.startAlarmRecording();
  86. //todo Alarmhandling einfügen
  87. } else {
  88. Toast.makeText(MainActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
  89. mMainActivityViewModel.stopAlarmRecording(MainActivity.this);
  90. }
  91. }
  92. }
  93. else {
  94. Toast.makeText(MainActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
  95. }
  96. }
  97. });
  98. audiodetectionButton.setOnClickListener(new View.OnClickListener() {
  99. @Override
  100. public void onClick(View v) {
  101. if (permission.microRechtePruefen(context, activity)) {
  102. openAudiodetectionActivity();
  103. }
  104. else {
  105. permission.microRechteAnfordern(activity);
  106. }
  107. }
  108. });
  109. videodetectionButton.setOnClickListener(new View.OnClickListener() {
  110. @Override
  111. public void onClick(View v) {
  112. if (permission.kameraRechtePruefen(context, activity)) {
  113. openVideodetectionActivity();
  114. }
  115. else {
  116. permission.kameraRechteAnfordern(activity);
  117. }
  118. }
  119. });
  120. accelerometerButton.setOnClickListener(new View.OnClickListener() {
  121. @Override
  122. public void onClick(View v) {
  123. openAccelerometerActivity();
  124. mMainActivityViewModel.setSensorType(mMainActivityViewModel.getLocalDeviceUUID(), "Accelerometer");
  125. }
  126. });
  127. audiodetectionAndAccelerometerButton.setOnClickListener(new View.OnClickListener() {
  128. @Override
  129. public void onClick(View v) {
  130. if (permission.microRechtePruefen(context, activity)) {
  131. openAudiodetectionAndAccelerometerActivity();
  132. }
  133. else {
  134. permission.microRechteAnfordern(activity);
  135. }
  136. }
  137. });
  138. videodetectionAndAccelerometerButton.setOnClickListener(new View.OnClickListener() {
  139. @Override
  140. public void onClick(View v) {
  141. if (permission.kameraRechtePruefen(context, activity)) {
  142. openVideodetectionAndAccelerometerActivity();
  143. }
  144. else {
  145. permission.kameraRechteAnfordern(activity);
  146. }
  147. }
  148. });
  149. }
  150. @Override
  151. protected void onResume() {
  152. super.onResume();
  153. mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "No Sensor selected", 0.0f);
  154. }
  155. public void openAudiodetectionActivity() {
  156. mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "Audio", 0.0f);
  157. Intent intent = new Intent(this, AudiodetectionActivity.class);
  158. startActivity(intent);
  159. }
  160. public void openVideodetectionActivity() {
  161. mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "Video", 0.0f);
  162. Intent intent = new Intent(this, VideodetectionActivity.class);
  163. startActivity(intent);
  164. }
  165. public void openAccelerometerActivity() {
  166. mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "Accelerometer", 0.0f);
  167. Intent intent = new Intent(this, AccelerometerActivity.class);
  168. startActivity(intent);
  169. }
  170. public void openAudiodetectionAndAccelerometerActivity() {
  171. mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "AudioAndAccelerometer", 0.0f);
  172. Intent intent = new Intent(this, AudiodetectionAndAccelerometerActivity.class);
  173. startActivity(intent);
  174. }
  175. public void openVideodetectionAndAccelerometerActivity() {
  176. mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "VideoAndAccelerometer", 0.0f);
  177. Intent intent = new Intent(this, VideodetectionAndAccelerometerActivity.class);
  178. startActivity(intent);
  179. }
  180. @Override
  181. protected void onPause() {
  182. super.onPause();
  183. }
  184. }