mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-25 11:17:25 +00:00
Add option to Mute/Unmute Channel to BaseUI (#9194)
This commit is contained in:
@@ -449,13 +449,14 @@ void menuHandler::clockMenu()
|
|||||||
}
|
}
|
||||||
void menuHandler::messageResponseMenu()
|
void menuHandler::messageResponseMenu()
|
||||||
{
|
{
|
||||||
enum optionsNumbers { Back = 0, ViewMode, DeleteAll, DeleteOldest, ReplyMenu, Aloud, enumEnd };
|
enum optionsNumbers { Back = 0, ViewMode, DeleteAll, DeleteOldest, ReplyMenu, MuteChannel, Aloud, enumEnd };
|
||||||
|
|
||||||
static const char *optionsArray[enumEnd];
|
static const char *optionsArray[enumEnd];
|
||||||
static int optionsEnumArray[enumEnd];
|
static int optionsEnumArray[enumEnd];
|
||||||
int options = 0;
|
int options = 0;
|
||||||
|
|
||||||
auto mode = graphics::MessageRenderer::getThreadMode();
|
auto mode = graphics::MessageRenderer::getThreadMode();
|
||||||
|
int threadChannel = graphics::MessageRenderer::getThreadChannel();
|
||||||
|
|
||||||
optionsArray[options] = "Back";
|
optionsArray[options] = "Back";
|
||||||
optionsEnumArray[options++] = Back;
|
optionsEnumArray[options++] = Back;
|
||||||
@@ -467,6 +468,15 @@ void menuHandler::messageResponseMenu()
|
|||||||
optionsArray[options] = "View Chats";
|
optionsArray[options] = "View Chats";
|
||||||
optionsEnumArray[options++] = ViewMode;
|
optionsEnumArray[options++] = ViewMode;
|
||||||
|
|
||||||
|
// If viewing ALL chats, hide “Mute Chat”
|
||||||
|
if (mode != graphics::MessageRenderer::ThreadMode::ALL && mode != graphics::MessageRenderer::ThreadMode::DIRECT) {
|
||||||
|
const uint8_t chIndex = (threadChannel != 0) ? (uint8_t)threadChannel : channels.getPrimaryIndex();
|
||||||
|
auto &chan = channels.getByIndex(chIndex);
|
||||||
|
|
||||||
|
optionsArray[options] = chan.settings.module_settings.is_muted ? "Unmute Channel" : "Mute Channel";
|
||||||
|
optionsEnumArray[options++] = MuteChannel;
|
||||||
|
}
|
||||||
|
|
||||||
// Delete submenu
|
// Delete submenu
|
||||||
optionsArray[options] = "Delete";
|
optionsArray[options] = "Delete";
|
||||||
optionsEnumArray[options++] = 900;
|
optionsEnumArray[options++] = 900;
|
||||||
@@ -502,6 +512,14 @@ void menuHandler::messageResponseMenu()
|
|||||||
menuHandler::menuQueue = menuHandler::reply_menu;
|
menuHandler::menuQueue = menuHandler::reply_menu;
|
||||||
screen->runNow();
|
screen->runNow();
|
||||||
|
|
||||||
|
} else if (selected == MuteChannel) {
|
||||||
|
const uint8_t chIndex = (ch != 0) ? (uint8_t)ch : channels.getPrimaryIndex();
|
||||||
|
auto &chan = channels.getByIndex(chIndex);
|
||||||
|
if (chan.settings.has_module_settings) {
|
||||||
|
chan.settings.module_settings.is_muted = !chan.settings.module_settings.is_muted;
|
||||||
|
nodeDB->saveToDisk();
|
||||||
|
}
|
||||||
|
|
||||||
// Delete submenu
|
// Delete submenu
|
||||||
} else if (selected == 900) {
|
} else if (selected == 900) {
|
||||||
menuHandler::menuQueue = menuHandler::delete_messages_menu;
|
menuHandler::menuQueue = menuHandler::delete_messages_menu;
|
||||||
|
|||||||
Reference in New Issue
Block a user