Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
be1e52a9b0 | ||
|
|
5b042611a5 | ||
|
|
5a0aab0176 | ||
|
|
5f1f127e62 | ||
|
|
35708220f8 | ||
|
|
415af15cb7 |
@@ -0,0 +1,3 @@
|
|||||||
|
Sensor als Service einrichten, der aus Activity heraus gestartet werden kann.
|
||||||
|
Stichwort: Intent
|
||||||
|
Siehe Skript Teil 1
|
||||||
Binary file not shown.
@@ -12,7 +12,7 @@ abstract public class Detector {
|
|||||||
private boolean extendViolation = false;
|
private boolean extendViolation = false;
|
||||||
|
|
||||||
// Countdown parameters
|
// Countdown parameters
|
||||||
private final int COUNTDOWN_TIME = 5000; // milliseconds
|
private final int COUNTDOWN_TIME = 10000; // milliseconds
|
||||||
private final int COUNTDOWN_POLLING_TIME = 100; // milliseconds
|
private final int COUNTDOWN_POLLING_TIME = 100; // milliseconds
|
||||||
|
|
||||||
/** Constructor - takes context of current activity */
|
/** Constructor - takes context of current activity */
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import android.os.Binder;
|
|||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@@ -27,57 +28,39 @@ public class DetectorService extends LifecycleService {
|
|||||||
public Accelerometer motionDetector = null;
|
public Accelerometer motionDetector = null;
|
||||||
public MicrophoneDetector audioDetector = null;
|
public MicrophoneDetector audioDetector = null;
|
||||||
|
|
||||||
public WifiCommunication wifiCommunication;
|
WifiCommunication wifiCommunication;
|
||||||
|
|
||||||
|
|
||||||
String wifiData;
|
|
||||||
StringBuffer stringBufferWifi = new StringBuffer();
|
|
||||||
|
|
||||||
String typOfAlarm;
|
|
||||||
|
|
||||||
|
String dataFromWifi;
|
||||||
|
StringBuffer stringBufferFromWifi;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||||
if (isServiceRunning)
|
if (isServiceRunning)
|
||||||
return START_NOT_STICKY;
|
return START_NOT_STICKY;
|
||||||
|
|
||||||
/** Wifi Instanz **/
|
|
||||||
wifiCommunication = new WifiCommunication(1234);
|
|
||||||
wifiCommunication.sendTrue("TEst");
|
|
||||||
|
|
||||||
|
/** Wifi Instanz Starten und Listener **/
|
||||||
|
wifiCommunication = new WifiCommunication (1234);
|
||||||
wifiCommunication.setOnConnectionListener(new WifiCommunication.OnConnectionListener() {
|
wifiCommunication.setOnConnectionListener(new WifiCommunication.OnConnectionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onConnection(String data) {
|
public void onConnection(String data) {
|
||||||
Log.d("Listener", data);
|
dataFromWifi = data;
|
||||||
wifiData = data;
|
|
||||||
stringToStringbuffer(data);
|
stringToStringbuffer(data);
|
||||||
Log.d("buffer",stringBufferWifi.toString());
|
|
||||||
passToServiceListener(stringBufferWifi);
|
|
||||||
checkState(data);
|
|
||||||
checkTyp(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** Video Detection/Recorder **/
|
/** Video Detection/Recorder **/
|
||||||
videoDetector = new VideoDetector(this);
|
videoDetector = new VideoDetector(this);
|
||||||
videoDetector.setOnDetectionListener(new Detector.OnDetectionListener() {
|
videoDetector.setOnDetectionListener(new Detector.OnDetectionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDetection(@NonNull DetectionReport detectionReport) {
|
public void onDetection(@NonNull DetectionReport detectionReport) {
|
||||||
//passToServiceListener(detectionReport);
|
//passToServiceListener(detectionReport);
|
||||||
|
Log.d("Video", detectionReport.toMessage());
|
||||||
if(detectionReport.detectionState){
|
|
||||||
videoDetector.startRecording();
|
|
||||||
} else {
|
|
||||||
videoDetector.stopRecording();
|
|
||||||
}
|
|
||||||
|
|
||||||
wifiCommunication.sendTrue(detectionReport.toMessage());
|
wifiCommunication.sendTrue(detectionReport.toMessage());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
/** Motion Detection**/
|
/** Motion Detection**/
|
||||||
@@ -87,6 +70,7 @@ public class DetectorService extends LifecycleService {
|
|||||||
@Override
|
@Override
|
||||||
public void onDetection(@NonNull DetectionReport detectionReport) {
|
public void onDetection(@NonNull DetectionReport detectionReport) {
|
||||||
//passToServiceListener(detectionReport);
|
//passToServiceListener(detectionReport);
|
||||||
|
Log.d("Motion", detectionReport.toMessage());
|
||||||
wifiCommunication.sendTrue(detectionReport.toMessage());
|
wifiCommunication.sendTrue(detectionReport.toMessage());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -96,6 +80,7 @@ public class DetectorService extends LifecycleService {
|
|||||||
@Override
|
@Override
|
||||||
public void onDetection(@NonNull DetectionReport detectionReport) {
|
public void onDetection(@NonNull DetectionReport detectionReport) {
|
||||||
//passToServiceListener(detectionReport);
|
//passToServiceListener(detectionReport);
|
||||||
|
Log.d("Audio", detectionReport.toMessage());
|
||||||
wifiCommunication.sendTrue(detectionReport.toMessage());
|
wifiCommunication.sendTrue(detectionReport.toMessage());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -105,8 +90,6 @@ public class DetectorService extends LifecycleService {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
isServiceRunning = true;
|
isServiceRunning = true;
|
||||||
return super.onStartCommand(intent, flags, startId);
|
return super.onStartCommand(intent, flags, startId);
|
||||||
}
|
}
|
||||||
@@ -148,29 +131,10 @@ public class DetectorService extends LifecycleService {
|
|||||||
this.listener = listener;
|
this.listener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stringToStringbuffer(String string){
|
/** string to stringbuffer **/
|
||||||
if(string != null) {
|
public void stringToStringbuffer(String dataString){
|
||||||
stringBufferWifi.insert(0,string + "\n");
|
stringBufferFromWifi.append(dataString).append("\n");
|
||||||
}
|
passToServiceListener(stringBufferFromWifi);
|
||||||
}
|
|
||||||
|
|
||||||
public String[] splitString(String string){
|
|
||||||
String[] splitrxString = string.split(",");
|
|
||||||
return splitrxString; //splitrxString[0] = "1",splitrxString[1] = "HH:MM:SS", splitrxString[0].equals("1")
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public boolean checkState(String string){
|
|
||||||
Log.d("state", String.valueOf(splitString(string)[4].equals("An")));
|
|
||||||
return splitString(string)[4].equals("An");
|
|
||||||
}
|
|
||||||
|
|
||||||
public String checkTyp(String string){
|
|
||||||
if (splitString(string)[5] != null) {
|
|
||||||
typOfAlarm = splitString(string)[5];
|
|
||||||
Log.d("Type", typOfAlarm);
|
|
||||||
}
|
|
||||||
return typOfAlarm;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class MicrophoneDetector extends Detector {
|
|||||||
private final int channelConfig = AudioFormat.CHANNEL_IN_MONO;
|
private final int channelConfig = AudioFormat.CHANNEL_IN_MONO;
|
||||||
private final int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
|
private final int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
|
||||||
|
|
||||||
private final int startDelay = 2000;
|
private final int startDelay = 20000;
|
||||||
private final int threadSleeptime = 10;
|
private final int threadSleeptime = 10;
|
||||||
private int minPufferGroesseInBytes;
|
private int minPufferGroesseInBytes;
|
||||||
private int pufferGroesseInBytes;
|
private int pufferGroesseInBytes;
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class VideoDetector extends Detector {
|
|||||||
private static final float ALARM_THRESHOLD = 0f; // Percent of pixels changed
|
private static final float ALARM_THRESHOLD = 0f; // Percent of pixels changed
|
||||||
private static final float AREA_THRESHOLD = 10f;
|
private static final float AREA_THRESHOLD = 10f;
|
||||||
private static final int DILATE_ITERATIONS = 2;
|
private static final int DILATE_ITERATIONS = 2;
|
||||||
private static final float START_DELAY = 2000; // milliseconds
|
private static final float START_DELAY = 20000; // milliseconds
|
||||||
private static final android.util.Size IMAGE_RES = new android.util.Size(640, 480);
|
private static final android.util.Size IMAGE_RES = new android.util.Size(640, 480);
|
||||||
|
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ public class VideoDetector extends Detector {
|
|||||||
if (isRecording){
|
if (isRecording){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Toast.makeText(context, "Aufnahme gestartet", Toast.LENGTH_SHORT).show();
|
|
||||||
videoCapture = setupVideoCapture();
|
videoCapture = setupVideoCapture();
|
||||||
|
|
||||||
final ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(context);
|
final ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(context);
|
||||||
@@ -155,12 +155,12 @@ public class VideoDetector extends Detector {
|
|||||||
@Override
|
@Override
|
||||||
public void onVideoSaved(@NonNull VideoCapture.OutputFileResults outputFileResults) {
|
public void onVideoSaved(@NonNull VideoCapture.OutputFileResults outputFileResults) {
|
||||||
isRecording = false;
|
isRecording = false;
|
||||||
Toast.makeText(context, "Aufnahme gespeichert", Toast.LENGTH_SHORT).show();
|
Toast.makeText(context, "video recording saved", Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onError(int videoCaptureError, @NonNull String message, @Nullable Throwable cause) {
|
public void onError(int videoCaptureError, @NonNull String message, @Nullable Throwable cause) {
|
||||||
isRecording = false;
|
isRecording = false;
|
||||||
Toast.makeText(context, "Aufnahme fehlgeschlagen", Toast.LENGTH_SHORT).show();
|
Toast.makeText(context, "video recording failed", Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,26 +1,20 @@
|
|||||||
package com.example.ueberwachungssystem.Fragments;
|
package com.example.ueberwachungssystem.Fragments;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.VideoView;
|
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.example.ueberwachungssystem.R;
|
import com.example.ueberwachungssystem.R;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
|
|
||||||
public class Fragment1 extends Fragment {
|
public class Fragment1 extends Fragment {
|
||||||
private String text;
|
private String text;
|
||||||
|
|
||||||
private final static String KEY_TEXT = "KEY_TEXT";
|
private final static String KEY_TEXT = "KEY_TEXT";
|
||||||
|
|
||||||
private void log(String nachricht) {
|
private void log(String nachricht) {
|
||||||
Log.d(this.getClass().getSimpleName(), nachricht);
|
Log.d(this.getClass().getSimpleName(), nachricht);
|
||||||
}
|
}
|
||||||
@@ -29,7 +23,7 @@ public class Fragment1 extends Fragment {
|
|||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
|
||||||
log("onCreateView");
|
log("onCreateView");
|
||||||
View view = inflater.inflate(R.layout.fragment1, container, false);
|
View view = inflater.inflate(R.layout.fragment1, container, false);
|
||||||
TextView Sensor = (TextView) view.findViewById(R.id.Alarm);
|
TextView Sensor = (TextView) view.findViewById(R.id.Sensor);
|
||||||
Sensor.setText(text);
|
Sensor.setText(text);
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
@@ -40,16 +34,9 @@ public class Fragment1 extends Fragment {
|
|||||||
fragment.setArguments(b);
|
fragment.setArguments(b);
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
public static Fragment1 aktualisieren(String text){
|
|
||||||
Fragment1 fragment = new Fragment1();
|
|
||||||
Bundle b = new Bundle();
|
|
||||||
b.putString(KEY_TEXT, text);
|
|
||||||
fragment.setArguments(b);
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle bundle) {
|
public void onCreate(Bundle bundle) {
|
||||||
super.onCreate(bundle);
|
super .onCreate(bundle);
|
||||||
Bundle args = getArguments();
|
Bundle args = getArguments();
|
||||||
if (args != null ) {
|
if (args != null ) {
|
||||||
text = args.getString(KEY_TEXT);
|
text = args.getString(KEY_TEXT);
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.example.ueberwachungssystem.Fragments;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import com.example.ueberwachungssystem.R;
|
||||||
|
|
||||||
|
public class Fragment2 extends Fragment {
|
||||||
|
private String text;
|
||||||
|
private final static String KEY_TEXT = "KEY_TEXT" ;
|
||||||
|
private void log(String nachricht) {
|
||||||
|
Log.d(this.getClass().getSimpleName(), nachricht);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
|
||||||
|
log( "onCreateView" );
|
||||||
|
View view = inflater.inflate(R.layout.fragment2, container, false );
|
||||||
|
TextView Sensor = (TextView) view.findViewById(R.id.Sensor);
|
||||||
|
Sensor.setText(text);
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
public static Fragment2 erstellen(String text) {
|
||||||
|
Fragment2 fragment = new Fragment2();
|
||||||
|
Bundle b = new Bundle();
|
||||||
|
b.putString(KEY_TEXT, text);
|
||||||
|
fragment.setArguments(b);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle bundle) {
|
||||||
|
super.onCreate(bundle);
|
||||||
|
Bundle args = getArguments();
|
||||||
|
if (args != null) {
|
||||||
|
text = args.getString(KEY_TEXT);
|
||||||
|
log("onCreate: text=" + text);
|
||||||
|
} else {
|
||||||
|
log("onCreate");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,58 +1,42 @@
|
|||||||
package com.example.ueberwachungssystem.Fragments;
|
package com.example.ueberwachungssystem.Fragments;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.example.ueberwachungssystem.R;
|
import com.example.ueberwachungssystem.R;
|
||||||
|
|
||||||
public class Fragment3 extends Fragment {
|
public class Fragment3 extends Fragment {
|
||||||
|
|
||||||
private OnImageViewReadyListener onImageViewReadyListener;
|
|
||||||
private String text;
|
private String text;
|
||||||
public static ImageView ivp;
|
private final static String KEY_TEXT = "KEY_TEXT" ;
|
||||||
private final static String KEY_TEXT = "KEY_TEXT";
|
|
||||||
private void log(String nachricht) {
|
private void log(String nachricht) {
|
||||||
Log.d(this.getClass().getSimpleName(), nachricht);
|
Log.d(this.getClass().getSimpleName(), nachricht);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
|
||||||
log("onCreateView");
|
log( "onCreateView" );
|
||||||
View view = inflater.inflate(R.layout.fragment3, container, false);
|
View view = inflater.inflate(R.layout.fragment2, container, false );
|
||||||
if (onImageViewReadyListener != null) {
|
TextView Sensor = (TextView) view.findViewById(R.id.Sensor);
|
||||||
ImageView ivp = (ImageView) view.findViewById(R.id.Video);
|
Sensor.setText(text);
|
||||||
ImageView ivp2 = (ImageView) view.findViewById(R.id.Video2);
|
|
||||||
onImageViewReadyListener.onImageViewReady(ivp, ivp2);
|
|
||||||
}
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
public static Fragment3 erstellen(View view) {
|
public static Fragment3 erstellen(String text) {
|
||||||
Fragment3 fragment = new Fragment3();
|
Fragment3 fragment = new Fragment3();
|
||||||
|
Bundle b = new Bundle();
|
||||||
|
b.putString(KEY_TEXT, text);
|
||||||
|
fragment.setArguments(b);
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
public interface OnImageViewReadyListener {
|
|
||||||
void onImageViewReady(ImageView imageView, ImageView imageView2);
|
|
||||||
}
|
|
||||||
public void onAttach(Context context) {
|
|
||||||
super.onAttach(context);
|
|
||||||
try {
|
|
||||||
onImageViewReadyListener = (OnImageViewReadyListener) context;
|
|
||||||
} catch (ClassCastException e) {
|
|
||||||
throw new ClassCastException(context.toString() + " must implement OnImageViewReadyListener");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle bundle) {
|
public void onCreate(Bundle bundle) {
|
||||||
super.onCreate(bundle);
|
super.onCreate(bundle);
|
||||||
Bundle args = getArguments();
|
Bundle args = getArguments();
|
||||||
if (args != null ) {
|
if (args != null) {
|
||||||
text = args.getString(KEY_TEXT);
|
text = args.getString(KEY_TEXT);
|
||||||
log("onCreate: text=" + text);
|
log("onCreate: text=" + text);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,104 +0,0 @@
|
|||||||
package com.example.ueberwachungssystem.Fragments;
|
|
||||||
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Gravity;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.MotionEvent;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.AdapterView;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.ListView;
|
|
||||||
import android.widget.PopupWindow;
|
|
||||||
import android.widget.Toast;
|
|
||||||
import android.widget.VideoView;
|
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import com.example.ueberwachungssystem.R;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class VideoListFragment extends Fragment {
|
|
||||||
|
|
||||||
private ListView listView;
|
|
||||||
private Button button;
|
|
||||||
private ArrayAdapter<String> adapter;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
|
||||||
View rootView = inflater.inflate(R.layout.videolist_fragment, container, false);
|
|
||||||
|
|
||||||
|
|
||||||
button = rootView.findViewById(R.id.button);
|
|
||||||
button.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
File dir = getContext().getFilesDir();
|
|
||||||
File[] files = dir.listFiles();
|
|
||||||
for (File file: files) {
|
|
||||||
file.delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
listView = rootView.findViewById(R.id.listView);
|
|
||||||
adapter = new ArrayAdapter<>(requireContext(), android.R.layout.simple_list_item_1, getFileNames());
|
|
||||||
listView.setAdapter(adapter);
|
|
||||||
|
|
||||||
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
||||||
// Handle item click event here
|
|
||||||
String selectedItem = getContext().getFilesDir().toString() + "/" + adapter.getItem(position);
|
|
||||||
//Toast.makeText(requireContext(), selectedItem, Toast.LENGTH_SHORT).show();
|
|
||||||
|
|
||||||
openVideoPopup(selectedItem);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return rootView;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<String> getFileNames() {
|
|
||||||
// Add your data source here, e.g., an array or a list
|
|
||||||
File dir = getContext().getFilesDir();
|
|
||||||
File[] files = dir.listFiles();
|
|
||||||
Log.d("files", getContext().getFilesDir().toString());
|
|
||||||
|
|
||||||
|
|
||||||
List<String> fileNamesList = new ArrayList<>();
|
|
||||||
assert files != null;
|
|
||||||
for (File file : files) {
|
|
||||||
fileNamesList.add(file.getName());
|
|
||||||
}
|
|
||||||
return fileNamesList;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void openVideoPopup(String videoPath) {
|
|
||||||
LayoutInflater inflater = LayoutInflater.from(requireContext());
|
|
||||||
View popupView = inflater.inflate(R.layout.videolist_popup, null);
|
|
||||||
|
|
||||||
VideoView videoView = popupView.findViewById(R.id.videoView);
|
|
||||||
videoView.setVideoPath(videoPath);
|
|
||||||
videoView.start();
|
|
||||||
|
|
||||||
PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, true);
|
|
||||||
|
|
||||||
popupView.setOnTouchListener(new View.OnTouchListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onTouch(View v, MotionEvent event) {
|
|
||||||
//Close the window when clicked
|
|
||||||
popupWindow.dismiss();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
popupWindow.showAtLocation(listView, Gravity.CENTER, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package com.example.ueberwachungssystem.Logger;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
import java.io.StringWriter;
|
||||||
|
|
||||||
|
public class Logger {
|
||||||
|
private TextView textView;
|
||||||
|
private StringBuffer sb = new StringBuffer();
|
||||||
|
private String tag;
|
||||||
|
|
||||||
|
public Logger(String tag, TextView textView, String logInitText) {
|
||||||
|
this.tag = tag;
|
||||||
|
this.textView = textView;
|
||||||
|
sb.append(logInitText);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void log(String s) {
|
||||||
|
Log.d(tag, s);
|
||||||
|
sb.append(s).append("\n");
|
||||||
|
if (textView != null) {
|
||||||
|
textView.setText(sb.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void log(Exception e) {
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
e.printStackTrace(new PrintWriter(sw));
|
||||||
|
log(sw.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearLog() {
|
||||||
|
sb.setLength(0);
|
||||||
|
if (textView != null) {
|
||||||
|
textView.setText("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLoggedText() {
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,170 +1,81 @@
|
|||||||
package com.example.ueberwachungssystem;
|
package com.example.ueberwachungssystem;
|
||||||
|
|
||||||
import androidx.camera.core.ExperimentalGetImage;
|
import static android.content.ContentValues.TAG;
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.fragment.app.FragmentTransaction;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
|
import android.net.wifi.WifiInfo;
|
||||||
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.net.wifi.WifiInfo;
|
||||||
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
import android.widget.Toast;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import android.widget.ToggleButton;
|
import android.widget.ToggleButton;
|
||||||
|
|
||||||
import com.example.ueberwachungssystem.Fragments.Fragment1;
|
import androidx.annotation.NonNull;
|
||||||
import com.example.ueberwachungssystem.Detection.DetectorService;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import com.example.ueberwachungssystem.Fragments.Fragment3;
|
import androidx.camera.core.ExperimentalGetImage;
|
||||||
import com.example.ueberwachungssystem.Fragments.VideoListFragment;
|
|
||||||
|
|
||||||
import java.util.OptionalInt;
|
import com.example.ueberwachungssystem.Detection.DetectionReport;
|
||||||
|
import com.example.ueberwachungssystem.Detection.DetectorService;
|
||||||
|
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.nio.ByteOrder;
|
||||||
|
|
||||||
@ExperimentalGetImage
|
@ExperimentalGetImage
|
||||||
public class MainActivity extends AppCompatActivity implements Fragment3.OnImageViewReadyListener{
|
public class MainActivity extends AppCompatActivity {
|
||||||
//StringBuffer
|
|
||||||
private StringBuffer messageBuffer = new StringBuffer();
|
|
||||||
|
|
||||||
//Fragmente
|
//WifiCommunication communication;
|
||||||
private Fragment aktuellesFragment;
|
PermissionRequest permission;
|
||||||
private Fragment fragment1_;
|
boolean communicationRunning = true;
|
||||||
private Fragment fragment2_;
|
TextView textview1;
|
||||||
private Fragment fragment3_;
|
|
||||||
|
|
||||||
private Fragment1 fragment1;
|
|
||||||
private Fragment3 fragment3;
|
|
||||||
|
|
||||||
private ImageView fragmentImage;
|
|
||||||
private ImageView fragmentImage2;
|
|
||||||
private VideoListFragment videoListFragment = new VideoListFragment();
|
|
||||||
private DetectorService detectorService = new DetectorService();
|
private DetectorService detectorService = new DetectorService();
|
||||||
int num = 0;
|
|
||||||
//Textviews
|
|
||||||
private TextView Auswahl;
|
|
||||||
private TextView AoderA;
|
|
||||||
private String auswahltext = "Wahl des Detektionsmodus";
|
|
||||||
private String auswahlAoderA = "Wahl von Alarmmeldungen oder Auswahl von Alarmaufzeichnungen";
|
|
||||||
//Buttons
|
|
||||||
private ToggleButton toggleKamera;
|
|
||||||
private ToggleButton toggleAudio;
|
|
||||||
private ToggleButton toggleBewegung;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setTitle("Supervision");
|
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
Auswahl = findViewById(R.id.textAuswahl);
|
|
||||||
Auswahl.setText(auswahltext);
|
|
||||||
AoderA = findViewById(R.id.textAoderA);
|
|
||||||
AoderA.setText(auswahlAoderA);
|
|
||||||
toggleKamera = findViewById(R.id.toggleKamera);
|
|
||||||
toggleAudio = findViewById(R.id.toggleAudio);
|
|
||||||
toggleBewegung = findViewById(R.id.toggleBewegung);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
|
|
||||||
PermissionHandler permissionHandler = new PermissionHandler(this);
|
|
||||||
//permissionHandler.getPermissions();
|
|
||||||
if (permissionHandler.hasPermissions()) {
|
|
||||||
|
|
||||||
Intent serviceIntent = new Intent(this, DetectorService.class);
|
Intent serviceIntent = new Intent(this, DetectorService.class);
|
||||||
bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE);
|
bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE);
|
||||||
startService(serviceIntent);
|
startService(serviceIntent);
|
||||||
|
ToggleButton button1 = findViewById(R.id.toggleButton);
|
||||||
toggleKamera.setOnClickListener(new View.OnClickListener() {
|
button1.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (toggleKamera.isChecked()) {
|
if(button1.isChecked()){
|
||||||
if(detectorService != null) {
|
if(detectorService != null){
|
||||||
detectorService.videoDetector.startDetection();
|
detectorService.videoDetector.startDetection();
|
||||||
}
|
}
|
||||||
} else {
|
}else{
|
||||||
if(detectorService != null) {
|
|
||||||
detectorService.videoDetector.stopDetection();
|
detectorService.videoDetector.stopDetection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
toggleAudio.setOnClickListener(new View.OnClickListener() {
|
//textview1 = findViewById(R.id.textView1);
|
||||||
|
|
||||||
|
//Button button1 = findViewById(R.id.buttonSend);
|
||||||
|
/*button1.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (toggleAudio.isChecked()) {
|
communication.sendTrue("Testmessage");
|
||||||
if(detectorService != null) {
|
|
||||||
detectorService.audioDetector.startDetection();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(detectorService != null) {
|
|
||||||
detectorService.audioDetector.stopDetection();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
toggleBewegung.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
if (toggleBewegung.isChecked()) {
|
|
||||||
if(detectorService != null) {
|
|
||||||
detectorService.motionDetector.startDetection();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(detectorService != null) {
|
|
||||||
detectorService.motionDetector.stopDetection();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}else{
|
|
||||||
Toast.makeText(this,"Bitte Rechte geben", Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
|
||||||
getMenuInflater().inflate(R.menu.options_menu, menu);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
Toast.makeText(this, "Selected Item: " + item.getTitle(), Toast.LENGTH_SHORT).show();
|
|
||||||
PopUpClass popUpClass;
|
|
||||||
switch (item.getItemId()) {
|
|
||||||
case R.id.Rechteverwaltung:
|
|
||||||
popUpClass = new PopUpClass(MainActivity.this);
|
|
||||||
popUpClass.showPopupWindow(toggleAudio);
|
|
||||||
popUpClass.RechtePrüfen();
|
|
||||||
return true;
|
|
||||||
case R.id.Sensoren:
|
|
||||||
popUpClass = new PopUpClass(MainActivity.this);
|
|
||||||
popUpClass.showPopupWindow(toggleAudio);
|
|
||||||
popUpClass.Sensoren();
|
|
||||||
return true;
|
|
||||||
case R.id.Impressum:
|
|
||||||
popUpClass = new PopUpClass(MainActivity.this);
|
|
||||||
popUpClass.showPopupWindow(toggleAudio);
|
|
||||||
popUpClass.Impressum();
|
|
||||||
return true;
|
|
||||||
case R.id.Detection:
|
|
||||||
popUpClass = new PopUpClass(MainActivity.this);
|
|
||||||
popUpClass.showPopupWindow(toggleAudio);
|
|
||||||
popUpClass.DetectionTotal(num);
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
}
|
||||||
|
});*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private ServiceConnection serviceConnection = new ServiceConnection() {
|
private ServiceConnection serviceConnection = new ServiceConnection() {
|
||||||
@@ -175,59 +86,73 @@ public class MainActivity extends AppCompatActivity implements Fragment3.OnImage
|
|||||||
|
|
||||||
detectorService.setOnDetectionListener(new DetectorService.OnDetectionListener() {
|
detectorService.setOnDetectionListener(new DetectorService.OnDetectionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDetection(@NonNull StringBuffer stringBuffer) {
|
public void onDetection(StringBuffer stringBuffer) {
|
||||||
Log.d("onDetection", stringBuffer.toString()); //Für oli hier Textview einbauen
|
//textview für oli
|
||||||
num = stringBuffer.toString().split("\n").length;
|
Log.d("Debugger", stringBuffer.toString());
|
||||||
messageBuffer = stringBuffer;
|
|
||||||
if ((aktuellesFragment == fragment1_) && (aktuellesFragment != null)) {
|
|
||||||
Log.d("Fragment", aktuellesFragment.toString() + " " + fragment1_.toString());
|
|
||||||
fragment1_ = zeigeFragment(fragment1.erstellen(messageBuffer.toString()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onServiceDisconnected(ComponentName name) {
|
public void onServiceDisconnected(ComponentName name) {
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@Override
|
||||||
public void onClickZeigeFragment1(View view) {
|
protected void onResume() {
|
||||||
Button button = (Button) view;
|
super.onResume();
|
||||||
fragment1_ = zeigeFragment(fragment1.erstellen(messageBuffer.toString()));
|
/*if (communicationRunning){
|
||||||
|
communication = new WifiCommunication(1234);
|
||||||
|
communication.setOnConnectionListener(new WifiCommunication.OnConnectionListener() {
|
||||||
|
@Override
|
||||||
|
public void onConnection(String data) {
|
||||||
|
//Log.d("Test", data.toString());
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
textview1.setText(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
communicationRunning = false;
|
||||||
|
}*/
|
||||||
|
permission = new PermissionRequest(MainActivity.this);
|
||||||
|
permission.rechtePruefen();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onClickZeigeFragment2(View view) {
|
@Override
|
||||||
Button button = (Button) view;
|
protected void onPause() {
|
||||||
//zeigeFragment(fragment2.erstellen("Hier stehen dann die Videos"));
|
super.onPause();
|
||||||
fragment2_ = zeigeFragment(videoListFragment);
|
//communication.stopCommunication();
|
||||||
}
|
}
|
||||||
public void onClickZeigeFragment3(View view) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
Button button = (Button) view;
|
getMenuInflater().inflate(R.menu.options_menu, menu);
|
||||||
fragment3_ = zeigeFragment(fragment3.erstellen(view));
|
return true;
|
||||||
}
|
}
|
||||||
public void onImageViewReady(ImageView imageView, ImageView imageView2) {
|
/*public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
fragmentImage = imageView;
|
Toast.makeText(this, "Selected Item: " + item.getTitle(), Toast.LENGTH_SHORT).show();
|
||||||
fragmentImage2 = imageView2;
|
PopUpClass popUpClass;
|
||||||
detectorService.videoDetector.debugProcessing(fragmentImage, fragmentImage2); //inputImageView
|
switch (item.getItemId()) {
|
||||||
|
case R.id.Rechteverwaltung:
|
||||||
|
popUpClass = new PopUpClass(MainActivity.this);
|
||||||
|
popUpClass.showPopupWindow(textview1);
|
||||||
|
popUpClass.RechtePrüfen();
|
||||||
|
return true;
|
||||||
|
case R.id.Sensoren:
|
||||||
|
popUpClass = new PopUpClass(MainActivity.this);
|
||||||
|
popUpClass.showPopupWindow(textview1);
|
||||||
|
popUpClass.Sensoren();
|
||||||
|
return true;
|
||||||
|
case R.id.Impressum:
|
||||||
|
popUpClass = new PopUpClass(MainActivity.this);
|
||||||
|
popUpClass.showPopupWindow(textview1);
|
||||||
|
popUpClass.Impressum();
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
public void onClickEntferneFragment(View view) {
|
|
||||||
entferneFragment();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Fragment zeigeFragment(Fragment fragment) {
|
|
||||||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
|
||||||
ft.replace(R.id.frame, fragment);
|
|
||||||
ft.commit();
|
|
||||||
aktuellesFragment = fragment;
|
|
||||||
return aktuellesFragment;
|
|
||||||
}
|
|
||||||
private void entferneFragment() {
|
|
||||||
if (aktuellesFragment != null) {
|
|
||||||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
|
||||||
ft.remove(aktuellesFragment);
|
|
||||||
ft.commit();
|
|
||||||
aktuellesFragment = null ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class PermissionRequest extends AppCompatActivity{
|
|||||||
handler.post(new Runnable() {
|
handler.post(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
Toast.makeText(mainActivity.getApplicationContext(),"Es werden Rechte benötigt", Toast.LENGTH_SHORT).show();
|
Toast.makeText(mainActivity.getApplicationContext(),"Es werden Rechte benötigt", Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ public class PopUpClass {
|
|||||||
PermissionRequest permission;
|
PermissionRequest permission;
|
||||||
TextView PopUpText;
|
TextView PopUpText;
|
||||||
|
|
||||||
Button buttonEdit;
|
|
||||||
|
|
||||||
|
|
||||||
public PopUpClass(MainActivity mainActivity) {
|
public PopUpClass(MainActivity mainActivity) {
|
||||||
this.mainActivity = mainActivity;
|
this.mainActivity = mainActivity;
|
||||||
@@ -49,11 +47,10 @@ public class PopUpClass {
|
|||||||
|
|
||||||
PopUpText = popupView.findViewById(R.id.titleText);
|
PopUpText = popupView.findViewById(R.id.titleText);
|
||||||
|
|
||||||
buttonEdit = popupView.findViewById(R.id.RechteAnfordern);
|
Button buttonEdit = popupView.findViewById(R.id.RechteAnfordern);
|
||||||
buttonEdit.setOnClickListener(new View.OnClickListener() {
|
buttonEdit.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {RechteAnfordern();
|
||||||
RechteAnfordern();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -72,25 +69,17 @@ public class PopUpClass {
|
|||||||
public void RechtePrüfen(){
|
public void RechtePrüfen(){
|
||||||
StringBuilder Text = permission.rechtePruefen();
|
StringBuilder Text = permission.rechtePruefen();
|
||||||
PopUpText.setText(Text);
|
PopUpText.setText(Text);
|
||||||
buttonEdit.setVisibility(View.VISIBLE);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
public void RechteAnfordern(){
|
public void RechteAnfordern(){
|
||||||
permission.rechteAnfordern();
|
permission.rechteAnfordern();
|
||||||
StringBuilder Text = permission.rechtePruefen();
|
StringBuilder Text = permission.rechtePruefen();
|
||||||
PopUpText.setText(Text);
|
PopUpText.setText(Text);
|
||||||
|
|
||||||
}
|
}
|
||||||
public void Sensoren(){
|
public void Sensoren(){
|
||||||
PopUpText.setText("Es können 3 verschiedene Sensoren verwendet werden \n -1. Beschleunigungssensor\n -2. Mikrofon\n -3. Kamera\n Diese können sowohl einzeln als auch alle zusammen verwendet werden");
|
PopUpText.setText("Es können 3 verschiedene Sensoren verwendet werden \n -1. Beschleunigungssensor\n -2. Mikrofon\n -3. Kamera");
|
||||||
buttonEdit.setVisibility(View.GONE);
|
|
||||||
}
|
}
|
||||||
public void Impressum(){
|
public void Impressum(){
|
||||||
PopUpText.setText("Die Ueberwachungsapp wurde im Rahmen eines Praktikums der TH-Nürnberg programmiert \n Von: \n -Kohler Bastian\n -Kleinecke Oliver\n -Market Leon\n -Siebenhaar Miguel\n -Wolz Tobias ");
|
PopUpText.setText("Die Ueberwachungsapp wurde im Rahmen eines Praktikums der TH-Nürnberg programmiert");
|
||||||
buttonEdit.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
public void DetectionTotal(int num) {
|
|
||||||
PopUpText.setText("Total Detektions:" +num);
|
|
||||||
buttonEdit.setVisibility(View.GONE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -31,11 +31,6 @@ public class WifiCommunication {
|
|||||||
private final DatagramSocket socket;
|
private final DatagramSocket socket;
|
||||||
volatile private boolean running;
|
volatile private boolean running;
|
||||||
|
|
||||||
private boolean Gruppe =true;
|
|
||||||
private boolean showMessage = true;
|
|
||||||
|
|
||||||
StringBuffer rxStringBuffer = new StringBuffer();
|
|
||||||
|
|
||||||
private OnConnectionListener listener;
|
private OnConnectionListener listener;
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
public WifiCommunication(int port) {
|
public WifiCommunication(int port) {
|
||||||
@@ -66,11 +61,11 @@ public class WifiCommunication {
|
|||||||
public void sendWifiData(String wifiMessage) {
|
public void sendWifiData(String wifiMessage) {
|
||||||
if (listener != null) {
|
if (listener != null) {
|
||||||
listener.onConnection(wifiMessage);
|
listener.onConnection(wifiMessage);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ReceiveThread extends Thread {
|
private class ReceiveThread extends Thread {
|
||||||
|
private StringBuffer rxStringBuffer = new StringBuffer();
|
||||||
private String rxString="";
|
private String rxString="";
|
||||||
private String previousRxString = "";
|
private String previousRxString = "";
|
||||||
|
|
||||||
@@ -83,31 +78,14 @@ public class WifiCommunication {
|
|||||||
socket.receive(rxPacket);
|
socket.receive(rxPacket);
|
||||||
rxString = new String(receiveData, 0, rxPacket.getLength());
|
rxString = new String(receiveData, 0, rxPacket.getLength());
|
||||||
String[] splitrxString = rxString.split(",");
|
String[] splitrxString = rxString.split(",");
|
||||||
String[] splitrxStringBuffer = splitBufferIntoStrings(rxStringBuffer);
|
|
||||||
for(String elem: splitrxStringBuffer){
|
|
||||||
if(elem.equals(rxString)){
|
|
||||||
showMessage = false;
|
|
||||||
}else{
|
|
||||||
showMessage = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(Gruppe){
|
|
||||||
if(!previousRxString.equals(rxString) && splitrxString[0].equals("1") && splitrxString.length==7 && showMessage) {
|
|
||||||
rxStringBuffer.append(rxString).append("\n");
|
|
||||||
Log.d("empfangen", rxString);
|
Log.d("empfangen", rxString);
|
||||||
|
if(!previousRxString.equals(rxString) && splitrxString[0].equals("1") && splitrxString.length==7) {
|
||||||
|
//rxStringBuffer.append(rxString).append("\n");
|
||||||
sendWifiData(rxString);
|
sendWifiData(rxString);
|
||||||
|
|
||||||
//mainActivity.runOnUiThread(() -> mainActivity.tvMessages.setText(rxStringBuffer));
|
//mainActivity.runOnUiThread(() -> mainActivity.tvMessages.setText(rxStringBuffer));
|
||||||
previousRxString = rxString;
|
previousRxString = rxString;
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
if(!previousRxString.equals(rxString) && splitrxString[0].equals("1") && splitrxString.length==7 && showMessage) {
|
|
||||||
rxStringBuffer.append(rxString).append("\n");
|
|
||||||
Log.d("empfangen", rxString);
|
|
||||||
sendWifiData(rxString);
|
|
||||||
//mainActivity.runOnUiThread(() -> mainActivity.tvMessages.setText(rxStringBuffer));
|
|
||||||
previousRxString = rxString;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} while (running);
|
} while (running);
|
||||||
}
|
}
|
||||||
catch (IOException e) {
|
catch (IOException e) {
|
||||||
@@ -124,18 +102,15 @@ public class WifiCommunication {
|
|||||||
if(send)
|
if(send)
|
||||||
{
|
{
|
||||||
send = false;
|
send = false;
|
||||||
/*SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
|
|
||||||
Date curDate = new Date(System.currentTimeMillis());
|
|
||||||
String str = formatter.format(curDate);*/
|
|
||||||
byte[] send_Data = new byte[512];
|
byte[] send_Data = new byte[512];
|
||||||
String txString = (messageToSend); //"1," +str+ ",Gruppe2," + getLocalIpAddress() + ",An,Video,"
|
String txString = (messageToSend);
|
||||||
Log.d("send", txString);
|
|
||||||
send_Data = txString.getBytes();
|
send_Data = txString.getBytes();
|
||||||
|
|
||||||
DatagramPacket txPacket = new DatagramPacket(send_Data, txString.length(), address, port);
|
DatagramPacket txPacket = new DatagramPacket(send_Data, txString.length(), address, port);
|
||||||
|
|
||||||
for(int i = 0; i < 500; i++) {
|
for(int i = 0; i < 500; i++) {
|
||||||
socket.send(txPacket);
|
socket.send(txPacket);
|
||||||
|
Log.d("senden", txPacket.getData().toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (running);
|
} while (running);
|
||||||
@@ -169,8 +144,4 @@ public class WifiCommunication {
|
|||||||
running = false;
|
running = false;
|
||||||
socket.close();
|
socket.close();
|
||||||
}
|
}
|
||||||
public String[] splitBufferIntoStrings(StringBuffer string){
|
|
||||||
String[] splitrxString2 = string.toString().split("\n");
|
|
||||||
return splitrxString2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<item android:state_checked="false" android:drawable="@color/redbright" />
|
|
||||||
<item android:state_checked="true" android:drawable="@color/greenbright" />
|
|
||||||
</selector>
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
@@ -1,133 +1,41 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="#010C49"
|
android:layout_gravity="center"
|
||||||
android:visibility="visible"
|
android:gravity="top"
|
||||||
tools:context="com.example.ueberwachungssystem.MainActivity"
|
android:orientation="vertical"
|
||||||
tools:visibility="visible">
|
tools:context=".MainActivity">
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/textAuswahl"
|
<androidx.camera.view.PreviewView
|
||||||
|
android:id="@+id/previewView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentTop="true"
|
android:backgroundTint="@android:color/black"/>
|
||||||
android:layout_alignParentLeft="true"
|
|
||||||
android:textSize="20sp"
|
|
||||||
android:textColor="@color/white"/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/textAoderA"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_below="@+id/toggleAudio"
|
|
||||||
android:layout_alignParentLeft="true"
|
|
||||||
android:layout_marginTop="15dp"
|
|
||||||
android:textSize="20sp"
|
|
||||||
android:textColor="@color/white"/>
|
|
||||||
|
|
||||||
<ToggleButton
|
<ToggleButton
|
||||||
android:id="@+id/toggleKamera"
|
android:id="@+id/toggleButton"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignBottom="@id/toggleAudio"
|
|
||||||
android:layout_marginRight="30dp"
|
|
||||||
android:layout_toLeftOf="@id/toggleAudio"
|
|
||||||
android:textColor="@color/yellow"
|
|
||||||
android:textOn="Kamera an"
|
|
||||||
android:textOff="Kamera aus"
|
|
||||||
android:background="@drawable/toggle_btn"/>
|
|
||||||
|
|
||||||
<ToggleButton
|
|
||||||
android:id="@+id/toggleAudio"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_below="@id/textAuswahl"
|
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:layout_marginTop="5dp"
|
|
||||||
android:textColor="@color/yellow"
|
|
||||||
android:textOn="Audio an"
|
|
||||||
android:textOff="Audio aus"
|
|
||||||
android:background="@drawable/toggle_btn"/>
|
|
||||||
|
|
||||||
<ToggleButton
|
|
||||||
android:id="@+id/toggleBewegung"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignBottom="@id/toggleAudio"
|
|
||||||
android:layout_marginLeft="30dp"
|
|
||||||
android:layout_toEndOf="@+id/toggleAudio"
|
|
||||||
android:layout_toRightOf="@id/toggleAudio"
|
|
||||||
android:textColor="@color/yellow"
|
|
||||||
android:textOn="Bewegung an"
|
|
||||||
android:textOff="Bewegung aus"
|
|
||||||
android:background="@drawable/toggle_btn"/>
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/btnAlarme"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignBottom="@+id/btnAufnahmen"
|
|
||||||
android:layout_toLeftOf="@id/btnAufnahmen"
|
|
||||||
android:layout_marginRight="15dp"
|
|
||||||
android:theme="@style/Button.Green"
|
|
||||||
android:onClick="onClickZeigeFragment1"
|
|
||||||
android:text="Alarme" />
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/btnAufnahmen"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_below="@+id/textAoderA"
|
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:layout_marginTop="15dp"
|
|
||||||
android:theme="@style/Button.Green"
|
|
||||||
android:onClick="onClickZeigeFragment2"
|
|
||||||
android:text="Aufnahmen" />
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/btnAnzeigeVerb"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignBottom="@+id/btnAufnahmen"
|
|
||||||
android:layout_toRightOf="@id/btnAufnahmen"
|
|
||||||
android:layout_marginLeft="15dp"
|
|
||||||
android:text="Live Video"
|
|
||||||
android:onClick="onClickZeigeFragment3"/>
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/frame"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/btnAufnahmen"
|
android:text="ToggleButton" />
|
||||||
android:layout_marginTop="25dp"
|
|
||||||
android:layout_alignParentStart="true"
|
|
||||||
android:background="@color/white">
|
|
||||||
</FrameLayout>
|
|
||||||
|
|
||||||
<!--
|
<ImageView
|
||||||
<ScrollView
|
android:id="@+id/inputImageView"
|
||||||
android:id="@+id/scrollView1"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_below="@id/btnAufnahmen"
|
|
||||||
android:layout_marginTop="25dp">
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/Alarm"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/red"/>
|
tools:srcCompat="@tools:sample/avatars" />
|
||||||
</LinearLayout>
|
|
||||||
</ScrollView>
|
|
||||||
-->
|
|
||||||
<ListView
|
|
||||||
android:id = "@+id/listView"
|
|
||||||
android:layout_width = "wrap_content"
|
|
||||||
android:layout_height = "wrap_content"/>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
<ImageView
|
||||||
|
android:id="@+id/outputImageView"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
tools:srcCompat="@tools:sample/avatars" />
|
||||||
|
|
||||||
|
<androidx.camera.view.PreviewView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
@@ -4,23 +4,19 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:background="@color/bluedark">
|
android:background="@android:color/holo_green_light">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/Sensor"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
||||||
|
|
||||||
<ScrollView
|
|
||||||
android:id="@+id/scrollView1"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_marginTop="25dp">
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/Alarm"
|
android:id="@+id/Alarm"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textColor="@color/yellow"/>
|
android:layout_below="@id/Sensor"
|
||||||
</LinearLayout>
|
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
||||||
</ScrollView>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
@@ -6,28 +6,17 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:background="@android:color/holo_blue_light" >
|
android:background="@android:color/holo_blue_light" >
|
||||||
|
|
||||||
<ScrollView
|
|
||||||
android:id="@+id/scrollView2"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="250dp"
|
|
||||||
android:layout_marginTop="25dp">
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/Aufzeichnungen"
|
android:id="@+id/Sensor"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textColor="@color/yellow"/>
|
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
||||||
</LinearLayout>
|
|
||||||
</ScrollView>
|
|
||||||
|
|
||||||
<VideoView
|
<TextView
|
||||||
android:id="@+id/AusAuf"
|
android:id="@+id/Alarm"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@id/scrollView2"
|
android:layout_below="@id/Sensor"
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -4,21 +4,19 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:background="@color/bluedark">
|
android:background="@android:color/holo_blue_light" >
|
||||||
|
|
||||||
<ImageView
|
<TextView
|
||||||
android:id="@+id/Video"
|
android:id="@+id/Sensor"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
||||||
android:rotation="90">
|
|
||||||
</ImageView>
|
<TextView
|
||||||
<ImageView
|
android:id="@+id/Alarm"
|
||||||
android:id="@+id/Video2"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_below="@id/Sensor"
|
||||||
android:rotation="90">
|
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
||||||
</ImageView>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
android:paddingLeft="10dp"
|
android:paddingLeft="10dp"
|
||||||
android:paddingRight="10dp"
|
android:paddingRight="10dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:background="#010C49">
|
android:background="#A5ACB2">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/titleText"
|
android:id="@+id/titleText"
|
||||||
@@ -15,7 +15,6 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="20sp"
|
android:textSize="20sp"
|
||||||
android:textStyle="italic"
|
android:textStyle="italic"
|
||||||
android:textColor="@color/white"
|
|
||||||
android:padding="10dp"/>
|
android:padding="10dp"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
@@ -23,7 +22,6 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:backgroundTint="@color/purple_500"
|
|
||||||
android:text="Rechte Anfordern" />
|
android:text="Rechte Anfordern" />
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:gravity="center_horizontal"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:background="@android:color/holo_blue_light">
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/button"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Aufnahmen Löschen"
|
|
||||||
android:backgroundTint="#010C49"
|
|
||||||
tools:ignore="MissingConstraints" />
|
|
||||||
|
|
||||||
<ListView
|
|
||||||
android:id="@+id/listView"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
tools:ignore="MissingConstraints"
|
|
||||||
tools:layout_editor_absoluteX="0dp"
|
|
||||||
tools:layout_editor_absoluteY="0dp" />
|
|
||||||
|
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<VideoView
|
|
||||||
android:id="@+id/videoView"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_gravity="center"/>
|
|
||||||
|
|
||||||
</FrameLayout>
|
|
||||||
@@ -4,8 +4,6 @@
|
|||||||
android:title="Rechteverwaltung" />
|
android:title="Rechteverwaltung" />
|
||||||
<item android:id="@+id/Sensoren"
|
<item android:id="@+id/Sensoren"
|
||||||
android:title="Sensoren" />
|
android:title="Sensoren" />
|
||||||
<item android:id="@+id/Detection"
|
|
||||||
android:title="Detektionen" />
|
|
||||||
<item android:id="@+id/Impressum"
|
<item android:id="@+id/Impressum"
|
||||||
android:title="Impressum" />
|
android:title="Impressum" />
|
||||||
</menu>
|
</menu>
|
||||||
@@ -7,9 +7,4 @@
|
|||||||
<color name="teal_700">#FF018786</color>
|
<color name="teal_700">#FF018786</color>
|
||||||
<color name="black">#FF000000</color>
|
<color name="black">#FF000000</color>
|
||||||
<color name="white">#FFFFFFFF</color>
|
<color name="white">#FFFFFFFF</color>
|
||||||
<color name="red">#5C0000</color>
|
|
||||||
<color name="redbright">#EF3434</color>
|
|
||||||
<color name="greenbright">#469733</color>
|
|
||||||
<color name="bluedark">#053C8E</color>
|
|
||||||
<color name="yellow">#FFEB3B</color>
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -13,9 +13,4 @@
|
|||||||
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
|
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
|
||||||
<!-- Customize your theme here. -->
|
<!-- Customize your theme here. -->
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Button.Green" parent="ThemeOverlay.AppCompat">
|
|
||||||
<item name="colorAccent">#0F3E01</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
Binary file not shown.
Reference in New Issue
Block a user