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.

AccelerometerViewModel.java 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. package com.example.greenwatch.viewmodels;
  2. import android.Manifest;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.content.pm.PackageManager;
  6. import android.view.SurfaceHolder;
  7. import androidx.core.app.ActivityCompat;
  8. import androidx.core.content.ContextCompat;
  9. import androidx.lifecycle.LiveData;
  10. import androidx.lifecycle.MutableLiveData;
  11. import androidx.lifecycle.ViewModel;
  12. import com.example.greenwatch.alarmrecorder.AlarmRecorder;
  13. import com.example.greenwatch.models.Device;
  14. import com.example.greenwatch.repositories.DeviceRepository;
  15. import com.example.greenwatch.sensors.AccelerometerSensor;
  16. import java.util.List;
  17. public class AccelerometerViewModel extends ViewModel implements ViewModelInterface {
  18. private MutableLiveData<List<Device>> mDeviceList;
  19. private MutableLiveData<Boolean> mAccelerometerAlarmDetected;
  20. private MutableLiveData<List<Device>> mAlarmHistoryList;
  21. private MutableLiveData<Boolean> mStartAlarmRecording;
  22. private AccelerometerSensor mAccelerometerSensor;
  23. private AlarmRecorder mAlarmRecorder;
  24. private DeviceRepository mDeviceRepository;
  25. @Override
  26. public void init(SurfaceHolder previewHolder) {
  27. if (mDeviceRepository == null) {
  28. mDeviceRepository = DeviceRepository.getInstance();
  29. }
  30. if (mAccelerometerSensor == null) {
  31. mAccelerometerSensor = AccelerometerSensor.getInstance();
  32. }
  33. if (mAlarmRecorder == null) {
  34. mAlarmRecorder = AlarmRecorder.getInstance();
  35. }
  36. if (mDeviceList == null) {
  37. mDeviceList = mDeviceRepository.getConnectedDeviceList();
  38. }
  39. if (mAlarmHistoryList == null) {
  40. mAlarmHistoryList = mDeviceRepository.getAlarmHistoryDeviceList();
  41. }
  42. if (mStartAlarmRecording == null) {
  43. mStartAlarmRecording = mDeviceRepository.getStartAlarmRecording();
  44. }
  45. if (mAccelerometerAlarmDetected == null) {
  46. mAccelerometerAlarmDetected = mAccelerometerSensor.getAccelerometerAlarmDetected();
  47. }
  48. setAlarmRecordingPreviewHolder(previewHolder);
  49. }
  50. public void addValueToGesamtBE(float newValue) {
  51. mAccelerometerSensor.addValueToGesamtBE(newValue);
  52. }
  53. public void meanValueCalculation() {
  54. mAccelerometerSensor.meanValueCalculation();
  55. }
  56. public void calibrateAccelerometerSensor() {
  57. mAccelerometerSensor.calibrateAccelerometerSensor();
  58. }
  59. public void checkAlarmCondition() {
  60. mAccelerometerSensor.checkAlarmCondition();
  61. }
  62. public float getAccelerometerSensorMeanValue() {
  63. return mAccelerometerSensor.getAccelerometerSensorMeanValue();
  64. }
  65. public LiveData<Boolean> getAccelerometerAlarmDetected() {
  66. return mAccelerometerAlarmDetected;
  67. }
  68. @Override
  69. public LiveData<List<Device>> getConnectedDeviceList() {
  70. return mDeviceList;
  71. }
  72. @Override
  73. public LiveData<List<Device>> getAlarmHistoryList() {
  74. return mAlarmHistoryList;
  75. }
  76. @Override
  77. public LiveData<Boolean> getStartAlarmRecording() {
  78. return mStartAlarmRecording;
  79. }
  80. @Override
  81. public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage) {
  82. mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
  83. }
  84. @Override
  85. public void setTimeStamp(String deviceID, String timeStamp) {
  86. mDeviceRepository.setTimeStamp(deviceID, timeStamp);
  87. }
  88. @Override
  89. public String getTimeStamp(String deviceID) {
  90. return mDeviceRepository.getTimeStamp(deviceID);
  91. }
  92. @Override
  93. public void setDeviceID(String deviceID, String newDeviceID) {
  94. mDeviceRepository.setDeviceID(deviceID, newDeviceID);
  95. }
  96. @Override
  97. public String getDeviceID(String deviceID) {
  98. return mDeviceRepository.getDeviceID(deviceID);
  99. }
  100. @Override
  101. public void setSensorStatus(String deviceID, boolean sensorStatus) {
  102. mDeviceRepository.setSensorStatus(deviceID, sensorStatus);
  103. }
  104. @Override
  105. public boolean getSensorStatus(String deviceID) {
  106. return mDeviceRepository.getSensorStatus(deviceID);
  107. }
  108. @Override
  109. public void setSensorType(String deviceID, String sensorType) {
  110. mDeviceRepository.setSensorType(deviceID, sensorType);
  111. }
  112. @Override
  113. public String getSensorType(String deviceID) {
  114. return mDeviceRepository.getSensorType(deviceID);
  115. }
  116. @Override
  117. public void setSensorMassage(String deviceID, float sensorMessage) {
  118. mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
  119. }
  120. @Override
  121. public float getSensorMassage(String deviceID) {
  122. return mDeviceRepository.getSensorMassage(deviceID);
  123. }
  124. @Override
  125. public String getLocalDeviceUUID() {
  126. return mDeviceRepository.getLocalDeviceUUID();
  127. }
  128. @Override
  129. public String getSystemTimeStamp() {
  130. return mDeviceRepository.getSystemTimeStamp();
  131. }
  132. @Override
  133. public void startAlarmRecording() {
  134. mAlarmRecorder.startRecording();
  135. }
  136. @Override
  137. public void stopAlarmRecording(Context context) {
  138. mAlarmRecorder.stopRecording(context);
  139. }
  140. @Override
  141. public void setAlarmRecordingPreviewHolder(SurfaceHolder previewHolder) {
  142. mAlarmRecorder.setPreviewHolder(previewHolder);
  143. }
  144. }