diff --git a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
index d00b64d12d51ce3959842fbc146607dd4d7553bf..1ccc6efe1000a687e361934f0b3f55eb62d93624 100644
--- a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
+++ b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
@@ -801,6 +801,11 @@ public class DatabaseBackend extends SQLiteOpenHelper {
return is;
}
+ public void clearBlockedMedia() {
+ SQLiteDatabase db = this.getWritableDatabase();
+ db.execSQL("DELETE FROM cheogram.blocked_media");
+ }
+
public void createConversation(Conversation conversation) {
SQLiteDatabase db = this.getWritableDatabase();
db.insert(Conversation.TABLENAME, null, conversation.getContentValues());
diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
index 13d8846fef4ce022f8f0bb2ebc9cdbd3c3789dba..7056b4e1a0441e6c3ff62f9a9e91aede9608bba9 100644
--- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
+++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
@@ -581,6 +581,10 @@ public class XmppConnectionService extends Service {
this.databaseBackend.blockMedia(cid);
}
+ public void clearBlockedMedia() {
+ this.databaseBackend.clearBlockedMedia();
+ }
+
public AvatarService getAvatarService() {
return this.mAvatarService;
}
diff --git a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java
index 436e7e7aba6f74e546d0f7471ec74c370d652376..496cba8659fe8ad1ac2bd38017d7947b40ae9ca4 100644
--- a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java
@@ -385,6 +385,15 @@ public class SettingsActivity extends XmppActivity implements OnSharedPreference
});
}
+ final Preference clearBlockedMedia = mSettingsFragment.findPreference("clear_blocked_media");
+ if (clearBlockedMedia != null) {
+ clearBlockedMedia.setOnPreferenceClickListener((p) -> {
+ xmppConnectionService.clearBlockedMedia();
+ displayToast("Blocked media will be displayed again.");
+ return true;
+ });
+ }
+
final String theTheme = PreferenceManager.getDefaultSharedPreferences(this).getString(THEME, "");
if (Build.VERSION.SDK_INT < 30 || !theTheme.equals("custom")) {
final PreferenceCategory uiCategory = (PreferenceCategory) mSettingsFragment.findPreference("ui");
diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml
index 9ce4f21ed6d64727ee055b8d34667b81ec3a11e9..2f57ec695c3291292765b35b7c68d3f76c3cba6e 100644
--- a/src/main/res/xml/preferences.xml
+++ b/src/main/res/xml/preferences.xml
@@ -370,6 +370,9 @@
+