Compare commits

..
Author SHA1 Message Date
Tinzch67102 cca1311b74 adapted datahandling and communication strings 2023-06-22 00:48:18 +02:00
Tinzch67102 c6d33925be adapted SensorMessage Type to float 2023-06-22 00:00:09 +02:00
20 changed files with 140 additions and 303 deletions

No files matched your search

-2
View File
@@ -5,8 +5,6 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera"/>
@@ -32,7 +32,6 @@ public class AccelerometerActivity extends AppCompatActivity implements SensorEv
private TextView accelerometerWarningTV;
private Button backToMainActivityButton;
private AccelerometerViewModel mAccelerometerViewModel;
private Permission permission = new Permission();
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -85,18 +84,7 @@ public class AccelerometerActivity extends AppCompatActivity implements SensorEv
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
if(permission.alarmRechtePruefen(AccelerometerActivity.this, AccelerometerActivity.this)){
Toast.makeText(AccelerometerActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo AlarmHandling einfügen
} else {
permission.alarmRechteAnfordern(AccelerometerActivity.this);
if(permission.alarmRechtePruefen(AccelerometerActivity.this, AccelerometerActivity.this)){
Toast.makeText(AccelerometerActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo Alarmhandling einfügen
} else {
Toast.makeText(AccelerometerActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
}
}
Toast.makeText(AccelerometerActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(AccelerometerActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
@@ -108,10 +96,10 @@ public class AccelerometerActivity extends AppCompatActivity implements SensorEv
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
mAccelerometerViewModel.updateDevice(mAccelerometerViewModel.getLocalDeviceUUID(), mAccelerometerViewModel.getSystemTimeStamp(), true, "Accelerometer", 10);
mAccelerometerViewModel.updateDevice(mAccelerometerViewModel.getLocalDeviceUUID(), mAccelerometerViewModel.getSystemTimeStamp(), true, "Accelerometer", mAccelerometerViewModel.getAccelerometerSensorMeanValue());
}
else {
mAccelerometerViewModel.updateDevice(mAccelerometerViewModel.getLocalDeviceUUID(), mAccelerometerViewModel.getSystemTimeStamp(), false, "Accelerometer", 0);
mAccelerometerViewModel.updateDevice(mAccelerometerViewModel.getLocalDeviceUUID(), mAccelerometerViewModel.getSystemTimeStamp(), false, "Accelerometer", 0.0f);
}
}
@@ -24,7 +24,6 @@ import java.util.List;
public class AudiodetectionActivity extends AppCompatActivity {
private TextView microfonStatusMessage;
private Button backToMainActivityButton;
private Permission permission = new Permission();
private MicrofonViewModel mMicrofonViewModel;
@Override
@@ -76,18 +75,7 @@ public class AudiodetectionActivity extends AppCompatActivity {
@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();
//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();
//todo Alarmhandling einfügen
} else {
Toast.makeText(AudiodetectionActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
}
}
Toast.makeText(AudiodetectionActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(AudiodetectionActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
@@ -99,10 +87,10 @@ public class AudiodetectionActivity extends AppCompatActivity {
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
mMicrofonViewModel.updateDevice(mMicrofonViewModel.getLocalDeviceUUID(), mMicrofonViewModel.getSystemTimeStamp(), true, "Microfon", (int) mMicrofonViewModel.getAmplitudeInDB());
mMicrofonViewModel.updateDevice(mMicrofonViewModel.getLocalDeviceUUID(), mMicrofonViewModel.getSystemTimeStamp(), true, "Audio", mMicrofonViewModel.getAmplitudeInDB());
}
else {
mMicrofonViewModel.updateDevice(mMicrofonViewModel.getLocalDeviceUUID(), mMicrofonViewModel.getSystemTimeStamp(), false, "Microfon", (int) mMicrofonViewModel.getAmplitudeInDB());
mMicrofonViewModel.updateDevice(mMicrofonViewModel.getLocalDeviceUUID(), mMicrofonViewModel.getSystemTimeStamp(), false, "Audio", 0.0f);
}
}
@@ -31,8 +31,6 @@ public class AudiodetectionAndAccelerometerActivity extends AppCompatActivity im
private AudiodetectionAndAccelerometerViewModel mAudiodetectionAndAccelerometerViewModel;
private Button backToMainActivity;
private Permission permission = new Permission();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -82,18 +80,7 @@ public class AudiodetectionAndAccelerometerActivity extends AppCompatActivity im
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
if(permission.alarmRechtePruefen(AudiodetectionAndAccelerometerActivity.this, AudiodetectionAndAccelerometerActivity.this)){
Toast.makeText(AudiodetectionAndAccelerometerActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo AlarmHandling einfügen
} else {
permission.alarmRechteAnfordern(AudiodetectionAndAccelerometerActivity.this);
if(permission.alarmRechtePruefen(AudiodetectionAndAccelerometerActivity.this, AudiodetectionAndAccelerometerActivity.this)){
Toast.makeText(AudiodetectionAndAccelerometerActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo Alarmhandling einfügen
} else {
Toast.makeText(AudiodetectionAndAccelerometerActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
}
}
Toast.makeText(AudiodetectionAndAccelerometerActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(AudiodetectionAndAccelerometerActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
@@ -107,18 +94,18 @@ public class AudiodetectionAndAccelerometerActivity extends AppCompatActivity im
if (aBoolean) {
Toast.makeText(AudiodetectionAndAccelerometerActivity.this, "onChangedTrue", Toast.LENGTH_LONG).show();
if (mAudiodetectionAndAccelerometerViewModel.getAccelerometerAlarmDetected() && !mAudiodetectionAndAccelerometerViewModel.getMicrofonAlarmDetected()) {
mAudiodetectionAndAccelerometerViewModel.updateDevice(mAudiodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mAudiodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "Accelerometer", 10);
mAudiodetectionAndAccelerometerViewModel.updateDevice(mAudiodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mAudiodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "Accelerometer", mAudiodetectionAndAccelerometerViewModel.getAccelerometerSensorMeanValue());
}
else if (mAudiodetectionAndAccelerometerViewModel.getMicrofonAlarmDetected() && !mAudiodetectionAndAccelerometerViewModel.getAccelerometerAlarmDetected()) {
mAudiodetectionAndAccelerometerViewModel.updateDevice(mAudiodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mAudiodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "Audio", (int) mAudiodetectionAndAccelerometerViewModel.getAmplitudeInDB());
mAudiodetectionAndAccelerometerViewModel.updateDevice(mAudiodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mAudiodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "Audio", mAudiodetectionAndAccelerometerViewModel.getAmplitudeInDB());
}
else if (mAudiodetectionAndAccelerometerViewModel.getMicrofonAlarmDetected() && mAudiodetectionAndAccelerometerViewModel.getAccelerometerAlarmDetected()) {
mAudiodetectionAndAccelerometerViewModel.updateDevice(mAudiodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mAudiodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "2AudioAndAccelerometer", 10);
mAudiodetectionAndAccelerometerViewModel.updateDevice(mAudiodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mAudiodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "AudioAndAccelerometer", mAudiodetectionAndAccelerometerViewModel.getAmplitudeInDB());
}
}
else {
Toast.makeText(AudiodetectionAndAccelerometerActivity.this, "onChangedFalse", Toast.LENGTH_LONG).show();
mAudiodetectionAndAccelerometerViewModel.updateDevice(mAudiodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mAudiodetectionAndAccelerometerViewModel.getSystemTimeStamp(), false, "AudioAndAccelerometer", 0);
mAudiodetectionAndAccelerometerViewModel.updateDevice(mAudiodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mAudiodetectionAndAccelerometerViewModel.getSystemTimeStamp(), false, "AudioAndAccelerometer", 0.0f);
}
}
@@ -6,9 +6,8 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
@@ -19,7 +18,6 @@ import com.example.greenwatch.adapters.DeviceListAdapter;
import com.example.greenwatch.models.Device;
import com.example.greenwatch.viewmodels.MainActivityViewModel;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@@ -31,19 +29,12 @@ public class MainActivity extends AppCompatActivity {
private Button videodetectionAndAccelerometerButton;
private Button connectionButton;
private MainActivityViewModel mMainActivityViewModel;
private Permission permission = new Permission();
private Activity activity = new Activity();
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity = MainActivity.this;
context = MainActivity.this;
audiodetectionButton = (Button) findViewById(R.id.audiodetectionButton);
videodetectionButton = (Button) findViewById(R.id.videodetectionButton);
accelerometerButton = (Button) findViewById(R.id.accelerometerButton);
@@ -65,10 +56,10 @@ public class MainActivity extends AppCompatActivity {
final AlarmHistoryListAdapter alarmHistoryListAdapter = new AlarmHistoryListAdapter();
alarmHistoryListRecyclerView.setAdapter(alarmHistoryListAdapter);
permission.startRechtePruefen(this, this);
mMainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
mMainActivityViewModel.init();
mMainActivityViewModel.accessRequestCamera(this);
mMainActivityViewModel.accessRequestMicrofon(this);
mMainActivityViewModel.getConnectedDeviceList().observe(this, new Observer<List<Device>>() {
@Override
public void onChanged(List<Device> devices) {
@@ -87,18 +78,7 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
if(permission.alarmRechtePruefen(context, activity)){
Toast.makeText(MainActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo AlarmHandling einfügen
} else {
permission.alarmRechteAnfordern(activity);
if(permission.alarmRechtePruefen(context, activity)){
Toast.makeText(MainActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo Alarmhandling einfügen
} else {
Toast.makeText(MainActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
}
}
Toast.makeText(MainActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(MainActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
@@ -109,23 +89,22 @@ public class MainActivity extends AppCompatActivity {
audiodetectionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (permission.microRechtePruefen(context, activity)) {
if (mMainActivityViewModel.isMicrofonAccessAllowed(MainActivity.this)) {
openAudiodetectionActivity();
}
else {
permission.microRechteAnfordern(activity);
mMainActivityViewModel.accessRequestMicrofon(MainActivity.this);
}
}
});
videodetectionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (permission.kameraRechtePruefen(context, activity)) {
if (mMainActivityViewModel.isCameraAccessAllowed(MainActivity.this)) {
openVideodetectionActivity();
}
else {
permission.kameraRechteAnfordern(activity);
mMainActivityViewModel.accessRequestCamera(MainActivity.this);
}
}
});
@@ -139,23 +118,18 @@ public class MainActivity extends AppCompatActivity {
audiodetectionAndAccelerometerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (permission.microRechtePruefen(context, activity)) {
if (mMainActivityViewModel.isMicrofonAccessAllowed(MainActivity.this)) {
openAudiodetectionAndAccelerometerActivity();
}
else {
permission.microRechteAnfordern(activity);
mMainActivityViewModel.accessRequestMicrofon(MainActivity.this);
}
}
});
videodetectionAndAccelerometerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (permission.kameraRechtePruefen(context, activity)) {
openVideodetectionAndAccelerometerActivity();
}
else {
permission.kameraRechteAnfordern(activity);
}
openVideodetectionAndAccelerometerActivity();
}
});
connectionButton.setOnClickListener(new View.OnClickListener() {
@@ -165,30 +139,42 @@ public class MainActivity extends AppCompatActivity {
}
});
}
public void openAudiodetectionActivity(){
@Override
protected void onResume() {
super.onResume();
mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "No Sensor selected", 0.0f);
}
public void openAudiodetectionActivity() {
mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "Audio", 0.0f);
Intent intent = new Intent(this, AudiodetectionActivity.class);
startActivity(intent);
}
public void openVideodetectionActivity(){
public void openVideodetectionActivity() {
mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "Video", 0.0f);
Intent intent = new Intent(this, VideodetectionActivity.class);
startActivity(intent);
}
public void openAccelerometerActivity(){
public void openAccelerometerActivity() {
mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "Accelerometer", 0.0f);
Intent intent = new Intent(this, AccelerometerActivity.class);
startActivity(intent);
}
public void openAudiodetectionAndAccelerometerActivity(){
public void openAudiodetectionAndAccelerometerActivity() {
mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "AudioAndAccelerometer", 0.0f);
Intent intent = new Intent(this, AudiodetectionAndAccelerometerActivity.class);
startActivity(intent);
}
public void openVideodetectionAndAccelerometerActivity(){
public void openVideodetectionAndAccelerometerActivity() {
mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), mMainActivityViewModel.getSystemTimeStamp(), false, "VideoAndAccelerometer", 0.0f);
Intent intent = new Intent(this, VideodetectionAndAccelerometerActivity.class);
startActivity(intent);
}
public void openConnectionActivity(){
//Intent intent = new Intent(this, ConnectionActivity.class);
//startActivity(intent);
mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), "10:51", true, "Audio", 10);
mMainActivityViewModel.updateDevice(mMainActivityViewModel.getLocalDeviceUUID(), "10:51", false, "Audio", 10);
}
}
@@ -1,128 +0,0 @@
package com.example.greenwatch;
import static android.Manifest.permission.CAMERA;
import static android.Manifest.permission.RECORD_AUDIO;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
import static android.Manifest.permission.READ_EXTERNAL_STORAGE;
import static androidx.core.app.ActivityCompat.requestPermissions;
import static androidx.core.content.ContextCompat.checkSelfPermission;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class Permission {
private static final int PERMISSION_REQUEST_MICRO = 1;
private static final int PERMISSION_REQUEST_CAMERA = 2;
private static final int PERMISSION_REQUEST_ALARM = 1234;
private static final int PERMISSION_REQUEST_START = 1235;
public void startRechtePruefen(Context context, Activity activity){
boolean rechtKamera = checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED;
boolean rechtAudio = checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED;
boolean rechtSchreiben = checkSelfPermission(context, WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
boolean rechtLesen = checkSelfPermission(context, READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
Log.d("Kamera Rechte", String.valueOf(rechtKamera));
Log.d("Audio Rechte", String.valueOf(rechtAudio));
Log.d("Schreib Rechte", String.valueOf(rechtSchreiben));
Log.d("Lese Rechte", String.valueOf(rechtLesen));
if(rechtKamera && rechtAudio && rechtSchreiben && rechtLesen){
Log.d("Rechte", "erteilt");
} else {
startRechteAnfordern(activity);
}
}
public boolean kameraRechtePruefen(Context context, Activity activity){
boolean rechtKamera = checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED;
Log.d("Kamera Rechte", String.valueOf(rechtKamera));
if(rechtKamera){
Log.d("Kamerarechte", "erteilt");
return true;
} else {
kameraRechteAnfordern(activity);
if(checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED){
return true;
} else {
return false;
}
}
}
public boolean microRechtePruefen(Context context, Activity activity){
boolean rechtAudio = checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED;
Log.d("Audio Rechte", String.valueOf(rechtAudio));
if(rechtAudio){
Log.d("Rechte", "erteilt");
return true;
} else {
microRechteAnfordern(activity);
if(checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED){
return true;
} else {
return false;
}
}
}
public boolean alarmRechtePruefen(Context context, Activity activity){
boolean rechtKamera = checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED;
boolean rechtAudio = checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED;
boolean rechtSchreiben = checkSelfPermission(context, WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
boolean rechtLesen = checkSelfPermission(context, READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
Log.d("Kamera Rechte", String.valueOf(rechtKamera));
Log.d("Audio Rechte", String.valueOf(rechtAudio));
Log.d("Schreib Rechte", String.valueOf(rechtSchreiben));
Log.d("Lese Rechte", String.valueOf(rechtLesen));
if(rechtKamera && rechtAudio && rechtSchreiben && rechtLesen){
Log.d("Rechte", "erteilt");
return true;
} else {
alarmRechteAnfordern(activity);
if(checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED
&& checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
&& checkSelfPermission(context, WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
&& checkSelfPermission(context, READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){
return true;
} else {
return false;
}
}
}
public void startRechteAnfordern(Activity activity){
ActivityCompat.requestPermissions(activity, new String[]{CAMERA, RECORD_AUDIO, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_START);
}
public void kameraRechteAnfordern(Activity activity){
ActivityCompat.requestPermissions(activity, new String[]{CAMERA}, PERMISSION_REQUEST_CAMERA);
}
public void microRechteAnfordern(Activity activity){
ActivityCompat.requestPermissions(activity, new String[]{RECORD_AUDIO}, PERMISSION_REQUEST_MICRO);
}
public void alarmRechteAnfordern(Activity activity){
ActivityCompat.requestPermissions(activity, new String[]{CAMERA, RECORD_AUDIO, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_ALARM);
}
}
@@ -27,7 +27,6 @@ public class VideodetectionActivity extends AppCompatActivity {
private Button backToMainActivity;
private VideodetectionViewModel mVideoDetectionViewModel;
private Permission permission = new Permission();
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -77,18 +76,7 @@ public class VideodetectionActivity extends AppCompatActivity {
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
if(permission.alarmRechtePruefen(VideodetectionActivity.this, VideodetectionActivity.this)){
Toast.makeText(VideodetectionActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo AlarmHandling einfügen
} else {
permission.alarmRechteAnfordern(VideodetectionActivity.this);
if(permission.alarmRechtePruefen(VideodetectionActivity.this, VideodetectionActivity.this)){
Toast.makeText(VideodetectionActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo Alarmhandling einfügen
} else {
Toast.makeText(VideodetectionActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
}
}
Toast.makeText(VideodetectionActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(VideodetectionActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
@@ -100,10 +88,10 @@ public class VideodetectionActivity extends AppCompatActivity {
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
mVideoDetectionViewModel.updateDevice(mVideoDetectionViewModel.getLocalDeviceUUID(), mVideoDetectionViewModel.getSystemTimeStamp(), true, "Video", 10);
mVideoDetectionViewModel.updateDevice(mVideoDetectionViewModel.getLocalDeviceUUID(), mVideoDetectionViewModel.getSystemTimeStamp(), true, "Video", 1.0f);
}
else {
mVideoDetectionViewModel.updateDevice(mVideoDetectionViewModel.getLocalDeviceUUID(), mVideoDetectionViewModel.getSystemTimeStamp(), false, "Video", 0);
mVideoDetectionViewModel.updateDevice(mVideoDetectionViewModel.getLocalDeviceUUID(), mVideoDetectionViewModel.getSystemTimeStamp(), false, "Video", 0.0f);
}
}
@@ -37,7 +37,6 @@ public class VideodetectionAndAccelerometerActivity extends AppCompatActivity im
private TextView videodetectionAndAccelerometerWarningTV;
private Button backToMainActivity;
private VideodetectionAndAccelerometerViewModel mVideodetectionAndAccelerometerViewModel;
private Permission permission = new Permission();
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -90,18 +89,7 @@ public class VideodetectionAndAccelerometerActivity extends AppCompatActivity im
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
if(permission.alarmRechtePruefen(VideodetectionAndAccelerometerActivity.this, VideodetectionAndAccelerometerActivity.this)){
Toast.makeText(VideodetectionAndAccelerometerActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo AlarmHandling einfügen
} else {
permission.alarmRechteAnfordern(VideodetectionAndAccelerometerActivity.this);
if(permission.alarmRechtePruefen(VideodetectionAndAccelerometerActivity.this, VideodetectionAndAccelerometerActivity.this)){
Toast.makeText(VideodetectionAndAccelerometerActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
//todo Alarmhandling einfügen
} else {
Toast.makeText(VideodetectionAndAccelerometerActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
}
}
Toast.makeText(VideodetectionAndAccelerometerActivity.this, "Start Alarm Recording", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(VideodetectionAndAccelerometerActivity.this, "Stop Alarm Recording", Toast.LENGTH_LONG).show();
@@ -114,17 +102,17 @@ public class VideodetectionAndAccelerometerActivity extends AppCompatActivity im
public void onChanged(Boolean aBoolean) {
if (aBoolean) {
if (mVideodetectionAndAccelerometerViewModel.getAccelerometerAlarmDetected() && !mVideodetectionAndAccelerometerViewModel.getVideoAlarmDetected()) {
mVideodetectionAndAccelerometerViewModel.updateDevice(mVideodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mVideodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "Accelerometer", 10);
mVideodetectionAndAccelerometerViewModel.updateDevice(mVideodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mVideodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "Accelerometer", mVideodetectionAndAccelerometerViewModel.getAccelerometerSensorMeanValue());
}
else if (mVideodetectionAndAccelerometerViewModel.getVideoAlarmDetected() && !mVideodetectionAndAccelerometerViewModel.getAccelerometerAlarmDetected()) {
mVideodetectionAndAccelerometerViewModel.updateDevice(mVideodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mVideodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "Video", 10);
mVideodetectionAndAccelerometerViewModel.updateDevice(mVideodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mVideodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "Video", 1.0f);
}
else if (mVideodetectionAndAccelerometerViewModel.getAccelerometerAlarmDetected() && mVideodetectionAndAccelerometerViewModel.getVideoAlarmDetected()) {
mVideodetectionAndAccelerometerViewModel.updateDevice(mVideodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mVideodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "2VideoAndAccelerometer", 10);
mVideodetectionAndAccelerometerViewModel.updateDevice(mVideodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mVideodetectionAndAccelerometerViewModel.getSystemTimeStamp(), true, "VideoAndAccelerometer", mVideodetectionAndAccelerometerViewModel.getAccelerometerSensorMeanValue());
}
}
else {
mVideodetectionAndAccelerometerViewModel.updateDevice(mVideodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mVideodetectionAndAccelerometerViewModel.getSystemTimeStamp(), false, "VideoAndAccelerometer", 0);
mVideodetectionAndAccelerometerViewModel.updateDevice(mVideodetectionAndAccelerometerViewModel.getLocalDeviceUUID(), mVideodetectionAndAccelerometerViewModel.getSystemTimeStamp(), false, "VideoAndAccelerometer", 0.0f);
}
}
});
@@ -88,8 +88,7 @@ public class WiFiCommunication {
if(isNewMessage)
{
isNewMessage = false;
//todo: adapt send String
String txString = getLocalIpAddress() + " sends. #" + tmpCnt++ + sendMessage;
String txString = sendMessage;
byte[] txBuffer = txString.getBytes();
DatagramPacket txPacket = new DatagramPacket(txBuffer, txBuffer.length, address, port);
@@ -7,9 +7,9 @@ public class Device {
private String deviceID;
private boolean sensorStatus;
private String sensorType;
private int sensorMassage;
private float sensorMassage;
public Device(String timeStamp, String deviceID, boolean sensorStatus, String sensorType, int sensorMassage) {
public Device(String timeStamp, String deviceID, boolean sensorStatus, String sensorType, float sensorMassage) {
this.timeStamp = timeStamp;
this.deviceID = deviceID;
this.sensorStatus = sensorStatus;
@@ -47,11 +47,11 @@ public class Device {
return sensorStatus;
}
public void setSensorMassage(int sensorMassage) {
public void setSensorMassage(float sensorMassage) {
this.sensorMassage = sensorMassage;
}
public int getSensorMassage() {
public float getSensorMassage() {
return sensorMassage;
}
}
@@ -60,7 +60,7 @@ public class DeviceRepository {
return startAlarmRecording;
}
public void createNewDevice(String timeStamp, String deviceID, boolean sensorStatus, String sensorType, int sensorMassage){
public void createNewDevice(String timeStamp, String deviceID, boolean sensorStatus, String sensorType, float sensorMassage){
Device newDevice = new Device(timeStamp, deviceID, sensorStatus, sensorType, sensorMassage);
if (sensorStatus) {
setAlarmHistoryDeviceList(newDevice);
@@ -76,21 +76,22 @@ public class DeviceRepository {
public void getNewReceivedMessage(String newMessage) {
String[] messageString = messageStringSplitter(newMessage);
String timeStamp = messageString[0];
String deviceID = messageString[1];
boolean sensorStatus = convertSensorStatus(messageString[2]);
String sensorType = messageString[3];
int sensorMassage = Integer.valueOf(messageString[4]);
if(messageString[0]=="1" && messageString.length == 7) {
String timeStamp = messageString[1];
String deviceID = messageString[3];
boolean sensorStatus = convertSensorStatus(messageString[4]);
String sensorType = messageString[5];
float sensorMassage = Float.valueOf(messageString[6]);
if (deviceID.equals(checkDeviceID(localDeviceUUID))) {
return;
}
if (deviceID.equals(checkDeviceID(localDeviceUUID))) {
return;
}
if(!connectedDevicesList.containsKey(deviceID)) {
createNewDevice(timeStamp, deviceID, sensorStatus, sensorType, sensorMassage);
}
else {
updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
if (!connectedDevicesList.containsKey(deviceID)) {
createNewDevice(timeStamp, deviceID, sensorStatus, sensorType, sensorMassage);
} else {
updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
}
}
}
@@ -98,7 +99,11 @@ public class DeviceRepository {
StringBuilder message = new StringBuilder();
Device device = connectedDevicesList.get(deviceID);
if(device != null) {
message.append(device.getTimeStamp())
message.append("1")
.append(delimiter)
.append(device.getTimeStamp())
.append(delimiter)
.append("Gruppe3")
.append(delimiter)
.append(device.getDeviceID())
.append(delimiter)
@@ -109,7 +114,11 @@ public class DeviceRepository {
.append(device.getSensorMassage());
}
else {
message.append("")
message.append("1")
.append(delimiter)
.append("")
.append(delimiter)
.append("Gruppe3")
.append(delimiter)
.append("")
.append(delimiter)
@@ -126,7 +135,7 @@ public class DeviceRepository {
return localDeviceUUID;
}
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage) {
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage) {
String checkedDeviceID = checkDeviceID(deviceID);
Device device = connectedDevicesList.get(checkedDeviceID);
if(device != null) {
@@ -234,7 +243,7 @@ public class DeviceRepository {
return "";
}
public void setSensorMassage(String deviceID, int sensorMessage) {
public void setSensorMassage(String deviceID, float sensorMessage) {
String checkedDeviceID = checkDeviceID(deviceID);
Device device = connectedDevicesList.get(checkedDeviceID);
if(device != null) {
@@ -244,7 +253,7 @@ public class DeviceRepository {
}
}
public int getSensorMassage(String deviceID) {
public float getSensorMassage(String deviceID) {
String checkedDeviceID = checkDeviceID(deviceID);
Device device = connectedDevicesList.get(checkedDeviceID);
if(device != null) {
@@ -82,4 +82,8 @@ public class AccelerometerSensor {
mAccelerometerAlarmDetected.setValue(false);
}
}
public float getAccelerometerSensorMeanValue() {
return meanValue;
}
}
@@ -56,6 +56,10 @@ public class AccelerometerViewModel extends ViewModel implements ViewModelInterf
mAccelerometerSensor.checkAlarmCondition();
}
public float getAccelerometerSensorMeanValue() {
return mAccelerometerSensor.getAccelerometerSensorMeanValue();
}
public LiveData<Boolean> getAccelerometerAlarmDetected() {
return mAccelerometerAlarmDetected;
}
@@ -76,7 +80,7 @@ public class AccelerometerViewModel extends ViewModel implements ViewModelInterf
}
@Override
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage) {
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage) {
mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
}
@@ -121,12 +125,12 @@ public class AccelerometerViewModel extends ViewModel implements ViewModelInterf
}
@Override
public void setSensorMassage(String deviceID, int sensorMessage) {
public void setSensorMassage(String deviceID, float sensorMessage) {
mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
}
@Override
public int getSensorMassage(String deviceID) {
public float getSensorMassage(String deviceID) {
return mDeviceRepository.getSensorMassage(deviceID);
}
@@ -74,6 +74,10 @@ public class AudiodetectionAndAccelerometerViewModel extends ViewModel implement
mAccelerometerSensor.checkAlarmCondition();
}
public float getAccelerometerSensorMeanValue() {
return mAccelerometerSensor.getAccelerometerSensorMeanValue();
}
public LiveData<Boolean> getAudiodetectionAndAccelerometerAlarmDetected() {
setMutableLiveDataMicrofondetectionAndAccelerometerAlarmDetected();
return mAudiodetectionAndAccelerometerAlarmDetected;
@@ -160,7 +164,7 @@ public class AudiodetectionAndAccelerometerViewModel extends ViewModel implement
}
@Override
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage) {
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage) {
mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
}
@@ -205,12 +209,12 @@ public class AudiodetectionAndAccelerometerViewModel extends ViewModel implement
}
@Override
public void setSensorMassage(String deviceID, int sensorMessage) {
public void setSensorMassage(String deviceID, float sensorMessage) {
mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
}
@Override
public int getSensorMassage(String deviceID) {
public float getSensorMassage(String deviceID) {
return mDeviceRepository.getSensorMassage(deviceID);
}
@@ -23,6 +23,8 @@ public class MainActivityViewModel extends ViewModel implements ViewModelInterfa
private MutableLiveData<List<Device>> mAlarmHistoryList;
private MutableLiveData<Boolean> mStartAlarmRecording;
private DeviceRepository mDeviceRepository;
private static final int RIGHTS_REQUEST_CAMERA = 10;
private static final int RIGHTS_REQUEST_CAMERA_MICROFON = 1;
@Override
public void init() {
@@ -30,17 +32,33 @@ public class MainActivityViewModel extends ViewModel implements ViewModelInterfa
if(mDeviceList != null) {
return;
}
//todo: check if WiFi instanz can be hold only by the repository
mDeviceRepository = DeviceRepository.getInstance();
mWiFiCommunication = WiFiCommunication.getInstance();
mDeviceRepository.setWiFiCommunication(mWiFiCommunication);
mWiFiCommunication.setDeviceRepository(mDeviceRepository);
mDeviceRepository.createNewDevice(mDeviceRepository.getSystemTimeStamp(), mDeviceRepository.getLocalDeviceUUID(), false, "No Sensor selected", 0);
mDeviceRepository.createNewDevice(mDeviceRepository.getSystemTimeStamp(), mDeviceRepository.getLocalDeviceUUID(), false, "No Sensor selected", 0.0f);
mDeviceRepository.setDeviceID(mDeviceRepository.getLocalDeviceUUID(), WiFiCommunication.getLocalIpAddress());
mDeviceList = mDeviceRepository.getConnectedDeviceList();
mAlarmHistoryList = mDeviceRepository.getAlarmHistoryDeviceList();
mStartAlarmRecording = mDeviceRepository.getStartAlarmRecording();
}
public boolean isMicrofonAccessAllowed(Context context) {
return ContextCompat.checkSelfPermission(context, android.Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED;
}
public void accessRequestMicrofon(Activity activity) {
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.RECORD_AUDIO}, RIGHTS_REQUEST_CAMERA_MICROFON);
}
public boolean isCameraAccessAllowed(Context context) {
return ContextCompat.checkSelfPermission(context, android.Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED;
}
public void accessRequestCamera(Activity activity) {
ActivityCompat.requestPermissions(activity, new String[]{android.Manifest.permission.CAMERA}, RIGHTS_REQUEST_CAMERA);
}
@Override
public LiveData<List<Device>> getConnectedDeviceList() {
return mDeviceList;
@@ -57,7 +75,7 @@ public class MainActivityViewModel extends ViewModel implements ViewModelInterfa
}
@Override
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage) {
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage) {
mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
}
@@ -102,12 +120,12 @@ public class MainActivityViewModel extends ViewModel implements ViewModelInterfa
}
@Override
public void setSensorMassage(String deviceID, int sensorMessage) {
public void setSensorMassage(String deviceID, float sensorMessage) {
mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
}
@Override
public int getSensorMassage(String deviceID) {
public float getSensorMassage(String deviceID) {
return mDeviceRepository.getSensorMassage(deviceID);
}
@@ -118,6 +136,6 @@ public class MainActivityViewModel extends ViewModel implements ViewModelInterfa
@Override
public String getSystemTimeStamp() {
return null;
return mDeviceRepository.getSystemTimeStamp();
}
}
@@ -76,7 +76,7 @@ public class MicrofonViewModel extends ViewModel implements ViewModelInterface {
}
@Override
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage) {
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage) {
mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
}
@@ -121,12 +121,12 @@ public class MicrofonViewModel extends ViewModel implements ViewModelInterface {
}
@Override
public void setSensorMassage(String deviceID, int sensorMessage) {
public void setSensorMassage(String deviceID, float sensorMessage) {
mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
}
@Override
public int getSensorMassage(String deviceID) {
public float getSensorMassage(String deviceID) {
return mDeviceRepository.getSensorMassage(deviceID);
}
@@ -78,6 +78,10 @@ public class VideodetectionAndAccelerometerViewModel extends ViewModel implement
mAccelerometerSensor.checkAlarmCondition();
}
public float getAccelerometerSensorMeanValue() {
return mAccelerometerSensor.getAccelerometerSensorMeanValue();
}
public void bindImageAnalysis(ProcessCameraProvider cameraProvider, LifecycleOwner lifecycleOwner, Context context) {
mCameraSensor.bindImageAnalysis(cameraProvider, lifecycleOwner, context);
}
@@ -152,7 +156,7 @@ public class VideodetectionAndAccelerometerViewModel extends ViewModel implement
}
@Override
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage) {
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage) {
mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
}
@@ -197,12 +201,12 @@ public class VideodetectionAndAccelerometerViewModel extends ViewModel implement
}
@Override
public void setSensorMassage(String deviceID, int sensorMessage) {
public void setSensorMassage(String deviceID, float sensorMessage) {
mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
}
@Override
public int getSensorMassage(String deviceID) {
public float getSensorMassage(String deviceID) {
return mDeviceRepository.getSensorMassage(deviceID);
}
@@ -74,7 +74,7 @@ public class VideodetectionViewModel extends ViewModel implements ViewModelInter
}
@Override
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage) {
public void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage) {
mDeviceRepository.updateDevice(deviceID, timeStamp, sensorStatus, sensorType, sensorMassage);
}
@@ -119,12 +119,12 @@ public class VideodetectionViewModel extends ViewModel implements ViewModelInter
}
@Override
public void setSensorMassage(String deviceID, int sensorMessage) {
public void setSensorMassage(String deviceID, float sensorMessage) {
mDeviceRepository.setSensorMassage(deviceID, sensorMessage);
}
@Override
public int getSensorMassage(String deviceID) {
public float getSensorMassage(String deviceID) {
return mDeviceRepository.getSensorMassage(deviceID);
}
@@ -11,7 +11,7 @@ public interface ViewModelInterface {
LiveData<List<Device>> getConnectedDeviceList();
LiveData<List<Device>> getAlarmHistoryList();
LiveData<Boolean> getStartAlarmRecording();
void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, int sensorMassage);
void updateDevice(String deviceID, String timeStamp, boolean sensorStatus, String sensorType, float sensorMassage);
void setTimeStamp(String deviceID, String timeStamp);
String getTimeStamp(String deviceID);
void setDeviceID(String deviceID, String newDeviceID);
@@ -20,8 +20,8 @@ public interface ViewModelInterface {
boolean getSensorStatus(String deviceID);
void setSensorType(String deviceID, String sensorType);
String getSensorType(String deviceID);
void setSensorMassage(String deviceID, int sensorMessage);
int getSensorMassage(String deviceID);
void setSensorMassage(String deviceID, float sensorMessage);
float getSensorMassage(String deviceID);
String getLocalDeviceUUID();
String getSystemTimeStamp();
}
+1 -1
View File
@@ -4,5 +4,5 @@
<string name="sensor_status_placeholder">Sensorstatus: %s</string>
<string name="deviceID_placeholder">Sensor-ID: %s</string>
<string name="sensor_time_stamp_placeholder">Timestamp: %s</string>
<string name="sensor_message_placeholder">Sensormessage: %d</string>
<string name="sensor_message_placeholder">Sensormessage: %f</string>
</resources>