Commit graph

159 commits

Author SHA1 Message Date
Jorge Martin Espinosa
619aa6f2de
Split MatrixRoom into BaseRoom and JoinedRoom (#4561)
`JoinedRoom` will now contain both a mandatory live timeline reference and all the functionality associated to it.

`BaseRoom` on the other hand will contain only functionality that's shared for both joined and not joined rooms.

`NotJoinedRoom` is a wrapper around `RoomPreviewInfo` data and a possible local `BaseRoom`, if it exists.

The `RustRoomFactory` cache is now gone since the persistent event cache should have the same effect.
2025-04-23 15:53:40 +02:00
Jorge Martin Espinosa
c3ff9c9bda
Enable Rust trace log packs (#4514)
* Enable Rust trace log packs

This is a way to forcefully enable trace logs only for a few Rust crates in a safe way
2025-04-02 11:21:53 +00:00
Benoit Marty
3c1deff79c
Element config (#4471)
* Add handy extension "VariantDimension.buildConfigFieldStr"

* Update configuration for MapTiler.

* Update configuration for Sentry.

* Build AnalyticsConfig depending on analytics configuration.

* Configure analytics policy url.

* Add handy extension "VariantDimension.buildConfigFieldBoolean"

* Configure legal urls.

* Add a way to disable rageshake / reporting bugs.

* Update screenshots

* Quality

* Fix test

* Use `ifBlank` extension

* Add missing configuration for PostHog

* Update configuration for Rageshake.

* Add build log.

* Disable crash detection if rageshake feature is not available.
Disabled twice.

* Hide link to analytics policy if the link is missing.

* Fix test when run in enterprise context.

* Use RageshakeFeatureAvailability where appropriate.

* Rename file.

* Move some classes to their correct module.

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-03-27 11:25:04 +01:00
Jorge Martin Espinosa
fccd881b1f
Update SDK version to 25.03.13 and fix breaking changes (#4406)
Breaking changes addressed:
* Make `MatrixClient.getNotificationSettings()` async, cache its result.
* Use `RoomInfo` for accessing the updated room's info.
* Refactor `MatrixRoom` so it always receives an initial `MatrixRoomInfo` value: this value will be used to make `MatrixRoom.roomInfoFlow` a `StateFlow` so we can assume the initial updated Room data will be present.
* Fetch encryption state when loading a room if it's unknown
2025-03-19 12:52:57 +01:00
Jorge Martín
f01078bc8a Use a feature flag to decide whether logs should be printed to logcat or not
This is done so it can be temporarily enabled on release builds for quick debugging sessions, then disabled again.
2025-03-13 16:11:53 +01:00
Jorge Martín
b73c447808 Enable printing logs to logcat in nightly and release builds 2025-03-12 18:53:46 +01:00
Benoit Marty
96683850ba Change LocalIsEnterpriseBuild to LocalBuildMeta 2025-03-10 11:08:50 +01:00
Benoit Marty
94d4f6c60c Ensure enterprise build only use the application names. 2025-02-21 11:43:47 +01:00
Benoit Marty
07d4778ae5 Use ElementTheme instead of MaterialTheme 2025-02-06 15:10:15 +01:00
Benoit Marty
1654f569a0 Add ability to EnterpriseService to override theme colors 2025-02-06 15:10:14 +01:00
ganfra
7d27e6581b change(tracing) : change how tracing is configured (ui and logic) 2025-01-17 09:52:32 +01:00
Benoit Marty
97f3be3dc5 Apply dual licenses: AGPL + Element Commercial to file headers.
2 replace all actions have been performed:
- "SPDX-License-Identifier: AGPL-3.0-only" to "SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial"
- "Please see LICENSE in the repository root for full details." to "Please see LICENSE files in the repository root for full details."
2025-01-07 10:05:04 +01:00
renovate[bot]
b06699e53e
Update appyx to v1.5.1 (#3889)
* Update appyx to v1.5.1

* Fix api breaks

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2024-11-19 07:56:06 +00:00
Jorge Martin Espinosa
79c17f714f
Use Anvil KSP instead of the Square KAPT one (#3564)
* Use Anvil KSP instead of the Square KAPT one

* Fix several configuration cache, lint and test issues

* Allow incremental kotlin compilation in the CI

* Workaround Robolectric + Compose issue that caused `AppNotIdleException`

* Update the `enterprise` commit hash

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2024-10-02 11:52:17 +00:00
ganfra
d0f363bf7d Pinned messages analytics : introduce LocalAnalyticsService so we can easily inject it in views 2024-09-20 18:28:25 +02:00
Benoit Marty
f61df38e55 Migrate license to AGPL.
Run script `uv run license-editor --repository ../element-x-android`
2024-09-06 17:19:19 +02:00
Jorge Martin Espinosa
63df35e071
Use the right filename for log files so they're sorted in rageshakes (#3219)
* Use the right filename for log files so they're sorted in rageshakes

* Hide the suffix part so it's not changed by accident
2024-07-19 10:33:33 +00:00
Benoit Marty
bb5ae89b2f Introduce ElementThemeApp to avoid code duplication. 2024-07-09 11:10:10 +02:00
Benoit Marty
8d1a212bfd Move application icon to their own module, to be able to have another icon for Element Enterprise 2024-07-03 15:15:53 +02:00
Benoit Marty
a9fb4b95ce Add isEnterpriseBuild to BuildMeta 2024-06-26 11:59:45 +02:00
Jorge Martin Espinosa
b741c32e91
Add full screen intent permissions banner (#3024)
* Add full screen intent permissions banner, creating `:libraries:fullscreenintent` modules.
* Add it to notification settings too:
    - Create `libraries:fullscreenintent` modules for the permission presenter and associated data.
    - Add the presenter and states to `NotificationSettingsPresenter` and `NotificationSettingsView`.
* Use the right API to check for full screen intent permissions.
- Use the right package name for `:libraries:permission` contents.
* Fix broken tests (flaky?)
* Ignore coverage verification for fake and small presenters

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-06-18 07:41:10 +00:00
Jorge Martin Espinosa
55a1ac4bb5
Fix tracing configuration in debug and nightlies (#3019)
* Fix tracing configuration in debug and nightlies:

- Debug will now write the logs to disk too.
- Nightly will be able to customise tracing filters.
- Improved the configure tracing and bug report screens.

* Update screenshots

* Add changelog

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-06-12 10:20:43 +00:00
Benoit Marty
3fa508f1fe Add Konsist test Class with 'ContributeBinding' annotation should have allowed prefix and fix exissting issues.
Also remove annotation `DefaultPreferences`, we only have one implementation.
2024-05-31 10:18:08 +02:00
Benoit Marty
45598a885e Rename some class from Impl to Default 2024-05-31 09:47:27 +02:00
Benoit Marty
f8aac80052 Log versionCode from Manifest and not from BuildConfig.VERSION_CODE. 2024-05-24 15:18:17 +02:00
Benoit Marty
3c3703cba3 Read versionCode from the Manifest, since BuildConfig.VERSION_CODE does not contain the correct last digit. 2024-05-24 15:06:47 +02:00
ganfra
73905fa695 Pin : clean up after PR review #2692 2024-05-20 16:34:26 +02:00
ganfra
b0c369ee1a Fix modal contents overlapping screen lock pin #2692 2024-05-17 18:40:16 +02:00
Benoit Marty
6e7bbd6972 Explicitly set domain for external link handling.
And revert change: let ElementCallActivity handle again `call.element.io` links.
2024-05-06 11:12:09 +02:00
Benoit Marty
0fb89bd4b2 Let MainActivity manage Element Call https links. 2024-05-02 15:37:57 +02:00
Benoit Marty
c1c3227bde Let the SDK manage the file log cleanup, and keep one week of log. 2024-04-26 12:33:20 +02:00
Benoit Marty
7bbcb719d5 Implement a migration mechanism to handle internal stuff which need to occur during application upgrade.
Remove VectorFileLogger, it was dead code.
2024-04-24 11:17:23 +02:00
ganfra
e171472fc4 Room list invites : clean and format 2024-04-16 15:49:07 +02:00
ganfra
997c4606c6 Invites : open room instead of invite list when clicking an invite notification 2024-04-16 13:20:43 +02:00
ganfra
447a10cb06 Add ApplicationConfig object to help tweaking the application / brand name used across the application. 2024-04-10 16:57:18 +02:00
Benoit Marty
ffede8b13b Use productionApplicationName, set to "Element", instead of "Element X", and use ot for screen_onboarding_welcome_message 2024-04-10 16:45:14 +02:00
Benoit Marty
075510c425 Add desktopApplicationName to BuildMeta. 2024-04-10 12:36:41 +02:00
Jorge Martin Espinosa
b6ceb8c697
Improve UI for notification permission screen in onboarding (#2660)
* Improve UI for notification permission screen in onboarding

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-04-08 10:58:37 +02:00
Benoit Marty
b104dba845 Remove Modifier parameter in private function when only default value is used.
This will improve the code coverage metrics, and this also fixes a few potential bug, where the Modifier was used several times.
2024-02-08 11:06:06 +01:00
Jorge Martin Espinosa
ede1dc0fab
Fix crash about several DataStores using the same file (#2312)
* Fix crash about several DataStores using the same file

- Create `@SessionCoroutineScope` annotation to pass a session-managed coroutine scope to the DI.
- Expose this scope from `MatrixClient`.
- Rework DataStore file creation a bit.
- Centralise session preference creation through `DefaultSessionPreferencesStoreFactory` until we figure out what went wrong with the scoping
2024-01-30 11:10:46 +01:00
Jorge Martin Espinosa
7e58f719fe
Add 'send private read receipts' option in advanced settings (#2290)
* Add 'send private read receipts' option in advanced settings
* Create `SessionPreferencesStore` that stores the settings for the current use separate from those of the app.
* Rename `PreferencesStore` to `AppPreferencesStore` to split the preferences.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-01-26 10:06:26 +01:00
Jorge Martin Espinosa
b7945675c9
Add a special tracing configuration for nightlies (#2297)
It also enables logging `MATRIX_SDK_BASE_READ_RECEIPTS` at a `TRACE` level for both debug and nightly versions.
2024-01-26 10:05:30 +01:00
Benoit Marty
cccfdfbcc7 Restore branch and git sha, to use it in logs and in rageshakes.
Remove quite useless `gitRevisionDate`.
2024-01-25 14:16:21 +01:00
Benoit Marty
3098d869a8 Log the flavor 2024-01-25 12:25:42 +01:00
Benoit Marty
fa05b18d32 Create gplay and fdroid variant 2024-01-11 21:42:04 +01:00
Benoit Marty
a831f05f6e Fix ktlint issues 2024-01-10 19:33:39 +01:00
renovate[bot]
c8bd362397
Update plugin ktlint to v12.1.0 (#2200)
* Update plugin ktlint to v12.1.0

* Run `./gradlew ktlintFormat` and fix some issues manually.

* Fix other issues reproted by Ktlint

* Limit false positives, KtLint removes unnecessary curly brace in String templates.

* Remove useless Unit

* Minor improvements over ktlint changes

* Restore `AlertDialogContent` behaviour

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-01-10 16:22:24 +01:00
Benoit Marty
63d51c5cf5 Send the tracing configuration with the rageshake data. 2023-12-06 17:36:13 +01:00
Marco Romano
f186a85ed0
Rename params in NodeFactories for clarity (#1916)
- `context` is now `buildContext` to reflect that it's of type `BuildContext` (and not an android `Context`).
- `NODE` generic type param is now `N` to stick with Java convention: https://docs.oracle.com/javase/tutorial/java/generics/types.html.
2023-11-29 10:01:07 +01:00
Jorge Martin Espinosa
087d2728d5
Extract compound tokens and theming to compound-android library (#1888)
* Replace tokens & icons with the external Compound ones

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-11-27 10:30:07 +01:00