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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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.accessRequestMicrofon(this);
  49. mMainActivityViewModel.getConnectedDeviceList().observe(this, new Observer<List<Device>>() {
  50. @Override
  51. public void onChanged(List<Device> devices) {
  52. deviceListAdapter.setDevices(devices);
  53. }
  54. });
  55. mMainActivityViewModel.getAlarmHistoryList().observe(this, new Observer<List<Device>>() {
  56. @Override
  57. public void onChanged(List<Device> devices) {
  58. alarmHistoryListAdapter.setAlarmHistoryList(devices);
  59. }
  60. });
  61. mMainActivityViewModel.getStartAlarmRecording().observe(this, new Observer<Boolean>() {
  62. @Override
  63. public void onChanged(Boolean aBoolean) {
  64. if (aBoolean) {
  65. Toast.makeText(MainActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
  66. }
  67. else {
  68. Toast.makeText(MainActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
  69. }
  70. }
  71. });
  72. audiodetectionButton.setOnClickListener(new View.OnClickListener() {
  73. @Override
  74. public void onClick(View v) {
  75. if (mMainActivityViewModel.isMicrofonAccessAllowed(MainActivity.this)) {
  76. openAudiodetectionActivity();
  77. }
  78. else {
  79. mMainActivityViewModel.accessRequestMicrofon(MainActivity.this);
  80. }
  81. }
  82. });
  83. videodetectionButton.setOnClickListener(new View.OnClickListener() {
  84. @Override
  85. public void onClick(View v) {
  86. if (mMainActivityViewModel.isCameraAccessAllowed(MainActivity.this)) {
  87. openVideodetectionActivity();
  88. }
  89. else {
  90. mMainActivityViewModel.accessRequestCamera(MainActivity.this);
  91. }
  92. }
  93. });
  94. accelerometerButton.setOnClickListener(new View.OnClickListener() {
  95. @Override
  96. public void onClick(View v) {
  97. openAccelerometerActivity();
  98. mMainActivityViewModel.setSensorType(mMainActivityViewModel.getLocalDeviceUUID(), "Accelerometer");
  99. }
  100. });
  101. audiodetectionAndAccelerometerButton.setOnClickListener(new View.OnClickListener() {
  102. @Override
  103. public void onClick(View v) {
  104. if (mMainActivityViewModel.isMicrofonAccessAllowed(MainActivity.this)) {
  105. openAudiodetectionAndAccelerometerActivity();
  106. }
  107. else {
  108. mMainActivityViewModel.accessRequestMicrofon(MainActivity.this);
  109. }
  110. }
  111. });
  112. videodetectionAndAccelerometerButton.setOnClickListener(new View.OnClickListener() {
  113. @Override
  114. public void onClick(View v) {
  115. openVideodetectionAndAccelerometerActivity();
  116. }
  117. });
  118. connectionButton.setOnClickListener(new View.OnClickListener() {
  119. @Override
  120. public void onClick(View v) {
  121. openConnectionActivity();
  122. }
  123. });
  124. }
  125. public void openAudiodetectionActivity(){
  126. Intent intent = new Intent(this, AudiodetectionActivity.class);
  127. startActivity(intent);
  128. }
  129. public void openVideodetectionActivity(){
  130. Intent intent = new Intent(this, VideodetectionActivity.class);
  131. startActivity(intent);
  132. }
  133. public void openAccelerometerActivity(){
  134. Intent intent = new Intent(this, AccelerometerActivity.class);
  135. startActivity(intent);
  136. }
  137. public void openAudiodetectionAndAccelerometerActivity(){
  138. Intent intent = new Intent(this, AudiodetectionAndAccelerometerActivity.class);
  139. startActivity(intent);
  140. }
  141. public void openVideodetectionAndAccelerometerActivity(){
  142. Intent intent = new Intent(this, VideodetectionAndAccelerometerActivity.class);
  143. startActivity(intent);
  144. }
  145. public void openConnectionActivity(){
  146. //Intent intent = new Intent(this, ConnectionActivity.class);
  147. //startActivity(intent);
  148. mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), "10:51", true, "Audio", 10);
  149. }
  150. }