* First try at multimessage storage and display
* Nrf built issue fix
* Message view mode
* Add channel name instead of channel slot
* trunk fix
* Fix for DM threading
* fix for message time
* rename of view mode to Conversations
* Reply in thread feature
* rename Select View Mode to Select Conversation
* dismiss all live fix
* Messages from phone show on screen
* Decoupled message packets from screen.cpp and cleaned up
* Cannedmessage cleanup and emotes fixed
* Ack on messages sent
* Ack message cleanup
* Dismiss feature fixed
* removed legacy temporary messages
* Emote picker fix
* Memory size debug
* Build error fix
* Sanity checks are okay sometimes
* Lengthen channel name and finalize cleanup removal of Broadcast
* Change DM to @ in order to unify on a single method
* Continue unifying display, also show message status on the "isMine" lines
* Add context for incoming messages
* Better to say "in" vs "on"
* crash fix for confirmation nodes
* Fix outbound labels based to avoid creating delays
* Eink autoscroll dissabled
* gating for message storage when not using a screen
* revert
* Build fail fix
* Don't error out with unset MAC address in unit tests
* Provide some extra spacing for low hanging characters in messages
* Reorder menu options and reword Respond
* Reword menus to better reflect actions
* Go to thread from favorite screen
* Reorder Favorite Action Menu with simple word modifications
* Consolidate wording on "Chats"
* Mute channel fix
* trunk fix
* Clean up how muting works along with when we wake the screen
* Fix builds for HELTEC_MESH_SOLAR
* Signal bars for message ack
* fix for notification renderer
* Remove duplicate code, fix more Chats, and fix C6L MessageRenderer
* Fix to many warnings related to BaseUI
* preset aware signal strength display
* More C6L fixes and clean up header lines
* Use text aligns for message layout where necessary
* Attempt to fix memory usage of invalidLifetime
* Update channel mute for adjusted protobuf
* Missed a comma in merge conflicts
* cleanup to get more space
* Trunk fixes
* Optimize Hi Rez Chirpy to save space
* more fixes
* More cleanup
* Remove used getConversationWith
* Remove unused dismissNewestMessage
* Fix another build error on occassion
* Dimiss key combo function deprecated
* More cleanup
* Fn symbol code removed
* Waypoint cleanup
* Trunk fix
* Fixup Waypoint screen with BaseUI code
* Implement Haruki's ClockRenderer and broadcast decomposeTime across various files.
* Revert "Implement Haruki's ClockRenderer and broadcast decomposeTime across various files."
This reverts commit 2f65721774.
* Implement Haruki's ClockRenderer and broadcast decomposeTime across various files. Attempt 2!
* remove memory usage debug
* Revert only RangeTestModule.cpp change
* Switch from dynamic std::string storage to fixed-size char[]
* Removing old left over code
* More optimization
* Free Heap when not on Message screen
* build error fixes
* Restore ellipsis to end of long names
* Remove legacy function renderMessageContent
* improved destination filtering
* force PKI
* cleanup
* Shorten longNames to not exceed message popups
* log messages sent from apps
* Trunk fix
* Improve layout of messages screen
* Fix potential crash for undefined variable
* Revert changes to RedirectablePrint.cpp
* Apply shortening to longNames in Select Destination
* Fix short name displays
* Fix sprintfOverlappingData issue
* Fix nullPointerRedundantCheck warning on ESP32
* Add "Delete All Chats" to all chat views
* Improve getSafeNodeName / sanitizeString code.
* Improve getSafeNodeName further
* Restore auto favorite; but only if not CLIENT_BASE
* Don't favorite if WE are CLIENT_BASE role
* Don't run message persistent in MUI
* Fix broken endifs
* Unkwnown nodes no longer show as ??? on message thread
* More delete options and cleanup of code
* fix for delete this chat
* Message menu cleanup
* trunk fix
* Clean up some menu options and remove some Unit C6L ifdefines
* Rework Delete flow
* Desperate times call for desperate measures
* Create a background on the connected icon to reduce overlap impact
* Optimize code for background image
* Fix for Muzi_Base
* Trunk Fixes
* Remove the up/down shortcut to launch canned messages (#8370)
* Remove the up/down shortcut to launch canned messages
* Enabled MQTT and WEBSERVER by default (#8679)
Signed-off-by: kur1k0 <zhuzirun@m5stack.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
---------
Signed-off-by: kur1k0 <zhuzirun@m5stack.com>
Co-authored-by: Riker <zhuzirun@m5stack.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Correct string length calculation for signal bars
* Manual message scrolling
* Fix
* Restore CannedMessages on Home Frame
* UpDown situational destination for textMessage
* Correct up/down destinations on textMessage frame
* Update Screen.h for handleTextMessage
* Update Screen.cpp to repair a merge issue
* Add nudge scroll on UpDownEncoder devices.
* Set nodeName to maximum size
* Revert "Set nodeName to maximum size"
This reverts commit e254f39925.
* Reflow Node Lists and TLora Pager Views (#8942)
* Add files via upload
* Move files into the right place
* Short or Long Names for everyone!
* Add scrolling to Node list
* Pagination fix for Latest to oldest per page
* Page counters
* Dynamic scaling of column counts based upon screen size, clean up box drawing
* Reflow Node Lists and TLora Pager Views (#8942)
* Add files via upload
* Move files into the right place
* Short or Long Names for everyone!
* Add scrolling to Node list
* Pagination fix for Latest to oldest per page
* Page counters
* Dynamic scaling of column counts based upon screen size, clean up box drawing
* Update exempt labels for stale bot workflow
Adds triaged and backlog to the list of exempt labels.
* Update naming of Frame Visibility toggles
* Fix to scrolling
* Fix for content cutting off when from us
* Fix for "delete this chat" now it does delete the current one
* Rework isHighResolution to be an enum called ScreenResolution
* Migrate Unit C6L macro guards into currentResolution UltraLow checks
* Mistakes happen - restoring NodeList Renderer line
---------
Signed-off-by: kur1k0 <zhuzirun@m5stack.com>
Co-authored-by: Jason P <applewiz@mac.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Riker <zhuzirun@m5stack.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: whywilson <m.tools@qq.com>
Co-authored-by: Tom Fifield <tom@tomfifield.net>
* Mark implicit ACK for MQTT as MQTT transport
* TRUNK
* Fix build
* Make sure implicit ACKs from MQTT do not stop retransmissions in ReliableRouter
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* 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 20988aa4fa.
* 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 42c1967e7b.
* 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>
* Space out periodic broadcasts of modules automatically
* Add warning for function usage
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Don't send ACKs to responses over multiple hops
* Move repeated sending logic to `wasSeenRecently()`
* Add exception for simulator for duplicate packets from PhoneAPI
* Add short debug message
* Updated setFrames in Screen.cpp
Added code to attempt to revert back to the same frame that user was on prior to setFrame reload.
* Space added Screen.cpp
* Update Screen.cpp
Make screen to revert to Frame 0 if the originally displayed frame is no longer there.
* Update Screen.cpp
Inserted boolean holdPosition into setFrames to indicate the requirement to stay on the same frame ( if =true) or else it will switch to new frame .
Only Screen::handleStatusUpdate calls with setFrame(true). ( For Node Updates)
All other types of updates call as before setFrame(), so it will change focus as needed.
* Hold position, even if number of frames increases
* Hold position, if handling an outgoing text message
* Update Screen.cpp
* Reverted chnages related to devicestate.has_rx_text_message
* Reset to master
* CannedMessages only handles routing packets when waiting for ACK
Previously, this was calling Screen::setFrames at unexpected times
* Gather position info about screen frames while regenerating
* Make admin module observable
Notify only when relevant. Currently: only to handle remove_nodenum.
* Optionally specify which frame to focus when setFrames runs
* UIFrameEvent uses enum instead of multiple booleans
* Allow modules to request their own frame to be focussed
This is done internally by calling MeshModule::requestFocus()
Easier this way, insteady of passing the info in the UIFrameEvent:
* Modules don't always know whether they should be focussed until after the UIFrameEvent has been raised, in dramFrame
* Don't have to pass reference to module instance as parameter though several methods
* E-Ink screensaver uses FOCUS_PRESERVE
Previously, it had its own basic implementation of this.
* Spelling: regional variant
* trunk
* Fix HAS_SCREEN guarding
* More HAS_SCREEN guarding
---------
Co-authored-by: BIST <77391720+slash-bit@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: slash-bit <v-b2@live.com>
* Set `hop_start` in header to determine how many hops each packet traveled
* Set hopLimit of response according to hops used by request
* Identify neighbors based on `hopStart` and `hopLimit`
* NeighborInfo: get all packets and assume a default broadcast interval
* Add fail-safe in case node in between is running modified firmware
* Add `viaMQTT` and `hopsAway` to NodeInfo
* Replace `HOP_RELIABLE` with hopStart for repeated packet
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* lay groundwork for a possible future architecture
* switch from feature opt-out to feature opt-in
* lay groundwork for a possible future architecture
* switch from feature opt-out to feature opt-in
* fix USE_RTC in variant.h for rak4631_epaper and t-echo
* ensure Screen.h is not included without configuration.h
Co-authored-by: Peter Lawrence <12226419+majbthrd@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>