mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-29 04:17:12 +01:00
Add an option to delete all read posts.
This commit is contained in:
parent
fa5008ea5e
commit
c3b2ffa653
@ -0,0 +1,33 @@
|
||||
package ml.docilealligator.infinityforreddit.asynctasks;
|
||||
|
||||
import android.os.AsyncTask;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
|
||||
public class DeleteAllReadPostsAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||
|
||||
public interface DeleteAllReadPostsAsyncTaskListener {
|
||||
void success();
|
||||
}
|
||||
|
||||
private RedditDataRoomDatabase redditDataRoomDatabase;
|
||||
private DeleteAllReadPostsAsyncTaskListener deleteAllReadPostsAsyncTaskListener;
|
||||
|
||||
public DeleteAllReadPostsAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase,
|
||||
DeleteAllReadPostsAsyncTaskListener deleteAllReadPostsAsyncTaskListener) {
|
||||
this.redditDataRoomDatabase = redditDataRoomDatabase;
|
||||
this.deleteAllReadPostsAsyncTaskListener = deleteAllReadPostsAsyncTaskListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(Void... voids) {
|
||||
redditDataRoomDatabase.readPostDao().deleteAllReadPosts();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Void aVoid) {
|
||||
super.onPostExecute(aVoid);
|
||||
deleteAllReadPostsAsyncTaskListener.success();
|
||||
}
|
||||
}
|
@ -20,4 +20,7 @@ public interface ReadPostDao {
|
||||
|
||||
@Query("DELETE FROM read_posts WHERE rowid IN (SELECT rowid FROM read_posts LIMIT 100) AND username = :username")
|
||||
void deleteOldestReadPosts(String username);
|
||||
|
||||
@Query("DELETE FROM read_posts")
|
||||
void deleteAllReadPosts();
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.asynctasks.DeleteAllPostLayoutsAsyncTask;
|
||||
import ml.docilealligator.infinityforreddit.asynctasks.DeleteAllReadPostsAsyncTask;
|
||||
import ml.docilealligator.infinityforreddit.asynctasks.DeleteAllSortTypesAsyncTask;
|
||||
import ml.docilealligator.infinityforreddit.asynctasks.DeleteAllSubredditsAsyncTask;
|
||||
import ml.docilealligator.infinityforreddit.asynctasks.DeleteAllThemesAsyncTask;
|
||||
@ -78,6 +79,7 @@ public class AdvancedPreferenceFragment extends PreferenceFragmentCompat {
|
||||
Preference deletePostLaoutPreference = findPreference(SharedPreferencesUtils.DELETE_ALL_POST_LAYOUT_DATA_IN_DATABASE);
|
||||
Preference deleteAllThemesPreference = findPreference(SharedPreferencesUtils.DELETE_ALL_THEMES_IN_DATABASE);
|
||||
Preference deletePostFeedScrolledPositionsPreference = findPreference(SharedPreferencesUtils.DELETE_FRONT_PAGE_SCROLLED_POSITIONS_IN_DATABASE);
|
||||
Preference deleteReadPostsPreference = findPreference(SharedPreferencesUtils.DELETE_READ_POSTS_IN_DATABASE);
|
||||
Preference deleteAllLegacySettingsPreference = findPreference(SharedPreferencesUtils.DELETE_ALL_LEGACY_SETTINGS);
|
||||
Preference resetAllSettingsPreference = findPreference(SharedPreferencesUtils.RESET_ALL_SETTINGS);
|
||||
|
||||
@ -168,6 +170,20 @@ public class AdvancedPreferenceFragment extends PreferenceFragmentCompat {
|
||||
});
|
||||
}
|
||||
|
||||
if (deleteReadPostsPreference != null) {
|
||||
deleteReadPostsPreference.setOnPreferenceClickListener(preference -> {
|
||||
new MaterialAlertDialogBuilder(activity, R.style.MaterialAlertDialogTheme)
|
||||
.setTitle(R.string.are_you_sure)
|
||||
.setPositiveButton(R.string.yes, (dialogInterface, i)
|
||||
-> new DeleteAllReadPostsAsyncTask(mRedditDataRoomDatabase, () -> {
|
||||
Toast.makeText(activity, R.string.delete_all_read_posts_success, Toast.LENGTH_SHORT).show();
|
||||
}).execute())
|
||||
.setNegativeButton(R.string.no, null)
|
||||
.show();
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
if (deleteAllLegacySettingsPreference != null) {
|
||||
deleteAllLegacySettingsPreference.setOnPreferenceClickListener(preference -> {
|
||||
new MaterialAlertDialogBuilder(activity, R.style.MaterialAlertDialogTheme)
|
||||
|
@ -110,6 +110,7 @@ public class SharedPreferencesUtils {
|
||||
public static final String DELETE_ALL_POST_LAYOUT_DATA_IN_DATABASE = "delete_all_post_layout_data_in_database";
|
||||
public static final String DELETE_ALL_THEMES_IN_DATABASE = "delete_all_themes_in_database";
|
||||
public static final String DELETE_FRONT_PAGE_SCROLLED_POSITIONS_IN_DATABASE = "delete_front_page_scrolled_positions_in_database";
|
||||
public static final String DELETE_READ_POSTS_IN_DATABASE = "delete_read_posts_in_database";
|
||||
public static final String DELETE_ALL_LEGACY_SETTINGS = "delete_all_legacy_settings";
|
||||
public static final String RESET_ALL_SETTINGS = "reset_all_settings";
|
||||
public static final String IMAGE_DOWNLOAD_LOCATION = "image_download_location";
|
||||
|
@ -446,6 +446,7 @@
|
||||
<string name="settings_delete_all_post_layout_data_in_database_title">Delete All Post Layouts in Database</string>
|
||||
<string name="settings_delete_all_themes_in_database_title">Delete All Themes in Database</string>
|
||||
<string name="settings_delete_front_page_scrolled_positions_in_database_title">Delete All Front Page Scrolled Positions in Database</string>
|
||||
<string name="settings_delete_read_posts_in_database_title">Delete All Read Posts in Database</string>
|
||||
<string name="settings_delete_all_legacy_settings_title">Delete All Legacy Settings</string>
|
||||
<string name="settings_reset_all_settings_title">Reset All Settings</string>
|
||||
<string name="settings_advanced_settings_summary">Clean the database and shared preferences</string>
|
||||
@ -820,6 +821,7 @@
|
||||
<string name="delete_all_post_layouts_success">Delete all post layouts successfully</string>
|
||||
<string name="delete_all_themes_success">Delete all themes successfully</string>
|
||||
<string name="delete_all_front_page_scrolled_positions_success">Delete all scrolled positions in front page successfully</string>
|
||||
<string name="delete_all_read_posts_success">Delete all read posts successfully</string>
|
||||
<string name="delete_all_legacy_settings_success">Delete all legacy settings successfully</string>
|
||||
<string name="reset_all_settings_success">Reset all settings successfully</string>
|
||||
|
||||
|
@ -26,6 +26,10 @@
|
||||
app:key="delete_front_page_scrolled_positions_in_database"
|
||||
app:title="@string/settings_delete_front_page_scrolled_positions_in_database_title" />
|
||||
|
||||
<Preference
|
||||
app:key="delete_read_posts_in_database"
|
||||
app:title="@string/settings_delete_read_posts_in_database_title" />
|
||||
|
||||
<Preference
|
||||
app:key="delete_all_legacy_settings"
|
||||
app:title="@string/settings_delete_all_legacy_settings_title" />
|
||||
|
Loading…
Reference in New Issue
Block a user