clear database dialog

This commit is contained in:
danijoo
2016-01-02 15:00:10 +01:00
parent e91f4c86bc
commit 6b31036abd
2 changed files with 34 additions and 2 deletions

View File

@@ -1,17 +1,23 @@
package net.headlezz.notificationlogger; package net.headlezz.notificationlogger;
import android.app.Activity; import android.app.Activity;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceFragmentCompat; import android.support.v7.preference.PreferenceFragmentCompat;
import net.headlezz.notificationlogger.logger.Logged_notificationTable;
public class PreferenceFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceClickListener { public class PreferenceFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceClickListener {
private PreferenceCallbacks mCallbacks; private PreferenceCallbacks mCallbacks;
final String PREF_ABOUT = "pref_about"; final String PREF_ABOUT = "pref_about";
final String PREF_BLACKLIST = "pref_blacklist"; final String PREF_BLACKLIST = "pref_blacklist";
final String PREF_CLEAR_DATABASE = "pref_clear_database";
interface PreferenceCallbacks { interface PreferenceCallbacks {
@@ -24,6 +30,7 @@ public class PreferenceFragment extends PreferenceFragmentCompat implements Pref
addPreferencesFromResource(R.xml.preferences); addPreferencesFromResource(R.xml.preferences);
findPreference(PREF_ABOUT).setOnPreferenceClickListener(this); findPreference(PREF_ABOUT).setOnPreferenceClickListener(this);
findPreference(PREF_BLACKLIST).setOnPreferenceClickListener(this); findPreference(PREF_BLACKLIST).setOnPreferenceClickListener(this);
findPreference(PREF_CLEAR_DATABASE).setOnPreferenceClickListener(this);
} }
@Override @Override
@@ -35,10 +42,29 @@ public class PreferenceFragment extends PreferenceFragmentCompat implements Pref
} else if(key.equals(PREF_BLACKLIST)) { } else if(key.equals(PREF_BLACKLIST)) {
mCallbacks.showBlacklistScreen(); mCallbacks.showBlacklistScreen();
return true; return true;
} } else if(key.equals(PREF_CLEAR_DATABASE))
askClearDatabase();
return false; return false;
} }
private void askClearDatabase() {
new AlertDialog.Builder(getContext())
.setTitle(R.string.pref_clear_database_dialog_title)
.setMessage(R.string.pref_clear_database_dialog_message)
.setNegativeButton(R.string.pref_clear_database_dialog_negative, null)
.setPositiveButton(R.string.pref_clear_database_dialog_positive, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ContentResolver resolver = getContext().getContentResolver();
// there are no notifications with negative ids, so we use this to select all rows
String whereClause = Logged_notificationTable.FIELD_NOTIFICATION_ID + " != -1";
resolver.delete(Logged_notificationTable.CONTENT_URI, whereClause, new String[0]);
Snackbar.make(getActivity().findViewById(android.R.id.content), R.string.pref_clear_database_snackbar_cleared, Snackbar.LENGTH_SHORT).show();
}
})
.create().show();
}
@SuppressWarnings("ConstantConditions") @SuppressWarnings("ConstantConditions")
@Override @Override
public void onAttach(Activity activity) { public void onAttach(Activity activity) {

View File

@@ -20,6 +20,12 @@
<string name="pref_clear_database_summary">Remove all logged notifications</string> <string name="pref_clear_database_summary">Remove all logged notifications</string>
<string name="pref_export_title">Export to sdcard</string> <string name="pref_export_title">Export to sdcard</string>
<string name="pref_about_title">About</string> <string name="pref_about_title">About</string>
<string name="pref_clear_database_dialog_title">Clear database</string>
<string name="pref_clear_database_dialog_message">Delete all logged notifications?</string>
<string name="pref_clear_database_dialog_negative">Cancel</string>
<string name="pref_clear_database_dialog_positive">Yes</string>
<string name="pref_clear_database_snackbar_cleared">Database cleared.</string>
<string name="fab_cd_create_notification">FAB: Create notification</string> <string name="fab_cd_create_notification">FAB: Create notification</string>
<string name="title_create_notification">Create notification</string> <string name="title_create_notification">Create notification</string>
<string name="title_blacklist">Blacklist</string> <string name="title_blacklist">Blacklist</string>