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 @@ +