Meshtastic-Apple/Meshtastic/Extensions
Garth Vander Houwen 69c318a9e1
Message list performance fixes into 2.7.6 (#1475)
* Remove extra want config call when adding a contact

* App badge and unnecessary notification fixes (#1455)

* - Fix for app badge not going to zero if a message arrives while you have that chat open
- Fix for push notifications popping up when a message is received while that chat is open

* Fix for cancelling notifications, works now. And scroll to bottom of conversation upon new message

* Fix: Channels help grammer fix (#1452)

* remove outdated TCP not available on Apple devices (#1450)

* Update initial onboarding view

* remove toggle gating for mac

* Update crash reporting opt out in real time

* Update onboarding text

* Use mDNS text records for node name

* TCP IP and port on the connection screen

* Hide app icon chooser on mac

* Infinite loop hang bugfixes and performance improvements for both `UserMessageList` and `ChannelMessageList` (#1465)

* 2.7.5 Working Changes (#1460)

* Remove extra want config call when adding a contact

* App badge and unnecessary notification fixes (#1455)

* - Fix for app badge not going to zero if a message arrives while you have that chat open
- Fix for push notifications popping up when a message is received while that chat is open

* Fix for cancelling notifications, works now. And scroll to bottom of conversation upon new message

* Fix: Channels help grammer fix (#1452)

* remove outdated TCP not available on Apple devices (#1450)

* Update initial onboarding view

* remove toggle gating for mac

* Update crash reporting opt out in real time

* Update onboarding text

---------

Co-authored-by: Gnome Adrift <646322+gnomeadrift@users.noreply.github.com>
Co-authored-by: Zain Kergaye <62440012+ZainKergaye@users.noreply.github.com>
Co-authored-by: NillRudd <102033730+NillRudd@users.noreply.github.com>

* UserEntity: add mostRecentMessage and unreadMessages with early exit when lastMessage is nil, and fetch 1 row (not N) otherwise

* UserList: replace 5 slow calls to user.messageList with new fast calls

* NodeList: always put the connected node at the top of list (if it matches the node filters)

* ChannelEntity: add faster mostRecentPrivateMessage and unreadMessages which fetch 1 row (not N)

* ChannelList: replace 5 calls to channel.allPrivateMessage with new fast calls

* Fix incorrect appState.unreadDirectMessages calculations

* MyInfoEntity: also fix unreadMessages count here to be fast, and use it for appState.unreadChannelMessages

* UserMessageList: use @FetchRequest to prevent the N^2 behavior that was happening in calls to allPrivateMessages

* Refactor ChannelEntityExtension and MyInfoEntityExtension to be more similar to UserEntityExtension

* Remove SwiftUI-infinite-loop-causing `.id(redrawTapbacksTrigger)` in ChannelMessageList and UserMessageList (duplicate row ids)

* MyInfoEntityExtension: exclude emoji tapbacks (which never get marked as read anyway) from unread message count

* Add SaveChannelLinkData so MessageText and MeshtasticApp can use .sheet(item: ...) and avoid infinite loop hang due to Binding rebuild

* ChannelMessageList and UserMessageList: switch to stable messageId for ForEach SwiftUI row identity

* ChannelMessageList and UserMessageList: debouncedScrollToBottom; keyboardWillShowNotification/keyboardDidShowNotification

* ChannelMessageList and UserMessageList: scroll to bottom onFirstAppear

* ChannelMessageList and UserMessageList: block spurious markMessagesAsRead when this View is not active

---------

Co-authored-by: Garth Vander Houwen <garth@meshtastic.com>
Co-authored-by: Gnome Adrift <646322+gnomeadrift@users.noreply.github.com>
Co-authored-by: Zain Kergaye <62440012+ZainKergaye@users.noreply.github.com>
Co-authored-by: NillRudd <102033730+NillRudd@users.noreply.github.com>

* message-list-performance: revert scrolling changes (#1472)

* Revert e0f0b4a0f7 (ChannelMessageList and UserMessageList: scroll to bottom onFirstAppear)

* Revert "ChannelMessageList and UserMessageList: debouncedScrollToBottom; keyboardWillShowNotification/keyboardDidShowNotification"

This reverts commit ee1a7c4415.

---------

Co-authored-by: Gnome Adrift <646322+gnomeadrift@users.noreply.github.com>
Co-authored-by: Zain Kergaye <62440012+ZainKergaye@users.noreply.github.com>
Co-authored-by: NillRudd <102033730+NillRudd@users.noreply.github.com>
Co-authored-by: Jake-B <jake-b@users.noreply.github.com>
Co-authored-by: Mike Robbins <mrobbins@alum.mit.edu>
2025-10-17 18:16:00 -07:00
..
CoreData Message list performance fixes into 2.7.6 (#1475) 2025-10-17 18:16:00 -07:00
Protobufs Extract the generated protobufs into its own Swift package 2024-06-28 11:11:01 -05:00
Bool.swift Conditional modifiers (#1378) 2025-09-07 16:02:47 -07:00
Bundle.swift Add isTestFlight bundle extension, set environments for datadog 2025-08-27 19:31:01 -07:00
Character.swift Map settings cleanup 2023-04-25 17:56:57 -07:00
CLLocation.swift True bearing for the node list 2024-08-04 13:13:02 -07:00
CLLocationCoordinate2D.swift This change fixes several lint errors throughout the project, and moves the SwiftLint build phase to before compilation. 2024-05-31 21:48:50 -05:00
Color.swift Alternate App icons (#1359) 2025-08-28 22:54:17 -07:00
Constants.swift Refactor to optional values for TelemetryEntity attributes 2025-02-21 18:23:03 -05:00
Data.swift Map settings cleanup 2023-04-25 17:56:57 -07:00
Date.swift More localization key 2025-05-08 08:59:24 -07:00
Double.swift Lint 2023-08-26 23:17:30 -07:00
FileManager.swift Logging and linting 2024-06-23 16:11:02 -07:00
Float.swift Node filter for environment nodes 2024-07-12 01:28:56 -07:00
Int.swift Update hex formatter to include leading zeros if required to get to 8 characters 2025-07-27 16:22:26 -07:00
Logger+DataDog.swift 2.7.4 Working Changes (#1415) 2025-10-05 17:51:18 -07:00
Logger.swift Transports Interface to Support TCP for all Platforms and Serial on Mac (#1341) 2025-08-27 08:09:02 -07:00
Measurement.swift Remove broken .reciprocal() 2025-02-07 12:27:55 -08:00
OSLogEntryLog.swift Additional translation key cleanup 2025-04-27 12:50:45 -07:00
String.swift Fix localization keys merged from community pull requests 2025-05-20 21:16:12 -07:00
TimeZone.swift Timezone 2024-04-08 11:41:54 -07:00
UIColor.swift This change fixes several lint errors throughout the project, and moves the SwiftLint build phase to before compilation. 2024-05-31 21:48:50 -05:00
UIImage.swift Map settings cleanup 2023-04-25 17:56:57 -07:00
Url.swift Logging and linting 2024-06-23 16:11:02 -07:00
UserDefaults.swift Alternate App icons (#1359) 2025-08-28 22:54:17 -07:00
View.swift Conditional modifiers (#1378) 2025-09-07 16:02:47 -07:00