From af1b9f83f2945cb85f2c6e4d464d3839a0b26eb7 Mon Sep 17 00:00:00 2001 From: Mark Baker Date: Sat, 24 Dec 2011 18:17:12 +0000 Subject: [PATCH] Added batch buttons for Archive and Move. Made batch buttons configurable. --- res/drawable/ic_button_archive.png | Bin 0 -> 4113 bytes res/layout/message_list_batch_buttons.xml | 14 ++++ res/values/strings.xml | 9 +++ res/xml/global_preferences.xml | 45 ++++++++++++ src/com/fsck/k9/K9.java | 64 +++++++++++++++++- src/com/fsck/k9/activity/MessageList.java | 30 +++++++- src/com/fsck/k9/activity/setup/Prefs.java | 32 ++++++++- .../fsck/k9/preferences/GlobalSettings.java | 18 +++++ 8 files changed, 207 insertions(+), 5 deletions(-) create mode 100644 res/drawable/ic_button_archive.png diff --git a/res/drawable/ic_button_archive.png b/res/drawable/ic_button_archive.png new file mode 100644 index 0000000000000000000000000000000000000000..f7fbd5f6dbf254b5ac4425a523f55ff73ef7e65b GIT binary patch literal 4113 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 + + Lock-screen notifications Don\'t display message subject in notification bar when system is locked + Batch buttons + Configure message list batch buttons + Mark read/unread + Delete + Move to archive + Move + Flag + Unselect + Quiet Time Disable ringing, buzzing and flashing at night Quiet Time starts diff --git a/res/xml/global_preferences.xml b/res/xml/global_preferences.xml index 58c41afdf..02fa3c9a7 100644 --- a/res/xml/global_preferences.xml +++ b/res/xml/global_preferences.xml @@ -157,6 +157,7 @@ android:dependency="messagelist_show_contact_name" /> + + + + + + + + + + + + + + + + + + selection = getSelectionFromCheckboxes(); + onArchive(selection); + return; + } + + if (v == mBatchMoveButton) { + final List selection = getSelectionFromCheckboxes(); + onMove(selection); + return; + } + synchronized (mAdapter.messages) { for (MessageInfoHolder holder : mAdapter.messages) { if (holder.selected) { @@ -2546,6 +2568,8 @@ public class MessageList holder.flagged = newState; } else if (v == mBatchReadButton) { holder.read = newState; + } else if (v == mBatchArchiveButton) { + // TODO } messageList.add(holder.message); } diff --git a/src/com/fsck/k9/activity/setup/Prefs.java b/src/com/fsck/k9/activity/setup/Prefs.java index 7a436c65e..540df2f9c 100644 --- a/src/com/fsck/k9/activity/setup/Prefs.java +++ b/src/com/fsck/k9/activity/setup/Prefs.java @@ -74,7 +74,12 @@ public class Prefs extends K9PreferenceActivity { private static final String PREFERENCE_QUIET_TIME_ENABLED = "quiet_time_enabled"; private static final String PREFERENCE_QUIET_TIME_STARTS = "quiet_time_starts"; private static final String PREFERENCE_QUIET_TIME_ENDS = "quiet_time_ends"; - + private static final String PREFERENCE_BATCH_BUTTONS_MARK_READ = "batch_buttons_mark_read"; + private static final String PREFERENCE_BATCH_BUTTONS_DELETE = "batch_buttons_delete"; + private static final String PREFERENCE_BATCH_BUTTONS_ARCHIVE = "batch_buttons_archive"; + private static final String PREFERENCE_BATCH_BUTTONS_MOVE = "batch_buttons_move"; + private static final String PREFERENCE_BATCH_BUTTONS_FLAG = "batch_buttons_flag"; + private static final String PREFERENCE_BATCH_BUTTONS_UNSELECT = "batch_buttons_unselect"; private static final String PREFERENCE_MESSAGEVIEW_MOBILE_LAYOUT = "messageview_mobile_layout"; private static final String PREFERENCE_BACKGROUND_OPS = "background_ops"; @@ -121,6 +126,12 @@ public class Prefs extends K9PreferenceActivity { private com.fsck.k9.preferences.TimePickerPreference mQuietTimeEnds; private Preference mAttachmentPathPreference; + private CheckBoxPreference mBatchButtonsMarkRead; + private CheckBoxPreference mBatchButtonsDelete; + private CheckBoxPreference mBatchButtonsArchive; + private CheckBoxPreference mBatchButtonsMove; + private CheckBoxPreference mBatchButtonsFlag; + private CheckBoxPreference mBatchButtonsUnselect; public static void actionPrefs(Context context) { Intent i = new Intent(context, Prefs.class); @@ -342,6 +353,19 @@ public class Prefs extends K9PreferenceActivity { } }; }); + + mBatchButtonsMarkRead = (CheckBoxPreference)findPreference(PREFERENCE_BATCH_BUTTONS_MARK_READ); + mBatchButtonsDelete = (CheckBoxPreference)findPreference(PREFERENCE_BATCH_BUTTONS_DELETE); + mBatchButtonsArchive = (CheckBoxPreference)findPreference(PREFERENCE_BATCH_BUTTONS_ARCHIVE); + mBatchButtonsMove = (CheckBoxPreference)findPreference(PREFERENCE_BATCH_BUTTONS_MOVE); + mBatchButtonsFlag = (CheckBoxPreference)findPreference(PREFERENCE_BATCH_BUTTONS_FLAG); + mBatchButtonsUnselect = (CheckBoxPreference)findPreference(PREFERENCE_BATCH_BUTTONS_UNSELECT); + mBatchButtonsMarkRead.setChecked(K9.batchButtonsMarkRead()); + mBatchButtonsDelete.setChecked(K9.batchButtonsDelete()); + mBatchButtonsArchive.setChecked(K9.batchButtonsArchive()); + mBatchButtonsMove.setChecked(K9.batchButtonsMove()); + mBatchButtonsFlag.setChecked(K9.batchButtonsFlag()); + mBatchButtonsUnselect.setChecked(K9.batchButtonsUnselect()); } private void saveSettings() { @@ -380,6 +404,12 @@ public class Prefs extends K9PreferenceActivity { K9.setQuietTimeStarts(mQuietTimeStarts.getTime()); K9.setQuietTimeEnds(mQuietTimeEnds.getTime()); + K9.setBatchButtonsMarkRead(mBatchButtonsMarkRead.isChecked()); + K9.setBatchButtonsDelete(mBatchButtonsDelete.isChecked()); + K9.setBatchButtonsArchive(mBatchButtonsArchive.isChecked()); + K9.setBatchButtonsMove(mBatchButtonsMove.isChecked()); + K9.setBatchButtonsFlag(mBatchButtonsFlag.isChecked()); + K9.setBatchButtonsUnselect(mBatchButtonsUnselect.isChecked()); K9.setZoomControlsEnabled(mZoomControlsEnabled.isChecked()); K9.setAttachmentDefaultPath(mAttachmentPathPreference.getSummary().toString()); diff --git a/src/com/fsck/k9/preferences/GlobalSettings.java b/src/com/fsck/k9/preferences/GlobalSettings.java index 5dcae70bb..d09e93417 100644 --- a/src/com/fsck/k9/preferences/GlobalSettings.java +++ b/src/com/fsck/k9/preferences/GlobalSettings.java @@ -191,6 +191,24 @@ public class GlobalSettings { s.put("zoomControlsEnabled", Settings.versions( new V(1, new BooleanSetting(false)) )); + s.put("batchButtonsMarkRead", Settings.versions( + new V(1, new BooleanSetting(true)) + )); + s.put("batchButtonsDelete", Settings.versions( + new V(1, new BooleanSetting(true)) + )); + s.put("batchButtonsArchive", Settings.versions( + new V(1, new BooleanSetting(false)) + )); + s.put("batchButtonsMove", Settings.versions( + new V(1, new BooleanSetting(false)) + )); + s.put("batchButtonsFlag", Settings.versions( + new V(1, new BooleanSetting(true)) + )); + s.put("batchButtonsUnselect", Settings.versions( + new V(1, new BooleanSetting(true)) + )); SETTINGS = Collections.unmodifiableMap(s);