1
0
mirror of https://github.com/moparisthebest/k-9 synced 2025-02-25 15:11:52 -05:00

Issue 2296 Spam message

This commit is contained in:
Archibald Sheran 2011-04-01 05:34:09 +08:00 committed by cketti
parent e698c78190
commit 80f055a0a7
5 changed files with 57 additions and 8 deletions

View File

@ -2,6 +2,7 @@
<resources> <resources>
<item type="id" name="dialog_confirm_delete"/> <item type="id" name="dialog_confirm_delete"/>
<item type="id" name="dialog_confirm_spam"/>
<item type="id" name="dialog_attachment_progress"/> <item type="id" name="dialog_attachment_progress"/>
</resources> </resources>

View File

@ -1025,6 +1025,11 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
<string name="dialog_confirm_delete_confirm_button">Delete</string> <string name="dialog_confirm_delete_confirm_button">Delete</string>
<string name="dialog_confirm_delete_cancel_button">Do not delete</string> <string name="dialog_confirm_delete_cancel_button">Do not delete</string>
<string name="dialog_confirm_spam_title">Confirm Spam</string>
<string name="dialog_confirm_spam_message">Do you really want to mark this conversation as Spam?</string>
<string name="dialog_confirm_spam_confirm_button">Report Spam</string>
<string name="dialog_confirm_spam_cancel_button">No</string>
<string name="dialog_attachment_progress_title">Downloading attachment</string> <string name="dialog_attachment_progress_title">Downloading attachment</string>
<string name="debug_logging_enabled">Debug logging to Android logging system enabled</string> <string name="debug_logging_enabled">Debug logging to Android logging system enabled</string>

View File

@ -147,6 +147,7 @@ public class K9 extends Application {
private static boolean mAnimations = true; private static boolean mAnimations = true;
private static boolean mConfirmDelete = false; private static boolean mConfirmDelete = false;
private static boolean mConfirmSpam = false;
private static boolean mKeyguardPrivacy = false; private static boolean mKeyguardPrivacy = false;
private static boolean mMessageListStars = true; private static boolean mMessageListStars = true;
@ -444,6 +445,7 @@ public class K9 extends Application {
editor.putBoolean("useGalleryBugWorkaround", useGalleryBugWorkaround); editor.putBoolean("useGalleryBugWorkaround", useGalleryBugWorkaround);
editor.putBoolean("confirmDelete", mConfirmDelete); editor.putBoolean("confirmDelete", mConfirmDelete);
editor.putBoolean("confirmSpam", mConfirmSpam);
editor.putBoolean("keyguardPrivacy", mKeyguardPrivacy); editor.putBoolean("keyguardPrivacy", mKeyguardPrivacy);
@ -496,6 +498,8 @@ public class K9 extends Application {
useGalleryBugWorkaround = sprefs.getBoolean("useGalleryBugWorkaround", K9.isGalleryBuggy()); useGalleryBugWorkaround = sprefs.getBoolean("useGalleryBugWorkaround", K9.isGalleryBuggy());
mConfirmDelete = sprefs.getBoolean("confirmDelete", false); mConfirmDelete = sprefs.getBoolean("confirmDelete", false);
mConfirmSpam = sprefs.getBoolean("confirmSpam", false);
mKeyguardPrivacy = sprefs.getBoolean("keyguardPrivacy", false); mKeyguardPrivacy = sprefs.getBoolean("keyguardPrivacy", false);
@ -934,6 +938,14 @@ public class K9 extends Application {
mConfirmDelete = confirm; mConfirmDelete = confirm;
} }
public static boolean confirmSpam(){
return mConfirmSpam;
}
public static void setConfirmSpam(final boolean confirm){
mConfirmSpam = confirm;
}
/** /**
* @return Whether privacy rules should be applied when system is locked * @return Whether privacy rules should be applied when system is locked
*/ */

View File

@ -1131,15 +1131,20 @@ public class MessageList
} }
private void onSpam(MessageInfoHolder holder) { private void onSpam(MessageInfoHolder holder) {
if (K9.confirmSpam()) {
showDialog(R.id.dialog_confirm_spam);
} else
spam(holder);
}
if (!mController.isMoveCapable(holder.message)) { private void spam(MessageInfoHolder holder){
if (!mController.isMoveCapable(holder.message)) {
Toast toast = Toast.makeText(this, R.string.move_copy_cannot_copy_unsynced_message, Toast.LENGTH_LONG); Toast toast = Toast.makeText(this, R.string.move_copy_cannot_copy_unsynced_message, Toast.LENGTH_LONG);
toast.show(); toast.show();
return; return;
} }
onMoveChosen(holder, holder.message.getFolder().getAccount().getSpamFolderName());
onMoveChosen(holder, holder.message.getFolder().getAccount().getSpamFolderName()); }
}
private void onCopy(MessageInfoHolder holder) { private void onCopy(MessageInfoHolder holder) {
if (!mController.isCopyCapable(holder.message.getFolder().getAccount())) { if (!mController.isCopyCapable(holder.message.getFolder().getAccount())) {
@ -1257,6 +1262,8 @@ public class MessageList
switch (id) { switch (id) {
case DIALOG_MARK_ALL_AS_READ: case DIALOG_MARK_ALL_AS_READ:
return createMarkAllAsReadDialog(); return createMarkAllAsReadDialog();
case R.id.dialog_confirm_spam:
return createConfirmSpamDialog(id);
} }
return super.onCreateDialog(id); return super.onCreateDialog(id);
@ -1309,6 +1316,28 @@ public class MessageList
.create(); .create();
} }
private Dialog createConfirmSpamDialog(final int id) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.dialog_confirm_spam_title);
builder.setMessage(R.string.dialog_confirm_spam_message);
builder.setPositiveButton(R.string.dialog_confirm_spam_confirm_button,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismissDialog(id);
spam(mSelectedMessage);
}
});
builder.setNegativeButton(R.string.dialog_confirm_spam_cancel_button,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismissDialog(id);
}
});
return builder.create();
}
private void onToggleRead(MessageInfoHolder holder) { private void onToggleRead(MessageInfoHolder holder) {
mController.setFlag(holder.message.getFolder().getAccount(), holder.message.getFolder().getName(), new String[] { holder.uid }, Flag.SEEN, !holder.read); mController.setFlag(holder.message.getFolder().getAccount(), holder.message.getFolder().getName(), new String[] { holder.uid }, Flag.SEEN, !holder.read);
holder.read = !holder.read; holder.read = !holder.read;
@ -1541,7 +1570,7 @@ public class MessageList
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
MessageInfoHolder holder = mSelectedMessage; MessageInfoHolder holder = mSelectedMessage;
// don't need this anymore // don't need this anymore
mSelectedMessage = null; //mSelectedMessage = null;
if (holder == null) { if (holder == null) {
holder = (MessageInfoHolder) mAdapter.getItem(info.position); holder = (MessageInfoHolder) mAdapter.getItem(info.position);
} }

View File

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