1
0
mirror of https://github.com/element-hq/element-x-android.git synced 2026-10-23 18:49:00 +03:00

79 Commits

Author SHA1 Message Date
Benoit Marty
954eb731e7 Remove unused Gradle dependencies
Remove dependencies flagged as unused by the Dependency Analysis Gradle Plugin
(`./gradlew buildHealth`) and explicitly declared in module build files.

Removals were skipped when the dependency provides transitively something the
module (or a consumer of an `api` dependency) uses directly, as well as for
runtime-only dependencies (element-call-embedded, sentry-android,
rustls-platform-verifier). Dependencies added by the convention plugin helpers
(composeDependencies, testCommonDependencies) are left untouched.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 15:47:48 +02:00
Benoit Marty
6887092ce4 Replace String by AccountProvider to be able to get baseUrl and serverName. 2026-09-14 09:56:16 +02:00
Benoit Marty
7adbd3941a Make the PUSHER_APP_ID configurable at build time. 2026-08-19 14:20:31 +02:00
hayaksi1
84b38e291a Fix bug reports failing to send after the app has crashed
The whole crash call stack was appended to the bug report description, and the
bug report server copies that description verbatim into the GitHub issue it
opens. GitHub refuses an issue body over 65536 characters, so the server's save
step failed and answered "Could not save report". The stored crash data is only
cleared after a successful send, so every retry failed the same way.

Truncate the description before sending it. The user's own text and the GitHub
issue link come first, so only the tail of the crash stack is dropped. The
uncaught exception handler already writes the full stack through Timber, so it
stays available in the attached log files.

The 40 KB budget leaves room for the other reported fields, mainly the list of
omitted log file names, which is not otherwise bounded.
2026-08-10 22:53:50 +03:00
Benoit Marty
4d0be69b4c In the module :libraries:matrix.api, change the dependencies to:
- libraries.sessionStorage.api
- projects.libraries.architecture
from `api` to `implementation`.

Modules who need `:libraries:matrix.api` do not necessarily need to use the session storage api.
2026-04-30 09:52:10 +02:00
Benoit Marty
bf57223d05 RoomListDeclineInviteMenu: limit room name
Improve preview.
Closes #6659
2026-04-27 09:49:09 +02:00
Benoit Marty
85823b3e62 Fix compilation issue: RoomAliases does not exist anymore. 2026-04-09 09:52:40 +02:00
Jorge Martin Espinosa
80ba0e9b0d Fix rageshakes not uploading if they are too long (#6075)
* Fix rageshakes not uploading if they are too long. The max log line size in the default rageshake server is `1_000_000`.

* Change upload order to ensure the current logs and the push rules are always sent.

* Add 'buffer' for unexpected log lines.
2026-01-27 07:44:12 +01:00
Benoit Marty
7dcd88f8e1 Ensure that log files are not too big, else the rageshake server will reject the request.
See https://github.com/element-hq/element-android/issues/9096#issuecomment-3480128082

Closes #5983
2026-01-13 18:18:52 +01:00
Jorge Martín
a8ffe46d99 Transform MessageEventType and StateEventType into sealed interfaces to handle the Custom variant, also add missing variants 2025-12-22 11:19:37 +01:00
Skye Elliot
59f51d8627 Add alert to encrypted rooms with visible history (Android). (#5709)
* feat: Add visible history alert to encrypted rooms.

- Adds a dismissable alert that is displayed whenever the user opens a
  room with `history_visibility` != `joined`. When cleared, this is
  recorded in the app's data store.
- When opening a room with `history_visibility` = `joined`, this flag is
  cleared.`

Issue: https://github.com/element-hq/element-meta/issues/2875

* chore: Fix linting issues.

* feat: Move alert showing logic into state presenter.

* chore: Fix linting issues.

* tests: Fixup tests.

* feat: Use real link.

* chore: Update license header.

* chore: Add (c) to license headers.

* chore: Add `.` to license header.

* feat: Lock alert behind history sharing developer setting.

* ci: Trigger record screenshots

* feat: Create repo key using session ID for multi-account support.

* feat: Use session ID hash for constructing data store.

* tests: Correct and update tests.

* tests: Update snapshots.

* feat: Prevent identity alert from displaying with history visibility alert.

* feat: Tidy up HistoryVisibleStatePresenter logic, update previews.

* chore: Remove unused import.

* chore: Update screenshots.

* feat: Add translation string.

* chore: Remove redundant temporary translation file.
2025-12-08 21:19:15 +01:00
Benoit Marty
eb31505dc7 Copyright: Add Element Creations Ltd. copyright 2025-11-10 11:05:05 +01:00
Benoit Marty
f86431e663 Copyright: Add final period 2025-11-10 10:13:41 +01:00
Benoit Marty
c4e0370f41 Copyright: run command uv run license-editor --repository ../element-x-android 2025-11-10 10:09:26 +01:00
Ben Banfield-Zanin
c6df9df718 Use the dedicated (element.io !!) subdomain for the bug report URL by default. 2025-11-06 10:23:07 +00:00
Benoit Marty
257325022c Fix warning 2025-10-24 15:09:45 +02:00
Benoit Marty
be9861bea9 Remove FeatureFlag.QrCodeLogin 2025-08-12 16:08:43 +02:00
Benoit Marty
d9b274b6cf Let enterprise build be able to override (or disable) the bug report URL. 2025-08-08 17:23:39 +02:00
ganfra
21f75db4bb change (report room) : use client.isReportRoomApiSupported instead of hardcoded value 2025-05-14 11:07:17 +02:00
Benoit Marty
3391e7cc55 Update "Learn more" link (#4686)
* Update target link for "Learn more".

* Rename VerifySelfSession* to OutgoingVerification*

* Optimize import

* Refactor to avoid long line

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
2025-05-09 11:10:30 +02:00
ganfra
0b83e66733 Feature : Report room (#4654)
* feature (report room) : introduce all presentation classes.

* feature (report room) : branch entry point in the room list

* refactor (matrix ui) : move some code from appnav to matrix ui

* feature (report room) : add api on room

* feature (report room) : adjust ui

* feature (report room) : branch api

* feature (decline invite and block) : move things around and introduce presentation classes

* feature (decline invite and block) : continue to move things

* feature (report room) : remove reference to "conversation" for now

* feature (report room) : add report room action to room detail screen

* feature (report room) : enabled button state

* feature (report room) : improve code and reuse

* feature (report room) : add feature flag

* feature (report room) : change feature flag to static bool

* feature (report room) : add tests

* feature (report room) : fix ui with new api on ListItem

* feature (report room) : clean up and add more tests.

* Update screenshots

* feature (report room) : more test and fix issue

* feature (report room) : update strings

* feature (report room) : fix konsist preview

* feature (report room) : disable feature

* Update screenshots

* var -> val

* Improve preview of AcceptDeclineInviteView

* Improve preview consistency

* Add missing test on DismissErrorAndHideContent

* Update screenshots

* Add missing tests

---------

Co-authored-by: ElementBot <android@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2025-05-02 12:25:19 +02: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
ba626fc173 Use embedded version of Element Call (#4470)
* Use embedded version of Element Call: for in-app room calls, the app will use an embedded version of Element Call shipped with the app instead of using an external service.

* Remove `ElementCallBaseUrlProvider` so we don't use the Element well known file to get the base URL anymore

* Remove `ElementCallConfig.DEFAULT_BASE_URL` since it's not used anymore

* Restore the usage of the custom EC base URL in developer settings as the actual base URL, it present

* Add a way to customise the embedded EC analytic credentials

* Update CI to use the EC analytic credentials as secrets

* Improve the custom URL placeholder to include the `/room` suffix
2025-03-26 09:35:21 +01:00
Benoit Marty
0a5784992f Add a way to override default homeserver. 2025-02-20 18:05:49 +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
fkwp
be24cdd1a0 increase ringing timeout from 15 seconds to 90 seconds 2024-12-04 10:04:38 +01:00
Benoit Marty
ab6f4d5b0e Rename const for clarity and convention 2024-11-22 14:04:27 +01:00
Benoit Marty
6e936ff219 Enable all notification actions. 2024-11-21 14:53:40 +01:00
Benoit Marty
fd819c2381 Add "Learn more" on identity verification first screen. 2024-10-10 17:09:35 +02:00
Benoit Marty
5baefd479f Identity change: handle click on "learn more" 2024-10-08 09:35:18 +02:00
Benoit Marty
2d08c648e2 Rename SecureBackupConfig to LearnMoreConfig 2024-10-07 22:29:43 +02:00
Benoit Marty
d492259312 Enable account creation and iterate on the Button design 2024-09-16 12:12:35 +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
ganfra
5d2abd0350 timeline : allow rendering m.room.pinned_events 2024-08-06 17:28:23 +02:00
Benoit Marty
f73b480328 Doc: add missing period 2024-07-10 17:01:04 +02:00
Benoit Marty
2efa7fea96 Change PIN grace period to 2 minutes. 2024-07-10 16:25:20 +02:00
Benoit Marty
d1a4fd76de Some renaming. 2024-07-10 16:25:20 +02:00
Benoit Marty
6d6de1ae3d Rework. Keep io.element.android.appconfig.LockScreenConfig as simple as possible. 2024-07-10 16:25:20 +02:00
Jorge Martin Espinosa
b0cebf5ca0 Improve screenshot testing with ComposablePreviewScanner (#3125)
* Use ComposablePreviewScanner to rework how screenshot testing works
* Add test sharding
* Update screenshots
* Fixes for Element Gallery

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2024-07-03 13:05:06 +02:00
Jorge Martin Espinosa
32a374d836 FFs can now be toggled in release builds too (#3101)
- Removed `StaticFeatureFlagProvider`.
- Always provide `PreferencesFeatureFlagProvider`.
- For the default values of feature flags, use a lambda with a `BuildMeta` parameter so we can customize the return value based on its data.
2024-07-02 16:06:42 +00:00
Benoit Marty
f6fe030d6a Merge pull request #3053 from element-hq/feature/bma/callSettings
Alert for incoming call even if notifications are disabled - WAITING FOR FINAL PRODUCT DECISION
2024-06-28 14:21:23 +02:00
Jorge Martin Espinosa
4904c4b751 Bump Rust SDK version and adapt our code (#3068)
* Use the new SDK version
* Adapt the authentication service to the new Rust SDK APIs
* Remove `Timeline.enterSpecialMode(...)` as it's no longer necessary
2024-06-27 09:44:14 +00:00
Benoit Marty
8a91ec7254 Change color use in notification to FF0DBD8B 2024-06-19 17:32:49 +02:00
Benoit Marty
faa40dbb19 Move notification_accent_color from resource file to NotificationConfig 2024-06-19 16:48:00 +02:00
Benoit Marty
2fae4a52ad Add documentation back. 2024-06-13 18:20:19 +02:00
Benoit Marty
ea679cc108 Move MAX_LOG_UPLOAD_SIZE to RageshakeConfig 2024-06-13 18:20:19 +02:00
Benoit Marty
816d60b6ce Move rageshake configuration from resource file to Kotlin RageshakeConfig 2024-06-13 18:20:19 +02:00
Jorge Martin Espinosa
30a1367714 Element Call ringing notifications (#2978)
- Add `ActiveCallManager` to handle incoming and ongoing calls.
- Add ringing call notifications with full screen intents and missed call ones as part of the 'conversation' notifications.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-06-10 11:51:19 +02:00
Jorge Martin Espinosa
c8bd04ceb1 Sign in with QR code (#2793)
* Add QR code login.
* Add FF to disable it in release mode.
* Force portrait orientation on the login flow.
* Create `NumberedList` UI components.
* Improve camera permission dialog.
* Make nodes in qrcode feature use `QrCodeLoginScope` instead of `AppScope`
* Bump SDK version.
* Fix maestro tests

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-05-31 14:38:27 +02:00
Jorge Martin Espinosa
04e503177b Notifications: simplify the flow by removing persistence (#2924)
* Notifications: simplify the flow by removing persistence. 
* Bump of minSdk to `24` (Android 7).
* Add migration to remove `notification.bin` file
2024-05-29 08:03:23 +00:00