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 6.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  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.content.Intent;
  8. import android.os.Bundle;
  9. import android.view.View;
  10. import android.widget.Button;
  11. import android.widget.Toast;
  12. import com.example.greenwatch.adapters.AlarmHistoryListAdapter;
  13. import com.example.greenwatch.adapters.DeviceListAdapter;
  14. import com.example.greenwatch.models.Device;
  15. import com.example.greenwatch.viewmodels.MainActivityViewModel;
  16. import java.util.List;
  17. public class MainActivity extends AppCompatActivity {
  18. private Button audiodetectionButton;
  19. private Button videodetectionButton;
  20. private Button accelerometerButton;
  21. private Button audiodetectionAndAccelerometerButton;
  22. private Button videodetectionAndAccelerometerButton;
  23. private Button connectionButton;
  24. private MainActivityViewModel mMainActivityViewModel;
  25. @Override
  26. protected void onCreate(Bundle savedInstanceState) {
  27. super.onCreate(savedInstanceState);
  28. setContentView(R.layout.activity_main);
  29. audiodetectionButton = (Button) findViewById(R.id.audiodetectionButton);
  30. videodetectionButton = (Button) findViewById(R.id.videodetectionButton);
  31. accelerometerButton = (Button) findViewById(R.id.accelerometerButton);
  32. audiodetectionAndAccelerometerButton = (Button) findViewById(R.id.audiodetectionAndAccelerometerButton);
  33. videodetectionAndAccelerometerButton = (Button) findViewById(R.id.videodetectionAndAccelerometerButton);
  34. connectionButton = (Button) findViewById(R.id.connectionButton);
  35. RecyclerView deviceListRecyclerView = findViewById(R.id.deviceListRecyclerView);
  36. deviceListRecyclerView.setLayoutManager(new LinearLayoutManager(this));
  37. deviceListRecyclerView.setHasFixedSize(true);
  38. final DeviceListAdapter deviceListAdapter = new DeviceListAdapter();
  39. deviceListRecyclerView.setAdapter(deviceListAdapter);
  40. RecyclerView alarmHistoryListRecyclerView = findViewById(R.id.alarmHistoryListRecyclerView);
  41. alarmHistoryListRecyclerView.setLayoutManager(new LinearLayoutManager(this));
  42. alarmHistoryListRecyclerView.setHasFixedSize(true);
  43. final AlarmHistoryListAdapter alarmHistoryListAdapter = new AlarmHistoryListAdapter();
  44. alarmHistoryListRecyclerView.setAdapter(alarmHistoryListAdapter);
  45. mMainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
  46. mMainActivityViewModel.init();
  47. mMainActivityViewModel.accessRequestCamera(this);
  48. mMainActivityViewModel.getConnectedDeviceList().observe(this, new Observer<List<Device>>() {
  49. @Override
  50. public void onChanged(List<Device> devices) {
  51. deviceListAdapter.setDevices(devices);
  52. }
  53. });
  54. mMainActivityViewModel.getAlarmHistoryList().observe(this, new Observer<List<Device>>() {
  55. @Override
  56. public void onChanged(List<Device> devices) {
  57. alarmHistoryListAdapter.setAlarmHistoryList(devices);
  58. }
  59. });
  60. mMainActivityViewModel.getStartAlarmRecording().observe(this, new Observer<Boolean>() {
  61. @Override
  62. public void onChanged(Boolean aBoolean) {
  63. if (aBoolean) {
  64. Toast.makeText(MainActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
  65. }
  66. else {
  67. Toast.makeText(MainActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
  68. }
  69. }
  70. });
  71. audiodetectionButton.setOnClickListener(new View.OnClickListener() {
  72. @Override
  73. public void onClick(View v) {
  74. //openAudiodetectionActivity();
  75. mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), "10:51", false, "Audio", 10);
  76. }
  77. });
  78. videodetectionButton.setOnClickListener(new View.OnClickListener() {
  79. @Override
  80. public void onClick(View v) {
  81. if (mMainActivityViewModel.isCameraAccessAllowed(MainActivity.this)) {
  82. openVideodetectionActivity();
  83. }
  84. else {
  85. mMainActivityViewModel.accessRequestCamera(MainActivity.this);
  86. }
  87. }
  88. });
  89. accelerometerButton.setOnClickListener(new View.OnClickListener() {
  90. @Override
  91. public void onClick(View v) {
  92. openAccelerometerActivity();
  93. mMainActivityViewModel.setSensorType(mMainActivityViewModel.getLocalDeviceUUID(), "Accelerometer");
  94. }
  95. });
  96. audiodetectionAndAccelerometerButton.setOnClickListener(new View.OnClickListener() {
  97. @Override
  98. public void onClick(View v) {
  99. //openAudiodetectionAndAccelerometerActivity();
  100. mMainActivityViewModel.setSensorType(mMainActivityViewModel.getLocalDeviceUUID(), "AudiodetectionAndAccelerometer");
  101. mMainActivityViewModel.setTimeStamp(mMainActivityViewModel.getLocalDeviceUUID(), "00:00");
  102. mMainActivityViewModel.setDeviceID(mMainActivityViewModel.getLocalDeviceUUID(), "6789");
  103. }
  104. });
  105. videodetectionAndAccelerometerButton.setOnClickListener(new View.OnClickListener() {
  106. @Override
  107. public void onClick(View v) {
  108. openVideodetectionAndAccelerometerActivity();
  109. }
  110. });
  111. connectionButton.setOnClickListener(new View.OnClickListener() {
  112. @Override
  113. public void onClick(View v) {
  114. openConnectionActivity();
  115. }
  116. });
  117. }
  118. public void openAudiodetectionActivity(){
  119. Intent intent = new Intent(this, AudiodetectionActivity.class);
  120. startActivity(intent);
  121. }
  122. public void openVideodetectionActivity(){
  123. Intent intent = new Intent(this, VideodetectionActivity.class);
  124. startActivity(intent);
  125. }
  126. public void openAccelerometerActivity(){
  127. Intent intent = new Intent(this, AccelerometerActivity.class);
  128. startActivity(intent);
  129. }
  130. public void openAudiodetectionAndAccelerometerActivity(){
  131. Intent intent = new Intent(this, AudiodetectionAndAccelerometerActivity.class);
  132. startActivity(intent);
  133. }
  134. public void openVideodetectionAndAccelerometerActivity(){
  135. Intent intent = new Intent(this, VideodetectionAndAccelerometerActivity.class);
  136. startActivity(intent);
  137. }
  138. public void openConnectionActivity(){
  139. //Intent intent = new Intent(this, ConnectionActivity.class);
  140. //startActivity(intent);
  141. mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), "10:51", true, "Audio", 10);
  142. }
  143. }