diff --git a/src/org/thoughtcrime/securesms/DatabaseUpgradeActivity.java b/src/org/thoughtcrime/securesms/DatabaseUpgradeActivity.java index b01e753802..4535a8ec7b 100644 --- a/src/org/thoughtcrime/securesms/DatabaseUpgradeActivity.java +++ b/src/org/thoughtcrime/securesms/DatabaseUpgradeActivity.java @@ -73,6 +73,7 @@ public class DatabaseUpgradeActivity extends BaseActivity { public static final int NO_MORE_CANONICAL_DB_VERSION = 276; public static final int PROFILES = 289; public static final int SCREENSHOTS = 300; + public static final int PERSISTENT_BLOBS = 307; private static final SortedSet UPGRADE_VERSIONS = new TreeSet() {{ add(NO_MORE_KEY_EXCHANGE_PREFIX_VERSION); @@ -249,6 +250,16 @@ public class DatabaseUpgradeActivity extends BaseActivity { TextSecurePreferences.setScreenSecurityEnabled(getApplicationContext(), screenSecurity); } + if (params[0] < PERSISTENT_BLOBS) { + File externalDir = context.getExternalFilesDir(null); + + if (externalDir != null && externalDir.isDirectory() && externalDir.exists()) { + for (File blob : externalDir.listFiles()) { + if (blob.exists() && blob.isFile()) blob.delete(); + } + } + } + return null; } diff --git a/src/org/thoughtcrime/securesms/providers/PersistentBlobProvider.java b/src/org/thoughtcrime/securesms/providers/PersistentBlobProvider.java index 9707f423d9..aad182b2fd 100644 --- a/src/org/thoughtcrime/securesms/providers/PersistentBlobProvider.java +++ b/src/org/thoughtcrime/securesms/providers/PersistentBlobProvider.java @@ -141,6 +141,10 @@ public class PersistentBlobProvider { return getFile(ContentUris.parseId(uri)).delete(); } + if (isExternalBlobUri(context, uri)) { + return new File(uri.getPath()).delete(); + } + return false; } @@ -219,7 +223,7 @@ public class PersistentBlobProvider { } private static @NonNull File getExternalDir(Context context) throws IOException { - final File externalDir = context.getExternalFilesDir(null); + final File externalDir = context.getExternalCacheDir(); if (externalDir == null) throw new IOException("no external files directory"); return externalDir; }