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

Commit bb0501c2 authored by Beverly's avatar Beverly
Browse files

Don't force lower case in ZenSettings

Programatically lower casing letters is bad for translations

Change-Id: Iea39186b9716f628ed96ad457b09440bd177d821
Fixes: 77961695
Test: ZenModeSettingsTest.java
parent a809c439
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -7973,9 +7973,15 @@
    <!-- [CHAR LIMIT=50] Zen mode settings: All messages summary -->
    <string name="zen_mode_all_messages">Messages</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Messages option (ie: text messages) -->
    <string name="zen_mode_all_messages_list">messages</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Selected messages summary -->
    <string name="zen_mode_selected_messages">Some messages</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Selected messages (ie: some text messages are allowed to bypass dnd) -->
    <string name="zen_mode_selected_messages_list">some messages</string>
    <!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: From anyone -->
    <string name="zen_mode_from_anyone">From anyone</string>
@@ -8000,21 +8006,36 @@
    <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option -->
    <string name="zen_mode_alarms">Alarms</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option (ie: sound from alarm clock) -->
    <string name="zen_mode_alarms_list">alarms</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Media option -->
    <string name="zen_mode_media">Media</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Media (ie: sound from video) -->
    <string name="zen_mode_media_list">media</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: System option which includes sounds such as touch sounds -->
    <string name="zen_mode_system">Touch sounds</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: System sounds (ie: touch sounds) -->
    <string name="zen_mode_system_list">touch sounds</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Reminders option -->
    <string name="zen_mode_reminders">Reminders</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Reminders (ie: calendar reminders are allowed to bypass dnd) -->
    <string name="zen_mode_reminders_list">reminders</string>
    <!-- [CHAR LIMIT=70] Zen mode settings: Allow reminders toggle title -->
    <string name="zen_mode_reminders_title">Allow reminders</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Events option -->
    <string name="zen_mode_events">Events</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Events (ie: calendar events) -->
    <string name="zen_mode_events_list">events</string>
    <!-- [CHAR LIMIT=70] Zen mode settings: Allow events toggle title -->
    <string name="zen_mode_events_title">Allow events</string>
@@ -8030,6 +8051,9 @@
    <!-- [CHAR LIMIT=50] Zen mode settings: Repeat callers option -->
    <string name="zen_mode_repeat_callers">Repeat callers</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Repeat callers (ie: repeat callers are allowed to bypass dnd) -->
    <string name="zen_mode_repeat_callers_list">repeat callers</string>
    <!-- [CHAR LIMIT=70] Zen mode settings: Allow repeat callers toggle title -->
    <string name="zen_mode_repeat_callers_title">Allow repeat callers</string>
+89 −55
Original line number Diff line number Diff line
@@ -119,22 +119,22 @@ public class ZenModeSettings extends ZenModeSettingsBase {
            List<String> enabledCategories = getEnabledCategories(policy,
                    category -> PRIORITY_CATEGORY_ALARMS == category
                            || PRIORITY_CATEGORY_MEDIA == category
                            || PRIORITY_CATEGORY_SYSTEM == category);
                            || PRIORITY_CATEGORY_SYSTEM == category, false);
            int numCategories = enabledCategories.size();
            if (numCategories == 0) {
                return mContext.getString(R.string.zen_sound_all_muted);
            } else if (numCategories == 1) {
                return mContext.getString(R.string.zen_sound_one_allowed,
                        enabledCategories.get(0).toLowerCase());
                        enabledCategories.get(0));
            } else if (numCategories == 2) {
                return mContext.getString(R.string.zen_sound_two_allowed,
                        enabledCategories.get(0).toLowerCase(),
                        enabledCategories.get(1).toLowerCase());
                        enabledCategories.get(0),
                        enabledCategories.get(1));
            } else if (numCategories == 3) {
                return mContext.getString(R.string.zen_sound_three_allowed,
                        enabledCategories.get(0).toLowerCase(),
                        enabledCategories.get(1).toLowerCase(),
                        enabledCategories.get(2).toLowerCase());
                        enabledCategories.get(0),
                        enabledCategories.get(1),
                        enabledCategories.get(2));
            } else {
                return mContext.getString(R.string.zen_sound_none_muted);
            }
@@ -143,17 +143,17 @@ public class ZenModeSettings extends ZenModeSettingsBase {
        String getCallsSettingSummary(Policy policy) {
            List<String> enabledCategories = getEnabledCategories(policy,
                    category -> PRIORITY_CATEGORY_CALLS == category
                            || PRIORITY_CATEGORY_REPEAT_CALLERS == category);
                            || PRIORITY_CATEGORY_REPEAT_CALLERS == category, false);
            int numCategories = enabledCategories.size();
            if (numCategories == 0) {
                return mContext.getString(R.string.zen_mode_no_exceptions);
            } else if (numCategories == 1) {
                return mContext.getString(R.string.zen_mode_calls_summary_one,
                        enabledCategories.get(0).toLowerCase());
                        enabledCategories.get(0));
            } else {
                return mContext.getString(R.string.zen_mode_calls_summary_two,
                        enabledCategories.get(0).toLowerCase(),
                        enabledCategories.get(1).toLowerCase());
                        enabledCategories.get(0),
                        enabledCategories.get(1));
            }
        }

@@ -161,7 +161,7 @@ public class ZenModeSettings extends ZenModeSettingsBase {
            List<String> enabledCategories = getEnabledCategories(policy,
                    category -> PRIORITY_CATEGORY_EVENTS == category
                            || PRIORITY_CATEGORY_REMINDERS == category
                            || PRIORITY_CATEGORY_MESSAGES == category);
                            || PRIORITY_CATEGORY_MESSAGES == category, true);
            int numCategories = enabledCategories.size();
            if (numCategories == 0) {
                return mContext.getString(R.string.zen_mode_no_exceptions);
@@ -169,19 +169,19 @@ public class ZenModeSettings extends ZenModeSettingsBase {
                return enabledCategories.get(0);
            } else if (numCategories == 2) {
                return mContext.getString(R.string.join_two_items, enabledCategories.get(0),
                        enabledCategories.get(1).toLowerCase());
                        enabledCategories.get(1));
            } else if (numCategories == 3){
                final List<String> summaries = new ArrayList<>();
                summaries.add(enabledCategories.get(0));
                summaries.add(enabledCategories.get(1).toLowerCase());
                summaries.add(enabledCategories.get(2).toLowerCase());
                summaries.add(enabledCategories.get(1));
                summaries.add(enabledCategories.get(2));

                return ListFormatter.getInstance().format(summaries);
            } else {
                final List<String> summaries = new ArrayList<>();
                summaries.add(enabledCategories.get(0));
                summaries.add(enabledCategories.get(1).toLowerCase());
                summaries.add(enabledCategories.get(2).toLowerCase());
                summaries.add(enabledCategories.get(1));
                summaries.add(enabledCategories.get(2));
                summaries.add(mContext.getString(R.string.zen_mode_other_options));

                return ListFormatter.getInstance().format(summaries);
@@ -251,55 +251,89 @@ public class ZenModeSettings extends ZenModeSettingsBase {
        }

        private List<String> getEnabledCategories(Policy policy,
                Predicate<Integer> filteredCategories) {
                Predicate<Integer> filteredCategories, boolean capitalizeFirstInList) {
            List<String> enabledCategories = new ArrayList<>();
            for (int category : ALL_PRIORITY_CATEGORIES) {
                boolean isFirst = capitalizeFirstInList && enabledCategories.isEmpty();
                if (filteredCategories.test(category) && isCategoryEnabled(policy, category)) {
                    if (category == Policy.PRIORITY_CATEGORY_REPEAT_CALLERS
                            && isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_CALLS)
                            && policy.priorityCallSenders == Policy.PRIORITY_SENDERS_ANY) {
                        continue;
                    }

                    enabledCategories.add(getCategory(category, policy, isFirst));
                }
            }
            return enabledCategories;
        }

        private boolean isCategoryEnabled(Policy policy, int categoryType) {
            return (policy.priorityCategories & categoryType) != 0;
        }

        private String getCategory(int category, Policy policy, boolean isFirst) {
            if (category == PRIORITY_CATEGORY_ALARMS) {
                        enabledCategories.add(mContext.getString(R.string.zen_mode_alarms));
                if (isFirst) {
                    return mContext.getString(R.string.zen_mode_alarms);
                } else {
                    return mContext.getString(R.string.zen_mode_alarms_list);
                }
            } else if (category == PRIORITY_CATEGORY_MEDIA) {
                        enabledCategories.add(mContext.getString(
                                R.string.zen_mode_media));
                if (isFirst) {
                    return mContext.getString(R.string.zen_mode_media);
                } else {
                    return mContext.getString(R.string.zen_mode_media_list);
                }
            } else if (category == PRIORITY_CATEGORY_SYSTEM) {
                        enabledCategories.add(mContext.getString(
                                R.string.zen_mode_system));
                if (isFirst) {
                    return mContext.getString(R.string.zen_mode_system);
                } else {
                    return mContext.getString(R.string.zen_mode_system_list);
                }
            } else if (category == Policy.PRIORITY_CATEGORY_MESSAGES) {
                if (policy.priorityMessageSenders == Policy.PRIORITY_SENDERS_ANY) {
                            enabledCategories.add(mContext.getString(
                                    R.string.zen_mode_all_messages));
                    if (isFirst) {
                        return mContext.getString(R.string.zen_mode_all_messages);
                    } else {
                        return mContext.getString(R.string.zen_mode_all_messages_list);
                    }
                } else {
                    if (isFirst) {
                        return mContext.getString(R.string.zen_mode_selected_messages);
                    } else {
                            enabledCategories.add(mContext.getString(
                                    R.string.zen_mode_selected_messages));
                        return mContext.getString(R.string.zen_mode_selected_messages_list);
                    }
                }
            } else if (category == Policy.PRIORITY_CATEGORY_EVENTS) {
                        enabledCategories.add(mContext.getString(R.string.zen_mode_events));
                if (isFirst) {
                    return mContext.getString(R.string.zen_mode_events);
                } else {
                    return mContext.getString(R.string.zen_mode_events_list);
                }
            } else if (category == Policy.PRIORITY_CATEGORY_REMINDERS) {
                        enabledCategories.add(mContext.getString(R.string.zen_mode_reminders));
                if (isFirst) {
                    return mContext.getString(R.string.zen_mode_reminders);
                } else {
                    return mContext.getString(R.string.zen_mode_reminders_list);
                }
            } else if (category == Policy.PRIORITY_CATEGORY_CALLS) {
                if (policy.priorityCallSenders == Policy.PRIORITY_SENDERS_ANY) {
                            enabledCategories.add(mContext.getString(
                                    R.string.zen_mode_all_callers));
                    return mContext.getString(R.string.zen_mode_all_callers);
                } else if (policy.priorityCallSenders == Policy.PRIORITY_SENDERS_CONTACTS){
                            enabledCategories.add(mContext.getString(
                                    R.string.zen_mode_contacts_callers));
                    return mContext.getString(R.string.zen_mode_contacts_callers);
                } else {
                            enabledCategories.add(mContext.getString(
                                    R.string.zen_mode_starred_callers));
                    return mContext.getString(R.string.zen_mode_starred_callers);
                }
            } else if (category == Policy.PRIORITY_CATEGORY_REPEAT_CALLERS) {
                        if (!enabledCategories.contains(mContext.getString(
                                R.string.zen_mode_all_callers))) {
                            enabledCategories.add(mContext.getString(
                                    R.string.zen_mode_repeat_callers));
                        }
                    }
                }
                if (isFirst) {
                    return mContext.getString(R.string.zen_mode_repeat_callers);
                } else {
                    return mContext.getString(R.string.zen_mode_repeat_callers_list);
                }
            return enabledCategories;
            }

        private boolean isCategoryEnabled(Policy policy, int categoryType) {
            return (policy.priorityCategories & categoryType) != 0;
            return "";
        }
    }