diff --git a/app/src/main/java/com/fox2code/mmm/SetupActivity.java b/app/src/main/java/com/fox2code/mmm/SetupActivity.java index 18defc1..b95cdec 100644 --- a/app/src/main/java/com/fox2code/mmm/SetupActivity.java +++ b/app/src/main/java/com/fox2code/mmm/SetupActivity.java @@ -29,7 +29,10 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.materialswitch.MaterialSwitch; import com.topjohnwu.superuser.internal.UiThreadHandler; +import org.apache.commons.io.FileUtils; + import java.io.File; +import java.io.IOException; import java.util.HashSet; import java.util.Objects; import java.util.Set; @@ -362,17 +365,12 @@ public class SetupActivity extends FoxActivity implements LanguageActivity { universalCookies2.add("is_foxmmm=true"); cookiePrefs.edit().putStringSet("universal", universalCookies2).apply(); // we literally only use these to create the http cache folders - File httpCacheDir = MainApplication.getINSTANCE().getDataDirWithPath("cache/WebView/Default/HTTP Cache/Code Cache/wasm"); - File httpCacheDir2 = MainApplication.getINSTANCE().getDataDirWithPath("cache/WebView/Default/HTTP Cache/Code Cache/js"); - if (!httpCacheDir.exists()) { - if (httpCacheDir.mkdirs()) { - Timber.d("Created http cache dir"); - } - } - if (!httpCacheDir2.exists()) { - if (httpCacheDir2.mkdirs()) { - Timber.d("Created http cache dir"); - } + try { + FileUtils.forceMkdir(new File(MainApplication.getINSTANCE().getDataDir() + "/cache/cronet")); + FileUtils.forceMkdir(new File(MainApplication.getINSTANCE().getDataDir() + "/cache/WebView/Default/HTTP Cache/Code Cache/wasm")); + FileUtils.forceMkdir(new File(MainApplication.getINSTANCE().getDataDir() + "/cache/WebView/Default/HTTP Cache/Code Cache/js")); + } catch (IOException e) { + Timber.e(e); } createRealmDatabase(); } diff --git a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java index 716ee63..b29a882 100644 --- a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java +++ b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java @@ -81,6 +81,8 @@ import com.google.android.material.textfield.MaterialAutoCompleteTextView; import com.mikepenz.aboutlibraries.LibsBuilder; import com.topjohnwu.superuser.internal.UiThreadHandler; +import org.apache.commons.io.FileUtils; + import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; @@ -402,19 +404,14 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity { new MaterialAlertDialogBuilder(requireContext()).setTitle(R.string.clear_cache_dialogue_title).setMessage(R.string.clear_cache_dialogue_message).setPositiveButton(R.string.yes, (dialog, which) -> { // Clear app cache try { - File cacheDir = requireContext().getCacheDir(); - for (File file : cacheDir.listFiles()) { - if (file.isDirectory()) { - for (File file2 : file.listFiles()) { - if (!file2.delete()) { - Timber.e("Failed to delete %s", file2.getAbsolutePath()); - } - } - } - if (!file.delete()) { - Timber.e("Failed to delete %s", file.getAbsolutePath()); - } - } + // use apache commons IO to delete the cache + FileUtils.deleteDirectory(requireContext().getCacheDir()); + // create a new cache dir + FileUtils.forceMkdir(requireContext().getCacheDir()); + // create cache dirs for cronet and webview + FileUtils.forceMkdir(new File(requireContext().getCacheDir(), "cronet")); + FileUtils.forceMkdir(new File(MainApplication.getINSTANCE().getDataDir() + "/cache/WebView/Default/HTTP Cache/Code Cache/wasm")); + FileUtils.forceMkdir(new File(MainApplication.getINSTANCE().getDataDir() + "/cache/WebView/Default/HTTP Cache/Code Cache/js")); Toast.makeText(requireContext(), R.string.cache_cleared, Toast.LENGTH_SHORT).show(); } catch (Exception e) { Timber.e(e); diff --git a/build.gradle b/build.gradle index 6c778e6..b09be4c 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ buildscript { // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files //noinspection GradleDependency - classpath "io.realm:realm-gradle-plugin:10.13.2-transformer-api" + classpath "io.realm:realm-gradle-plugin:10.13.3-transformer-api" } }