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.

VideodetectionViewModel.java 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package com.example.greenwatch.viewmodels;
  2. import android.content.Context;
  3. import androidx.camera.lifecycle.ProcessCameraProvider;
  4. import androidx.lifecycle.LifecycleOwner;
  5. import androidx.lifecycle.LiveData;
  6. import androidx.lifecycle.MutableLiveData;
  7. import androidx.lifecycle.ViewModel;
  8. import com.example.greenwatch.models.Device;
  9. import com.example.greenwatch.repositories.DeviceRepository;
  10. import com.example.greenwatch.sensors.CameraSensor;
  11. import java.util.List;
  12. public class VideodetectionViewModel extends ViewModel implements ViewModelInterface {
  13. private MutableLiveData<List<Device>> mDeviceList;
  14. private MutableLiveData<Boolean> mVideoAlarmDetected;
  15. private MutableLiveData<List<Device>> mAlarmHistoryList;
  16. private MutableLiveData<Boolean> mStartAlarmRecording;
  17. private DeviceRepository mDeviceRepository;
  18. private CameraSensor mCameraSensor;
  19. public LiveData<Boolean> getVideoMovementDetectedValue() {
  20. return mVideoAlarmDetected;
  21. }
  22. @Override
  23. public void init() {
  24. if (mDeviceRepository == null) {
  25. mDeviceRepository = DeviceRepository.getInstance();
  26. }
  27. if (mCameraSensor == null) {
  28. mCameraSensor = CameraSensor.getInstance();
  29. }
  30. if (mDeviceList == null) {
  31. mDeviceList = mDeviceRepository.getConnectedDeviceList();
  32. }
  33. if (mAlarmHistoryList == null) {
  34. mAlarmHistoryList = mDeviceRepository.getAlarmHistoryDeviceList();
  35. }
  36. if (mStartAlarmRecording == null) {
  37. mStartAlarmRecording = mDeviceRepository.getStartAlarmRecording();
  38. }
  39. if (mVideoAlarmDetected == null) {
  40. mVideoAlarmDetected = mCameraSensor.getVideoAlarmDetectedValue();
  41. }
  42. }
  43. public void bindImageAnalysis(ProcessCameraProvider cameraProvider, LifecycleOwner lifecycleOwner, Context context) {
  44. mCameraSensor.bindImageAnalysis(cameraProvider, lifecycleOwner, context);
  45. }
  46. public LiveData<Boolean> getVideoAlarmDetectedValue() {
  47. return mVideoAlarmDetected;
  48. }
  49. @Override
  50. public LiveData<List<Device>> getConnectedDeviceList() {
  51. return mDeviceList;
  52. }
  53. @Override
  54. public LiveData<List<Device>> getAlarmHistoryList() {
  55. return mAlarmHistoryList;
  56. }
  57. @Override
  58. public LiveData<Boolean> getStartAlarmRecording() {
  59. return mStartAlarmRecording;
  60. }
  61. @Override
  62. public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage) {
  63. mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
  64. }
  65. @Override
  66. public void setTimeStamp(String deviceID, String timeStamp) {
  67. mDeviceRepository.setTimeStamp(deviceID, timeStamp);
  68. }
  69. @Override
  70. public String getTimeStamp(String deviceID) {
  71. return mDeviceRepository.getTimeStamp(deviceID);
  72. }
  73. @Override
  74. public void setDeviceID(String deviceID, String newDeviceID) {
  75. mDeviceRepository.setDeviceID(deviceID, newDeviceID);
  76. }
  77. @Override
  78. public String getDeviceID(String deviceID) {
  79. return mDeviceRepository.getDeviceID(deviceID);
  80. }
  81. @Override
  82. public void setSensorStatus(String deviceID, boolean sensorStatus) {
  83. mDeviceRepository.setSensorStatus(deviceID, sensorStatus);
  84. }
  85. @Override
  86. public boolean getSensorStatus(String deviceID) {
  87. return mDeviceRepository.getSensorStatus(deviceID);
  88. }
  89. @Override
  90. public void setSensorType(String deviceID, String sensorType) {
  91. mDeviceRepository.setSensorType(deviceID, sensorType);
  92. }
  93. @Override
  94. public String getSensorType(String deviceID) {
  95. return mDeviceRepository.getSensorType(deviceID);
  96. }
  97. @Override
  98. public void setSensorMassage(String deviceID, int sensorMessage) {
  99. mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
  100. }
  101. @Override
  102. public int getSensorMassage(String deviceID) {
  103. return mDeviceRepository.getSensorMassage(deviceID);
  104. }
  105. @Override
  106. public String getLocalDeviceUUID() {
  107. return mDeviceRepository.getLocalDeviceUUID();
  108. }
  109. @Override
  110. public String getSystemTimeStamp() {
  111. return mDeviceRepository.getSystemTimeStamp();
  112. }
  113. }