1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-08-13 17:03:48 -04:00

Added option to disable confirmation dialog for "mark all as read"

Fixes issue 1415
This commit is contained in:
cketti 2011-04-01 05:34:27 +02:00
parent c852721f8a
commit 4aec4b096c
5 changed files with 62 additions and 27 deletions

View File

@ -344,6 +344,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
<string name="global_settings_confirm_action_archive">Archive</string>
<string name="global_settings_confirm_action_delete">Delete (message view only)</string>
<string name="global_settings_confirm_action_spam">Spam</string>
<string name="global_settings_confirm_action_mark_all_as_read">Mark all as read</string>
<string name="global_settings_confirm_action_send">Send</string>
<string name="global_settings_privacy_mode_title">Lock-screen notifications</string>

View File

@ -148,6 +148,7 @@ public class K9 extends Application {
private static boolean mConfirmDelete = false;
private static boolean mConfirmSpam = false;
private static boolean mConfirmMarkAllAsRead = true;
private static boolean mKeyguardPrivacy = false;
private static boolean mMessageListStars = true;
@ -446,6 +447,7 @@ public class K9 extends Application {
editor.putBoolean("confirmDelete", mConfirmDelete);
editor.putBoolean("confirmSpam", mConfirmSpam);
editor.putBoolean("confirmMarkAllAsRead", mConfirmMarkAllAsRead);
editor.putBoolean("keyguardPrivacy", mKeyguardPrivacy);
@ -499,6 +501,7 @@ public class K9 extends Application {
mConfirmDelete = sprefs.getBoolean("confirmDelete", false);
mConfirmSpam = sprefs.getBoolean("confirmSpam", false);
mConfirmMarkAllAsRead = sprefs.getBoolean("confirmMarkAllAsRead", true);
mKeyguardPrivacy = sprefs.getBoolean("keyguardPrivacy", false);
@ -937,15 +940,23 @@ public class K9 extends Application {
public static void setConfirmDelete(final boolean confirm) {
mConfirmDelete = confirm;
}
public static boolean confirmSpam(){
public static boolean confirmSpam() {
return mConfirmSpam;
}
public static void setConfirmSpam(final boolean confirm){
public static void setConfirmSpam(final boolean confirm) {
mConfirmSpam = confirm;
}
public static boolean confirmMarkAllAsRead() {
return mConfirmMarkAllAsRead;
}
public static void setConfirmMarkAllAsRead(final boolean confirm) {
mConfirmMarkAllAsRead = confirm;
}
/**
* @return Whether privacy rules should be applied when system is locked
*/

View File

@ -631,9 +631,21 @@ public class FolderList extends K9ListActivity {
private void onMarkAllAsRead(final Account account, final String folder) {
mSelectedContextFolder = mAdapter.getFolder(folder);
showDialog(DIALOG_MARK_ALL_AS_READ);
if (K9.confirmMarkAllAsRead()) {
showDialog(DIALOG_MARK_ALL_AS_READ);
} else {
markAllAsRead();
}
}
private void markAllAsRead() {
try {
MessagingController.getInstance(getApplication())
.markAllMessagesRead(mAccount, mSelectedContextFolder.name);
mSelectedContextFolder.unreadMessageCount = 0;
mHandler.dataChanged();
} catch (Exception e) { /* Ignore */ }
}
@Override
public Dialog onCreateDialog(int id) {
@ -648,12 +660,7 @@ public class FolderList extends K9ListActivity {
new Runnable() {
@Override
public void run() {
try {
MessagingController.getInstance(getApplication())
.markAllMessagesRead(mAccount, mSelectedContextFolder.name);
mSelectedContextFolder.unreadMessageCount = 0;
mHandler.dataChanged();
} catch (Exception e) { /* Ignore */ }
markAllAsRead();
}
});
}

View File

@ -1252,7 +1252,26 @@ public class MessageList
}
private void onMarkAllAsRead(final Account account, final String folder) {
showDialog(DIALOG_MARK_ALL_AS_READ);
if (K9.confirmMarkAllAsRead()) {
showDialog(DIALOG_MARK_ALL_AS_READ);
} else {
markAllAsRead();
}
}
private void markAllAsRead() {
try {
mController.markAllMessagesRead(mAccount, mCurrentFolder.name);
synchronized (mAdapter.messages) {
for (MessageInfoHolder holder : mAdapter.messages) {
holder.read = true;
}
}
mHandler.sortMessages();
} catch (Exception e) {
// Ignore
}
}
private void onExpunge(final Account account, String folderName) {
@ -1272,18 +1291,7 @@ public class MessageList
new Runnable() {
@Override
public void run() {
try {
mController.markAllMessagesRead(mAccount, mCurrentFolder.name);
synchronized (mAdapter.messages) {
for (MessageInfoHolder holder : mAdapter.messages) {
holder.read = true;
}
}
mHandler.sortMessages();
} catch (Exception e) {
// Ignore
}
markAllAsRead();
}
});
case R.id.dialog_confirm_spam:

View File

@ -181,9 +181,16 @@ public class Prefs extends K9PreferenceActivity {
mStartIntegratedInbox.setChecked(K9.startIntegratedInbox());
mConfirmActions = (CheckBoxListPreference) findPreference(PREFERENCE_CONFIRM_ACTIONS);
mConfirmActions.setItems(new CharSequence[] {getString(R.string.global_settings_confirm_action_delete),
getString(R.string.global_settings_confirm_action_spam)});
mConfirmActions.setCheckedItems(new boolean[] {K9.confirmDelete(), K9.confirmSpam()});
mConfirmActions.setItems(new CharSequence[] {
getString(R.string.global_settings_confirm_action_delete),
getString(R.string.global_settings_confirm_action_spam),
getString(R.string.global_settings_confirm_action_mark_all_as_read)
});
mConfirmActions.setCheckedItems(new boolean[] {
K9.confirmDelete(),
K9.confirmSpam(),
K9.confirmMarkAllAsRead()
});
mPrivacyMode = (CheckBoxPreference) findPreference(PREFERENCE_PRIVACY_MODE);
mPrivacyMode.setChecked(K9.keyguardPrivacy());
@ -307,6 +314,7 @@ public class Prefs extends K9PreferenceActivity {
K9.setStartIntegratedInbox(!mHideSpecialAccounts.isChecked() && mStartIntegratedInbox.isChecked());
K9.setConfirmDelete(mConfirmActions.getCheckedItems()[0]);
K9.setConfirmSpam(mConfirmActions.getCheckedItems()[1]);
K9.setConfirmMarkAllAsRead(mConfirmActions.getCheckedItems()[2]);
K9.setKeyguardPrivacy(mPrivacyMode.isChecked());
K9.setMeasureAccounts(mMeasureAccounts.isChecked());
K9.setCountSearchMessages(mCountSearch.isChecked());