* Implementation of Status Message
* Change drawNodeInfo to drawFavoriteNode
* Truncate overflow on Favorite frame
* Set MAX_RECENT_STATUSMESSAGES to 5 to meet memory usage targets
* First steps in consolidating code and minimizing rewrite
* Continuing code cleanup
* Merge containsBell and !isMuted to a single code path
* Forgot about alert_message_buzzer in the cleanup
* More code refinements and cleanup
* Fix nagCycleCutoff
* CoPilot Updates
* Reset Channel Number to 0 on Preset Change
* Add Channel Picker to LoRa Options
* Change Channel to Frequency Slot
* Catch comparison issue
* Reset override_frequency to ensure we correctly move to new Radio Preset
* CoPilot Suggestions
* Start overhaul and clean up of the Node Actions menu
* Wired up commands - still a lot of work and testing
* Remove old favorites menu
* Remove addFavoritesMenu
* CoPilot to the rescue, wired up some function in both directions
* Clean up CoPilot actions
* Cross out Mute or Ignored in lists, add Save to NodeDB on changes
* Improve strikethrough for columns
* Correct menu wording and adjust vertical divider on Node List
* Code cleanup
* Testing unveiled some issues - fixed with these changes
* Screenless Devices want to mute too!
* Add logging for actions
* Gate to screenless devices only
* WisMesh Tag was missing HAS_SCREEN 0
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Add Temporary Mute to Home frame and unbury Notifications
* Only show Temporary Mute if it applies
* Remove banner notification, we display the icon immediately
* Remove extranous isMuted, there are better ways!
* Add menus for Smart Position, Broadcast Interval and Position Interval
* Realigned time intervals to match Android app options
* Fixed missing last option
* Update digital clock draw to auto scale to correct size; no more fixed scaling
* Static scale calcuation to improve performance
* Update src/graphics/draw/ClockRenderer.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Back off for width or height exceeds
* Fixes for some calcuations
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add Power and Environmental Telemetry Hide/Show
* Allow Power and Telemetry Frames even if module disabled
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Add back options for other GPS format options
* Rename variables and don't overlap elements
* Fix default value
* Should probably add a menu while I'm here!
* Shorten names just a bit to fit on screens
* Fix off by one
* Labels try to make things better
* Missed a label
* Add back options for other GPS format options
* Rename variables and don't overlap elements
* Fix default value
* Should probably add a menu while I'm here!
* Shorten names just a bit to fit on screens
* Fix off by one
* Labels try to make things better
* Missed a label
* Account for low resolution wide screen OLEDs
* Allow picking of Device Role and new Display Formatter for Device Role
* Add remainder of client roles to display formatter
* Don't update the role unless you pick a value
* Mascots are fun
* Fix warnings during compile time
* Improve some menus
* Mascots need to work everywhere
* Update Chirpy image
* Fix Trunk
* Update protobufs
* Add date to Clock screen
* Analog clocks love dates too
* Finalize date moves for analog clock
* Account for low resolution wide screen OLEDs
* Allow picking of Device Role and new Display Formatter for Device Role
* Add remainder of client roles to display formatter
* Don't update the role unless you pick a value
* Mascots are fun
* Fix warnings during compile time
* Improve some menus
* Mascots need to work everywhere
* Update Chirpy image
* Fix Trunk
* Update protobufs
* Add date to Clock screen
* Analog clocks love dates too
* Finalize date moves for analog clock
* Rename System Frame (from Memory) in code base
* Create menu options to Show/Hide frames: Node Lists, Bearings, Position, LoRa, Clock and Favorites frames
* Move Region Picker into submenu
* Tweak wording for Send Position vs Node Info if the device has GPS
* Add back options for other GPS format options
* Rename variables and don't overlap elements
* Fix default value
* Should probably add a menu while I'm here!
* Shorten names just a bit to fit on screens
* Fix off by one
* Labels try to make things better
* Missed a label
* Account for low resolution wide screen OLEDs
* Allow picking of Device Role and new Display Formatter for Device Role
* Add remainder of client roles to display formatter
* Don't update the role unless you pick a value
* Mascots are fun
* Fix warnings during compile time
* Improve some menus
* Mascots need to work everywhere
* Update Chirpy image
* Fix Trunk
* Update protobufs
* Add date to Clock screen
* Analog clocks love dates too
* Finalize date moves for analog clock
* Rename System Frame (from Memory) in code base
* Create menu options to Show/Hide frames: Node Lists, Bearings, Position, LoRa, Clock and Favorites frames
* Move Region Picker into submenu
* Tweak wording for Send Position vs Node Info if the device has GPS
* Calculate the length of the right string and use it
* Improve readability of Version Number
* Prevent negative message IDs and proactively favorite DM'd nodes
* Patch up Remove Favorite functionality
* Fix warnings for TFT_MESH_* and hasSupportBrightness
* Fix warning around casting variables
* Correct Favorite Node Behavior to rebuild favorite nodes when updated.
* Resolve bool kb_found issue not working for second discovery keyboards
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Clock updates and some TDeck corrections
* TDeck Brightness Works in TFT Builds
* Remove HAS_TFT from enabling Brightness, disable Brightness for TDeck
* Add default textMessage frame actions and adjust SharedUIDisplay
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* feat(display): enable screen wake on received messages
* feat(menu): add Screen Wakeup option in system menu
* feat(ui): update wake on message configuration and refactor save logic
* feat(TextMessageModule): conditionally trigger screen wake on received message
* Refactoring system menu options for notification and screen.
* Fix MUI options in the system menu.
* Build out Reboot/Shutdown Menu and consolidate options within it
* Trunk fixes
* Protobuf ref
* Revert generated files
* Update plumbing for screen_wakeup_menu
* Begin work on crafting a method to stop screen wake for received messages
* SharedUIDisplay.cpp doesn't need ExternalNotificationModule.h
* Stop screen wake if External Notification is enabled
* Removing extra log lines
* Add role and battery state checks for not waking screen. Menu updates to resolve some Back options not being linked
* Resolve some additional merge conflict related issues
* Shouldn't throttle the power menu
* Finalize renames of some menus
* Flip Flop MUI Menu to avoid accidental clicks
* NULL check for powerStatus
* Remove "Wakeup" eNum
* Update src/graphics/Screen.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* CoPilot was close this should fix the builds
---------
Co-authored-by: whywilson <m.tools@qq.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Testing battery states with some info lines in the drawCommonHeader
* Update logic of USB connected, update images for states
* Tweak battery layout for isHighResolution
* Hide the magic 101%
* Adjust padding for SENSECAP_INDICATOR
* Excessive logs are unnecessary as troubleshooting is done.
* Reduce excess code - simplify readability
* Restore Lightning Bolt for Charging and related alignment issues
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Update Favorite Node Message Options to unify against other screens
* Rebuild Horizontal Battery, Resolve overlap concerns
* Update positioning on Message frame and fix drawCommonHeader overlay
* Beginnings of creating isHighResolution bool
* Fixup determineResolution()
* Implement isHighResolution in place of SCREEN_WIDTH > 128 checks
* Line Spacing bound to isHighResolution
* Analog Clock for all
* Add AM/PM to Analog Clock if isHighResolution and not TWatch
* Simple Menu Queue, and add time menu
* Fix prompt string for 12/24 hour picker
* More menu banners into functions
* Fix Action Menu on Home frame
* Correct pop-up calculation size and continue to leverage isHighResolution
* Move menu bits to MenuHandler
* Plumb in the digital/analog picker
* Correct Clock Face Picker title
* Clock picker fixes
* Migrate the rest of the menus to MenuHandler.*
* Add compass menu and needle point option
* Minor fix for compass point menu
* Correct Home menu into typical format
* Fix emoji bounce, overlap, and missing commonHeader
* Sanitize long_names and removed unused variables
* Slightly better sanitizeString variation
* Resolved apostrophe being shown as upside down question mark
* Gotta keep height and width in expected order
* Remove Second Hand for Analog Clock on EInk displays
* Fix Clock menu option decision tree
* Improvements to Eink Navigation
* Pause Banner for Eink moved to bottom
* Updated working for 12-/24-hour menu and Added US/Arizona to timezone picker
* Add Adhoc Ping and resolve error with std::string sanitized
* Hide quick toggle as option is available within Action Menu, commented out for the moment
* Remove old battery icon and option, use drawCommonHeader throughout, re-add battery to Clock frames
* fix misc build warnings. NFC
* Update Analog Clock on EInk to show more digits
* Establish Action Menu on all node list screens, add NodeDB reset (with confirmation) option
* Add Toggle Backlight for EInk Displays
* Suppress action screen Full refresh for Eink
* Adjust drawBluetoothConnectedIcon on TWatch
* Maintain clock frame when switching between Clock Faces
* Move modules beyond the clock in navigation
* addressed the conflicts, and changed target branch to 2.7-MiscFixes-Week1
* cleanup, cheers
* Add AM/PM to low resolution clock also
* Small adjustments to AM/PM replacement across various devices
* Resolve dangling pointer issues with sanitize code
* Update comments for Screen.cpp related to module load change
* Trunk runs
* Update message caching to correct aged timestamp
* Menu wording adjustments
* Time Format wording
* Use all the rows on EInk since with autohide the navigation bar
* Finalize Time Format picker word change
* Retired drawFunctionOverlay code
No longer being used
* Actually honor the points-north setting
* Trunk
* Compressed action list
* Update no-op showOverlayBanner function
* trunk
* Correct T_Watch_S3 specific line
* Autosized Action menu per screen
* Finalize Autosized Action menu per screen
* Unify Message Titles
* Reorder Timezones to match expectations
* Adjust text location for pop-ups
* Revert "Actually honor the points-north setting"
This reverts commit 20988aa4fabb0975be644989d556fca7e1176680.
* Make NodeDB sort its internal vector when lastheard is updated. Don't sort in NodeListRenderer
* Update src/graphics/draw/NodeListRenderer.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/mesh/NodeDB.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Pass by reference -- Thanks Copilot!
* Throttle sorting just a touch
* Check more carefully for own node
* Eliminate some now-unneeded sorting
* Move function after include
* Putting Modules back to position 0 and some trunk checks found
* Add Scrollbar for Action menus
* Second attempt to move modules down the navigation bar
* Continue effort of moving modules in the navigation
* Canned Messages tweak
* Replicate Function + Space through the Menu System
* Move init button parameters into config struct (#7145)
* Remove bundling of web-ui from ESP32 devices (#7143)
* Fixed triple click GPS toggle bungle
* Move init button parameters into config struct
* Reapply "Actually honor the points-north setting"
This reverts commit 42c1967e7b3735ec9f5be8acd9582bc9edcbc78a.
* Actually do compass pointings correctly
* Tweak to node bearings
* Menu wording tweaks
* Get the compass_north_top logic right
* Don't jump frames after setting Compass
* Get rid of the extra bearingTo functions
* Don't blink Mail on EInk Clock Screens
* Actually set lat and long
* Calibrate
* Convert Radians to Degrees
* More degree vs radians fixes
* De-duplicate draw arrow function
* Don't advertise compass calibration without an accell thread.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: HarukiToreda <116696711+HarukiToreda@users.noreply.github.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: csrutil <keming.cao@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* 12- or 24-hour clock work in progress
* 12- and 24-hour added to Settings Frame. Also some adjustments to screen layout.
* Updated Uptime wording to be "Up" to fit within screen real estate
* Removed label from uptime to conserve additional space
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>