From a9051d92a89d44717b273f98e71ff48998658ed2 Mon Sep 17 00:00:00 2001
From: Dennis Kupczyk <dennis.kupczyk@smail.inf.h-brs.de>
Date: Mon, 2 May 2022 16:34:51 +0200
Subject: [PATCH] changed storage to internal

---
 .../hbrs/adenia_sensor_app/MainActivity.java  | 44 +++++++++++++++----
 .../OutputDirectoryManager.java               | 11 +++--
 2 files changed, 43 insertions(+), 12 deletions(-)

diff --git a/app/src/main/java/de/hbrs/adenia_sensor_app/MainActivity.java b/app/src/main/java/de/hbrs/adenia_sensor_app/MainActivity.java
index af54cac..337111a 100644
--- a/app/src/main/java/de/hbrs/adenia_sensor_app/MainActivity.java
+++ b/app/src/main/java/de/hbrs/adenia_sensor_app/MainActivity.java
@@ -21,6 +21,7 @@ import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.Calendar;
 import java.util.Locale;
@@ -125,10 +126,7 @@ public class MainActivity extends AppCompatActivity {
                             .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int id) {
                                     //  Aktion bei Ja: löschen des Datenpfades und starten der Aufnahme
-                                    SharedPreferences.Editor editor = myPrefs.edit();
-                                    editor.putString("datapath", null);
-                                    editor.apply();
-                                    showToast("Datapath deleted!!!");
+                                    deleteDatapath();
 
                                     startService();
                                     startRecording();
@@ -244,7 +242,7 @@ public class MainActivity extends AppCompatActivity {
                 //new DataSendActivity(textView).execute("someParams");
                 if (!myPrefs.getString("datapath", "").equals("")) {
                     if (!myPrefs.getString("SensorAppID", "").equals("")) {
-
+                        deleteDatapath();
                     } else {
                         alertDialog.setMessage(R.string.no_sensorappid);
                         alertDialog.setPositiveButton("OK", null);
@@ -261,6 +259,35 @@ public class MainActivity extends AppCompatActivity {
         initializeSettings();
     }
 
+    //delete Datapath
+    private void deleteDatapath() {
+        deleteDir(new File(realPath));
+        realPath = null;
+        SharedPreferences.Editor editor = myPrefs.edit();
+        editor.putString("datapath", realPath);
+        editor.apply();
+        showToast("Datapath deleted!!!");
+    }
+
+    //delete file
+    public void deleteDir(File dir) {
+        Log.v("Filelöschen", dir.getAbsolutePath());
+        File[] files = dir.listFiles();
+        if (files != null) {
+            for (int i = 0; i < files.length; i++) {
+                Log.v("Filelöschen", "Daten gefunden");
+                if (files[i].isDirectory()) {
+                    deleteDir(files[i]); // Verzeichnis leeren und anschließend löschen
+                }
+                else {
+                    files[i].delete(); // Datei löschen
+                }
+            }
+            dir.delete(); // Ordner löschen
+            Log.v("Filelöschen", "Ordner gelöscht");
+        }
+    }
+
     // View zu Einstellungen wechseln
     public void openSettings(View view) {
         Intent intent = new Intent(this, SettingsActivity.class);
@@ -295,14 +322,13 @@ public class MainActivity extends AppCompatActivity {
         // anlegen des Ausgabe Ordners für die Aufzeichnung
         String outputFolder = null;
         try {
-            OutputDirectoryManager folder = new OutputDirectoryManager(myPrefs.getString("SensorAppID", "").concat("_"), mConfig.getSuffix());
+            OutputDirectoryManager folder = new OutputDirectoryManager(this, myPrefs.getString("SensorAppID", "").concat("_"), mConfig.getSuffix());
             outputFolder = folder.getOutputDirectory();
             mConfig.setOutputFolder(outputFolder);
+            realPath = mConfig.getOutputFolder();
             SharedPreferences.Editor editor = myPrefs.edit();
-            editor.putString("datapath", mConfig.getOutputFolder());
+            editor.putString("datapath", realPath);
             editor.apply();
-            realPath = mConfig.getOutputFolder();
-            Log.v("Test", myPrefs.getString("SensorAppID", ""));
         } catch (IOException e) {
             showAlertAndStop("Cannot create output folder.");
             e.printStackTrace();
diff --git a/app/src/main/java/de/hbrs/adenia_sensor_app/OutputDirectoryManager.java b/app/src/main/java/de/hbrs/adenia_sensor_app/OutputDirectoryManager.java
index a9f29a1..5c2916f 100644
--- a/app/src/main/java/de/hbrs/adenia_sensor_app/OutputDirectoryManager.java
+++ b/app/src/main/java/de/hbrs/adenia_sensor_app/OutputDirectoryManager.java
@@ -1,5 +1,6 @@
 package de.hbrs.adenia_sensor_app;
 
+import android.content.Context;
 import android.os.Environment;
 import android.util.Log;
 
@@ -14,10 +15,12 @@ public class OutputDirectoryManager {
     private final static String LOG_TAG = OutputDirectoryManager.class.getName();
 
     private String mOutputDirectory;
+    private MainActivity context;
 
 
     // constructors
-    public OutputDirectoryManager(final String prefix, final String suffix) throws FileNotFoundException {
+    public OutputDirectoryManager(MainActivity context, final String prefix, final String suffix) throws FileNotFoundException {
+        this.context = context;
         update(prefix, suffix);
     }
 
@@ -36,7 +39,8 @@ public class OutputDirectoryManager {
         // initialize folder name with current time information
         Calendar currentTime = Calendar.getInstance();
         SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddhhmmss");
-        File externalDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
+        File file = new File(String.valueOf(context.getFilesDir()));
+        //File externalDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
         String folderName = formatter.format(currentTime.getTime());
 
         // combine prefix and suffix
@@ -48,7 +52,8 @@ public class OutputDirectoryManager {
         }
 
         // generate output directory folder
-        File outputDirectory = new File(externalDirectory.getAbsolutePath() + "/" + folderName);
+        File outputDirectory = new File(file.getAbsolutePath() + "/" + folderName);
+        Log.v("PAth", file.getAbsolutePath());
         if (!outputDirectory.exists()) {
             if (!outputDirectory.mkdir()) {
                 Log.e(LOG_TAG, "update: Cannot create output directory.");
-- 
GitLab