Meshtastic-Apple/Meshtastic/Views/Settings
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
..
Channels 2.7.4 Working Changes (#1415) 2025-10-05 17:51:18 -07:00
Config 2.7.5 Working Changes (#1460) 2025-10-10 14:07:36 -07:00
Logs 2.7.4 Working Changes (#1415) 2025-10-05 17:51:18 -07:00
About.swift Translation updates 2025-06-13 09:57:27 -07:00
AppData.swift Transports Interface to Support TCP for all Platforms and Serial on Mac (#1341) 2025-08-27 08:09:02 -07:00
AppIconButton.swift Alternate App icons (#1359) 2025-08-28 22:54:17 -07:00
AppIconPicker.swift 2.7.3 Working Changes (#1404) 2025-09-18 13:19:45 -07:00
AppLog.swift Transports Interface to Support TCP for all Platforms and Serial on Mac (#1341) 2025-08-27 08:09:02 -07:00
AppSettings.swift Message list performance fixes into 2.7.6 (#1475) 2025-10-17 18:16:00 -07:00
Channels.swift 2.7.2 Working Changes (#1397) 2025-09-13 14:13:20 -07:00
Firmware.swift 2.7.4 Working Changes (#1415) 2025-10-05 17:51:18 -07:00
FirmwareApi.swift 2.7.4 Working Changes (#1415) 2025-10-05 17:51:18 -07:00
GPSStatus.swift Remove broken .reciprocal() 2025-02-07 12:27:55 -08:00
RouteRecorder.swift 2.7.1 Working Changes (#1392) 2025-09-12 21:45:05 -07:00
Routes.swift Add german translations (#1383) 2025-09-11 18:49:47 -07:00
SaveChannelQRCode.swift Message list performance fixes into 2.7.6 (#1475) 2025-10-17 18:16:00 -07:00
Settings.swift 2.7.3 Working Changes (#1404) 2025-09-18 13:19:45 -07:00
ShareChannels.swift 2.7.2 Working Changes (#1397) 2025-09-13 14:13:20 -07:00
UpdateIntervalPicker.swift 2.7.4 Working Changes (#1415) 2025-10-05 17:51:18 -07:00
UserConfig.swift 2.7.4 Working Changes (#1415) 2025-10-05 17:51:18 -07:00