Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22639a73 authored by Leon Handreke's avatar Leon Handreke
Browse files

Make actions shown in message view menu configurable

Fixes #5850.
parent 09c27d94
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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>
+9 −0
Original line number Diff line number Diff line
@@ -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"
+65 −0
Original line number Diff line number Diff line
@@ -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()
     */
@@ -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);
    }

@@ -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());
@@ -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.
     *
+24 −12
Original line number Diff line number Diff line
@@ -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);
@@ -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