Files
element-x-ios/project.yml
T
Danny eae464ecd7 Timeline: add a Jump to Unread button and a new-message badge on the scroll-to-bottom button. (#5506)
* Timeline: add a Jump to Unread button and a new-message badge on the scroll-to-bottom button.

* Rename scrollToFirstUnread to scrollToReadMarker for consistency with isReadMarkerVisible.

* Cache readMarkerUniqueID and unreadMessageCount as stored properties on TimelineState.

* TimelineViewModel: rename newTimelineItems and drop redundant ordering comment.

* Use Compound chevron icons in TimelineScrollButton.

* Fix TimelineScrollButton layout at large dynamic type sizes.

* Add a trailingAccessory slot to topBanners and use it to dodge banners with the jump-to-read-marker button.

* Put jump-to-read-marker behind a developer-options feature flag.

* Fine-tune TimelineScrollButton sizing and badge colour.

* Remove TimelineScrollButton chevron offset that was compensating for SF Symbol centering.

* Drop the new-messages count, replace with a presence dot.

* Move both timeline scroll buttons to bottom-right and revert topBanners trailingAccessory slot.

* Position TimelineScrollButton badge above for up direction and below for down direction.

* Add long-press mark-as-read pill to the timeline scroll buttons

* Read isSwitchingTimelines from state in updateHasNewMessagesAtBottom.

* Use assertionFailure when scrollToReadMarker is called with no read marker.

* Add TimelineScrollButton preview snapshots.

* (fix) design and various self-review issues

* (fix) suppress scroll button tap after long-press

* (feat) fall back to RoomInfo.fullyReadEventID for jump-to-unread

* (fix) hide jump-to-unread immediately after mark-as-read

* (fix) align with newer matrix-rust-sdk surface

* Bump the RustSDK to v26.05.20

---------

Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com>
Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
2026-05-21 15:03:32 +03:00

178 lines
4.8 KiB
YAML

---
name: ElementX
attributes:
ORGANIZATIONNAME: Element
LastUpgradeCheck: "1620"
fileGroups:
- project.yml
- app.yml
options:
groupSortPosition: bottom
createIntermediateGroups: true
deploymentTarget:
iOS: '18.5'
macOS: '14.5'
groupOrdering:
- order:
- ElementX
- NSE
- ShareExtension
- UnitTests
- PreviewTests
- UITests
- AccessibilityTests
- IntegrationTests
- DevelopmentAssets
- SDKMocks
- Secrets
- Tools
- pattern: ElementX
order:
- Sources
- Resources
- SupportingFiles
- pattern: Sources
order:
- Application
- UserSession
- Services
- FlowCoordinators
- Screens
- Other
- UITests
- AccessibilityTests
fileTypes:
icon:
file: true # https://github.com/yonaskolb/XcodeGen/issues/1556
postGenCommand: cd Tools/XcodeGen && sh postGenCommand.sh
settings:
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: true
ENABLE_BITCODE: false
APP_NAME: ElementX
KEYCHAIN_ACCESS_GROUP_IDENTIFIER: "$(DEVELOPMENT_TEAM).$(BASE_BUNDLE_IDENTIFIER)"
MARKETING_VERSION: 26.05.4
CURRENT_PROJECT_VERSION: 1
SUPPORTS_MACCATALYST: false
include:
- path: app.yml
- path: ElementX/SupportingFiles/target.yml
- path: NSE/SupportingFiles/target.yml
- path: ShareExtension/SupportingFiles/target.yml
- path: SDKMocks/SupportingFiles/target.yml
- path: UnitTests/SupportingFiles/target.yml
- path: PreviewTests/SupportingFiles/target.yml
- path: UITests/SupportingFiles/target.yml
- path: IntegrationTests/SupportingFiles/target.yml
- path: AccessibilityTests/SupportingFiles/target.yml
# - path: MyAppVariant/override.yml
packages:
# Element/Matrix dependencies
MatrixRustSDK:
url: https://github.com/element-hq/matrix-rust-components-swift
exactVersion: 26.05.20
# path: ../matrix-rust-sdk
Compound:
path: compound-ios
AnalyticsEvents:
url: https://github.com/matrix-org/matrix-analytics-events
minorVersion: 0.33.2
# path: ../matrix-analytics-events
EmbeddedElementCall:
url: https://github.com/element-hq/element-call-swift
exactVersion: 0.19.3
Emojibase:
url: https://github.com/matrix-org/emojibase-bindings
revision: 60bc01f2e3b31445dc723f5af1a777b63d18e6c2 # pinned due to https://github.com/matrix-org/emojibase-bindings/issues/59
# minorVersion: 1.5.0
# path: ../emojibase-bindings
SwiftOGG:
url: https://github.com/element-hq/swift-ogg
minorVersion: 0.0.4
# path: ../swift-ogg
WysiwygComposer:
url: https://github.com/element-hq/matrix-rich-text-editor-swift
exactVersion: 2.41.3
# path: ../matrix-rich-text-editor/platforms/ios/lib/WysiwygComposer
# External dependencies
Algorithms:
url: https://github.com/apple/swift-algorithms
minorVersion: 1.2.1
AsyncAlgorithms:
url: https://github.com/apple/swift-async-algorithms
minorVersion: 1.1.3
Clocks:
url: https://github.com/pointfreeco/swift-clocks
from: 1.0.6
Collections:
url: https://github.com/apple/swift-collections
minorVersion: 1.5.0
DeviceKit:
url: https://github.com/devicekit/DeviceKit
minorVersion: 5.8.0
DSWaveformImage:
url: https://github.com/dmrschmidt/DSWaveformImage
exactVersion: 14.3.0
Dynamic:
url: https://github.com/mhdhejazi/Dynamic
exactVersion: 1.2
GZIP:
url: https://github.com/nicklockwood/GZIP
minorVersion: 1.3.2
KeychainAccess:
url: https://github.com/kishikawakatsumi/KeychainAccess
minorVersion: 4.2.2
Kingfisher:
url: https://github.com/onevcat/Kingfisher
minorVersion: 8.9.0
KZFileWatchers:
url: https://github.com/krzysztofzablocki/KZFileWatchers
minorVersion: 1.2.0
LoremSwiftum:
url: https://github.com/lukaskubanek/LoremSwiftum
minorVersion: 2.2.3
LRUCache:
url: https://github.com/nicklockwood/LRUCache
minorVersion: 1.2.1
Mantis:
url: https://github.com/guoyingtao/Mantis
minorVersion: 2.31.1
MapLibre:
url: https://github.com/maplibre/maplibre-gl-native-distribution
minorVersion: 6.26.0
PostHog:
url: https://github.com/PostHog/posthog-ios
minorVersion: 3.58.1
Sentry:
url: https://github.com/getsentry/sentry-cocoa
minorVersion: 9.13.0
SnapshotTesting:
url: https://github.com/pointfreeco/swift-snapshot-testing
minorVersion: 1.19.2
SwiftFlow:
url: https://github.com/tevelee/SwiftUI-Flow.git
minorVersion: 3.1.1
SwiftSoup:
url: https://github.com/scinfu/SwiftSoup.git
minorVersion: 2.13.4
SwiftState:
url: https://github.com/ReactKit/SwiftState
minorVersion: 6.0.1
Version:
url: https://github.com/mxcl/Version
minorVersion: 2.2.1
aggregateTargets:
Periphery:
buildScripts:
- name: Scan
script: |
export PATH="$PATH:/opt/homebrew/bin"
periphery scan --format xcode
basedOnDependencyAnalysis: false