diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index b0ef462dc..32d8b89f9 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -24,7 +24,13 @@ import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.utils.StorageUtils; +import fr.free.nrw.commons.caching.CacheController; +import fr.free.nrw.commons.category.Category; +import fr.free.nrw.commons.contributions.Contribution; +import fr.free.nrw.commons.data.DBOpenHelper; +import fr.free.nrw.commons.modifications.ModifierSequence; import fr.free.nrw.commons.auth.AccountUtil; + import org.acra.ACRA; import org.acra.ReportingInteractionMode; import org.acra.annotation.ReportsCrashes; @@ -42,11 +48,7 @@ import org.apache.http.params.CoreProtocolPNames; import java.io.File; import java.io.IOException; -import fr.free.nrw.commons.caching.CacheController; -import fr.free.nrw.commons.category.Category; -import fr.free.nrw.commons.contributions.Contribution; -import fr.free.nrw.commons.data.DBOpenHelper; -import fr.free.nrw.commons.modifications.ModifierSequence; +import fr.free.nrw.commons.utils.FileUtils; import timber.log.Timber; // TODO: Use ProGuard to rip out reporting when publishing @@ -234,7 +236,7 @@ public class CommonsApplication extends Application { String[] fileNames = applicationDirectory.list(); for (String fileName : fileNames) { if (!fileName.equals("lib")) { - deleteFile(new File(applicationDirectory, fileName)); + FileUtils.deleteFile(new File(applicationDirectory, fileName)); } } } @@ -247,14 +249,19 @@ public class CommonsApplication extends Application { //TODO: fix preference manager PreferenceManager.getDefaultSharedPreferences(app).edit().clear().commit(); - SharedPreferences preferences = context.getSharedPreferences("fr.free.nrw.commons", MODE_PRIVATE); + SharedPreferences preferences = context + .getSharedPreferences("fr.free.nrw.commons", MODE_PRIVATE); preferences.edit().clear().commit(); - context.getSharedPreferences("prefs", Context.MODE_PRIVATE).edit().clear().commit();; + context.getSharedPreferences("prefs", Context.MODE_PRIVATE).edit().clear().commit(); preferences.edit().putBoolean("firstrun", false).apply(); updateAllDatabases(context); currentAccount = null; } + /** + * Deletes all tables and re-creates them. + * @param context context + */ public void updateAllDatabases(Context context) { DBOpenHelper dbOpenHelper = DBOpenHelper.getInstance(context); dbOpenHelper.getReadableDatabase().close(); @@ -264,20 +271,4 @@ public class CommonsApplication extends Application { Category.Table.onDelete(db); Contribution.Table.onDelete(db); } - - public static boolean deleteFile(File file) { - boolean deletedAll = true; - if (file != null) { - if (file.isDirectory()) { - String[] children = file.list(); - for (int i = 0; i < children.length; i++) { - deletedAll = deleteFile(new File(file, children[i])) && deletedAll; - } - } else { - deletedAll = file.delete(); - } - } - - return deletedAll; - } } diff --git a/app/src/main/java/fr/free/nrw/commons/hamburger/NavigationBaseFragment.java b/app/src/main/java/fr/free/nrw/commons/hamburger/NavigationBaseFragment.java index 4190dcfbd..146e72961 100644 --- a/app/src/main/java/fr/free/nrw/commons/hamburger/NavigationBaseFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/hamburger/NavigationBaseFragment.java @@ -131,8 +131,10 @@ public class NavigationBaseFragment extends Fragment { .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - ((CommonsApplication)getActivity().getApplicationContext()).clearApplicationData(getContext()); - Intent nearbyIntent = new Intent(getActivity(), LoginActivity.class); + ((CommonsApplication)getActivity().getApplicationContext()) + .clearApplicationData(getContext()); + Intent nearbyIntent = new Intent + (getActivity(), LoginActivity.class); nearbyIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); nearbyIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(nearbyIntent); diff --git a/app/src/main/java/fr/free/nrw/commons/utils/FileUtils.java b/app/src/main/java/fr/free/nrw/commons/utils/FileUtils.java index 158c13da0..3df50b31f 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/FileUtils.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/FileUtils.java @@ -3,6 +3,7 @@ package fr.free.nrw.commons.utils; import android.content.Context; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; @@ -32,4 +33,26 @@ public class FileUtils { } return stringBuilder; } + + /** + * Deletes files. + * @param file context + */ + public static boolean deleteFile(File file) { + boolean deletedAll = true; + if (file != null) { + if (file.isDirectory()) { + String[] children = file.list(); + for (int i = 0; i < children.length; i++) { + deletedAll = deleteFile(new File(file, children[i])) && deletedAll; + } + } else { + deletedAll = file.delete(); + } + } + + return deletedAll; + } + + }