# Conflicts: # app/src/main/java/com/example/ueberwachungssystem/MainActivity.javako
@@ -2,8 +2,27 @@ | |||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |||
xmlns:tools="http://schemas.android.com/tools"> | |||
<uses-feature android:name="android.hardware.camera"/> | |||
<uses-permission android:name="android.permission.CAMERA"/> | |||
<!-- <!– If your app targets Android 13 (API level 33)--> | |||
<!-- or higher, you must declare the NEARBY_WIFI_DEVICES permission. –>--> | |||
<!-- <uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"--> | |||
<!-- <!– If your app derives location information from Wi-Fi APIs,--> | |||
<!-- don't include the "usesPermissionFlags" attribute. –>--> | |||
<!-- android:usesPermissionFlags="neverForLocation" />--> | |||
<uses-permission | |||
android:required="true" | |||
android:name="android.permission.ACCESS_FINE_LOCATION"/> | |||
<!-- If any feature in your app relies on precise location information, | |||
don't include the "maxSdkVersion" attribute. --> | |||
<uses-permission | |||
android:required="true" | |||
android:name="android.permission.ACCESS_WIFI_STATE"/> | |||
<uses-permission | |||
android:required="true" | |||
android:name="android.permission.CHANGE_WIFI_STATE"/> | |||
<uses-permission | |||
android:required="true" | |||
android:name="android.permission.INTERNET"/> | |||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> | |||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
@@ -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,22 +1,72 @@ | |||
package com.example.ueberwachungssystem; | |||
import androidx.annotation.NonNull; | |||
import androidx.camera.core.ExperimentalGetImage; | |||
import androidx.fragment.app.Fragment; | |||
import androidx.fragment.app.FragmentTransaction; | |||
import androidx.appcompat.app.AppCompatActivity; | |||
import android.os.Bundle; | |||
import android.util.Log; | |||
import android.view.LayoutInflater; | |||
import android.view.View; | |||
import android.view.ViewGroup; | |||
import android.widget.Button; | |||
import android.widget.EditText; | |||
import android.widget.ScrollView; | |||
import android.widget.TextView; | |||
import android.widget.ToggleButton; | |||
public class MainActivity extends AppCompatActivity { | |||
import com.example.ueberwachungssystem.Detection.DetectionReport; | |||
import com.example.ueberwachungssystem.Detection.Detector; | |||
import com.example.ueberwachungssystem.Detection.VideoDetector; | |||
import org.w3c.dom.Text; | |||
@ExperimentalGetImage | |||
public class MainActivity extends AppCompatActivity implements View.OnClickListener { | |||
private Fragment aktuellesFragment; | |||
WifiCommunication communication; | |||
private TextView alarm; | |||
private String text = "Das ist ein Alarm des Sensors"; | |||
//Buttons | |||
private ToggleButton toggleKamera; | |||
private ToggleButton btnAudio; | |||
private ToggleButton btnBewegung; | |||
//Detektoren | |||
VideoDetector vd = new VideoDetector(this); | |||
private void log(String nachricht) { | |||
Log.d(this.getClass().getSimpleName(), nachricht); | |||
} | |||
@Override | |||
protected void onCreate(Bundle savedInstanceState) { | |||
super.onCreate(savedInstanceState); | |||
setContentView(R.layout.activity_main); | |||
} | |||
@Override | |||
protected void onResume() { | |||
super.onResume(); | |||
communication = new WifiCommunication(MainActivity.this, 1234); | |||
protected void onCreate(Bundle savedInstanceState) { | |||
super.onCreate(savedInstanceState); | |||
setTitle(this.getClass().getSimpleName()); | |||
setContentView(R.layout.activity_main); | |||
alarm = findViewById(R.id.Alarm); | |||
alarm.setText(text); | |||
toggleKamera = findViewById(R.id.toggleKamera); | |||
toggleKamera.setOnClickListener(this); | |||
vd.setOnDetectionListener(new Detector.OnDetectionListener() { | |||
@Override | |||
public void onDetection(@NonNull DetectionReport detectionReport) { | |||
DetectionReport dr = detectionReport; | |||
String drString = dr.toString(); | |||
} | |||
}); | |||
//boolean isRunning = vd.isRunning(); | |||
} | |||
@Override | |||
public void onClick(View v) { | |||
if (v == toggleKamera) { | |||
if (toggleKamera.isChecked()) { | |||
vd.startDetection(); | |||
} else { | |||
vd.stopDetection(); | |||
} | |||
} | |||
} | |||
@Override | |||
@@ -24,4 +74,147 @@ public class MainActivity extends AppCompatActivity { | |||
super.onPause(); | |||
communication.stopCommunication(); | |||
} | |||
} | |||
@Override | |||
protected void onResume() { | |||
super.onResume(); | |||
communication = new WifiCommunication(MainActivity.this, 1234); | |||
} | |||
public void onClickZeigeFragment1(View view) { | |||
Button button = (Button) view; | |||
log(button.getText() + " ausgewählt"); | |||
zeigeFragment(Fragment1.erstellen("Fragment 1 wurde angeklickt")); | |||
} | |||
public void onClickZeigeFragment2(View view) { | |||
Button button = (Button) view; | |||
log(button.getText() + " ausgewählt"); | |||
zeigeFragment(Fragment2.erstellen("Fragment 2 wurde angeklickt")); | |||
} | |||
public void onClickZeigeFragment3(View view) { | |||
Button button = (Button) view; | |||
log(button.getText() + " ausgewählt"); | |||
zeigeFragment(Fragment3.erstellen("Fragment 3 wurde angeklickt")); | |||
} | |||
public void onClickEntferneFragment(View view) { | |||
entferneFragment(); | |||
} | |||
private void zeigeFragment(Fragment fragment) { | |||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); | |||
ft.replace(R.id.frame, fragment); | |||
ft.commit(); | |||
aktuellesFragment = fragment; | |||
} | |||
private void entferneFragment() { | |||
if (aktuellesFragment != null) { | |||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); | |||
ft.remove(aktuellesFragment); | |||
ft.commit(); | |||
aktuellesFragment = null ; | |||
} | |||
} | |||
public static class Fragment1 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.fragment1, container, false); | |||
TextView Sensor = (TextView) view.findViewById(R.id.Sensor); | |||
Sensor.setText(text); | |||
return view; | |||
} | |||
public static Fragment1 erstellen(String text) { | |||
Fragment1 fragment = new Fragment1(); | |||
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"); | |||
} | |||
} | |||
} | |||
public static 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"); | |||
} | |||
} | |||
} | |||
public static class Fragment3 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 Fragment3 erstellen(String text) { | |||
Fragment3 fragment = new Fragment3(); | |||
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"); | |||
} | |||
} | |||
} | |||
} |
@@ -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,18 +1,123 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
xmlns:app="http://schemas.android.com/apk/res-auto" | |||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
xmlns:tools="http://schemas.android.com/tools" | |||
android:layout_width="match_parent" | |||
android:layout_height="match_parent" | |||
tools:context=".MainActivity"> | |||
android:background="@android:color/holo_green_dark" | |||
android:visibility="visible" | |||
tools:context="com.example.ueberwachungssystem.MainActivity" | |||
tools:visibility="visible"> | |||
<TextView | |||
<ToggleButton | |||
android:id="@+id/toggleKamera" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:text="Hello World!" | |||
app:layout_constraintBottom_toBottomOf="parent" | |||
app:layout_constraintEnd_toEndOf="parent" | |||
app:layout_constraintStart_toStartOf="parent" | |||
app:layout_constraintTop_toTopOf="parent" /> | |||
android:layout_alignBottom="@id/toggleAudio" | |||
android:layout_marginRight="15dp" | |||
android:layout_toStartOf="@+id/toggleAudio" | |||
android:layout_toLeftOf="@id/toggleAudio" | |||
android:text="Kamera" /> | |||
</androidx.constraintlayout.widget.ConstraintLayout> | |||
<ToggleButton | |||
android:id="@+id/toggleAudio" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_alignParentTop="true" | |||
android:layout_centerHorizontal="true" | |||
android:text="Audio" /> | |||
<ToggleButton | |||
android:id="@+id/toggleBewegung" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_alignBottom="@id/toggleAudio" | |||
android:layout_marginLeft="15dp" | |||
android:layout_toEndOf="@+id/toggleAudio" | |||
android:layout_toRightOf="@id/toggleAudio" | |||
android:text="Bewegung" /> | |||
<Button | |||
android:id="@+id/btnAudio" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_alignBottom="@id/btnKamera" | |||
android:layout_marginRight="15dp" | |||
android:layout_toStartOf="@+id/btnKamera" | |||
android:onClick="onClickZeigeFragment1" | |||
android:text="Audio" /> | |||
<Button | |||
android:id="@+id/btnKamera" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_below="@id/toggleAudio" | |||
android:layout_centerHorizontal="true" | |||
android:onClick="onClickZeigeFragment2" | |||
android:text="Kamera" /> | |||
<!-- | |||
<Button | |||
android:id="@+id/btnSensorWeg" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_centerHorizontal="true" | |||
android:layout_below="@+id/btn1" | |||
android:text="Entferne Sensordarstellung" | |||
android:onClick="onClickEntferneFragment"/> | |||
--> | |||
<Button | |||
android:id="@+id/btnBewegung" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_alignBottom="@id/btnKamera" | |||
android:layout_marginLeft="15dp" | |||
android:layout_toEndOf="@+id/btnKamera" | |||
android:layout_toRightOf="@id/btnKamera" | |||
android:onClick="onClickZeigeFragment3" | |||
android:text="Bewegung" /> | |||
<Button | |||
android:id="@+id/btnAufnahme" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_below="@+id/btnKamera" | |||
android:layout_toLeftOf="@id/btnKamera" | |||
android:layout_marginRight="15dp" | |||
android:onClick="onClickEntferneFragment" | |||
android:text="Aufnahme" /> | |||
<Button | |||
android:id="@+id/btnWiedergabe" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_below="@+id/btnKamera" | |||
android:layout_toRightOf="@id/btnKamera" | |||
android:layout_marginLeft="15dp" | |||
android:onClick="onClickEntferneFragment" | |||
android:text="Wiedergabe" /> | |||
<FrameLayout | |||
android:id="@+id/frame" | |||
android:layout_width="match_parent" | |||
android:layout_height="200dp" | |||
android:layout_below="@+id/btnAufnahme" | |||
android:layout_alignParentStart="true"> | |||
</FrameLayout> | |||
<ScrollView | |||
android:id= "@+id/scrollView1" | |||
android:layout_width= "wrap_content" | |||
android:layout_height= "wrap_content" | |||
android:layout_below= "@id/frame"> | |||
<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_height= "wrap_content" /> | |||
</LinearLayout> | |||
</ScrollView> | |||
</RelativeLayout> |
@@ -0,0 +1,22 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
android:layout_width="match_parent" | |||
android:layout_height="match_parent" | |||
android:gravity="center_horizontal" | |||
android:orientation="vertical" | |||
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"/> | |||
<TextView | |||
android:id="@+id/Alarm" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_below="@id/Sensor" | |||
android:textAppearance="?android:attr/textAppearanceLarge"/> | |||
</RelativeLayout> |
@@ -0,0 +1,22 @@ | |||
<?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" | |||
android:gravity="center_horizontal" | |||
android:orientation="vertical" | |||
android:background="@android:color/holo_blue_light" > | |||
<TextView | |||
android:id="@+id/Sensor" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:textAppearance="?android:attr/textAppearanceLarge"/> | |||
<TextView | |||
android:id="@+id/Alarm" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_below="@id/Sensor" | |||
android:textAppearance="?android:attr/textAppearanceLarge"/> | |||
</LinearLayout> |
@@ -0,0 +1,22 @@ | |||
<?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" | |||
android:gravity="center_horizontal" | |||
android:orientation="vertical" | |||
android:background="@android:color/holo_blue_light" > | |||
<TextView | |||
android:id="@+id/Sensor" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:textAppearance="?android:attr/textAppearanceLarge"/> | |||
<TextView | |||
android:id="@+id/Alarm" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:layout_below="@id/Sensor" | |||
android:textAppearance="?android:attr/textAppearanceLarge"/> | |||
</LinearLayout> |
@@ -1,4 +1,4 @@ | |||
#Thu May 11 15:04:30 CEST 2023 | |||
#Thu May 11 15:19:24 CEST 2023 | |||
distributionBase=GRADLE_USER_HOME | |||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip | |||
distributionPath=wrapper/dists |