From 1c54c5227b4b8640c979000a340631dbeb190111 Mon Sep 17 00:00:00 2001 From: Dana Conrad Date: Sat, 20 Mar 2021 15:11:05 -0500 Subject: [PATCH] Add disable setting for all softlock notifications Tested on erosq Added ability to disable all softlock notifications. Setting is "Disable All Lock Notifications" under Advanced Key Lock Settings. Tested to make sure it doesn't interfere with backlight exemptions, keylock exemptions, or first press enables backlight only. When enabled, this overrules the existing Disable Notify setting, which only disables the reminders when a button is pressed while the device is already locked. Also changed phrases in the Advanced Key Lock settings menu to make it more obvious what the options do. Changed LANG_ACTION_PLAY, LANG_ACTION_SEEK, and LANG_ACTION_SKIP from "[button]" to "Exempt [button]". These language changes will also affect the Backlight Exemptions list, but the wording should be appropriate there as well. Added LANG_SOFTLOCK_DISABLE_ALL_NOTIFY and LANG_ACTION_VOLUME, changed LANG_VOLUME to LANG_ACTION_VOLUME in display_menu.c for consistency. Change-Id: I914fe154ba5d508a842165aea7c7755e4e6b9c57 --- apps/action.c | 15 ++++++----- apps/action.h | 2 +- apps/lang/english.lang | 54 +++++++++++++++++++++++++++++--------- apps/menus/display_menu.c | 2 +- apps/menus/settings_menu.c | 15 ++++++----- 5 files changed, 60 insertions(+), 28 deletions(-) diff --git a/apps/action.c b/apps/action.c index 858a761219..f9602b967f 100644 --- a/apps/action.c +++ b/apps/action.c @@ -797,13 +797,16 @@ static inline void do_softlock(action_last_t *last, action_cur_t *cur) sleep(HZ/2); } #endif - if (last->keys_locked) + if (!has_flag(last->softlock_mask, SEL_ACTION_ALLNONOTIFY)) { - splash(HZ/2, ID2P(LANG_KEYLOCK_ON)); - } - else - { - splash(HZ/2, ID2P(LANG_KEYLOCK_OFF)); + if (last->keys_locked) + { + splash(HZ/2, ID2P(LANG_KEYLOCK_ON)); + } + else + { + splash(HZ/2, ID2P(LANG_KEYLOCK_OFF)); + } } action = ACTION_REDRAW; diff --git a/apps/action.h b/apps/action.h index b434a38470..da4565c28b 100644 --- a/apps/action.h +++ b/apps/action.h @@ -50,7 +50,7 @@ #define SEL_ACTION_SEEK 0x004U #define SEL_ACTION_SKIP 0x008U #define SEL_ACTION_NOUNMAPPED 0x010U/* disable backlight on unmapped buttons */ - /* Available 0x020U*/ +#define SEL_ACTION_ALLNONOTIFY 0x020U/* disable switch for all softlock notifications */ /* Available 0x040U*/ #define SEL_ACTION_NOTOUCH 0x080U/* disable touch screen/pad on screen lock */ #define SEL_ACTION_AUTOLOCK 0x100U/* autolock on backlight off */ diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 5b8391b859..52d943f75e 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -12476,13 +12476,13 @@ desc: Selective Actions user: core - *: "Play" + *: "Exempt Play" - *: "Play" + *: "Exempt Play" - *: "Play" + *: "Exempt Play" @@ -12490,13 +12490,13 @@ desc: Selective Actions user: core - *: "Seek" + *: "Exempt Seek" - *: "Seek" + *: "Exempt Seek" - *: "Seek" + *: "Exempt Seek" @@ -12504,13 +12504,13 @@ desc: Selective Actions user: core - *: "Skip" + *: "Exempt Skip" - *: "Skip" + *: "Exempt Skip" - *: "Skip" + *: "Exempt Skip" @@ -12602,13 +12602,13 @@ desc: Softlock behaviour setting user: core - *: "Disable Notify" + *: "Disable Locked Reminders" - *: "Disable Notify" + *: "Disable Locked Reminders" - *: "Disable Notify" + *: "Disable Locked Reminders" @@ -15738,4 +15738,32 @@ *: "Clear List & Play Shuffled" - \ No newline at end of file + + + id: LANG_SOFTLOCK_DISABLE_ALL_NOTIFY + desc: disable all softlock notifications + user: core + + *: "Disable All Lock Notifications" + + + *: "Disable All Lock Notifications" + + + *: "Disable All Lock Notifications" + + + + id: LANG_ACTION_VOLUME + desc: exempt volume from softlock + user: core + + *: "Exempt Volume" + + + *: "Exempt Volume" + + + *: "Exempt Volume" + + diff --git a/apps/menus/display_menu.c b/apps/menus/display_menu.c index b4a3d3eb63..c72fb08fae 100644 --- a/apps/menus/display_menu.c +++ b/apps/menus/display_menu.c @@ -94,7 +94,7 @@ static int selectivebacklight_set_mask(void* param) (void)param; int mask = global_settings.bl_selective_actions_mask; struct s_mask_items maskitems[]={ - {ID2P(LANG_VOLUME) , SEL_ACTION_VOL}, + {ID2P(LANG_ACTION_VOLUME) , SEL_ACTION_VOL}, {ID2P(LANG_ACTION_PLAY), SEL_ACTION_PLAY}, {ID2P(LANG_ACTION_SEEK), SEL_ACTION_SEEK}, {ID2P(LANG_ACTION_SKIP), SEL_ACTION_SKIP}, diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index 33d29b003c..a5daad01ce 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c @@ -83,17 +83,18 @@ static int selectivesoftlock_set_mask(void* param) (void)param; int mask = global_settings.bt_selective_softlock_actions_mask; struct s_mask_items maskitems[]={ - {ID2P(LANG_VOLUME) , SEL_ACTION_VOL}, - {ID2P(LANG_ACTION_PLAY), SEL_ACTION_PLAY}, - {ID2P(LANG_ACTION_SEEK), SEL_ACTION_SEEK}, - {ID2P(LANG_ACTION_SKIP), SEL_ACTION_SKIP}, + {ID2P(LANG_ACTION_VOLUME), SEL_ACTION_VOL}, + {ID2P(LANG_ACTION_PLAY), SEL_ACTION_PLAY}, + {ID2P(LANG_ACTION_SEEK), SEL_ACTION_SEEK}, + {ID2P(LANG_ACTION_SKIP), SEL_ACTION_SKIP}, #ifdef HAVE_BACKLIGHT - {ID2P(LANG_ACTION_AUTOLOCK_ON), SEL_ACTION_AUTOLOCK}, + {ID2P(LANG_ACTION_AUTOLOCK_ON), SEL_ACTION_AUTOLOCK}, #endif #if defined(HAVE_TOUCHPAD) || defined(HAVE_TOUCHSCREEN) - {ID2P(LANG_ACTION_DISABLE_TOUCH) , SEL_ACTION_NOTOUCH}, + {ID2P(LANG_ACTION_DISABLE_TOUCH), SEL_ACTION_NOTOUCH}, #endif - {ID2P(LANG_ACTION_DISABLE_NOTIFY), SEL_ACTION_NONOTIFY} + {ID2P(LANG_ACTION_DISABLE_NOTIFY), SEL_ACTION_NONOTIFY}, + {ID2P(LANG_SOFTLOCK_DISABLE_ALL_NOTIFY), SEL_ACTION_ALLNONOTIFY} }; mask = mask_select(mask, ID2P(LANG_SOFTLOCK_SELECTIVE)