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
This commit is contained in:
Dana Conrad 2021-03-20 15:11:05 -05:00 committed by William Wilgus
parent bf9fdb13c4
commit 1c54c5227b
5 changed files with 60 additions and 28 deletions

View file

@ -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;

View file

@ -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 */

View file

@ -12476,13 +12476,13 @@
desc: Selective Actions
user: core
<source>
*: "Play"
*: "Exempt Play"
</source>
<dest>
*: "Play"
*: "Exempt Play"
</dest>
<voice>
*: "Play"
*: "Exempt Play"
</voice>
</phrase>
<phrase>
@ -12490,13 +12490,13 @@
desc: Selective Actions
user: core
<source>
*: "Seek"
*: "Exempt Seek"
</source>
<dest>
*: "Seek"
*: "Exempt Seek"
</dest>
<voice>
*: "Seek"
*: "Exempt Seek"
</voice>
</phrase>
<phrase>
@ -12504,13 +12504,13 @@
desc: Selective Actions
user: core
<source>
*: "Skip"
*: "Exempt Skip"
</source>
<dest>
*: "Skip"
*: "Exempt Skip"
</dest>
<voice>
*: "Skip"
*: "Exempt Skip"
</voice>
</phrase>
<phrase>
@ -12602,13 +12602,13 @@
desc: Softlock behaviour setting
user: core
<source>
*: "Disable Notify"
*: "Disable Locked Reminders"
</source>
<dest>
*: "Disable Notify"
*: "Disable Locked Reminders"
</dest>
<voice>
*: "Disable Notify"
*: "Disable Locked Reminders"
</voice>
</phrase>
<phrase>
@ -15739,3 +15739,31 @@
*: "Clear List & Play Shuffled"
</voice>
</phrase>
<phrase>
id: LANG_SOFTLOCK_DISABLE_ALL_NOTIFY
desc: disable all softlock notifications
user: core
<source>
*: "Disable All Lock Notifications"
</source>
<dest>
*: "Disable All Lock Notifications"
</dest>
<voice>
*: "Disable All Lock Notifications"
</voice>
</phrase>
<phrase>
id: LANG_ACTION_VOLUME
desc: exempt volume from softlock
user: core
<source>
*: "Exempt Volume"
</source>
<dest>
*: "Exempt Volume"
</dest>
<voice>
*: "Exempt Volume"
</voice>
</phrase>

View file

@ -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},

View file

@ -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)