Commit Graph

56 Commits

Author SHA1 Message Date
Doug
e882b9e7b8 Support runtime customisation of the rageshake URL. (#4267) 2025-06-30 10:18:25 +01:00
Doug
f0e653e462 Fix a crash when attempting to send a bug report with excessively large logs. (#4243)
* Alert the user when there are excessively large log files.
2025-06-24 09:47:20 +01:00
Doug
1f6f8b8f4c Refactor reportUrl to reportURL. 2025-06-18 14:32:26 +01:00
Doug
d22761a25a Don't check the report URL's contents before clearing the lastCrashEventID.
If we reached it this far, the server has indicated that the submission was successful.
2025-06-18 14:32:26 +01:00
Nicolas Buquet
7c31220337 Make BugReportService reportUrl optional (#4195) 2025-06-18 14:32:26 +01:00
Stefan Ceriu
0d15086c1c Fixes #4185 - Correct the bug report service submission URL after updating how secrets are configured.
- introduced in 54f4aeda4f
2025-06-11 12:33:49 +03:00
Doug
946a72ceff Add the build number to rageshakes. (#3978) 2025-04-04 10:36:52 +00:00
Doug
2a146ca022 Allow the services that are configured by secrets to be disabled. (#3961)
* Make the map tiler key optional.

* Make the bug report URL optional.

* Make the sentry URL optional.

* Make the analytics configuration optional and handle consent taking Sentry into account.

* Stop prompting users to report crashes when Sentry is disabled.
2025-04-01 09:24:12 +01:00
Stefan Ceriu
7a4534680f Move tracing configuration to the rust side. 2025-01-10 19:09:52 +02:00
manuroe
c29f4cc9b4 Dual licensing: AGPL + Element Commercial (#3657)
* New LICENSE-COMMERCIAL file

* Apply dual licenses: AGPL + Element Commercial to file headers

* Update README with dual licensing
2025-01-06 11:27:37 +01:00
Doug
4cc186be0c Fix some warnings. (#3416) 2024-10-16 08:54:34 +01:00
Stefan Ceriu
89eae00479 Switch license to AGPL (#3237)
* Switch license file to AGPL

* Update file copyright headers

* Update the default project file header
2024-09-06 16:34:30 +03:00
Doug
17a86a2066 Add a certificate validator hook. (#3069)
* Add a certificate validator hook.

* General tidy up of AppHooks.

* Don't worry about the generic call links.
2024-07-19 17:05:54 +01:00
Doug
9bd3040e75 Add a bug report hook. (#2988) 2024-07-01 13:53:24 +01:00
Stefan Ceriu
fa15335b9b Setup Sentry instrumentation on top of the existing Signposter (#2985)
* Move Sentry setup outside of the BugReportService

* Setup Sentry SwiftUI tracing for the homeScreen and roomScreen roots

* Setup Sentry instrumentation on top of the existing Signposter

* Various tweaks
2024-06-28 18:15:57 +03:00
Stefan Ceriu
5cf3a4477e Fix various swiftlint and swiftformat warnings 2024-06-11 18:09:43 +03:00
Stefan Ceriu
04ae8b0b7f Decouple the bug report service from the analytics one 2024-05-30 15:42:26 +03:00
Valere
d9466d584d Add device keys to rageshakes (#2838) 2024-05-21 09:54:16 +01:00
Doug
5bdfcc58c1 Handover log file management to Rust. (#2495)
* Handover log file management to Rust.

Fix all the tests, disabling the logging ones for now.

* Merge logging tests into a single case 😬

Not ideal but at least they're now running.

* Move TracingConfiguration into its own file.

* Split up the tests into smaller functions instead of writing code like a caveman.
2024-02-23 18:29:13 +00:00
Stefan Ceriu
2f9d2cf457 Allow reporting a problem from the onboarding screen 2024-01-22 14:17:36 +02:00
Mauro
84b0f967e8 Removing Dead Code part 1 (#2234) 2023-12-13 09:51:57 +01:00
Stefan Ceriu
8069d36249 Various optimisations (#1878)
* Cache TimelineBubbleLayout subview sizes

* Cache MessageText sizes, avoid extra updates

* Only use the `CollapsibleReactionLayout` if there's more than 5 reactions on a particular message

* Upgrade Sentry to 8.13.0, disable various options as they're not useful and impact performance

* Address PR comments, fix unit tests
2023-10-11 16:21:45 +03:00
Stefan Ceriu
c1012fcc85 Fixes #1861 - Report rust tracing configuration filter in rageshakes 2023-10-09 14:59:56 +03:00
Stefan Ceriu
28625bd904 Various Sentry configuration tweaks to make it more usable 2023-08-09 15:44:23 +03:00
Stefan Ceriu
127e7f29a6 Tweak swiftlint settings 2023-08-08 11:48:40 +03:00
Stefan Ceriu
ccf1706ea0 Send the SDK's short git SHA to rageshakes 2023-08-02 10:27:22 +03:00
Doug
73a7615b7b Log the crash event's ID to see if duplicate logs are for the same event. (#1350) 2023-07-18 15:00:33 +01:00
Mauro
93609a03be Contact me added in Bug Report Screen (#1307)
* contact me added

* fixing tests
2023-07-12 08:20:51 +00:00
Stefan Ceriu
abe1df2524 Removed unused swipe gesture (+3 squashed commits)
Squashed commits:
[d64bb3bb] Stop using the ServiceLocator directly in the ScreenTrackerViewModifier
[37c46ab9] Rename Analytics to AnalyticsService
[8852a371] #920 - Cleanup ServiceLocator usages
2023-06-28 11:33:41 +03:00
Stefan Ceriu
6232349231 Add support for media uploading progress
- replace the ProgressTracker with a combination of currentValueSubjects and currentValuePublishers
2023-06-22 13:37:13 +03:00
Flescio
7040cd41c1 Add reverse geocoding service (#1085)
* add Geocoding service

* move url session extension
2023-06-15 16:40:42 +02:00
Doug
edbef54243 Improved bug report error handling (#1018)
* Improve rageshake error handling.

* Add a max file size and exclude older files one the limit is hit.

* Zip log files as smaller chunks.
2023-06-06 11:24:01 +03:00
Nicolas Mauri
1bc05a2ffe Set up Analytics to track data per session (#780) 2023-04-18 07:33:32 +00:00
Doug
e333eff731 Use iOS localization handling for strings. (#803) 2023-04-17 14:58:39 +00:00
Doug
90d96afa55 Update danger message and brew dependencies. (#683) 2023-03-08 10:59:49 +00:00
Stefan Ceriu
0aca8c25c1 Fixes #614 - Add the user and device identifiers to rageshakes (#620)
* Fixes #614 - Add the user and device identifiers to rageshakes

* Add `base_bundle_identifier` to rageshakes
2023-02-24 14:51:36 +02:00
Mauro
9515977c6a Attach Screenshot in Bug Report Screen (#578)
* 127 Attach Screenshot in Bug Report Screen

* #127 code improvement

* #127 Code improvements, and changed the loading... label to sending...

* using a statically defined identifier for the new defined ui element

* added the RowLabelStyle and improved the design of the view

* code improvement

* code improvement

* making alignment private

* synthesised init
2023-02-15 16:46:53 +00:00
Mauro
4af8f2860d Updated Screenshot Tests and fixed an issue with the MockMediaProvider (#554)
* updated the tests

* updated ui tests

* removed unused files

* fixed a bug that prevented the image to be added in the avatar of the rooms from the mock, and improved some UI tests

* swiftformat

* fixed an issue where the room Id was not matching the real room id coming from the timelineController, also updated some tests, and added a test for the case where the RoomAvatar is available.

* added some waitForExistence checks to allow the CI to find the UI elements

* this should make the loading bar always match at the HStack size

* code improvement for the tests

* fix for the max frame of the loading screen

* updated tests

* regenerated and improved some tests

* sonarcloud improvements

* changelog
2023-02-09 14:57:55 +01:00
Mauro
062bf35fcf Added a progress tracker to the bug report view (#513)
* created a progress tracker class and passed it in the user notification to be observed by the progress view

* improved the publishing by dispatching it on RunLoop.main

* bug report struct created and progress tracker class moved into the Other folder

* some swiftlint adjustments

* fixed tests

* fixed another test BugReportServiceTests

* changelog 495 - change

* added a mock preview

* fixing some linting suggestions

* no need to use KVO, achieve the same result using a publisher

* some refactors to address PR comments

* some code improvements

* fixed the issue that prevented the avatar of the room to be displayed in the mocks, and updated the tests

* Revert "fixed the issue that prevented the avatar of the room to be displayed in the mocks, and updated the tests"

This reverts commit 113d6091d91a3aac1f9a59ff6c5e07610ed59859.
2023-02-08 21:52:31 +01:00
Doug
af7005ce19 Hardcode the sliding sync proxy. (#502)
* Add support for migrating between versions.
* Rename InfoPlistReader property.
* Bump SDK version.
2023-01-31 17:48:24 +00:00
Doug
4b278a9fd1 Improvements to logging (#457)
* Use `.info` logging in most places.
* Remove old objc logging support.
* Fix table view controller.
* Make sure timeline item content isn't logged.
* Add tests.
2023-01-17 09:28:01 +00:00
Stefan Ceriu
5672fef5a5 Room list fixes (#431)
* Fixes #396 - Avoid duplicates in room list, cleanup logic throughout

* Re-enabled the allRoomsView with a hard 500 room limit and reduced the diffing collection time.

* Fixes #385, #411 - Filter out spaces, invites and tombstoned rooms from the room list

* Various tweaks following code review
2023-01-10 17:34:42 +02:00
Stefan Ceriu
09face6b06 Fix a couple of warnings 2023-01-04 19:06:28 +02:00
Stefan Ceriu
522dad5ff2 Resetting the app after deletion and cleanup settings (#372)
* Fixes #361 - Reset everything if the app has been deleted since the last run

* Cleaned up and renamed the ElementSettings to ApplicationSettings. Removed its singleton and moved it to the service locator.

* Moved the ApplicationSettings to the Application folder

* Merged together the BuildSettings and ApplicationSettings

* Reset the UserDefaults too when resetting the application state

* Rename ServiceLocator.applicationSettings to just settings

* Fix indentation

* Rename ApplicationSettings to AppSettings

* Various tweaks following code review

* Fix unit tests
2022-12-16 10:02:22 +02:00
ismailgulek
5d92a7d85d Notifications (#275) 2022-11-21 19:37:13 +03:00
Doug
6e06d92023 #166: Re-write MXLogger in Swift
* Add logging tests that cover file rotation.

* Re-write MXLogger in Swift.
2022-11-18 15:02:01 +00:00
Stefan Ceriu
2623b14dce Sliding Sync + New Timeline API (#189)
* Begin adopting new Timeline API.

* Add edited indicator and reactions.

* vector-im/element-x-ios/issues/65 - Sliding sync support
* Fix missing room display name, wrong placeholder avatar text color and various other warnings that would fail the build on the CI

* Various tweaks:
* using release version of the demo branch of the sdk
* enabled home screen last room messages
* switched debug mode rust logging to warn
* enabled redactions
* enabled new logout flows and soft logout
* enabled replies

* Fix room member display name and avatar crashes / race condition, fix unit tests
* Make the ClientProxy and the UserSession MainActors
* Remove unused MatrixRustSDK imports, we should strive to keep these only in top level services and proxies
* Don't start either of the syncs while in soft logout

* #181: Style the session verification banner to match Figma.
* #181: Update verification modal.
* #181: Update snapshot tests.

* Make session verification state machine less pedantic
* Remove unnecessary weak selfs
* Various tweaks following code review:
* add start and stop sync client proxy methods
* move ss proxy url the build settings
* made media provider load results discardable
* added publishers for the roomSummaryProvider's total number of rooms and state

* Fix when sender details are shown
* Disable sync v2, causes duplicates in the timeline (as expected)
* Move ClientProxy media loading off the main queue and into a detached task
* Another attempt at moving image loading off the main queue
* Moved home screen diffing and latest room fetching to the background
* Prevent the timeline composer from becoming the first responder when not needed

* Bump to a newer version of the RustSDK

* Fixes vector-im/element-x-ios/issues/107 - New home screen design
* Implement thumbnail loading instead of full image avatars.
* Revert "Disable sync v2, causes duplicates in the timeline (as expected)"
* Add support for local echoes, dispatching detached tasks to a concurrenc GCD queue
* Move the session verification banner to a List Section to avoid UI glitches
* Optimise room mapping after sliding sync updates and thumbnail fetching
* Replace home screen List with a LazyVStack in an attempt to fix performance. Moved move summary provider room updating to a background thread

* Fixes vector-im/element-x-ios/issues/177 - New Bubbles Design
* Define in group state for timeline items
* Add replies into the bubble
* Add timeline width environment value
* Add `RoundedCorner` shape with specific corners rounding
* Add in group state for previews
* Implement bubble grouping logic
* Timeline avatar layout changes
* Fix placeholder avatars for dark mode
* New bubbles design
* Update mock timeline items
* Update timeline separator design
* Update room screen reference screenshots
* Add changelog
* Formatting fixes
* Add some space before single or beginning outgoing items

* Redesign the message composer

* Handle the msgtype enum.

* Update room name label line limit and incoming bubble background. Disabled syncv2, ss withCommonExtensions and session verification controller checking

* Increase default back pagination limit.
* Stop parsing links and tidy up composer button.
* Also fix the frame of an image whilst loading.
* Bump SDK package version.

* Remove app states about settings
* Add strings
* Use colors on placeholder avatars
* Tiny changes for placeholder avatars
* Update settings screen design
* Provide a user display name from the mock client
* Settings screen presentation logic
* Add changelog
* Update reference screenshots

Co-authored-by: Doug <douglase@element.io>
Co-authored-by: ismailgulek <ismailgulek@users.noreply.github.com>
Co-authored-by: ismailgulek <ismailg@matrix.org>
2022-09-21 09:21:58 +01:00
Stefan Ceriu
223dd45629 Fixes vector-im/element-x-ios/issues/117 - Event permalink timeline action
* moved NSRegularExpression outside of the AttributedString builder into the MatrixEntityRegex
* fixed eventId v3 regex
* added permalink builders for users, room identifiers and aliases, and events
* added timeline item permalink contextual menu actions and error alerts
* added an app wide ServiceLocator and moved the top level userIndicatorPresenter to it.
* added URL constructor that takes a StaticString and returns an non-optional
* Include Unit and UI tests in the swiftlint search paths
2022-09-12 21:34:53 +03:00
Stefan Ceriu
a2fc70866f Various logging fixes (#164)
Various logging fixes:
* imported the ObjCWrapper and updated the MXLogger. Also added back support for app containers
* updated MXLog.swift from El and fixed/improved its logging format
* updated most app log strings
* Remove unnecessary swiftlint rule
* Various tweaks following code review
* Added back type annoation on MXLogger logFiles method
* Fix generated Swift-ObjC header name
2022-08-30 18:05:21 +03:00
Doug
f20cf598a9 #150: Use standard file headers everywhere.
* Add default header in IDETemplateMacros.plist.
* Use the standard header everywhere.
2022-08-11 08:54:24 +01:00