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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package com.example.greenwatch.viewmodels;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.pm.PackageManager;
  5. import androidx.core.app.ActivityCompat;
  6. import androidx.core.content.ContextCompat;
  7. import androidx.lifecycle.LiveData;
  8. import androidx.lifecycle.MutableLiveData;
  9. import androidx.lifecycle.ViewModel;
  10. import com.example.greenwatch.communication.WiFiCommunication;
  11. import com.example.greenwatch.models.Device;
  12. import com.example.greenwatch.repositories.DeviceRepository;
  13. import java.util.List;
  14. public class MainActivityViewModel extends ViewModel implements ViewModelInterface {
  15. private MutableLiveData<List<Device>> mDeviceList;
  16. private MutableLiveData<List<Device>> mAlarmHistoryList;
  17. private DeviceRepository mDeviceRepository;
  18. private static final int RECHTEANFORDERUNG_KAMERA = 10;
  19. @Override
  20. public void init() {
  21. WiFiCommunication mWiFiCommunication;
  22. if(mDeviceList != null) {
  23. return;
  24. }
  25. //todo: check if WiFi instanz can be hold only by the repository
  26. mDeviceRepository = DeviceRepository.getInstance();
  27. mWiFiCommunication = WiFiCommunication.getInstance();
  28. mDeviceRepository.setWiFiCommunication(mWiFiCommunication);
  29. mWiFiCommunication.setDeviceRepository(mDeviceRepository);
  30. mDeviceRepository.createNewDevice(mDeviceRepository.getSystemTimeStamp(), mDeviceRepository.getLocalDeviceUUID(), false, "No Sensor selected", 0);
  31. mDeviceList = mDeviceRepository.getConnectedDeviceList();
  32. mAlarmHistoryList = mDeviceRepository.getAlarmHistoryDeviceList();
  33. }
  34. public boolean isCameraAccessAllowed(Context context) {
  35. return ContextCompat.checkSelfPermission(context, android.Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED;
  36. }
  37. public void accessRequestCamera(Activity activity) {
  38. ActivityCompat.requestPermissions(activity, new String[]{android.Manifest.permission.CAMERA}, RECHTEANFORDERUNG_KAMERA);
  39. }
  40. @Override
  41. public LiveData<List<Device>> getConnectedDeviceList() {
  42. return mDeviceList;
  43. }
  44. @Override
  45. public LiveData<List<Device>> getAlarmHistoryList() {
  46. return mAlarmHistoryList;
  47. }
  48. @Override
  49. public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage) {
  50. mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
  51. }
  52. @Override
  53. public void setTimeStamp(String deviceID, String timeStamp) {
  54. mDeviceRepository.setTimeStamp(deviceID, timeStamp);
  55. }
  56. @Override
  57. public String getTimeStamp(String deviceID) {
  58. return mDeviceRepository.getTimeStamp(deviceID);
  59. }
  60. @Override
  61. public void setDeviceID(String deviceID, String newDeviceID) {
  62. mDeviceRepository.setDeviceID(deviceID, newDeviceID);
  63. }
  64. @Override
  65. public String getDeviceID(String deviceID) {
  66. return mDeviceRepository.getDeviceID(deviceID);
  67. }
  68. @Override
  69. public void setSensorStatus(String deviceID, boolean sensorStatus) {
  70. mDeviceRepository.setSensorStatus(deviceID, sensorStatus);
  71. }
  72. @Override
  73. public boolean getSensorStatus(String deviceID) {
  74. return mDeviceRepository.getSensorStatus(deviceID);
  75. }
  76. @Override
  77. public void setSensorType(String deviceID, String sensorType) {
  78. mDeviceRepository.setSensorType(deviceID, sensorType);
  79. }
  80. @Override
  81. public String getSensorType(String deviceID) {
  82. return mDeviceRepository.getSensorType(deviceID);
  83. }
  84. @Override
  85. public void setSensorMassage(String deviceID, int sensorMessage) {
  86. mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
  87. }
  88. @Override
  89. public int getSensorMassage(String deviceID) {
  90. return mDeviceRepository.getSensorMassage(deviceID);
  91. }
  92. @Override
  93. public String getLocalDeviceUUID() {
  94. return mDeviceRepository.getLocalDeviceUUID();
  95. }
  96. @Override
  97. public String getSystemTimeStamp() {
  98. return null;
  99. }
  100. }