From e9d700e671395dd97dd2ad376dd7180ef44c79e0 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 19 Jul 2016 15:39:56 +0200 Subject: [PATCH] Recursive removal of shared_prefs in SettingsFragment --- src/org/linphone/LinphoneUtils.java | 14 ++++++++++++++ src/org/linphone/SettingsFragment.java | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/org/linphone/LinphoneUtils.java b/src/org/linphone/LinphoneUtils.java index 42661832b..f6e0edf3a 100644 --- a/src/org/linphone/LinphoneUtils.java +++ b/src/org/linphone/LinphoneUtils.java @@ -23,6 +23,7 @@ import static android.view.View.VISIBLE; import java.io.BufferedOutputStream; import java.io.BufferedReader; +import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -464,5 +465,18 @@ public final class LinphoneUtils { } return extension; } + + public static void recursiveFileRemoval(File root) { + if (!root.delete()) { + if (root.isDirectory()) { + File[] files = root.listFiles(); + if (files != null) { + for (File f : files) { + recursiveFileRemoval(f); + } + } + } + } + } } diff --git a/src/org/linphone/SettingsFragment.java b/src/org/linphone/SettingsFragment.java index 4ea2381be..2d8c66e32 100644 --- a/src/org/linphone/SettingsFragment.java +++ b/src/org/linphone/SettingsFragment.java @@ -96,8 +96,8 @@ public class SettingsFragment extends PreferencesListFragment { } private void removePreviousPreferencesFile() { - File dir = new File(getContext().getFilesDir().getAbsolutePath() + "shared_prefs"); - dir.delete(); + File dir = new File(getActivity().getFilesDir().getAbsolutePath() + "shared_prefs"); + LinphoneUtils.recursiveFileRemoval(dir); } // Inits the values or the listener on some settings