IceCubesApp/IceCubesAppWidgetsExtension
Thomas Ricouard 24cccfad1d
Ice Cubes 2.0 + iOS 26 supports (#2280)
* iOS 26 compiles

* New compose accessory view

* Better GlassEffectContainer transition

* Fixes

* Drop iOS 17 + Timeline filters at bottom

* Glass status observer

* Fixes

* More fixes

* Disable tabbar collapse

* Refacor timeline checkpoint

* Tyding code

* Set version to 2.0

* Remove fast timeline setting

* Perf fixes

* Remove custom Sidebar

* Perf boost + remove content gradient

* Fixes

* Remove steaming

* Fix TL

* Use Tab

* Fix separators

* Better sheet

* Editor enhance

* Leading status row actions

* More iOS 26 fixes

* Fix context menu tint color

* Fix app account sheet

* Fix extension send button

* New Icons

* AppIcon

* Add back VisionOS Icon

* Working icon

* Update Claude.MD

* WIP Playground

* Replace OpenAI with FoundationModels

* Stream response

* Prewarm Assistant on editor open

* Add more LLM tools

* Fixes

* Remove contentWarning prompt

* Update packages to Swift 6.2

* Various iOS 26 fixes

* Prepare birictional gap

* Add sections for iPad sidebar

* Fix profile status update

* Make StatusesState Equatable

* Disable LLM on macCatalyst for now

* Add Tags and Lists to sideabar

* Add local timeline and tags group in the sidebar

* Account: Refine header view

* Show non LLM tag

* Support V2 notifications group

* Refactor NotificationsViewModel

* Fix initial gap

* Notifications list: Add glassEffect

* Set editor glass effect to interactive

* Refactor TimelineView

* Notifications: Merge new group

* Notifications: Refactor VM

* Notifications: Cleanup code

* Liquid glass DM View

* Add direct access to DM in notifications top menu

* Editor: Fix sizing on mention/tags

* Better DM detail view

* DM: More refactor view

* DM: Even better views

* DM: Rework media attachements

* DM: Interactive textfield

* Notifications: Refactor and remove ViewModel

* DM: Refactor and remove ViewModel

* DM Detail: Refactor without ViewModel

* Remove sub.club support

* DM Detail: Fix loading

* Icons cleanup

* Tweak icons

* Account Detail: Refactor sub tabs

* More icons

* Account Detail: Remove ViewModel

* Account Detail: Refactor to smaller views

* Explore: Refactor to components + inline state

* Accounts Statuses: Refactor + remove VM

* Edit note: Remove VM

* Trim AccountDetail

* Account: Set button to primary color

* Fixes

* Improve UI consistency and context menus in media and notifications

Refactored MediaView to use context menus instead of Menu for media items and updated alt/discard marker buttons for iOS 26 compatibility. Added .tint(.label) to notification filter buttons for consistent appearance. Minor code style and import order improvements in AppView.

* Add .glassProminent

* Fix warnings

* Refactor compressVideo to use async/await

Updated the compressVideo function to use Swift's async/await syntax instead of withCheckedContinuation, simplifying the code and improving readability.

* Rename SPM Network -> NetworkClient

* Fix build

* Client -> MastodonClient

* Rename file

* Refactor media container to use state-based model

Replaces the previous MediaContainer property model with a state-based enum to better represent the lifecycle of media (pending, uploading, uploaded, failed). Updates MediaView and ViewModel to use the new state model, improving clarity and error handling for media uploads, progress, and failures. Adds convenience initializers and factory methods for creating containers in various states, and updates UI logic to match the new structure.

* Add media upload progress tracking and UI updates

Introduces progress tracking for media uploads in MastodonClient by adding new upload methods with progress handlers and a URLSession delegate. Updates StatusEditor ViewModel to pass progress handlers and update media container state during uploads. Enhances MediaView to display both circular and linear progress indicators with animation.

* Refactor message view to use glass effect on iOS 26+

Introduces a conditional to use .glassEffect for message backgrounds on iOS 26 and above, while maintaining the previous background logic for earlier versions. Extracts the message text rendering into a reusable textView property for cleaner code.

* Test removing legacy app icon

* Revert "Test removing legacy app icon"

This reverts commit 27c552d3cb.

* Refactor timeline pills and tab bar for iOS 26 compatibility

Moved TimelineQuickAccessPills logic from AppView to TimelineView and updated implementation to use new iOS 26 APIs where available. Simplified tab bar view in AppView and improved conditional logic for iPad and Mac layouts.

* Update glassEffect to use .regular.interactive()

Replaces the default glassEffect modifier with .regular.interactive() for improved visual consistency and interaction feedback on FollowButton and related controls.

* Improve progress indicator logic and remove iOS version check

Refines the display logic for progress indicators in MediaView, showing a linear progress bar only when progress is between 0 and 1, and otherwise showing a circular indicator. Also removes an unnecessary iOS version check in TimelineView for toolbar background visibility.

* Update screenshots

* Update toolbar tint and improve account fields UI

Added `.tint(.label)` to several toolbar items for consistent icon coloring. Refactored AccountFieldsView to support iOS 26+ visual effects and improved accessibility and background handling. Removed redundant `.tint(.label)` from NotificationsListView.

* Add zoom transition for MediaUI

* Remove Old AppIcon

* Remove alternate icons assets

* Update sign-in button style and layout in AddAccountView

Refactors the sign-in button to use a new 'signinButton' view, applying .glassProminent style on iOS 26+ and .borderedProminent otherwise. Adjusts button layout for full width, sets a fixed height, and updates row insets and background for improved appearance.

* Remove iPhone tab label preference setting

Eliminated the 'showiPhoneTabLabel' toggle from TabbarEntriesSettingsView and related property from UserPreferences. This streamlines settings by removing an unused or deprecated option.

* Fix text replacement in StatusEditor ViewModel

Updated the async stream handling in StatusEditor to use the 'content' property of the streamed object when replacing text, ensuring correct text updates.

* Update UI for iOS 26 and improve avatar effects

Refactored ToolbarTab and AppAccountsSelectorView to use .embed avatarConfig and apply glassEffect on iOS 26+. Updated contentShape to .circle for better interaction. Added theme-based tint to notification list buttons for improved visual consistency.

* Add optional caption to Mastodon post intent (#2292)

* Add app shortcut and intent for inline image posting on Mastodon (#2293)

* Add optional alt text to image upload intents (#2294)

* Adjust toolbar label offset for iOS 26 (#2296)

* Improve background handling in Explore and Editor views

Updated ExploreView to use edgesIgnoringSafeArea for the background color and made minor formatting improvements. Refactored MainView in StatusEditor to use a computed backgroundColor view for better background management based on presentationDetent.

* Remove macCatalyst conditional compilation for AI features

Eliminated #if !targetEnvironment(macCatalyst) checks from AI-related components in the status editor, making AI features available on all platforms where iOS 26+ is supported. Also added new localization keys related to image posting and descriptions.

* Add ToolbarSpacer and improve toolbar styling

Introduces ToolbarSpacer with .topBarTrailing placement for iOS 26.0+ in NotificationTab, TimelineTab, and TimelineView to improve toolbar layout. Updates toolbar item placements and adds theme-based foreground styling to toolbar icons. Removes unnecessary line limit in NotificationRowContentView and adjusts line limit logic in StatusRowTextView for better text display. Refactors some pattern matching for clarity.
2025-08-27 07:37:20 +02:00
..
AccountWidget Ice Cubes 2.0 + iOS 26 supports (#2280) 2025-08-27 07:37:20 +02:00
Assets.xcassets Initial widget support 2024-05-05 13:12:19 +02:00
HashtagPostsWidget Ice Cubes 2.0 + iOS 26 supports (#2280) 2025-08-27 07:37:20 +02:00
LatestPostsWidget Ice Cubes 2.0 + iOS 26 supports (#2280) 2025-08-27 07:37:20 +02:00
ListsWidget Ice Cubes 2.0 + iOS 26 supports (#2280) 2025-08-27 07:37:20 +02:00
MentionWidget Ice Cubes 2.0 + iOS 26 supports (#2280) 2025-08-27 07:37:20 +02:00
Shared Ice Cubes 2.0 + iOS 26 supports (#2280) 2025-08-27 07:37:20 +02:00
IceCubesAppWidgetsExtensionBundle.swift Add followers count widget 2024-05-17 14:22:00 +02:00
IceCubesAppWidgetsExtensionExtension.entitlements Fix app group 2024-05-05 19:03:25 +02:00
Info.plist Initial widget support 2024-05-05 13:12:19 +02:00