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.0KB

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