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.

MainActivityViewModel.java 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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.communication.WiFiCommunication;
  14. import com.example.greenwatch.models.Device;
  15. import com.example.greenwatch.repositories.DeviceRepository;
  16. import com.example.greenwatch.sensors.AccelerometerSensor;
  17. import java.util.List;
  18. public class MainActivityViewModel extends ViewModel implements ViewModelInterface {
  19. private MutableLiveData<List<Device>> mDeviceList;
  20. private MutableLiveData<List<Device>> mAlarmHistoryList;
  21. private MutableLiveData<Boolean> mStartAlarmRecording;
  22. private DeviceRepository mDeviceRepository;
  23. private WiFiCommunication mWiFiCommunication;
  24. private AlarmRecorder mAlarmRecorder;
  25. @Override
  26. public void init(SurfaceHolder previewHolder) {
  27. if (mDeviceRepository == null) {
  28. mDeviceRepository = DeviceRepository.getInstance();
  29. }
  30. if (mWiFiCommunication == null) {
  31. mWiFiCommunication = WiFiCommunication.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. mWiFiCommunication.setDeviceRepository(mDeviceRepository);
  46. mDeviceRepository.setWiFiCommunication(mWiFiCommunication);
  47. mDeviceRepository.createNewDevice(mDeviceRepository.getSystemTimeStamp(), mDeviceRepository.getLocalDeviceUUID(), false, "No Sensor selected", 0.0f);
  48. mDeviceRepository.setDeviceID(mDeviceRepository.getLocalDeviceUUID(), WiFiCommunication.getLocalIpAddress());
  49. setAlarmRecordingPreviewHolder(previewHolder);
  50. mWiFiCommunication = null;
  51. }
  52. @Override
  53. public LiveData<List<Device>> getConnectedDeviceList() {
  54. return mDeviceList;
  55. }
  56. @Override
  57. public LiveData<List<Device>> getAlarmHistoryList() {
  58. return mAlarmHistoryList;
  59. }
  60. @Override
  61. public LiveData<Boolean> getStartAlarmRecording() {
  62. return mStartAlarmRecording;
  63. }
  64. @Override
  65. public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage) {
  66. mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
  67. }
  68. @Override
  69. public void setTimeStamp(String deviceID, String timeStamp) {
  70. mDeviceRepository.setTimeStamp(deviceID, timeStamp);
  71. }
  72. @Override
  73. public String getTimeStamp(String deviceID) {
  74. return mDeviceRepository.getTimeStamp(deviceID);
  75. }
  76. @Override
  77. public void setDeviceID(String deviceID, String newDeviceID) {
  78. mDeviceRepository.setDeviceID(deviceID, newDeviceID);
  79. }
  80. @Override
  81. public String getDeviceID(String deviceID) {
  82. return mDeviceRepository.getDeviceID(deviceID);
  83. }
  84. @Override
  85. public void setSensorStatus(String deviceID, boolean sensorStatus) {
  86. mDeviceRepository.setSensorStatus(deviceID, sensorStatus);
  87. }
  88. @Override
  89. public boolean getSensorStatus(String deviceID) {
  90. return mDeviceRepository.getSensorStatus(deviceID);
  91. }
  92. @Override
  93. public void setSensorType(String deviceID, String sensorType) {
  94. mDeviceRepository.setSensorType(deviceID, sensorType);
  95. }
  96. @Override
  97. public String getSensorType(String deviceID) {
  98. return mDeviceRepository.getSensorType(deviceID);
  99. }
  100. @Override
  101. public void setSensorMassage(String deviceID, float sensorMessage) {
  102. mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
  103. }
  104. @Override
  105. public float getSensorMassage(String deviceID) {
  106. return mDeviceRepository.getSensorMassage(deviceID);
  107. }
  108. @Override
  109. public String getLocalDeviceUUID() {
  110. return mDeviceRepository.getLocalDeviceUUID();
  111. }
  112. @Override
  113. public String getSystemTimeStamp() {
  114. return mDeviceRepository.getSystemTimeStamp();
  115. }
  116. @Override
  117. public void startAlarmRecording() {
  118. mAlarmRecorder.startRecording();
  119. }
  120. @Override
  121. public void stopAlarmRecording(Context context) {
  122. mAlarmRecorder.stopRecording(context);
  123. }
  124. @Override
  125. public void setAlarmRecordingPreviewHolder(SurfaceHolder previewHolder) {
  126. mAlarmRecorder.setPreviewHolder(previewHolder);
  127. }
  128. }