123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- package com.example.greenwatch;
-
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.lifecycle.Observer;
- import androidx.lifecycle.ViewModelProvider;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
-
- import android.os.Bundle;
- import android.view.SurfaceView;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- import android.widget.Toast;
-
- import com.example.greenwatch.adapters.AlarmHistoryListAdapter;
- import com.example.greenwatch.adapters.DeviceListAdapter;
- import com.example.greenwatch.models.Device;
- import com.example.greenwatch.viewmodels.MicrofonViewModel;
-
- import java.util.List;
-
- public class AudiodetectionActivity extends AppCompatActivity {
- private TextView microfonStatusMessage;
- private TextView tvAAudiodetectionAlarmHistoryListRecyclerView;
- private TextView tvAudiodetectionDeviceListRecyclerView;
- private Button backToMainActivityButton;
- private SurfaceView surfaceView;
- private Permission permission = new Permission();
- private MicrofonViewModel mMicrofonViewModel;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_audiodetection);
-
- surfaceView = (SurfaceView) findViewById(R.id.surfaceViewAudio);
- microfonStatusMessage = (TextView) findViewById(R.id.tvAudiodetectionStatusmessage);
- tvAAudiodetectionAlarmHistoryListRecyclerView = (TextView) findViewById(R.id.tvAudiodetectionAlarmHistoryListRecyclerView);
- tvAudiodetectionDeviceListRecyclerView = (TextView) findViewById(R.id.tvAudiodetectionDeviceListRecyclerView);
- backToMainActivityButton = (Button) findViewById(R.id.audiodetectorBackToMainActivity);
-
- RecyclerView recyclerView = findViewById(R.id.deviceListRecyclerView);
- recyclerView.setLayoutManager(new LinearLayoutManager(this));
- recyclerView.setHasFixedSize(true);
-
- final DeviceListAdapter deviceListAdapter = new DeviceListAdapter();
- recyclerView.setAdapter(deviceListAdapter);
-
- RecyclerView alarmHistoryListRecyclerView = findViewById(R.id.alarmHistoryListRecyclerView);
- alarmHistoryListRecyclerView.setLayoutManager(new LinearLayoutManager(this));
- alarmHistoryListRecyclerView.setHasFixedSize(true);
-
- final AlarmHistoryListAdapter alarmHistoryListAdapter = new AlarmHistoryListAdapter();
- alarmHistoryListRecyclerView.setAdapter(alarmHistoryListAdapter);
-
- backToMainActivityButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- finish();
- }
- });
-
- mMicrofonViewModel = new ViewModelProvider(this).get(MicrofonViewModel.class);
- mMicrofonViewModel.init(surfaceView.getHolder());
- mMicrofonViewModel.getConnectedDeviceList().observe(this, new Observer<List<Device>>() {
- @Override
- public void onChanged(List<Device> devices) {
- deviceListAdapter.setDevices(devices);
- }
- });
-
- mMicrofonViewModel.getAlarmHistoryList().observe(this, new Observer<List<Device>>() {
- @Override
- public void onChanged(List<Device> devices) {
- alarmHistoryListAdapter.setAlarmHistoryList(devices);
- }
- });
-
- mMicrofonViewModel.getStartAlarmRecording().observe(this, new Observer<Boolean>() {
- @Override
- public void onChanged(Boolean aBoolean) {
- if (aBoolean) {
- if(permission.alarmRechtePruefen(AudiodetectionActivity.this, AudiodetectionActivity.this)){
- Toast.makeText(AudiodetectionActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
- mMicrofonViewModel.startAlarmRecording();
- //todo AlarmHandling einfügen
- } else {
- permission.alarmRechteAnfordern(AudiodetectionActivity.this);
- if(permission.alarmRechtePruefen(AudiodetectionActivity.this, AudiodetectionActivity.this)){
- Toast.makeText(AudiodetectionActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
- mMicrofonViewModel.startAlarmRecording();
- //todo Alarmhandling einfügen
- } else {
- Toast.makeText(AudiodetectionActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
- mMicrofonViewModel.stopAlarmRecording(AudiodetectionActivity.this);
- }
- }
- }
- else {
- Toast.makeText(AudiodetectionActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
- mMicrofonViewModel.stopAlarmRecording(AudiodetectionActivity.this);
- }
- }
- });
-
- mMicrofonViewModel.getMicrofonAlarmDetected().observe(this, new Observer<Boolean>() {
- @Override
- public void onChanged(Boolean aBoolean) {
- if (aBoolean) {
- mMicrofonViewModel.updateDevice(mMicrofonViewModel.getLocalDeviceUUID(), mMicrofonViewModel.getSystemTimeStamp(), true, "Audio", mMicrofonViewModel.getAmplitudeInDB());
- }
- else {
- mMicrofonViewModel.updateDevice(mMicrofonViewModel.getLocalDeviceUUID(), mMicrofonViewModel.getSystemTimeStamp(), false, "Audio", 0.0f);
- }
-
- }
- });
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- mMicrofonViewModel.startMicrofonSensor();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- if (isFinishing()){
- mMicrofonViewModel.recalibrationMicrofonSensor();
- }
- mMicrofonViewModel.stopMicrofonSensor();
- }
- }
|