Commit graph

43 commits

Author SHA1 Message Date
Benoit Marty
0e6a0c7f2f Fix how we compute screenshot files.
`AttachmentsPreviewViewPreview` was wrongly converted to `AttachmentsView` instead of `AttachmentsPreviewView`
2025-12-17 15:05:11 +01:00
Benoit Marty
1292da2a72 Copyright: Add Element Creations Ltd. copyright 2025-11-10 11:05:05 +01:00
Benoit Marty
b748fcc631 Copyright: Add final period 2025-11-10 10:13:41 +01:00
Benoit Marty
0a0224b586 Copyright: run command uv run license-editor --repository ../element-x-android 2025-11-10 10:09:26 +01:00
Benoit Marty
e062ade239 interface TestParameterValuesProvider is deprecated. 2025-10-21 09:12:11 +02:00
Benoit Marty
c13d9a935b Test previews with a11y details and add a first example with HomeViewA11yPreview. 2025-08-25 11:10:23 +02:00
Benoit Marty
0d6d74512f Use ElementTheme instead of MaterialTheme 2025-02-06 15:10:15 +01:00
Benoit Marty
05fc76822a 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
Benoit Marty
2b016227e9 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
b0846de5e1 Remove Showkase processor not found warning from Danger (#3148)
Instead create a new rule to check if the package name is included in `ComposablePreviewProvider`.
2024-07-05 15:15:18 +02:00
Benoit Marty
1dea668480 Record preview for app icons. 2024-07-03 17:20:35 +02:00
Jorge Martin Espinosa
950e502ca6 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
ganfra
bf84875b9a screenshot tests: remove workaround for API 34 now it's handled. 2024-06-04 16:50:05 +02:00
Benoit Marty
a3b327d033 Stop using deprecated TestParameter.TestParameterValuesProvider 2024-04-26 12:45:26 +02:00
Benoit Marty
e6f5912150 Delete "fr" screenshot. Only keep "de" ones. If necessary, "fr" or any other languages can be generated on the fly. 2024-03-01 15:00:26 +01:00
Benoit Marty
bdcd515485 Generate screenshots for foreign languages ("de" and "fr" for now). #2454 2024-02-28 14:30:34 +01:00
Jorge Martin Espinosa
973c57d401 Update Compound to v0.0.5 and update icons (#2380)
Update Compound to `v0.0.5`:

- Make sure we fix all the breaking changes.
- Update some icons to use the compound version instead.
-Replace icons with their Compound counterparts when possible.
- Clean up unused icons.
- Fix issues with incorrect icons or sizes being used after replacing the temporary icons with the Compound ones.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-02-12 16:41:58 +00:00
Jorge Martin Espinosa
47f7f8952b Add missing device id to settings screen (#2320)
* Add missing device id to settings screen

* Extract footer component

* Restore `@PreviewWithLargeHeight` logic

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-01-31 10:01:17 +00:00
Benoit Marty
378692f743 Fix moar ktlint issues 2024-01-11 10:02:10 +01:00
renovate[bot]
7e9cda3aa9 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
Jorge Martin Espinosa
a8b85fb4e6 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
Benoit Marty
fa16bf599c Ensure locale is taken into account by paparazzi. 2023-09-18 16:36:10 +02:00
Benoit Marty
e762e44cd5 Shorter screenshot filename. 2023-08-17 18:40:07 +02:00
Benoit Marty
b7be2165a7 Move io.element.android.tests.uitests.ScreenshotTest to ui.T to generate much shorter name for screenshot files. 2023-08-17 18:09:09 +02:00
Jorge Martin Espinosa
e3cfbc113b Upgrade compose-material3 to 1.2.0-alpha05 version (#1011)
Co-authored-by: ElementBot <benoitm+elementbot@element.io>

Also upgrade compileSdk to 34.
2023-08-17 14:20:54 +02:00
Marco Romano
220a6087f9 Use @DayNightPreviews to correctly render the PinIcon in dark mode (#795)
- Fixes rendering of `-night` resources in screenshot tests by overriding the `nightMode` with `paparazzi.unsafeUpdateConfig()`.
2023-07-07 16:35:34 +02:00
Jorge Martin Espinosa
f98427a41a Force the default locale to the selected one for screenshot tests (#805) 2023-07-07 10:06:20 +02:00
Marco Romano
aed4b92761 Optional day night preview annotation (#793)
Adds the `@DayNightPreviews` annotation that when used on a composable will:
- Display both a day mode and night mode preview in Android Studio.
- Produce both a day and night screenshot during screenshot testing.

The usage of this new annotation is optional, all the current previews continue to work without breakages.
New code can use, when appropriate, the new `@DayNightPreviews` annotation and replace the pattern using three `LightPreview/DarkPreview/ContentToPreview` functions with:

```
@DayNightPreviews
@Composable
fun MyScreenPreview(@PreviewParameter(MyStateProvider::class) state: MyState) {
    ElementPreview {
        MyScreen(
            state = state,
        )
    }
}
```
2023-07-06 12:35:54 +02:00
Marco Romano
f33561c25d Revert "Auto generate dark mode previews and screenshots (#776)" (#784)
This reverts commit 79b529193c.
2023-07-05 15:47:53 +02:00
Marco Romano
79b529193c Auto generate dark mode previews and screenshots (#776)
With this change, composable previews and screenshots should be created with just:
```
@ElementPreviews
@Composable
fun MyViewPreview() {
    ElementPreview { 
        MyView()
    }
}
```

- Adds `@ElementPreviews` which is a shorthand for:
```
@Preview(name = "D")
@Preview(name = "N", uiMode = Configuration.UI_MODE_NIGHT_YES)
```
Should be used in connection with the now public `fun ElementPreview()` composable.

- Adds ElementPreviews to previewAnnotations in dangerfile
- Screenshots of night mode previews are now rendered with night mode
- Replaces `ElementPreviewLight` and `ElementThemedPreview` with `ElementPreview`
- Deprecates `ElementPreviewDark` which should be removed.
- Remaining usages of `ElementPreviewDark` are now ignored during screenshot tests
2023-07-05 13:58:24 +02:00
Jorge Martin Espinosa
dd562eccc8 Create a dummy value by default for LocalSnackbarDispatcher. (#715)
This should solve the issue with needing to provide a `LocalSnackbarDispatcher` for previews and screenshot tests.
2023-06-28 18:59:08 +02:00
Jorge Martin Espinosa
02dc447624 [Compound] Integrate compound tokens (#586)
* Added tokens.

* Apply color to MaterialTheme, also add typography.

* Map colors to the right ones in the themes.

* Create and improve previews of some components

* More preview improvements

* Add `tertiary` and `onTertiary` colors, remove some unused ones.

* Fix usage of deleted color token

* Fix bug in Switch previews

* Create a separate `:libraries:theme` module to keep everything related to colors, typography and Compound in general.

* Fix `DatePickerPreview`

* Add missing Compound generated files by fixing their package name

* Move `ElementTheme` to the `:libraries:theme` module, make some variables internal.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-27 16:15:40 +00:00
Jorge Martin Espinosa
bdb1841e44 [Message Actions] Report messages (#642)
* Add report messages feature

* Try to improve how snackbars are delivered

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-23 10:44:47 +02:00
Jorge Martin Espinosa
5cafd68ebe Revert RenderingMode to NORMAL in ScreenshotTest (#475)
* Revert `RenderingMode` to `NORMAL` in `ScreenshotTest`

* Remove no longer needed code
2023-05-29 18:00:57 +02:00
Jorge Martin Espinosa
921fb55220 Group design components in Showkase for the Compound team (#375)
* Screenshot tests changes:

    - Group components for Showkase.
    - Set special Paparazzi config for scrolling screens using non null `Preview.heightDp`.
    - Add merged theme preview with `ElementThemedPreview` component.
2023-05-02 16:13:35 +00:00
Jorge Martín
3f70f57922 Fix tests using new OnBackPressedDispatcherOwner API 2023-03-28 13:01:41 +02:00
Jorge Martin Espinosa
633f65e557 CI: make sure Paparazzi test failures stop the test flow (#117)
* Run Paparazzi tests just once when koverMergedReport is used.
* Make sure a Paparazzi failure breaks the test flow and blocks merging.
* Change ./gradlew check call in quality.yml to custom runQualityChecks task.
2023-03-02 09:15:47 +01:00
Benoit Marty
decd3a9585 ElementTheme + MaterialTheme3 2023-02-03 12:57:42 +01:00
Benoit Marty
6e4edc8289 First draft of full custom theme.
ElementTheme everywhere

Create ElementButton
2023-02-03 12:55:36 +01:00
ganfra
f800e22477 Rename all features modules 2023-01-20 18:35:03 +01:00
ganfra
6cc38c9c49 Rename tests/uitest modules 2023-01-20 17:51:52 +01:00
ganfra
7903e855ec Rename designsystem module 2023-01-20 17:09:12 +01:00
Benoit Marty
1cca81ea67 Rename folder to kotlin 2023-01-18 15:49:57 +01:00