Loading res/menu/message_list_option.xml +24 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,30 @@ android:icon="?attr/iconActionDelete" android:showAsAction="always" android:title="@string/delete_action"/> <!-- MessageView --> <item android:id="@+id/archive" android:icon="?attr/iconActionArchive" android:showAsAction="ifRoom" android:title="@string/archive_action"/> <!-- MessageView --> <item android:id="@+id/spam" android:icon="?attr/iconActionSpam" android:showAsAction="ifRoom" android:title="@string/spam_action"/> <!-- MessageView --> <item android:id="@+id/move" android:icon="?attr/iconActionMoveOrCopy" android:showAsAction="ifRoom" android:title="@string/move_action"/> <!-- MessageView --> <item android:id="@+id/copy" android:icon="?attr/iconActionMoveOrCopy" android:showAsAction="ifRoom" android:title="@string/copy_action"/> <!-- MessageView --> <item Loading res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1153,4 +1153,7 @@ Please submit bug reports, contribute new features and ask questions at <string name="mark_all_as_read">Mark all as read</string> <string name="global_settings_colorize_missing_contact_pictures">Colorize missing contact pictures</string> <string name="global_settings_messageview_visible_refile_actions_title">Visisble message actions</string> <string name="global_settings_messageview_visible_refile_actions_summary">Show selected actions in the message view menu</string> </resources> res/xml/global_preferences.xml +9 −0 Original line number Diff line number Diff line Loading @@ -225,6 +225,15 @@ android:title="@string/global_settings_messageview_fixedwidth_label" android:summary="@string/global_settings_messageview_fixedwidth_summary" /> <com.fsck.k9.preferences.CheckBoxListPreference android:persistent="false" android:key="messageview_visible_refile_actions" android:title="@string/global_settings_messageview_visible_refile_actions_title" android:summary="@string/global_settings_messageview_visible_refile_actions_summary" android:dialogTitle="@string/global_settings_messageview_visible_refile_actions_title" android:positiveButtonText="@android:string/ok" android:negativeButtonText="@android:string/cancel" /> <CheckBoxPreference android:persistent="false" android:key="messageview_mobile_layout" Loading src/com/fsck/k9/K9.java +65 −0 Original line number Diff line number Diff line Loading @@ -263,6 +263,13 @@ public class K9 extends Application { private static SplitViewMode sSplitViewMode = SplitViewMode.NEVER; private static boolean sColorizeMissingContactPictures = true; private static boolean sMessageViewArchiveActionVisible = false; private static boolean sMessageViewDeleteActionVisible = true; private static boolean sMessageViewMoveActionVisible = false; private static boolean sMessageViewCopyActionVisible = false; private static boolean sMessageViewSpamActionVisible = false; /** * @see #areDatabasesUpToDate() */ Loading Loading @@ -541,6 +548,13 @@ public class K9 extends Application { editor.putBoolean("threadedView", sThreadedViewEnabled); editor.putString("splitViewMode", sSplitViewMode.name()); editor.putBoolean("colorizeMissingContactPictures", sColorizeMissingContactPictures); editor.putBoolean("messageViewArchiveActionVisible", sMessageViewArchiveActionVisible); editor.putBoolean("messageViewDeleteActionVisible", sMessageViewDeleteActionVisible); editor.putBoolean("messageViewMoveActionVisible", sMessageViewMoveActionVisible); editor.putBoolean("messageViewCopyActionVisible", sMessageViewCopyActionVisible); editor.putBoolean("messageViewSpamActionVisible", sMessageViewSpamActionVisible); fontSizes.save(editor); } Loading Loading @@ -766,6 +780,13 @@ public class K9 extends Application { sColorizeMissingContactPictures = sprefs.getBoolean("colorizeMissingContactPictures", true); sMessageViewArchiveActionVisible = sprefs.getBoolean("messageViewArchiveActionVisible", false); sMessageViewDeleteActionVisible = sprefs.getBoolean("messageViewDeleteActionVisible", true); sMessageViewMoveActionVisible = sprefs.getBoolean("messageViewMoveActionVisible", false); sMessageViewCopyActionVisible = sprefs.getBoolean("messageViewCopyActionVisible", false); sMessageViewSpamActionVisible = sprefs.getBoolean("messageViewSpamActionVisible", false); K9.setK9Language(sprefs.getString("language", "")); int themeValue = sprefs.getInt("theme", Theme.LIGHT.ordinal()); Loading Loading @@ -1327,6 +1348,50 @@ public class K9 extends Application { } public static boolean isMessageViewArchiveActionVisible() { return sMessageViewArchiveActionVisible; } public static void setMessageViewArchiveActionVisible(boolean messageViewArchiveActionVisible) { sMessageViewArchiveActionVisible = messageViewArchiveActionVisible; } public static boolean isMessageViewDeleteActionVisible() { return sMessageViewDeleteActionVisible; } public static void setMessageViewDeleteActionVisible( boolean messageViewDeleteActionVisible) { sMessageViewDeleteActionVisible = messageViewDeleteActionVisible; } public static boolean isMessageViewMoveActionVisible() { return sMessageViewMoveActionVisible; } public static void setMessageViewMoveActionVisible( boolean messageViewMoveActionVisible) { sMessageViewMoveActionVisible = messageViewMoveActionVisible; } public static boolean isMessageViewCopyActionVisible() { return sMessageViewCopyActionVisible; } public static void setMessageViewCopyActionVisible( boolean messageViewCopyActionVisible) { sMessageViewCopyActionVisible = messageViewCopyActionVisible; } public static boolean isMessageViewSpamActionVisible() { return sMessageViewSpamActionVisible; } public static void setMessageViewSpamActionVisible( boolean messageViewSpamActionVisible) { sMessageViewSpamActionVisible = messageViewSpamActionVisible; } /** * Check if we already know whether all databases are using the current database schema. * Loading src/com/fsck/k9/activity/MessageList.java +24 −12 Original line number Diff line number Diff line Loading @@ -973,8 +973,12 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme || !mMessageViewFragment.isInitialized()) { menu.findItem(R.id.next_message).setVisible(false); menu.findItem(R.id.previous_message).setVisible(false); menu.findItem(R.id.delete).setVisible(false); menu.findItem(R.id.single_message_options).setVisible(false); menu.findItem(R.id.delete).setVisible(false); menu.findItem(R.id.archive).setVisible(false); menu.findItem(R.id.move).setVisible(false); menu.findItem(R.id.copy).setVisible(false); menu.findItem(R.id.spam).setVisible(false); menu.findItem(R.id.refile).setVisible(false); menu.findItem(R.id.toggle_unread).setVisible(false); menu.findItem(R.id.select_text).setVisible(false); Loading Loading @@ -1022,20 +1026,28 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme menu.findItem(R.id.toggle_unread).setTitle(R.string.mark_as_read_action); } menu.findItem(R.id.copy).setVisible(mMessageViewFragment.isCopyCapable()); // Jellybean has built-in long press selection support menu.findItem(R.id.select_text).setVisible(Build.VERSION.SDK_INT < 16); if (mMessageViewFragment.isMoveCapable()) { menu.findItem(R.id.move).setVisible(true); menu.findItem(R.id.archive).setVisible(mMessageViewFragment.canMessageBeArchived()); menu.findItem(R.id.spam).setVisible(mMessageViewFragment.canMessageBeMovedToSpam()); } else { menu.findItem(R.id.move).setVisible(false); menu.findItem(R.id.archive).setVisible(false); menu.findItem(R.id.spam).setVisible(false); } menu.findItem(R.id.delete).setVisible(K9.isMessageViewDeleteActionVisible()); menu.findItem(R.id.copy).setVisible(mMessageViewFragment.isCopyCapable() && K9.isMessageViewCopyActionVisible()); menu.findItem(R.id.move).setVisible(mMessageViewFragment.isMoveCapable() && K9.isMessageViewMoveActionVisible()); menu.findItem(R.id.archive).setVisible(mMessageViewFragment.isMoveCapable() && mMessageViewFragment.canMessageBeArchived() && K9.isMessageViewArchiveActionVisible()); menu.findItem(R.id.spam).setVisible(mMessageViewFragment.isMoveCapable() && mMessageViewFragment.canMessageBeMovedToSpam() && K9.isMessageViewSpamActionVisible()); Menu refileSubmenu = menu.findItem(R.id.refile).getSubMenu(); refileSubmenu.findItem(R.id.copy).setVisible(mMessageViewFragment.isCopyCapable()); refileSubmenu.findItem(R.id.move).setVisible(mMessageViewFragment.isMoveCapable()); refileSubmenu.findItem(R.id.archive).setVisible(mMessageViewFragment.isMoveCapable() && mMessageViewFragment.canMessageBeArchived()); refileSubmenu.findItem(R.id.spam).setVisible(mMessageViewFragment.isMoveCapable() && mMessageViewFragment.canMessageBeMovedToSpam()); if (mMessageViewFragment.allHeadersVisible()) { menu.findItem(R.id.show_headers).setVisible(false); Loading Loading
res/menu/message_list_option.xml +24 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,30 @@ android:icon="?attr/iconActionDelete" android:showAsAction="always" android:title="@string/delete_action"/> <!-- MessageView --> <item android:id="@+id/archive" android:icon="?attr/iconActionArchive" android:showAsAction="ifRoom" android:title="@string/archive_action"/> <!-- MessageView --> <item android:id="@+id/spam" android:icon="?attr/iconActionSpam" android:showAsAction="ifRoom" android:title="@string/spam_action"/> <!-- MessageView --> <item android:id="@+id/move" android:icon="?attr/iconActionMoveOrCopy" android:showAsAction="ifRoom" android:title="@string/move_action"/> <!-- MessageView --> <item android:id="@+id/copy" android:icon="?attr/iconActionMoveOrCopy" android:showAsAction="ifRoom" android:title="@string/copy_action"/> <!-- MessageView --> <item Loading
res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1153,4 +1153,7 @@ Please submit bug reports, contribute new features and ask questions at <string name="mark_all_as_read">Mark all as read</string> <string name="global_settings_colorize_missing_contact_pictures">Colorize missing contact pictures</string> <string name="global_settings_messageview_visible_refile_actions_title">Visisble message actions</string> <string name="global_settings_messageview_visible_refile_actions_summary">Show selected actions in the message view menu</string> </resources>
res/xml/global_preferences.xml +9 −0 Original line number Diff line number Diff line Loading @@ -225,6 +225,15 @@ android:title="@string/global_settings_messageview_fixedwidth_label" android:summary="@string/global_settings_messageview_fixedwidth_summary" /> <com.fsck.k9.preferences.CheckBoxListPreference android:persistent="false" android:key="messageview_visible_refile_actions" android:title="@string/global_settings_messageview_visible_refile_actions_title" android:summary="@string/global_settings_messageview_visible_refile_actions_summary" android:dialogTitle="@string/global_settings_messageview_visible_refile_actions_title" android:positiveButtonText="@android:string/ok" android:negativeButtonText="@android:string/cancel" /> <CheckBoxPreference android:persistent="false" android:key="messageview_mobile_layout" Loading
src/com/fsck/k9/K9.java +65 −0 Original line number Diff line number Diff line Loading @@ -263,6 +263,13 @@ public class K9 extends Application { private static SplitViewMode sSplitViewMode = SplitViewMode.NEVER; private static boolean sColorizeMissingContactPictures = true; private static boolean sMessageViewArchiveActionVisible = false; private static boolean sMessageViewDeleteActionVisible = true; private static boolean sMessageViewMoveActionVisible = false; private static boolean sMessageViewCopyActionVisible = false; private static boolean sMessageViewSpamActionVisible = false; /** * @see #areDatabasesUpToDate() */ Loading Loading @@ -541,6 +548,13 @@ public class K9 extends Application { editor.putBoolean("threadedView", sThreadedViewEnabled); editor.putString("splitViewMode", sSplitViewMode.name()); editor.putBoolean("colorizeMissingContactPictures", sColorizeMissingContactPictures); editor.putBoolean("messageViewArchiveActionVisible", sMessageViewArchiveActionVisible); editor.putBoolean("messageViewDeleteActionVisible", sMessageViewDeleteActionVisible); editor.putBoolean("messageViewMoveActionVisible", sMessageViewMoveActionVisible); editor.putBoolean("messageViewCopyActionVisible", sMessageViewCopyActionVisible); editor.putBoolean("messageViewSpamActionVisible", sMessageViewSpamActionVisible); fontSizes.save(editor); } Loading Loading @@ -766,6 +780,13 @@ public class K9 extends Application { sColorizeMissingContactPictures = sprefs.getBoolean("colorizeMissingContactPictures", true); sMessageViewArchiveActionVisible = sprefs.getBoolean("messageViewArchiveActionVisible", false); sMessageViewDeleteActionVisible = sprefs.getBoolean("messageViewDeleteActionVisible", true); sMessageViewMoveActionVisible = sprefs.getBoolean("messageViewMoveActionVisible", false); sMessageViewCopyActionVisible = sprefs.getBoolean("messageViewCopyActionVisible", false); sMessageViewSpamActionVisible = sprefs.getBoolean("messageViewSpamActionVisible", false); K9.setK9Language(sprefs.getString("language", "")); int themeValue = sprefs.getInt("theme", Theme.LIGHT.ordinal()); Loading Loading @@ -1327,6 +1348,50 @@ public class K9 extends Application { } public static boolean isMessageViewArchiveActionVisible() { return sMessageViewArchiveActionVisible; } public static void setMessageViewArchiveActionVisible(boolean messageViewArchiveActionVisible) { sMessageViewArchiveActionVisible = messageViewArchiveActionVisible; } public static boolean isMessageViewDeleteActionVisible() { return sMessageViewDeleteActionVisible; } public static void setMessageViewDeleteActionVisible( boolean messageViewDeleteActionVisible) { sMessageViewDeleteActionVisible = messageViewDeleteActionVisible; } public static boolean isMessageViewMoveActionVisible() { return sMessageViewMoveActionVisible; } public static void setMessageViewMoveActionVisible( boolean messageViewMoveActionVisible) { sMessageViewMoveActionVisible = messageViewMoveActionVisible; } public static boolean isMessageViewCopyActionVisible() { return sMessageViewCopyActionVisible; } public static void setMessageViewCopyActionVisible( boolean messageViewCopyActionVisible) { sMessageViewCopyActionVisible = messageViewCopyActionVisible; } public static boolean isMessageViewSpamActionVisible() { return sMessageViewSpamActionVisible; } public static void setMessageViewSpamActionVisible( boolean messageViewSpamActionVisible) { sMessageViewSpamActionVisible = messageViewSpamActionVisible; } /** * Check if we already know whether all databases are using the current database schema. * Loading
src/com/fsck/k9/activity/MessageList.java +24 −12 Original line number Diff line number Diff line Loading @@ -973,8 +973,12 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme || !mMessageViewFragment.isInitialized()) { menu.findItem(R.id.next_message).setVisible(false); menu.findItem(R.id.previous_message).setVisible(false); menu.findItem(R.id.delete).setVisible(false); menu.findItem(R.id.single_message_options).setVisible(false); menu.findItem(R.id.delete).setVisible(false); menu.findItem(R.id.archive).setVisible(false); menu.findItem(R.id.move).setVisible(false); menu.findItem(R.id.copy).setVisible(false); menu.findItem(R.id.spam).setVisible(false); menu.findItem(R.id.refile).setVisible(false); menu.findItem(R.id.toggle_unread).setVisible(false); menu.findItem(R.id.select_text).setVisible(false); Loading Loading @@ -1022,20 +1026,28 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme menu.findItem(R.id.toggle_unread).setTitle(R.string.mark_as_read_action); } menu.findItem(R.id.copy).setVisible(mMessageViewFragment.isCopyCapable()); // Jellybean has built-in long press selection support menu.findItem(R.id.select_text).setVisible(Build.VERSION.SDK_INT < 16); if (mMessageViewFragment.isMoveCapable()) { menu.findItem(R.id.move).setVisible(true); menu.findItem(R.id.archive).setVisible(mMessageViewFragment.canMessageBeArchived()); menu.findItem(R.id.spam).setVisible(mMessageViewFragment.canMessageBeMovedToSpam()); } else { menu.findItem(R.id.move).setVisible(false); menu.findItem(R.id.archive).setVisible(false); menu.findItem(R.id.spam).setVisible(false); } menu.findItem(R.id.delete).setVisible(K9.isMessageViewDeleteActionVisible()); menu.findItem(R.id.copy).setVisible(mMessageViewFragment.isCopyCapable() && K9.isMessageViewCopyActionVisible()); menu.findItem(R.id.move).setVisible(mMessageViewFragment.isMoveCapable() && K9.isMessageViewMoveActionVisible()); menu.findItem(R.id.archive).setVisible(mMessageViewFragment.isMoveCapable() && mMessageViewFragment.canMessageBeArchived() && K9.isMessageViewArchiveActionVisible()); menu.findItem(R.id.spam).setVisible(mMessageViewFragment.isMoveCapable() && mMessageViewFragment.canMessageBeMovedToSpam() && K9.isMessageViewSpamActionVisible()); Menu refileSubmenu = menu.findItem(R.id.refile).getSubMenu(); refileSubmenu.findItem(R.id.copy).setVisible(mMessageViewFragment.isCopyCapable()); refileSubmenu.findItem(R.id.move).setVisible(mMessageViewFragment.isMoveCapable()); refileSubmenu.findItem(R.id.archive).setVisible(mMessageViewFragment.isMoveCapable() && mMessageViewFragment.canMessageBeArchived()); refileSubmenu.findItem(R.id.spam).setVisible(mMessageViewFragment.isMoveCapable() && mMessageViewFragment.canMessageBeMovedToSpam()); if (mMessageViewFragment.allHeadersVisible()) { menu.findItem(R.id.show_headers).setVisible(false); Loading