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 af54cac7005563ffdb02187136eb255a2b8ab82f..337111a2c815c5688293f7f3cb1636df376f703b 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 a9f29a192714e670f816226427f53e0e02882e02..5c2916f7132d517d276db3cbd7a001140efcdbd7 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.");