From 0082602bea90edd8dd58357446a3864fa9efa711 Mon Sep 17 00:00:00 2001 From: Bastian Kohler Date: Wed, 21 Jun 2023 22:57:33 +0200 Subject: [PATCH] VideoView Fragment and pop up working --- .../Detection/DetectorService.java | 1 - .../Fragments/VideoFileFragment.java | 53 ----------- .../Fragments/VideoListFragment.java | 87 +++++++++++++++++++ .../ueberwachungssystem/MainActivity.java | 12 +-- .../ueberwachungssystem/VideoAdapter.java | 53 ----------- app/src/main/res/layout/list_item_file.xml | 17 ---- ...le_fragment.xml => videolist_fragment.xml} | 0 app/src/main/res/layout/videolist_popup.xml | 13 +++ 8 files changed, 103 insertions(+), 133 deletions(-) delete mode 100644 app/src/main/java/com/example/ueberwachungssystem/Fragments/VideoFileFragment.java create mode 100644 app/src/main/java/com/example/ueberwachungssystem/Fragments/VideoListFragment.java delete mode 100644 app/src/main/java/com/example/ueberwachungssystem/VideoAdapter.java delete mode 100644 app/src/main/res/layout/list_item_file.xml rename app/src/main/res/layout/{video_file_fragment.xml => videolist_fragment.xml} (100%) create mode 100644 app/src/main/res/layout/videolist_popup.xml diff --git a/app/src/main/java/com/example/ueberwachungssystem/Detection/DetectorService.java b/app/src/main/java/com/example/ueberwachungssystem/Detection/DetectorService.java index 7613614..bb088cc 100644 --- a/app/src/main/java/com/example/ueberwachungssystem/Detection/DetectorService.java +++ b/app/src/main/java/com/example/ueberwachungssystem/Detection/DetectorService.java @@ -54,7 +54,6 @@ public class DetectorService extends LifecycleService { passToServiceListener(stringBufferWifi); checkState(data); checkTyp(data); - } }); diff --git a/app/src/main/java/com/example/ueberwachungssystem/Fragments/VideoFileFragment.java b/app/src/main/java/com/example/ueberwachungssystem/Fragments/VideoFileFragment.java deleted file mode 100644 index 541b5d2..0000000 --- a/app/src/main/java/com/example/ueberwachungssystem/Fragments/VideoFileFragment.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.example.ueberwachungssystem.Fragments; - -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.ListView; -import android.widget.Toast; - -import androidx.fragment.app.Fragment; - -import com.example.ueberwachungssystem.R; - -import java.util.ArrayList; -import java.util.List; - -public class VideoFileFragment extends Fragment { - - private ListView listView; - private ArrayAdapter adapter; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View rootView = inflater.inflate(R.layout.video_file_fragment, container, false); - - listView = rootView.findViewById(R.id.listView); - adapter = new ArrayAdapter<>(requireContext(), android.R.layout.simple_list_item_1, getData()); - 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 = adapter.getItem(position); - Toast.makeText(requireContext(), selectedItem, Toast.LENGTH_SHORT).show(); - } - }); - - return rootView; - } - - private List getData() { - // Add your data source here, e.g., an array or a list - List data = new ArrayList<>(); - data.add("Item 1"); - data.add("Item 2"); - data.add("Item 3"); - return data; - } -} diff --git a/app/src/main/java/com/example/ueberwachungssystem/Fragments/VideoListFragment.java b/app/src/main/java/com/example/ueberwachungssystem/Fragments/VideoListFragment.java new file mode 100644 index 0000000..74546fe --- /dev/null +++ b/app/src/main/java/com/example/ueberwachungssystem/Fragments/VideoListFragment.java @@ -0,0 +1,87 @@ +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.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 ArrayAdapter adapter; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.videolist_fragment, container, false); + + 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 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 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); + } +} diff --git a/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java b/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java index 309fc47..6d5e0ab 100644 --- a/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java +++ b/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java @@ -2,7 +2,6 @@ package com.example.ueberwachungssystem; import androidx.camera.core.ExperimentalGetImage; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; @@ -17,10 +16,7 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; import android.widget.Button; -import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.ToggleButton; @@ -29,9 +25,7 @@ import com.example.ueberwachungssystem.Fragments.Fragment1; import com.example.ueberwachungssystem.Fragments.Fragment2; import com.example.ueberwachungssystem.Detection.DetectorService; import com.example.ueberwachungssystem.Fragments.Fragment3; -import com.example.ueberwachungssystem.Fragments.VideoFileFragment; - -import java.util.ArrayList; +import com.example.ueberwachungssystem.Fragments.VideoListFragment; @ExperimentalGetImage public class MainActivity extends AppCompatActivity { @@ -43,7 +37,7 @@ public class MainActivity extends AppCompatActivity { private Fragment1 fragment1; private Fragment2 fragment2; private Fragment3 fragment3; - private VideoFileFragment videoFileFragment = new VideoFileFragment(); + private VideoListFragment videoListFragment = new VideoListFragment(); private DetectorService detectorService = new DetectorService(); int num = 0; //Textviews @@ -194,7 +188,7 @@ public class MainActivity extends AppCompatActivity { public void onClickZeigeFragment2(View view) { Button button = (Button) view; //zeigeFragment(fragment2.erstellen("Hier stehen dann die Videos")); - zeigeFragment(videoFileFragment); + zeigeFragment(videoListFragment); } public void onClickZeigeFragment3(View view) { Button button = (Button) view; diff --git a/app/src/main/java/com/example/ueberwachungssystem/VideoAdapter.java b/app/src/main/java/com/example/ueberwachungssystem/VideoAdapter.java deleted file mode 100644 index a1d0345..0000000 --- a/app/src/main/java/com/example/ueberwachungssystem/VideoAdapter.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.example.ueberwachungssystem; - -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ArrayAdapter; -import android.widget.TextView; - -import androidx.annotation.NonNull; - -import java.util.List; - -public class VideoAdapter extends ArrayAdapter { - - private List fileList; - private OnFileClickListener listener; - - public VideoAdapter (Context context, List fileList, OnFileClickListener listener) { - super(context, 0, fileList); - this.fileList = fileList; - this.listener = listener; - } - - @Override - public View getView(final int position, View convertView, ViewGroup parent) { - if (convertView == null) { - convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item_file, parent, false); - } - - TextView fileNameText = convertView.findViewById(R.id.file_name_text); - final String fileName = fileList.get(position); - fileNameText.setText(fileName); - - convertView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - listener.onFileClick(fileName); - listener.onFileClick(fileName); - } - }); - - return convertView; - } - - public interface OnFileClickListener { - View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState); - - void onFileClick(String fileName); - } -} diff --git a/app/src/main/res/layout/list_item_file.xml b/app/src/main/res/layout/list_item_file.xml deleted file mode 100644 index 0ebac0c..0000000 --- a/app/src/main/res/layout/list_item_file.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/video_file_fragment.xml b/app/src/main/res/layout/videolist_fragment.xml similarity index 100% rename from app/src/main/res/layout/video_file_fragment.xml rename to app/src/main/res/layout/videolist_fragment.xml diff --git a/app/src/main/res/layout/videolist_popup.xml b/app/src/main/res/layout/videolist_popup.xml new file mode 100644 index 0000000..b35c12b --- /dev/null +++ b/app/src/main/res/layout/videolist_popup.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file