diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 29c7e163f4..2307ea6e3e 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -55,7 +55,7 @@ Uncomment this markdown table below and edit the last line `|||`: - [ ] UI change has been tested on both light and dark themes - [ ] Accessibility has been taken into account. See https://github.com/element-hq/element-x-android/blob/develop/CONTRIBUTING.md#accessibility - [ ] Pull request is based on the develop branch -- [ ] Pull request includes a new file under ./changelog.d. See https://github.com/element-hq/element-x-android/blob/develop/CONTRIBUTING.md#changelog +- [ ] Pull request title will be used in the release note, it clearly define what will change for the user - [ ] Pull request includes screenshots or videos if containing UI changes - [ ] Pull request includes a [sign off](https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#sign-off) - [ ] You've made a self review of your PR diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000000..17090ec328 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,34 @@ +changelog: + categories: + - title: ✨ Features + labels: + - PR-Feature + - title: 🙌 Improvements + labels: + - PR-Change + - title: 🐛 Bugfixes + labels: + - PR-Bugfix + - title: ⚠️ API Changes + labels: + - PR-Api + - title: 🗣 Translations + labels: + - PR-i18n + - title: 🧱 Build + labels: + - PR-Build + - title: 📄 Documentation + labels: + - PR-Doc + - title: 🚧 In development 🚧 + labels: + - PR-Wip + - title: Dependency upgrades + labels: + - PR-Dependencies + + - title: Others + labels: + - PR-misc + - "*" diff --git a/.github/renovate.json b/.github/renovate.json index 724e223383..66e1b98aea 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -4,7 +4,7 @@ "config:base" ], "labels" : [ - "dependencies" + "PR-Dependencies" ], "ignoreDeps" : [ "string:app_name" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 59991cdcf9..92380492a2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,8 +16,6 @@ jobs: debug: name: Build APKs runs-on: ubuntu-latest - # Skip for `main` - if: github.ref != 'refs/heads/main' strategy: matrix: variant: [debug, release, nightly, samples] diff --git a/.github/workflows/build_enterprise.yml b/.github/workflows/build_enterprise.yml new file mode 100644 index 0000000000..7547d5291c --- /dev/null +++ b/.github/workflows/build_enterprise.yml @@ -0,0 +1,69 @@ +name: Enterprise APK Build + +on: + workflow_dispatch: + pull_request: + merge_group: + push: + branches: [ develop ] + +# Enrich gradle.properties for CI/CD +env: + GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx7g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.incremental=false -XX:+UseG1GC + CI_GRADLE_ARG_PROPERTIES: --stacktrace -Dsonar.gradle.skipCompile=true + +jobs: + build: + name: Build Enterprise APKs + runs-on: ubuntu-latest + # Skip in forks + if: github.repository == 'element-hq/element-x-android' + strategy: + matrix: + variant: [debug, release, nightly] + fail-fast: false + # Allow all jobs on develop. Just one per PR. + concurrency: + group: ${{ github.ref == 'refs/heads/develop' && format('build-develop-enterprise-{0}-{1}', matrix.variant, github.sha) || format('build-enterprise-{0}-{1}', matrix.variant, github.ref) }} + cancel-in-progress: true + steps: + - uses: actions/checkout@v4 + with: + # Ensure we are building the branch and not the branch after being merged on develop + # https://github.com/actions/checkout/issues/881 + ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }} + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + run: git submodule update --init --recursive + - name: Use JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: '17' + - name: Configure gradle + uses: gradle/actions/setup-gradle@v3 + with: + cache-read-only: ${{ github.ref != 'refs/heads/develop' }} + - name: Assemble debug Gplay Enterprise APK + if: ${{ matrix.variant == 'debug' }} + env: + ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }} + ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }} + ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }} + run: ./gradlew :app:assembleGplayDebug -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES + - name: Upload debug Enterprise APKs + if: ${{ matrix.variant == 'debug' }} + uses: actions/upload-artifact@v4 + with: + name: elementx-enterprise-debug + path: | + app/build/outputs/apk/gplay/debug/*-universal-debug.apk + - name: Compile release sources + if: ${{ matrix.variant == 'release' }} + run: ./gradlew compileReleaseSources -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES + - name: Compile nightly sources + if: ${{ matrix.variant == 'nightly' }} + run: ./gradlew compileGplayNightlySources -PallWarningsAsErrors=true $CI_GRADLE_ARG_PROPERTIES diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml index 4325a1591a..b4fd79e5dd 100644 --- a/.github/workflows/danger.yml +++ b/.github/workflows/danger.yml @@ -8,10 +8,17 @@ jobs: name: Danger main check steps: - uses: actions/checkout@v4 + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + if: github.repository == 'element-hq/element-x-android' + run: git submodule update --init --recursive - run: | npm install --save-dev @babel/plugin-transform-flow-strip-types - name: Danger - uses: danger/danger-js@12.3.2 + uses: danger/danger-js@12.3.3 with: args: "--dangerfile ./tools/danger/dangerfile.js" env: diff --git a/.github/workflows/fork-pr-notice.yml b/.github/workflows/fork-pr-notice.yml index b11a81bfb1..8c06c708d5 100644 --- a/.github/workflows/fork-pr-notice.yml +++ b/.github/workflows/fork-pr-notice.yml @@ -25,7 +25,7 @@ jobs: body: `Thank you for your contribution! Here are a few things to check in the PR to ensure it's reviewed as quickly as possible: - Your branch should be based on \`origin/develop\`, at least when it was created. - - There is a changelog entry in the \`changelog.d\` folder with [the Towncrier format](https://towncrier.readthedocs.io/en/latest/tutorial.html#creating-news-fragments). + - The title of the PR will be used for release notes, so it needs to describe the change visible to the user. - The test pass locally running \`./gradlew test\`. - The code quality check suite pass locally running \`./gradlew runQualityChecks\`. - If you modified anything related to the UI, including previews, you'll have to run the \`Record screenshots\` GH action in your forked repo: that will generate compatible new screenshots. However, given Github Actions limitations, **it will prevent the CI from running temporarily**, until you upload a new commit after that one. To do so, just pull the latest changes and push [an empty commit](https://coderwall.com/p/vkdekq/git-commit-allow-empty).` diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 294df9733f..921e0f3249 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -22,15 +22,6 @@ jobs: with: distribution: 'temurin' # See 'Supported distributions' for available options java-version: '17' - - name: Install towncrier - run: | - python3 -m pip install towncrier - - name: Prepare changelog file - run: | - mv towncrier.toml towncrier.toml.bak - sed 's/CHANGES\.md/CHANGES_NIGHTLY\.md/' towncrier.toml.bak > towncrier.toml - rm towncrier.toml.bak - yes n | towncrier build --version nightly - name: Build and upload Nightly application run: | ./gradlew assembleGplayNightly appDistributionUploadGplayNightly $CI_GRADLE_ARG_PROPERTIES diff --git a/.github/workflows/nightly_enterprise.yml b/.github/workflows/nightly_enterprise.yml new file mode 100644 index 0000000000..d1d77b45f5 --- /dev/null +++ b/.github/workflows/nightly_enterprise.yml @@ -0,0 +1,48 @@ +name: Build and release Enterprise nightly application + +on: + workflow_dispatch: + schedule: + # Every nights at 4 + - cron: "0 4 * * *" + +env: + GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx6g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.incremental=false -XX:+UseG1GC + CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true + +jobs: + nightly: + name: Build and publish Enterprise nightly bundle to Firebase + runs-on: ubuntu-latest + if: ${{ github.repository == 'element-hq/element-x-android' }} + steps: + - uses: actions/checkout@v4 + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + run: git submodule update --init --recursive + - name: Use JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: '17' + - name: Build and upload Nightly application + run: | + ./gradlew assembleGplayNightly appDistributionUploadGplayNightly $CI_GRADLE_ARG_PROPERTIES + env: + ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }} + ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }} + ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }} + ELEMENT_ANDROID_NIGHTLY_KEYID: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYID }} + ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD }} + ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD }} + FIREBASE_TOKEN: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_FIREBASE_TOKEN }} + - name: Additionally upload Nightly APK to browserstack for testing + continue-on-error: true # don't block anything by this upload failing (for now) + run: | + curl -u "$BROWSERSTACK_USERNAME:$BROWSERSTACK_PASSWORD" -X POST "https://api-cloud.browserstack.com/app-automate/upload" -F "file=@app/build/outputs/apk/gplay/nightly/app-gplay-universal-nightly.apk" -F "custom_id=element-x-android-nightly" + env: + BROWSERSTACK_USERNAME: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_USERNAME }} + BROWSERSTACK_PASSWORD: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_ACCESS_KEY }} diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 7d0709de44..ff435ee988 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -18,6 +18,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + if: github.repository == 'element-hq/element-x-android' + run: git submodule update --init --recursive - name: Run code quality check suite run: ./tools/check/check_code_quality.sh @@ -68,6 +75,13 @@ jobs: # Ensure we are building the branch and not the branch after being merged on develop # https://github.com/actions/checkout/issues/881 ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }} + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + if: github.repository == 'element-hq/element-x-android' + run: git submodule update --init --recursive - name: Use JDK 17 uses: actions/setup-java@v4 with: @@ -100,6 +114,13 @@ jobs: # Ensure we are building the branch and not the branch after being merged on develop # https://github.com/actions/checkout/issues/881 ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }} + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + if: github.repository == 'element-hq/element-x-android' + run: git submodule update --init --recursive - name: Use JDK 17 uses: actions/setup-java@v4 with: @@ -136,6 +157,13 @@ jobs: # Ensure we are building the branch and not the branch after being merged on develop # https://github.com/actions/checkout/issues/881 ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }} + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + if: github.repository == 'element-hq/element-x-android' + run: git submodule update --init --recursive - name: Use JDK 17 uses: actions/setup-java@v4 with: @@ -168,6 +196,13 @@ jobs: # Ensure we are building the branch and not the branch after being merged on develop # https://github.com/actions/checkout/issues/881 ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }} + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + if: github.repository == 'element-hq/element-x-android' + run: git submodule update --init --recursive - name: Use JDK 17 uses: actions/setup-java@v4 with: @@ -200,6 +235,13 @@ jobs: # Ensure we are building the branch and not the branch after being merged on develop # https://github.com/actions/checkout/issues/881 ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }} + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + if: github.repository == 'element-hq/element-x-android' + run: git submodule update --init --recursive - name: Use JDK 17 uses: actions/setup-java@v4 with: @@ -245,7 +287,7 @@ jobs: yarn add danger-plugin-lint-report --dev - name: Danger lint if: always() - uses: danger/danger-js@12.3.2 + uses: danger/danger-js@12.3.3 with: args: "--dangerfile ./tools/danger/dangerfile-lint.js" env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f596d5e438..b58f2f3348 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,6 +39,40 @@ jobs: path: | app/build/outputs/bundle/gplayRelease/app-gplay-release.aab + enterprise: + name: Create App Bundle Enterprise + runs-on: ubuntu-latest + concurrency: + group: ${{ format('build-release-main-gplay-{0}', github.sha) }} + cancel-in-progress: true + steps: + - uses: actions/checkout@v4 + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + run: git submodule update --init --recursive + - name: Use JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: '17' + - name: Configure gradle + uses: gradle/actions/setup-gradle@v3 + - name: Create Enterprise app bundle + env: + ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }} + ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }} + ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }} + run: ./gradlew bundleGplayRelease $CI_GRADLE_ARG_PROPERTIES + - name: Upload bundle as artifact + uses: actions/upload-artifact@v4 + with: + name: elementx-enterprise-app-gplay-bundle-unsigned + path: | + app/build/outputs/bundle/gplayRelease/app-gplay-release.aab + fdroid: name: Create APKs (FDroid) runs-on: ubuntu-latest diff --git a/.github/workflows/scripts/recordScreenshots.sh b/.github/workflows/scripts/recordScreenshots.sh index 5ed35160af..13fb5e75e6 100755 --- a/.github/workflows/scripts/recordScreenshots.sh +++ b/.github/workflows/scripts/recordScreenshots.sh @@ -65,7 +65,7 @@ echo "Deleting previous screenshots" ./gradlew removeOldSnapshots --stacktrace --warn echo "Record screenshots" -./gradlew recordPaparazziDebug --stacktrace --warn +./gradlew recordPaparazziDebug --stacktrace echo "Committing changes" git config http.sslVerify false diff --git a/.github/workflows/sync-localazy.yml b/.github/workflows/sync-localazy.yml index c3f19da6ae..347923a6c0 100644 --- a/.github/workflows/sync-localazy.yml +++ b/.github/workflows/sync-localazy.yml @@ -45,3 +45,4 @@ jobs: - Update Strings from Localazy branch: sync-localazy base: develop + labels: PR-i18n diff --git a/.github/workflows/sync-sas-strings.yml b/.github/workflows/sync-sas-strings.yml index 56336626c7..f9bff2905b 100644 --- a/.github/workflows/sync-sas-strings.yml +++ b/.github/workflows/sync-sas-strings.yml @@ -31,5 +31,6 @@ jobs: - Update SAS Strings from matrix-doc. branch: sync-sas-strings base: develop + labels: PR-Misc diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1d41100940..a132fd7d14 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,6 +38,13 @@ jobs: # Ensure we are building the branch and not the branch after being merged on develop # https://github.com/actions/checkout/issues/881 ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }} + - name: Add SSH private keys for submodule repositories + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }} + - name: Clone submodules + if: github.repository == 'element-hq/element-x-android' + run: git submodule update --init --recursive - name: ☕️ Use JDK 17 uses: actions/setup-java@v4 with: diff --git a/.gitignore b/.gitignore index 342d97a933..78fa471170 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,7 @@ captures/ .idea/modules.xml # Comment next line if keeping position of elements in Navigation Editor is relevant for you .idea/navEditor.xml +.idea/other.xml .idea/tasks.xml .idea/workspace.xml .idea/libraries diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..aa54a9d8ae --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "enterprise"] + path = enterprise + url = git@github.com:element-hq/element-android-enterprise.git diff --git a/.idea/copyright/Element_Enterprise.xml b/.idea/copyright/Element_Enterprise.xml new file mode 100644 index 0000000000..e8c3019732 --- /dev/null +++ b/.idea/copyright/Element_Enterprise.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/copyright/Element_FOSS.xml b/.idea/copyright/Element_FOSS.xml new file mode 100644 index 0000000000..4ab92252ae --- /dev/null +++ b/.idea/copyright/Element_FOSS.xml @@ -0,0 +1,6 @@ + + + + diff --git a/.idea/copyright/NewVector.xml b/.idea/copyright/NewVector.xml deleted file mode 100644 index 72a4f2e779..0000000000 --- a/.idea/copyright/NewVector.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml index 0875fcecb1..2e68dd339f 100644 --- a/.idea/copyright/profiles_settings.xml +++ b/.idea/copyright/profiles_settings.xml @@ -1,3 +1,7 @@ - + + + + + \ No newline at end of file diff --git a/.idea/scopes/Enterprise.xml b/.idea/scopes/Enterprise.xml new file mode 100644 index 0000000000..83599ae680 --- /dev/null +++ b/.idea/scopes/Enterprise.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5c541bc199..6acfa7981f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -91,19 +91,9 @@ This project is full Kotlin. Please do not write Java classes. ### Changelog -Please create at least one file under ./changelog.d containing details about your change. Towncrier will be used when preparing the release. +The release notes are generated from the pull request titles and labels. If possible, the title must describe best what will be the user facing change. -Towncrier says to use the PR number for the filename, but the issue number is also fine. - -Supported filename extensions are: - -- ``.feature``: Signifying a new feature in Element Android or in the Matrix SDK. -- ``.bugfix``: Signifying a bug fix. -- ``.wip``: Signifying a work in progress change, typically a component of a larger feature which will be enabled once all tasks are complete. -- ``.doc``: Signifying a documentation improvement. -- ``.misc``: Any other changes. - -See https://github.com/twisted/towncrier#news-fragments if you need more details. +You will also need to add a label starting by `PR-` to you Pull Request to help categorize the release note. The label should be added by the PR author, but can be added by the reviewer if the submitter does not have right to add label. Also note that the label can be added after the PR has been merged, as soon as the release is not done yet. ### Code quality diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a4a4b1ee16..3f5618b208 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,6 +17,7 @@ @file:Suppress("UnstableApiUsage") import com.android.build.api.variant.FilterConfiguration.FilterType.ABI +import extension.allEnterpriseImpl import extension.allFeaturesImpl import extension.allLibrariesImpl import extension.allServicesImpl @@ -30,7 +31,6 @@ plugins { id("io.element.android-compose-application") alias(libs.plugins.kotlin.android) alias(libs.plugins.anvil) - alias(libs.plugins.ksp) alias(libs.plugins.kapt) // When using precompiled plugins, we need to apply the firebase plugin like this id(libs.plugins.firebaseAppDistribution.get().pluginId) @@ -46,7 +46,11 @@ android { namespace = "io.element.android.x" defaultConfig { - applicationId = "io.element.android.x" + applicationId = if (isEnterpriseBuild) { + "io.element.enterprise" + } else { + "io.element.android.x" + } targetSdk = Versions.targetSdk versionCode = Versions.versionCode versionName = Versions.versionName @@ -99,15 +103,22 @@ android { } } + val baseAppName = if (isEnterpriseBuild) { + "Element Enterprise" + } else { + "Element X" + } + logger.warnInBox("Building $baseAppName") + buildTypes { getByName("debug") { - resValue("string", "app_name", "Element X dbg") + resValue("string", "app_name", "$baseAppName dbg") applicationIdSuffix = ".debug" signingConfig = signingConfigs.getByName("debug") } getByName("release") { - resValue("string", "app_name", "Element X") + resValue("string", "app_name", baseAppName) signingConfig = signingConfigs.getByName("debug") postprocessing { @@ -124,7 +135,7 @@ android { initWith(release) applicationIdSuffix = ".nightly" versionNameSuffix = "-nightly" - resValue("string", "app_name", "Element X nightly") + resValue("string", "app_name", "$baseAppName nightly") matchingFallbacks += listOf("release") signingConfig = signingConfigs.getByName("nightly") @@ -140,12 +151,19 @@ android { artifactPath = "$rootDir/app/build/outputs/apk/gplay/nightly/app-gplay-universal-nightly.apk" // artifactType = "AAB" // artifactPath = "$rootDir/app/build/outputs/bundle/nightly/app-nightly.aab" - // This file will be generated by the GitHub action - releaseNotesFile = "CHANGES_NIGHTLY.md" - groups = "external-testers" + releaseNotesFile = "tools/release/ReleaseNotesNightly.md" + groups = if (isEnterpriseBuild) { + "enterprise-testers" + } else { + "external-testers" + } // This should not be required, but if I do not add the appId, I get this error: // "App Distribution halted because it had a problem uploading the APK: [404] Requested entity was not found." - appId = "1:912726360885:android:e17435e0beb0303000427c" + appId = if (isEnterpriseBuild) { + "1:912726360885:android:3f7e1fe644d99d5a00427c" + } else { + "1:912726360885:android:e17435e0beb0303000427c" + } } } } @@ -213,7 +231,6 @@ knit { exclude( "**/build/**", "*/.gradle/**", - "*/towncrier/template.md", "**/CHANGES.md", ) } @@ -222,6 +239,12 @@ knit { dependencies { allLibrariesImpl() allServicesImpl() + if (isEnterpriseBuild) { + allEnterpriseImpl(rootDir, logger) + implementation(projects.appicon.enterprise) + } else { + implementation(projects.appicon.element) + } allFeaturesImpl(rootDir, logger) implementation(projects.features.migration.api) implementation(projects.anvilannotations) @@ -262,6 +285,5 @@ dependencies { testImplementation(libs.test.turbine) testImplementation(projects.libraries.matrix.test) - ksp(libs.showkase.processor) koverDependencies() } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b3872a18fd..49da0a2b22 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,11 +40,9 @@ android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false"> - - - - + diff --git a/appconfig/build.gradle.kts b/appconfig/build.gradle.kts index e59799d685..a6e66f1462 100644 --- a/appconfig/build.gradle.kts +++ b/appconfig/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) } android { @@ -28,6 +27,7 @@ anvil { } dependencies { + implementation(libs.androidx.annotationjvm) implementation(libs.dagger) implementation(projects.libraries.di) implementation(projects.libraries.matrix.api) diff --git a/appconfig/src/main/kotlin/io/element/android/appconfig/AuthenticationConfig.kt b/appconfig/src/main/kotlin/io/element/android/appconfig/AuthenticationConfig.kt index 186b84f8f0..5b6aaf826d 100644 --- a/appconfig/src/main/kotlin/io/element/android/appconfig/AuthenticationConfig.kt +++ b/appconfig/src/main/kotlin/io/element/android/appconfig/AuthenticationConfig.kt @@ -19,6 +19,18 @@ package io.element.android.appconfig object AuthenticationConfig { const val MATRIX_ORG_URL = "https://matrix.org" + /** + * Default homeserver url to sign in with, unless the user selects a different one. + */ const val DEFAULT_HOMESERVER_URL = MATRIX_ORG_URL + + /** + * URL with some docs that explain what's sliding sync and how to add it to your home server. + */ const val SLIDING_SYNC_READ_MORE_URL = "https://github.com/matrix-org/sliding-sync/blob/main/docs/Landing.md" + + /** + * Force a sliding sync proxy url, if not null, the proxy url in the .well-known file will be ignored. + */ + val SLIDING_SYNC_PROXY_URL: String? = null } diff --git a/appconfig/src/main/kotlin/io/element/android/appconfig/NotificationConfig.kt b/appconfig/src/main/kotlin/io/element/android/appconfig/NotificationConfig.kt index 9ca4f73314..cca9f8df12 100644 --- a/appconfig/src/main/kotlin/io/element/android/appconfig/NotificationConfig.kt +++ b/appconfig/src/main/kotlin/io/element/android/appconfig/NotificationConfig.kt @@ -16,6 +16,9 @@ package io.element.android.appconfig +import android.graphics.Color +import androidx.annotation.ColorInt + object NotificationConfig { // TODO EAx Implement and set to true at some point const val SUPPORT_MARK_AS_READ_ACTION = false @@ -25,4 +28,7 @@ object NotificationConfig { // TODO EAx Implement and set to true at some point const val SUPPORT_QUICK_REPLY_ACTION = false + + @ColorInt + val NOTIFICATION_ACCENT_COLOR: Int = Color.parseColor("#FF0DBD8B") } diff --git a/appconfig/src/main/kotlin/io/element/android/appconfig/OnBoardingConfig.kt b/appconfig/src/main/kotlin/io/element/android/appconfig/OnBoardingConfig.kt index e2a78fc522..dd30e20b8d 100644 --- a/appconfig/src/main/kotlin/io/element/android/appconfig/OnBoardingConfig.kt +++ b/appconfig/src/main/kotlin/io/element/android/appconfig/OnBoardingConfig.kt @@ -18,7 +18,7 @@ package io.element.android.appconfig object OnBoardingConfig { /** Whether the user can use QR code login. */ - const val CAN_LOGIN_WITH_QR_CODE = false + const val CAN_LOGIN_WITH_QR_CODE = true /** Whether the user can create an account using the app. */ const val CAN_CREATE_ACCOUNT = false diff --git a/appicon/element/build.gradle.kts b/appicon/element/build.gradle.kts new file mode 100644 index 0000000000..7e45c16e02 --- /dev/null +++ b/appicon/element/build.gradle.kts @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +plugins { + id("io.element.android-compose-library") +} + +android { + namespace = "io.element.android.appicon.element" + + buildTypes { + register("nightly") + } +} diff --git a/app/src/debug/res/drawable/ic_launcher_background.xml b/appicon/element/src/debug/res/drawable/ic_launcher_background.xml similarity index 100% rename from app/src/debug/res/drawable/ic_launcher_background.xml rename to appicon/element/src/debug/res/drawable/ic_launcher_background.xml diff --git a/app/src/main/ic_launcher-playstore.png b/appicon/element/src/main/ic_launcher-playstore.png similarity index 100% rename from app/src/main/ic_launcher-playstore.png rename to appicon/element/src/main/ic_launcher-playstore.png diff --git a/appicon/element/src/main/kotlin/io/element/android/appicon/element/IconPreview.kt b/appicon/element/src/main/kotlin/io/element/android/appicon/element/IconPreview.kt new file mode 100644 index 0000000000..749ed8571a --- /dev/null +++ b/appicon/element/src/main/kotlin/io/element/android/appicon/element/IconPreview.kt @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.appicon.element + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.ColorFilter +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Preview +@Composable +internal fun IconPreview() { + Box { + Image(painter = painterResource(id = R.mipmap.ic_launcher_background), contentDescription = null) + Image(painter = painterResource(id = R.mipmap.ic_launcher_foreground), contentDescription = null) + } +} + +@Preview +@Composable +internal fun RoundIconPreview() { + Box(modifier = Modifier.clip(shape = CircleShape)) { + Image(painter = painterResource(id = R.mipmap.ic_launcher_background), contentDescription = null) + Image(painter = painterResource(id = R.mipmap.ic_launcher_foreground), contentDescription = null) + } +} + +@Preview +@Composable +internal fun MonochromeIconPreview() { + Box( + modifier = Modifier + .size(108.dp) + .background(Color(0xFF2F3133)) + .clip(shape = RoundedCornerShape(32.dp)), + contentAlignment = Alignment.Center + ) { + Image( + painter = painterResource(id = R.mipmap.ic_launcher_monochrome), + colorFilter = ColorFilter.tint(Color(0xFFC3E0F6)), + contentDescription = null + ) + } +} diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/appicon/element/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to appicon/element/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/appicon/element/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to appicon/element/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher.webp rename to appicon/element/src/main/res/mipmap-hdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_background.webp b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_background.webp similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_background.webp rename to appicon/element/src/main/res/mipmap-hdpi/ic_launcher_background.webp diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp rename to appicon/element/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp rename to appicon/element/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_round.webp rename to appicon/element/src/main/res/mipmap-hdpi/ic_launcher_round.webp diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher.webp rename to appicon/element/src/main/res/mipmap-mdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_background.webp b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_background.webp similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher_background.webp rename to appicon/element/src/main/res/mipmap-mdpi/ic_launcher_background.webp diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp rename to appicon/element/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp rename to appicon/element/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher_round.webp rename to appicon/element/src/main/res/mipmap-mdpi/ic_launcher_round.webp diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher.webp rename to appicon/element/src/main/res/mipmap-xhdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_background.webp b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_background.webp similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher_background.webp rename to appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_background.webp diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp rename to appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp rename to appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp rename to appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_round.webp diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher.webp rename to appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp rename to appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_background.webp diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp rename to appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp rename to appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp rename to appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp rename to appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp rename to appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_background.webp diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp rename to appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp rename to appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp rename to appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp diff --git a/app/src/nightly/res/drawable/ic_launcher_background.xml b/appicon/element/src/nightly/res/drawable/ic_launcher_background.xml similarity index 100% rename from app/src/nightly/res/drawable/ic_launcher_background.xml rename to appicon/element/src/nightly/res/drawable/ic_launcher_background.xml diff --git a/app/src/release/res/drawable/ic_launcher_background.xml b/appicon/element/src/release/res/drawable/ic_launcher_background.xml similarity index 100% rename from app/src/release/res/drawable/ic_launcher_background.xml rename to appicon/element/src/release/res/drawable/ic_launcher_background.xml diff --git a/appicon/enterprise/build.gradle.kts b/appicon/enterprise/build.gradle.kts new file mode 100644 index 0000000000..82cce718f5 --- /dev/null +++ b/appicon/enterprise/build.gradle.kts @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +plugins { + id("io.element.android-compose-library") +} + +android { + namespace = "io.element.android.appicon.enterprise" + + buildTypes { + register("nightly") + } +} diff --git a/appicon/enterprise/src/debug/res/drawable/ic_launcher_background_enterprise.xml b/appicon/enterprise/src/debug/res/drawable/ic_launcher_background_enterprise.xml new file mode 100644 index 0000000000..d41447906a --- /dev/null +++ b/appicon/enterprise/src/debug/res/drawable/ic_launcher_background_enterprise.xml @@ -0,0 +1,10 @@ + + + diff --git a/appicon/enterprise/src/main/kotlin/io/element/android/appicon/enterprise/IconPreview.kt b/appicon/enterprise/src/main/kotlin/io/element/android/appicon/enterprise/IconPreview.kt new file mode 100644 index 0000000000..a474a49837 --- /dev/null +++ b/appicon/enterprise/src/main/kotlin/io/element/android/appicon/enterprise/IconPreview.kt @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.appicon.enterprise + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview + +@Preview +@Composable +internal fun IconPreview() { + Box { + Image(painter = painterResource(id = R.mipmap.ic_launcher_background_enterprise), contentDescription = null) + Image( + modifier = Modifier.align(Alignment.Center), + painter = painterResource(id = R.mipmap.ic_launcher_foreground_enterprise), + contentDescription = null, + ) + } +} + +@Preview +@Composable +internal fun RoundIconPreview() { + Box(modifier = Modifier.clip(shape = CircleShape)) { + Image(painter = painterResource(id = R.mipmap.ic_launcher_background_enterprise), contentDescription = null) + Image( + modifier = Modifier.align(Alignment.Center), + painter = painterResource(id = R.mipmap.ic_launcher_foreground_enterprise), + contentDescription = null, + ) + } +} diff --git a/appicon/enterprise/src/main/res/mipmap-anydpi/ic_launcher.xml b/appicon/enterprise/src/main/res/mipmap-anydpi/ic_launcher.xml new file mode 100644 index 0000000000..5a8a441e3f --- /dev/null +++ b/appicon/enterprise/src/main/res/mipmap-anydpi/ic_launcher.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/appicon/enterprise/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/appicon/enterprise/src/main/res/mipmap-anydpi/ic_launcher_round.xml new file mode 100644 index 0000000000..1bbcf33419 --- /dev/null +++ b/appicon/enterprise/src/main/res/mipmap-anydpi/ic_launcher_round.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/appicon/enterprise/src/main/res/mipmap-hdpi/ic_launcher_background_enterprise.webp b/appicon/enterprise/src/main/res/mipmap-hdpi/ic_launcher_background_enterprise.webp new file mode 100644 index 0000000000..f051ae3c81 Binary files /dev/null and b/appicon/enterprise/src/main/res/mipmap-hdpi/ic_launcher_background_enterprise.webp differ diff --git a/appicon/enterprise/src/main/res/mipmap-mdpi/ic_launcher_background_enterprise.webp b/appicon/enterprise/src/main/res/mipmap-mdpi/ic_launcher_background_enterprise.webp new file mode 100644 index 0000000000..27d9d1db19 Binary files /dev/null and b/appicon/enterprise/src/main/res/mipmap-mdpi/ic_launcher_background_enterprise.webp differ diff --git a/appicon/enterprise/src/main/res/mipmap-xhdpi/ic_launcher_background_enterprise.webp b/appicon/enterprise/src/main/res/mipmap-xhdpi/ic_launcher_background_enterprise.webp new file mode 100644 index 0000000000..4dbc6db066 Binary files /dev/null and b/appicon/enterprise/src/main/res/mipmap-xhdpi/ic_launcher_background_enterprise.webp differ diff --git a/appicon/enterprise/src/main/res/mipmap-xxhdpi/ic_launcher_background_enterprise.webp b/appicon/enterprise/src/main/res/mipmap-xxhdpi/ic_launcher_background_enterprise.webp new file mode 100644 index 0000000000..b635d5cbb5 Binary files /dev/null and b/appicon/enterprise/src/main/res/mipmap-xxhdpi/ic_launcher_background_enterprise.webp differ diff --git a/appicon/enterprise/src/main/res/mipmap-xxhdpi/ic_launcher_foreground_enterprise.webp b/appicon/enterprise/src/main/res/mipmap-xxhdpi/ic_launcher_foreground_enterprise.webp new file mode 100644 index 0000000000..2250307a03 Binary files /dev/null and b/appicon/enterprise/src/main/res/mipmap-xxhdpi/ic_launcher_foreground_enterprise.webp differ diff --git a/appicon/enterprise/src/main/res/mipmap-xxxhdpi/ic_launcher_background_enterprise.webp b/appicon/enterprise/src/main/res/mipmap-xxxhdpi/ic_launcher_background_enterprise.webp new file mode 100644 index 0000000000..b5cb68c7bb Binary files /dev/null and b/appicon/enterprise/src/main/res/mipmap-xxxhdpi/ic_launcher_background_enterprise.webp differ diff --git a/appicon/enterprise/src/nightly/res/drawable/ic_launcher_background_enterprise.xml b/appicon/enterprise/src/nightly/res/drawable/ic_launcher_background_enterprise.xml new file mode 100644 index 0000000000..dc27f37adf --- /dev/null +++ b/appicon/enterprise/src/nightly/res/drawable/ic_launcher_background_enterprise.xml @@ -0,0 +1,10 @@ + + + diff --git a/appicon/enterprise/src/release/res/drawable/ic_launcher_background_enterprise.xml b/appicon/enterprise/src/release/res/drawable/ic_launcher_background_enterprise.xml new file mode 100644 index 0000000000..161c685ddb --- /dev/null +++ b/appicon/enterprise/src/release/res/drawable/ic_launcher_background_enterprise.xml @@ -0,0 +1,2 @@ + diff --git a/appnav/build.gradle.kts b/appnav/build.gradle.kts index aae3385fb3..e99f3e01f0 100644 --- a/appnav/build.gradle.kts +++ b/appnav/build.gradle.kts @@ -21,7 +21,6 @@ import extension.allFeaturesApi plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) alias(libs.plugins.kapt) id("kotlin-parcelize") } @@ -78,6 +77,4 @@ dependencies { testImplementation(projects.services.analytics.test) testImplementation(libs.test.appyx.junit) testImplementation(libs.test.arch.core) - - ksp(libs.showkase.processor) } diff --git a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/SendQueues.kt b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/SendQueues.kt index c03ce947f8..20c4d84d91 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/SendQueues.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/SendQueues.kt @@ -24,14 +24,14 @@ import io.element.android.libraries.di.SingleIn import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.core.RoomId import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.delay +import kotlinx.coroutines.FlowPreview +import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import timber.log.Timber import javax.inject.Inject @VisibleForTesting -const val SEND_QUEUES_RETRY_DELAY_MILLIS = 1500L +const val SEND_QUEUES_RETRY_DELAY_MILLIS = 500L @SingleIn(SessionScope::class) class SendQueues @Inject constructor( @@ -45,14 +45,12 @@ class SendQueues @Inject constructor( } .launchIn(coroutineScope) + @OptIn(FlowPreview::class) matrixClient.sendQueueDisabledFlow() - .onEach { roomId: RoomId -> - Timber.d("Send queue disabled for room $roomId") + .debounce(SEND_QUEUES_RETRY_DELAY_MILLIS) + .onEach { _: RoomId -> if (networkMonitor.connectivity.value == NetworkStatus.Online) { - delay(SEND_QUEUES_RETRY_DELAY_MILLIS) - matrixClient.getRoom(roomId)?.use { room -> - room.setSendQueueEnabled(enabled = true) - } + matrixClient.setAllSendQueuesEnabled(enabled = true) } } .launchIn(coroutineScope) diff --git a/appnav/src/main/kotlin/io/element/android/appnav/root/RootNavStateFlowFactory.kt b/appnav/src/main/kotlin/io/element/android/appnav/root/RootNavStateFlowFactory.kt index 13c0204f79..b801415f88 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/root/RootNavStateFlowFactory.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/root/RootNavStateFlowFactory.kt @@ -22,6 +22,7 @@ import io.element.android.appnav.di.MatrixClientsHolder import io.element.android.features.login.api.LoginUserStory import io.element.android.features.preferences.api.CacheService import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService +import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder import io.element.android.libraries.sessionstorage.api.LoggedInState import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine @@ -39,6 +40,7 @@ class RootNavStateFlowFactory @Inject constructor( private val authenticationService: MatrixAuthenticationService, private val cacheService: CacheService, private val matrixClientsHolder: MatrixClientsHolder, + private val imageLoaderHolder: ImageLoaderHolder, private val loginUserStory: LoginUserStory, ) { private var currentCacheIndex = 0 @@ -69,6 +71,8 @@ class RootNavStateFlowFactory @Inject constructor( return cacheService.clearedCacheEventFlow .onEach { sessionId -> matrixClientsHolder.remove(sessionId) + // Ensure image loader will be recreated with the new MatrixClient + imageLoaderHolder.remove(sessionId) } .toIndexFlow(initialCacheIndex) .onEach { cacheIndex -> diff --git a/appnav/src/test/kotlin/io/element/android/appnav/loggedin/SendQueuesTest.kt b/appnav/src/test/kotlin/io/element/android/appnav/loggedin/SendQueuesTest.kt index c2521827fe..bb4e8f3dbf 100644 --- a/appnav/src/test/kotlin/io/element/android/appnav/loggedin/SendQueuesTest.kt +++ b/appnav/src/test/kotlin/io/element/android/appnav/loggedin/SendQueuesTest.kt @@ -55,12 +55,13 @@ import org.junit.Test runCurrent() assert(setAllSendQueuesEnabledLambda) - .isCalledOnce() - .with(value(true)) + .isCalledExactly(2) + .withSequence( + listOf(value(true)), + listOf(value(true)), + ) - assert(setRoomSendQueueEnabledLambda) - .isCalledOnce() - .with(value(true)) + assert(setRoomSendQueueEnabledLambda).isNeverCalled() } @Test diff --git a/build.gradle.kts b/build.gradle.kts index ce822e3fa5..ff5d46ab12 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -60,7 +60,7 @@ allprojects { config.from(files("$rootDir/tools/detekt/detekt.yml")) } dependencies { - detektPlugins("io.nlopez.compose.rules:detekt:0.4.4") + detektPlugins("io.nlopez.compose.rules:detekt:0.4.5") } // KtLint @@ -160,15 +160,15 @@ allprojects { // Record all the languages? if (project.hasProperty("allLanguagesNoEnglish")) { // Do not record English language - exclude("ui/S.class") + exclude("ui/*.class") } else if (project.hasProperty("allLanguages").not()) { // Do not record other languages - exclude("ui/T.class") + exclude("translations/*.class") } } else { // Disable screenshot tests by default - exclude("ui/S.class") - exclude("ui/T.class") + exclude("ui/*.class") + exclude("translations/*.class") } } } diff --git a/changelog.d/2869.feature b/changelog.d/2869.feature new file mode 100644 index 0000000000..bfda19096b --- /dev/null +++ b/changelog.d/2869.feature @@ -0,0 +1 @@ +Store and restore drafts for each room. diff --git a/changelog.d/2916.misc b/changelog.d/2916.misc new file mode 100644 index 0000000000..b87146dd58 --- /dev/null +++ b/changelog.d/2916.misc @@ -0,0 +1 @@ +Use a more natural date format for day dividers in the timeline. Also improve the time format for last messages in the room list. diff --git a/changelog.d/3051.misc b/changelog.d/3051.misc new file mode 100644 index 0000000000..032d0c8dbe --- /dev/null +++ b/changelog.d/3051.misc @@ -0,0 +1 @@ +Resolve display names in mentions in real time, also send mentions with user ids as the fallback text for the link representation of the mentions. diff --git a/changelog.d/3053.misc b/changelog.d/3053.misc new file mode 100644 index 0000000000..6a22cc363a --- /dev/null +++ b/changelog.d/3053.misc @@ -0,0 +1 @@ +Alert for incoming call even if notifications are disabled diff --git a/changelog.d/3068.misc b/changelog.d/3068.misc new file mode 100644 index 0000000000..add7772252 --- /dev/null +++ b/changelog.d/3068.misc @@ -0,0 +1 @@ +Updated Rust SDK to `v0.2.28`. Fixed incompatibilities. diff --git a/changelog.d/3073.bugfix b/changelog.d/3073.bugfix new file mode 100644 index 0000000000..2f7dbf19f9 --- /dev/null +++ b/changelog.d/3073.bugfix @@ -0,0 +1 @@ +Fix feature flags not being able to be toggle in developer settings in release builds. diff --git a/changelog.d/3081.bugfix b/changelog.d/3081.bugfix new file mode 100644 index 0000000000..37baf6cca2 --- /dev/null +++ b/changelog.d/3081.bugfix @@ -0,0 +1 @@ + Let roles and permissions screens work for invited room members too. diff --git a/changelog.d/3082.bugfix b/changelog.d/3082.bugfix new file mode 100644 index 0000000000..248b35ad7f --- /dev/null +++ b/changelog.d/3082.bugfix @@ -0,0 +1 @@ +Fix image rendering after clear cache diff --git a/changelog.d/3083.bugfix b/changelog.d/3083.bugfix new file mode 100644 index 0000000000..e3dfaf1da0 --- /dev/null +++ b/changelog.d/3083.bugfix @@ -0,0 +1 @@ +Improve room filters behavior diff --git a/changelog.d/3085.bugfix b/changelog.d/3085.bugfix new file mode 100644 index 0000000000..bfad218bd2 --- /dev/null +++ b/changelog.d/3085.bugfix @@ -0,0 +1 @@ +Make sure we replace the 'answer call' pending intent on ringing call notifications. diff --git a/changelog.d/3086.bugfix b/changelog.d/3086.bugfix new file mode 100644 index 0000000000..da39ba616f --- /dev/null +++ b/changelog.d/3086.bugfix @@ -0,0 +1 @@ +Make sure we don't use the main dispatcher while closing the bug report request, as it can lead to crashes in strict mode. diff --git a/docs/danger.md b/docs/danger.md index 5cf34ac055..536732a0b0 100644 --- a/docs/danger.md +++ b/docs/danger.md @@ -22,7 +22,7 @@ Here are the checks that Danger does so far: - PR description is not empty - Big PR got a warning to recommend to split -- PR contains a file for towncrier and extension is checked +- PR contains a correct title and a label to categorize the release note - PR does not modify frozen classes - PR contains a Sign-Off, with exception for Element employee contributors - PR with change on layout should include screenshot in the description (TODO Not supported yet!) diff --git a/docs/nightly_build.md b/docs/nightly_build.md index 91ea10b530..3a3345d662 100644 --- a/docs/nightly_build.md +++ b/docs/nightly_build.md @@ -42,11 +42,7 @@ Then you can run the following commands (which are also used in the file for [th ```sh git checkout develop -mv towncrier.toml towncrier.toml.bak -sed 's/CHANGES\.md/CHANGES_NIGHTLY\.md/' towncrier.toml.bak > towncrier.toml -rm towncrier.toml.bak -yes n | towncrier build --version nightly -./gradlew assembleGplayNightly appDistributionUploadGplayNightly $CI_GRADLE_ARG_PROPERTIES +./gradlew assembleGplayNightly appDistributionUploadGplayNightly ``` Then you can reset the change on the codebase. diff --git a/docs/screenshot_testing.md b/docs/screenshot_testing.md index eb973af087..044b136e74 100644 --- a/docs/screenshot_testing.md +++ b/docs/screenshot_testing.md @@ -13,7 +13,7 @@ ## Overview - Screenshot tests are tests which record the content of a rendered screen and verify subsequent runs to check if the screen renders differently. -- Element X uses [Paparazzi](https://github.com/cashapp/paparazzi) to render, record and verify Composable. All Composable Preview will be use to make screenshot test, thanks to the usage of [Showkase](https://github.com/airbnb/Showkase). +- Element X uses [Paparazzi](https://github.com/cashapp/paparazzi) to render, record and verify Composables. All internal/public Composable Preview will be used for screenshot tests, thanks to the usage of [ComposablePreviewScanner](https://github.com/sergio-sastre/ComposablePreviewScanner). - The screenshot verification occurs on every pull request as part of the `tests.yml` workflow. ## Setup diff --git a/enterprise b/enterprise new file mode 160000 index 0000000000..ceb65e32d9 --- /dev/null +++ b/enterprise @@ -0,0 +1 @@ +Subproject commit ceb65e32d95052c028a37654a4a0410639f69053 diff --git a/fastlane/metadata/android/en-US/changelogs/40004160.txt b/fastlane/metadata/android/en-US/changelogs/40004160.txt new file mode 100644 index 0000000000..a79e38af87 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/40004160.txt @@ -0,0 +1,2 @@ +Main changes in this version: Composer draft support and bug fixes. +Full changelog: https://github.com/element-hq/element-x-android/releases \ No newline at end of file diff --git a/features/analytics/api/build.gradle.kts b/features/analytics/api/build.gradle.kts index 3d3a3b9189..bedeaa6f50 100644 --- a/features/analytics/api/build.gradle.kts +++ b/features/analytics/api/build.gradle.kts @@ -15,7 +15,6 @@ */ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) } android { @@ -27,6 +26,4 @@ dependencies { implementation(projects.libraries.designsystem) implementation(projects.libraries.androidutils) implementation(projects.libraries.uiStrings) - - ksp(libs.showkase.processor) } diff --git a/features/analytics/api/src/main/res/values-el/translations.xml b/features/analytics/api/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..b97de25be2 --- /dev/null +++ b/features/analytics/api/src/main/res/values-el/translations.xml @@ -0,0 +1,7 @@ + + + "Μοιράσου ανώνυμα δεδομένα χρήσης για να μάς βοηθήσεις να εντοπίσουμε προβλήματα." + "Μπορείς να διαβάσεις όλους τους όρους μας %1$s." + "εδώ" + "Κοινή χρήση δεδομένων αναλυτικών στοιχείων" + diff --git a/features/analytics/impl/build.gradle.kts b/features/analytics/impl/build.gradle.kts index 02b7e50b15..17036e8d98 100644 --- a/features/analytics/impl/build.gradle.kts +++ b/features/analytics/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -42,7 +41,6 @@ dependencies { implementation(projects.appconfig) implementation(libs.androidx.datastore.preferences) implementation(libs.androidx.browser) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.coroutines.test) diff --git a/features/analytics/impl/src/main/res/values-el/translations.xml b/features/analytics/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..253836a236 --- /dev/null +++ b/features/analytics/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,10 @@ + + + "Δεν θα καταγράψουμε ούτε θα δημιουργήσουμε προφίλ προσωπικών δεδομένων" + "Μοιράσου ανώνυμα δεδομένα χρήσης για να μάς βοηθήσεις να εντοπίσουμε προβλήματα." + "Μπορείς να διαβάσεις όλους τους όρους μας %1$s." + "εδώ" + "Μπορείς να το απενεργοποιήσεις ανά πάσα στιγμή" + "Δεν θα μοιραστούμε τα δεδομένα σου με τρίτους" + "Βοήθησε στη βελτίωση του %1$s" + diff --git a/features/call/impl/build.gradle.kts b/features/call/impl/build.gradle.kts index 4e2aa65d44..d6d46d06b0 100644 --- a/features/call/impl/build.gradle.kts +++ b/features/call/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") alias(libs.plugins.kotlin.serialization) } @@ -57,7 +56,6 @@ dependencies { implementation(libs.network.retrofit) implementation(libs.serialization.json) api(projects.features.call.api) - ksp(libs.showkase.processor) testImplementation(libs.coroutines.test) testImplementation(libs.molecule.runtime) diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/notifications/RingingCallNotificationCreator.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/notifications/RingingCallNotificationCreator.kt index 46101250ec..161215eef3 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/notifications/RingingCallNotificationCreator.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/notifications/RingingCallNotificationCreator.kt @@ -116,7 +116,8 @@ class RingingCallNotificationCreator @Inject constructor( false ) - val ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE) + // TODO use a fallback ringtone if the default ringtone is not available + val ringtoneUri = runCatching { RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE) }.getOrNull() return NotificationCompat.Builder(context, notificationChannelId) .setSmallIcon(CommonDrawables.ic_notification_small) .setPriority(NotificationCompat.PRIORITY_MAX) @@ -127,7 +128,11 @@ class RingingCallNotificationCreator @Inject constructor( .setWhen(timestamp) .setOngoing(true) .setShowWhen(false) - .setSound(ringtoneUri, AudioManager.STREAM_RING) + .apply { + if (ringtoneUri != null) { + setSound(ringtoneUri, AudioManager.STREAM_RING) + } + } .setTimeoutAfter(ElementCallConfig.RINGING_CALL_DURATION_SECONDS.seconds.inWholeMilliseconds) .setContentIntent(answerIntent) .setDeleteIntent(declineIntent) diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenPresenter.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenPresenter.kt index 4e23f23501..48002ac190 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenPresenter.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenPresenter.kt @@ -30,6 +30,7 @@ import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import im.vector.app.features.analytics.plan.MobileScreen +import io.element.android.compound.theme.ElementTheme import io.element.android.features.call.api.CallType import io.element.android.features.call.impl.data.WidgetMessage import io.element.android.features.call.impl.utils.ActiveCallManager @@ -68,6 +69,7 @@ class CallScreenPresenter @AssistedInject constructor( private val screenTracker: ScreenTracker, private val appCoroutineScope: CoroutineScope, private val activeCallManager: ActiveCallManager, + private val languageTagProvider: LanguageTagProvider, ) : Presenter { @AssistedFactory interface Factory { @@ -85,12 +87,19 @@ class CallScreenPresenter @AssistedInject constructor( val callWidgetDriver = remember { mutableStateOf(null) } val messageInterceptor = remember { mutableStateOf(null) } var isJoinedCall by rememberSaveable { mutableStateOf(false) } - + val languageTag = languageTagProvider.provideLanguageTag() + val theme = if (ElementTheme.isLightTheme) "light" else "dark" DisposableEffect(Unit) { coroutineScope.launch { // Sets the call as joined activeCallManager.joinedCall(callType) - loadUrl(callType, urlState, callWidgetDriver) + loadUrl( + inputs = callType, + urlState = urlState, + callWidgetDriver = callWidgetDriver, + languageTag = languageTag, + theme = theme, + ) } onDispose { activeCallManager.hungUpCall(callType) @@ -178,6 +187,8 @@ class CallScreenPresenter @AssistedInject constructor( inputs: CallType, urlState: MutableState>, callWidgetDriver: MutableState, + languageTag: String?, + theme: String?, ) { urlState.runCatchingUpdatingState { when (inputs) { @@ -189,6 +200,8 @@ class CallScreenPresenter @AssistedInject constructor( sessionId = inputs.sessionId, roomId = inputs.roomId, clientId = UUID.randomUUID().toString(), + languageTag = languageTag, + theme = theme, ).getOrThrow() callWidgetDriver.value = result.driver result.url diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/LanguageTagProvider.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/LanguageTagProvider.kt new file mode 100644 index 0000000000..8073e9b901 --- /dev/null +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/LanguageTagProvider.kt @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.call.impl.ui + +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalConfiguration +import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.libraries.di.AppScope +import javax.inject.Inject + +interface LanguageTagProvider { + @Composable + fun provideLanguageTag(): String? +} + +@ContributesBinding(AppScope::class) +class DefaultLanguageTagProvider @Inject constructor() : LanguageTagProvider { + @Composable + override fun provideLanguageTag(): String? { + return LocalConfiguration.current.locales.get(0)?.toLanguageTag() + } +} diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/CallWidgetProvider.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/CallWidgetProvider.kt index 61843c471a..7152bdddad 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/CallWidgetProvider.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/CallWidgetProvider.kt @@ -25,8 +25,8 @@ interface CallWidgetProvider { sessionId: SessionId, roomId: RoomId, clientId: String, - languageTag: String? = null, - theme: String? = null, + languageTag: String?, + theme: String?, ): Result data class GetWidgetResult( diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/DefaultCallWidgetProvider.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/DefaultCallWidgetProvider.kt index 0e361962ec..df7a031753 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/DefaultCallWidgetProvider.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/DefaultCallWidgetProvider.kt @@ -20,6 +20,7 @@ import com.squareup.anvil.annotations.ContributesBinding import io.element.android.appconfig.ElementCallConfig import io.element.android.libraries.di.AppScope import io.element.android.libraries.matrix.api.MatrixClientProvider +import io.element.android.libraries.matrix.api.call.ElementCallBaseUrlProvider import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.api.widget.CallWidgetSettingsProvider @@ -41,12 +42,18 @@ class DefaultCallWidgetProvider @Inject constructor( languageTag: String?, theme: String?, ): Result = runCatching { - val room = matrixClientsProvider.getOrRestore(sessionId).getOrThrow().getRoom(roomId) ?: error("Room not found") + val matrixClient = matrixClientsProvider.getOrRestore(sessionId).getOrThrow() + val room = matrixClient.getRoom(roomId) ?: error("Room not found") val baseUrl = appPreferencesStore.getCustomElementCallBaseUrlFlow().firstOrNull() - ?: elementCallBaseUrlProvider.provides(sessionId) + ?: elementCallBaseUrlProvider.provides(matrixClient) ?: ElementCallConfig.DEFAULT_BASE_URL val widgetSettings = callWidgetSettingsProvider.provide(baseUrl, encrypted = room.isEncrypted) - val callUrl = room.generateWidgetWebViewUrl(widgetSettings, clientId, languageTag, theme).getOrThrow() + val callUrl = room.generateWidgetWebViewUrl( + widgetSettings = widgetSettings, + clientId = clientId, + languageTag = languageTag, + theme = theme, + ).getOrThrow() CallWidgetProvider.GetWidgetResult( driver = room.getWidgetDriver(widgetSettings).getOrThrow(), url = callUrl diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ElementCallBaseUrlProvider.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ElementCallBaseUrlProvider.kt deleted file mode 100644 index 63eb5208dd..0000000000 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ElementCallBaseUrlProvider.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2024 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.call.impl.utils - -import com.squareup.anvil.annotations.ContributesBinding -import io.element.android.features.call.impl.wellknown.CallWellknownAPI -import io.element.android.libraries.core.coroutine.CoroutineDispatchers -import io.element.android.libraries.di.AppScope -import io.element.android.libraries.di.SingleIn -import io.element.android.libraries.matrix.api.core.SessionId -import io.element.android.libraries.network.RetrofitFactory -import kotlinx.coroutines.withContext -import retrofit2.HttpException -import timber.log.Timber -import java.net.HttpURLConnection -import javax.inject.Inject - -interface ElementCallBaseUrlProvider { - suspend fun provides(sessionId: SessionId): String? -} - -@SingleIn(AppScope::class) -@ContributesBinding(AppScope::class) -class DefaultElementCallBaseUrlProvider @Inject constructor( - private val retrofitFactory: RetrofitFactory, - private val coroutineDispatchers: CoroutineDispatchers, -) : ElementCallBaseUrlProvider { - private val apiCache = mutableMapOf() - - override suspend fun provides(sessionId: SessionId): String? = withContext(coroutineDispatchers.io) { - val domain = sessionId.value.substringAfter(":") - val callWellknownAPI = apiCache.getOrPut(sessionId) { - retrofitFactory.create("https://$domain") - .create(CallWellknownAPI::class.java) - } - try { - callWellknownAPI.getCallWellKnown().widgetUrl - } catch (e: HttpException) { - // Ignore Http 404, but re-throws any other exceptions - if (e.code() != HttpURLConnection.HTTP_NOT_FOUND) { - throw e - } - Timber.w(e, "Failed to fetch wellknown data") - null - } - } -} diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/IntentProvider.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/IntentProvider.kt index bc5816220a..be4d123836 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/IntentProvider.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/IntentProvider.kt @@ -35,7 +35,7 @@ internal object IntentProvider { context, DefaultElementCallEntryPoint.REQUEST_CODE, createIntent(context, callType), - 0, + PendingIntent.FLAG_CANCEL_CURRENT, false )!! } diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/wellknown/CallWellKnown.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/wellknown/CallWellKnown.kt deleted file mode 100644 index b2e87c907b..0000000000 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/wellknown/CallWellKnown.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2024 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.call.impl.wellknown - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -/** - * Example: - *
- * {
- *     "widget_url": "https://call.server.com"
- * }
- * 
- * . - */ -@Serializable -data class CallWellKnown( - @SerialName("widget_url") - val widgetUrl: String? = null, -) diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/wellknown/CallWellknownAPI.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/wellknown/CallWellknownAPI.kt deleted file mode 100644 index e2b5d0e54f..0000000000 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/wellknown/CallWellknownAPI.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2024 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.call.impl.wellknown - -import retrofit2.http.GET - -internal interface CallWellknownAPI { - @GET(".well-known/element/call.json") - suspend fun getCallWellKnown(): CallWellKnown -} diff --git a/features/call/impl/src/main/res/values-el/translations.xml b/features/call/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..3dd54c238a --- /dev/null +++ b/features/call/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,7 @@ + + + "Συνεχής κλήση" + "Πάτα για να επιστρέψεις στην κλήση" + "☎️ Κλήση σε εξέλιξη" + "Εισερχόμενη κλήση Element" + diff --git a/features/call/impl/src/main/res/values-et/translations.xml b/features/call/impl/src/main/res/values-et/translations.xml index 59ae957be1..05b36cedbc 100644 --- a/features/call/impl/src/main/res/values-et/translations.xml +++ b/features/call/impl/src/main/res/values-et/translations.xml @@ -3,4 +3,5 @@ "Käimasolev kõne" "Kõne juurde naasmiseks klõpsa" "☎️ Kõne on pooleli" + "Sissetulev Element Calli kõne" diff --git a/features/call/impl/src/main/res/values-it/translations.xml b/features/call/impl/src/main/res/values-it/translations.xml index 38eb65b09c..f88f6f6162 100644 --- a/features/call/impl/src/main/res/values-it/translations.xml +++ b/features/call/impl/src/main/res/values-it/translations.xml @@ -3,4 +3,5 @@ "Chiamata in corso" "Tocca per tornare alla chiamata" "☎️ Chiamata in corso" + "Chiamata Element Call in arrivo" diff --git a/features/call/impl/src/main/res/values-ro/translations.xml b/features/call/impl/src/main/res/values-ro/translations.xml index 4eafc59961..ecbccde6b4 100644 --- a/features/call/impl/src/main/res/values-ro/translations.xml +++ b/features/call/impl/src/main/res/values-ro/translations.xml @@ -3,4 +3,5 @@ "Apel în curs" "Atingeți pentru a reveni la apel." "☎️ Apel în curs" + "Primiți un apel Element Call" diff --git a/features/call/impl/src/test/kotlin/io/element/android/features/call/ui/CallScreenPresenterTest.kt b/features/call/impl/src/test/kotlin/io/element/android/features/call/ui/CallScreenPresenterTest.kt index 182f2a13f6..09e6c86158 100644 --- a/features/call/impl/src/test/kotlin/io/element/android/features/call/ui/CallScreenPresenterTest.kt +++ b/features/call/impl/src/test/kotlin/io/element/android/features/call/ui/CallScreenPresenterTest.kt @@ -292,6 +292,7 @@ class CallScreenPresenterTest { appCoroutineScope = this, activeCallManager = activeCallManager, screenTracker = screenTracker, + languageTagProvider = FakeLanguageTagProvider("en-US"), ) } } diff --git a/features/call/impl/src/test/kotlin/io/element/android/features/call/ui/FakeLanguageTagProvider.kt b/features/call/impl/src/test/kotlin/io/element/android/features/call/ui/FakeLanguageTagProvider.kt new file mode 100644 index 0000000000..60c5be23da --- /dev/null +++ b/features/call/impl/src/test/kotlin/io/element/android/features/call/ui/FakeLanguageTagProvider.kt @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.call.ui + +import androidx.compose.runtime.Composable +import io.element.android.features.call.impl.ui.LanguageTagProvider + +class FakeLanguageTagProvider(private val languageTag: String?) : LanguageTagProvider { + @Composable + override fun provideLanguageTag() = languageTag +} diff --git a/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/DefaultCallWidgetProviderTest.kt b/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/DefaultCallWidgetProviderTest.kt index 73c8d3515e..7eb426c35e 100644 --- a/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/DefaultCallWidgetProviderTest.kt +++ b/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/DefaultCallWidgetProviderTest.kt @@ -18,9 +18,9 @@ package io.element.android.features.call.utils import com.google.common.truth.Truth.assertThat import io.element.android.features.call.impl.utils.DefaultCallWidgetProvider -import io.element.android.features.call.impl.utils.ElementCallBaseUrlProvider +import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.MatrixClientProvider -import io.element.android.libraries.matrix.api.core.SessionId +import io.element.android.libraries.matrix.api.call.ElementCallBaseUrlProvider import io.element.android.libraries.matrix.api.widget.CallWidgetSettingsProvider import io.element.android.libraries.matrix.test.A_ROOM_ID import io.element.android.libraries.matrix.test.A_SESSION_ID @@ -116,9 +116,9 @@ class DefaultCallWidgetProviderTest { @Test fun `getWidget - will use a wellknown base url if it exists`() = runTest { val aCustomUrl = "https://custom.element.io" - val providesLambda = lambdaRecorder { _ -> aCustomUrl } - val elementCallBaseUrlProvider = FakeElementCallBaseUrlProvider { sessionId -> - providesLambda(sessionId) + val providesLambda = lambdaRecorder { _ -> aCustomUrl } + val elementCallBaseUrlProvider = FakeElementCallBaseUrlProvider { matrixClient -> + providesLambda(matrixClient) } val room = FakeMatrixRoom().apply { givenGenerateWidgetWebViewUrlResult(Result.success("url")) @@ -137,7 +137,7 @@ class DefaultCallWidgetProviderTest { assertThat(settingsProvider.providedBaseUrls).containsExactly(aCustomUrl) providesLambda.assertions() .isCalledOnce() - .with(value(A_SESSION_ID)) + .with(value(client)) } private fun createProvider( diff --git a/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/FakeElementCallBaseUrlProvider.kt b/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/FakeElementCallBaseUrlProvider.kt index 619659e1df..660bb7249f 100644 --- a/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/FakeElementCallBaseUrlProvider.kt +++ b/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/FakeElementCallBaseUrlProvider.kt @@ -16,14 +16,14 @@ package io.element.android.features.call.utils -import io.element.android.features.call.impl.utils.ElementCallBaseUrlProvider -import io.element.android.libraries.matrix.api.core.SessionId +import io.element.android.libraries.matrix.api.MatrixClient +import io.element.android.libraries.matrix.api.call.ElementCallBaseUrlProvider import io.element.android.tests.testutils.lambda.lambdaError class FakeElementCallBaseUrlProvider( - private val providesLambda: (SessionId) -> String? = { lambdaError() } + private val providesLambda: (MatrixClient) -> String? = { lambdaError() } ) : ElementCallBaseUrlProvider { - override suspend fun provides(sessionId: SessionId): String? { - return providesLambda(sessionId) + override suspend fun provides(matrixClient: MatrixClient): String? { + return providesLambda(matrixClient) } } diff --git a/features/createroom/impl/build.gradle.kts b/features/createroom/impl/build.gradle.kts index 11f87a6d9f..260b9de010 100644 --- a/features/createroom/impl/build.gradle.kts +++ b/features/createroom/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -71,6 +70,4 @@ dependencies { testImplementation(projects.tests.testutils) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/createroom/impl/src/main/res/values-el/translations.xml b/features/createroom/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..c74336030b --- /dev/null +++ b/features/createroom/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,14 @@ + + + "Νέο δωμάτιο" + "Πρόσκληση ατόμων" + "Παρουσιάστηκε σφάλμα κατά τη δημιουργία του δωματίου" + "Τα μηνύματα σε αυτό το δωμάτιο είναι κρυπτογραφημένα. Η κρυπτογράφηση δεν μπορεί να απενεργοποιηθεί αργότερα." + "Ιδιωτικό δωμάτιο (μόνο με πρόσκληση)" + "Τα μηνύματα δεν είναι κρυπτογραφημένα και ο καθένας μπορεί να τα διαβάσει. Μπορείς να ενεργοποιήσεις την κρυπτογράφηση αργότερα." + "Δημόσιο δωμάτιο (οποιοσδήποτε)" + "Όνομα δωματίου" + "Δημιούργησε ένα δωμάτιο" + "Θέμα (προαιρετικό)" + "Παρουσιάστηκε σφάλμα κατά την προσπάθεια έναρξης μιας συνομιλίας" + diff --git a/features/createroom/impl/src/main/res/values-et/translations.xml b/features/createroom/impl/src/main/res/values-et/translations.xml index 8d225ad508..38b8b44358 100644 --- a/features/createroom/impl/src/main/res/values-et/translations.xml +++ b/features/createroom/impl/src/main/res/values-et/translations.xml @@ -2,8 +2,13 @@ "Uus jututuba" "Kutsu osalejaid" + "Jututoa loomisel tekkis viga" "Sõnumid siin jututoas on krüptitud ja seda ei saa hiljem välja lülitada." + "Privaatne jututuba (liitumine vaid kutsega)" "Sõnumid pole krüptitud ja neid saavad kõik lugeda. Soovi korral saad hiljem krüptimise sisse lülitada." + "Avalik jututuba (avatud kõigile)" "Jututoa nimi" "Loo jututuba" + "Teema (kui soovid lisada)" + "Vestluse alustamisel tekkis viga" diff --git a/features/enterprise/api/build.gradle.kts b/features/enterprise/api/build.gradle.kts new file mode 100644 index 0000000000..6e9cd26834 --- /dev/null +++ b/features/enterprise/api/build.gradle.kts @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +plugins { + id("io.element.android-library") +} + +android { + namespace = "io.element.android.features.enterprise.api" +} + +dependencies { + implementation(projects.libraries.architecture) + implementation(projects.libraries.matrix.api) +} diff --git a/features/enterprise/api/src/main/kotlin/io/element/android/features/enterprise/api/EnterpriseService.kt b/features/enterprise/api/src/main/kotlin/io/element/android/features/enterprise/api/EnterpriseService.kt new file mode 100644 index 0000000000..3c27af8629 --- /dev/null +++ b/features/enterprise/api/src/main/kotlin/io/element/android/features/enterprise/api/EnterpriseService.kt @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.enterprise.api + +import io.element.android.libraries.matrix.api.core.SessionId + +interface EnterpriseService { + val isEnterpriseBuild: Boolean + suspend fun isEnterpriseUser(sessionId: SessionId): Boolean +} diff --git a/features/enterprise/impl/build.gradle.kts b/features/enterprise/impl/build.gradle.kts new file mode 100644 index 0000000000..eb87d9310b --- /dev/null +++ b/features/enterprise/impl/build.gradle.kts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +plugins { + id("io.element.android-library") + alias(libs.plugins.anvil) +} + +android { + namespace = "io.element.android.features.enterprise.impl" +} + +dependencies { + implementation(projects.anvilannotations) + api(projects.features.enterprise.api) + implementation(projects.libraries.architecture) + implementation(projects.libraries.matrix.api) + + testImplementation(libs.coroutines.test) + testImplementation(libs.test.junit) + testImplementation(libs.test.truth) + testImplementation(projects.libraries.matrix.test) +} diff --git a/features/enterprise/impl/src/main/kotlin/io/element/android/features/enterprise/impl/DefaultEnterpriseService.kt b/features/enterprise/impl/src/main/kotlin/io/element/android/features/enterprise/impl/DefaultEnterpriseService.kt new file mode 100644 index 0000000000..c3387259b8 --- /dev/null +++ b/features/enterprise/impl/src/main/kotlin/io/element/android/features/enterprise/impl/DefaultEnterpriseService.kt @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.enterprise.impl + +import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.features.enterprise.api.EnterpriseService +import io.element.android.libraries.di.AppScope +import io.element.android.libraries.matrix.api.core.SessionId +import javax.inject.Inject + +@ContributesBinding(AppScope::class) +class DefaultEnterpriseService @Inject constructor() : EnterpriseService { + override val isEnterpriseBuild = false + + override suspend fun isEnterpriseUser(sessionId: SessionId) = false +} diff --git a/features/enterprise/impl/src/test/kotlin/io/element/android/features/enterprise/impl/DefaultEnterpriseServiceTest.kt b/features/enterprise/impl/src/test/kotlin/io/element/android/features/enterprise/impl/DefaultEnterpriseServiceTest.kt new file mode 100644 index 0000000000..003ca2ffc9 --- /dev/null +++ b/features/enterprise/impl/src/test/kotlin/io/element/android/features/enterprise/impl/DefaultEnterpriseServiceTest.kt @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.enterprise.impl + +import com.google.common.truth.Truth.assertThat +import io.element.android.libraries.matrix.test.A_SESSION_ID +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class DefaultEnterpriseServiceTest { + @Test + fun `isEnterpriseBuild is false`() { + val defaultEnterpriseService = DefaultEnterpriseService() + assertThat(defaultEnterpriseService.isEnterpriseBuild).isFalse() + } + + @Test + fun `isEnterpriseUser always return false`() = runTest { + val defaultEnterpriseService = DefaultEnterpriseService() + assertThat(defaultEnterpriseService.isEnterpriseUser(A_SESSION_ID)).isFalse() + } +} diff --git a/features/ftue/impl/build.gradle.kts b/features/ftue/impl/build.gradle.kts index 4d84dc8fa3..041ab94b29 100644 --- a/features/ftue/impl/build.gradle.kts +++ b/features/ftue/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -64,6 +63,4 @@ dependencies { testImplementation(projects.features.lockscreen.test) testImplementation(projects.services.toolbox.test) testImplementation(projects.tests.testutils) - - ksp(libs.showkase.processor) } diff --git a/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/state/DefaultFtueService.kt b/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/state/DefaultFtueService.kt index cad221f643..049bba4dbb 100644 --- a/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/state/DefaultFtueService.kt +++ b/features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/state/DefaultFtueService.kt @@ -119,8 +119,14 @@ class DefaultFtueService @Inject constructor( emit(SessionVerifiedStatus.NotVerified) } .first() - val skipVerification = suspend { sessionPreferencesStore.isSessionVerificationSkipped().first() } - return readyVerifiedSessionStatus == SessionVerifiedStatus.NotVerified && !skipVerification() + // For some obscure reason we need to call this *before* we check the `readyVerifiedSessionStatus`, otherwise there's a deadlock + // It seems like a DataStore bug + val skipVerification = canSkipVerification() + return readyVerifiedSessionStatus == SessionVerifiedStatus.NotVerified && !skipVerification + } + + private suspend fun canSkipVerification(): Boolean { + return sessionPreferencesStore.isSessionVerificationSkipped().first() } private suspend fun needsAnalyticsOptIn(): Boolean { diff --git a/features/ftue/impl/src/main/res/values-el/translations.xml b/features/ftue/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..8c384bb8f4 --- /dev/null +++ b/features/ftue/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,11 @@ + + + "Μπορείς να αλλάξεις τις ρυθμίσεις σου αργότερα." + "Επέτρεψε τις ειδοποιήσεις και μην χάσεις ούτε ένα μήνυμα" + "Κλήσεις, δημοσκοπήσεις, αναζήτηση και άλλα, θα προστεθούν αργότερα φέτος." + "Το ιστορικό μηνυμάτων για κρυπτογραφημένα δωμάτια δεν είναι ακόμα διαθέσιμο." + "Θα θέλαμε να ακούσουμε τη γνώμη σου, πες μας τη γνώμη σου μέσω της σελίδας ρυθμίσεων." + "Πάμε!" + "Να τί πρέπει να ξέρεις:" + "Καλώς ήρθες στο %1$s!" + diff --git a/features/ftue/test/build.gradle.kts b/features/ftue/test/build.gradle.kts index eb7a3a565c..570cf6229c 100644 --- a/features/ftue/test/build.gradle.kts +++ b/features/ftue/test/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } diff --git a/features/invite/impl/build.gradle.kts b/features/invite/impl/build.gradle.kts index 87e21ac562..1e3c153373 100644 --- a/features/invite/impl/build.gradle.kts +++ b/features/invite/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -52,6 +51,4 @@ dependencies { testImplementation(projects.libraries.push.test) testImplementation(projects.services.analytics.test) testImplementation(projects.tests.testutils) - - ksp(libs.showkase.processor) } diff --git a/features/invite/impl/src/main/res/values-el/translations.xml b/features/invite/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..78f2871617 --- /dev/null +++ b/features/invite/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,9 @@ + + + "Σίγουρα θες να απορρίψεις την πρόσκληση συμμετοχής στο %1$s;" + "Απόρριψη πρόσκλησης" + "Σίγουρα θες να απορρίψεις την ιδιωτική συνομιλία με τον χρήστη %1$s;" + "Απόρριψη συνομιλίας" + "Χωρίς προσκλήσεις" + "%1$s (%2$s) σέ προσκάλεσε" + diff --git a/features/invite/impl/src/main/res/values-et/translations.xml b/features/invite/impl/src/main/res/values-et/translations.xml new file mode 100644 index 0000000000..316ba75ef9 --- /dev/null +++ b/features/invite/impl/src/main/res/values-et/translations.xml @@ -0,0 +1,9 @@ + + + "Kas sa oled kindel, et soovid keelduda liitumiskutsest: %1$s?" + "Lükka kutse tagasi" + "Kas sa oled kindel, et soovid keelduda privaatsest vestlusest kasutajaga %1$s?" + "Keeldu vestlusest" + "Kutseid pole" + "%1$s (%2$s) saatis sulle kutse" + diff --git a/features/joinroom/impl/build.gradle.kts b/features/joinroom/impl/build.gradle.kts index 319f15eea4..20dcdd6177 100644 --- a/features/joinroom/impl/build.gradle.kts +++ b/features/joinroom/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -59,6 +58,4 @@ dependencies { testImplementation(projects.tests.testutils) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/joinroom/impl/src/main/res/values-be/translations.xml b/features/joinroom/impl/src/main/res/values-be/translations.xml index a7b7017cc9..056a4394f7 100644 --- a/features/joinroom/impl/src/main/res/values-be/translations.xml +++ b/features/joinroom/impl/src/main/res/values-be/translations.xml @@ -7,5 +7,5 @@ "Націсніце кнопку ніжэй, і адміністратар пакоя атрымае апавяшчэнне. Вы зможаце далучыцца да размовы пасля зацвярджэння." "Вы павінны быць удзельнікам гэтага пакоя каб прагледзець гісторыю паведамленняў." "Вы хочаце далучыцца да гэтага пакоя?" - "Папярэдні прагляд недаступны" + "Перадпрагляд недаступны" diff --git a/features/joinroom/impl/src/main/res/values-el/translations.xml b/features/joinroom/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..51c9dfbf95 --- /dev/null +++ b/features/joinroom/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,11 @@ + + + "Συμμετοχή στο δωμάτιο" + "Χτύπα για συμμετοχή" + "Το %1$s δεν υποστηρίζει ακόμα χώρους. Μπορείς να έχεις πρόσβαση σε χώρους στον ιστό." + "Οι Χώροι δεν υποστηρίζονται ακόμα" + "Κάνε κλικ στο παρακάτω κουμπί και ένας διαχειριστής δωματίου θα ειδοποιηθεί. Θα μπορείς να συμμετάσχεις στη συνομιλία μόλις εγκριθεί." + "Πρέπει να είσαι μέλος αυτού του δωματίου για να δεις το ιστορικό μηνυμάτων." + "Θες να συμμετάσχεις σε αυτό το δωμάτιο;" + "Η προεπισκόπηση δεν είναι διαθέσιμη" + diff --git a/features/joinroom/impl/src/main/res/values-et/translations.xml b/features/joinroom/impl/src/main/res/values-et/translations.xml new file mode 100644 index 0000000000..d51cbdc861 --- /dev/null +++ b/features/joinroom/impl/src/main/res/values-et/translations.xml @@ -0,0 +1,11 @@ + + + "Liitu jututoaga" + "Liitumiseks koputa jututoa uksele" + "%1$s veel ei toeta kogukondadega liitumise ja kasutamise võimalust. Vajadusel saad seda teha veebiliidese vahendusel." + "Kogukonnad pole veel toetatud" + "Klõpsi allolevat nuppu ja jututoa haldaja saab asjakohase teate. Sa saad liituda, kui haldaja sinu soovi heaks kiidab." + "Sõnumite ajaloo vaatamiseks pead olema selle jututoa liige." + "Kas sa soovid selle jututoaga liituda?" + "Eelvaade pole saadaval" + diff --git a/features/leaveroom/api/build.gradle.kts b/features/leaveroom/api/build.gradle.kts index 83ca28b39a..72c8c4ed43 100644 --- a/features/leaveroom/api/build.gradle.kts +++ b/features/leaveroom/api/build.gradle.kts @@ -15,7 +15,6 @@ */ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) } android { @@ -27,5 +26,4 @@ dependencies { implementation(projects.libraries.designsystem) implementation(projects.libraries.uiStrings) implementation(projects.libraries.matrix.api) - ksp(libs.showkase.processor) } diff --git a/features/leaveroom/api/src/main/res/values-el/translations.xml b/features/leaveroom/api/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..09295f805b --- /dev/null +++ b/features/leaveroom/api/src/main/res/values-el/translations.xml @@ -0,0 +1,7 @@ + + + "Είσαι σίγουρος ότι θέλεις να αποχωρήσεις από αυτή τη συζήτηση; Αυτή η συνομιλία δεν είναι δημόσια και δεν θα μπορείς να συμμετάσχεις ξανά χωρίς πρόσκληση." + "Σίγουρα θες να φύγεις από αυτό το δωμάτιο; Είσαι το μόνο άτομο εδώ. Εάν φύγεις, κανείς δεν θα μπορεί να συμμετάσχει στο μέλλον, ούτε και \'σύ." + "Σίγουρα θες να φύγεις από αυτό το δωμάτιο; Αυτό το δωμάτιο δεν είναι δημόσιο και δεν θα μπορείς να συμμετάσχεις ξανά χωρίς πρόσκληση." + "Θες σίγουρα να φύγεις από το δωμάτιο;" + diff --git a/features/location/api/build.gradle.kts b/features/location/api/build.gradle.kts index 4f1d588069..19eaa1f63f 100644 --- a/features/location/api/build.gradle.kts +++ b/features/location/api/build.gradle.kts @@ -18,7 +18,6 @@ import java.util.Properties plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -66,7 +65,6 @@ dependencies { implementation(projects.libraries.matrixui) implementation(projects.libraries.uiStrings) implementation(libs.coil.compose) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.test.truth) diff --git a/features/location/impl/build.gradle.kts b/features/location/impl/build.gradle.kts index 515843c7bb..ad0284b3c8 100644 --- a/features/location/impl/build.gradle.kts +++ b/features/location/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) } android { @@ -51,7 +50,6 @@ dependencies { implementation(libs.dagger) implementation(projects.anvilannotations) anvil(projects.anvilcodegen) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.coroutines.test) diff --git a/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/send/SendLocationPresenterTest.kt b/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/send/SendLocationPresenterTest.kt index af4ac6c9c7..93e15f7868 100644 --- a/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/send/SendLocationPresenterTest.kt +++ b/features/location/impl/src/test/kotlin/io/element/android/features/location/impl/send/SendLocationPresenterTest.kt @@ -379,8 +379,8 @@ class SendLocationPresenterTest { fakeMessageComposerContext.apply { composerMode = MessageComposerMode.Edit( eventId = null, - defaultContent = "", - transactionId = null + transactionId = null, + content = "" ) } @@ -427,8 +427,8 @@ class SendLocationPresenterTest { fakeMessageComposerContext.apply { composerMode = MessageComposerMode.Edit( eventId = null, - defaultContent = "", - transactionId = null + transactionId = null, + content = "" ) } diff --git a/features/lockscreen/impl/build.gradle.kts b/features/lockscreen/impl/build.gradle.kts index 030955ed72..1cbe9692cf 100644 --- a/features/lockscreen/impl/build.gradle.kts +++ b/features/lockscreen/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -30,7 +29,6 @@ anvil { } dependencies { - ksp(libs.showkase.processor) implementation(projects.anvilannotations) anvil(projects.anvilcodegen) api(projects.features.lockscreen.api) diff --git a/features/lockscreen/impl/src/main/res/values-el/translations.xml b/features/lockscreen/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..a7a8e954c1 --- /dev/null +++ b/features/lockscreen/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,37 @@ + + + "βιομετρική ταυτοποίηση" + "βιομετρικό ξεκλείδωμα" + "Ξεκλείδωμα με βιομετρικά" + "Ξέχασες το PIN;" + "Αλλαγή κωδικού PIN" + "Να επιτρέπεται το βιομετρικό ξεκλείδωμα" + "Αφαίρεση PIN" + "Θες σίγουρα να καταργήσεις το PIN;" + "Κατάργηση PIN;" + "Επέτρεψε %1$s" + "Θα προτιμούσα να χρησιμοποιήσω PIN" + "Εξοικονόμησε χρόνο και χρησιμοποίησε %1$s για να ξεκλειδώσεις την εφαρμογή κάθε φορά" + "Επέλεξε PIN" + "Επιβεβαίωση PIN" + "Δεν μπορείς να το επιλέξεις ως κωδικό PIN για λόγους ασφαλείας" + "Επέλεξε διαφορετικό PIN" + "Κλείδωμα του %1$s για να προσθέσεις επιπλέον ασφάλεια στις συνομιλίες σου. + +Επέλεξε κάτι αξιομνημόνευτο. Εάν ξεχάσεις αυτό το PIN, θα αποσυνδεθείς από την εφαρμογή." + "Παρακαλώ εισήγαγε το ίδιο PIN δύο φορές" + "Τα PIN δεν ταιριάζουν" + "Θα χρειαστεί να συνδεθείς ξανά και να δημιουργήσεις ένα νέο PIN για να προχωρήσεις" + "Έχεις αποσυνδεθεί" + + "Έχεις %1$d προσπάθεια για ξεκλείδωμα" + "Έχεις %1$d προσπάθειες για ξεκλείδωμα" + + + "Λάθος PIN. Έχεις %1$d ακόμη ευκαιρία" + "Λάθος PIN. Έχεις %1$d ακόμη ευκαιρίες" + + "Χρήση βιομετρικών" + "Χρήση PIN" + "Αποσύνδεση…" + diff --git a/features/login/impl/build.gradle.kts b/features/login/impl/build.gradle.kts index 25bf1dc1b3..6fcdc2c1de 100644 --- a/features/login/impl/build.gradle.kts +++ b/features/login/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") alias(libs.plugins.kotlin.serialization) } @@ -56,7 +55,6 @@ dependencies { implementation(libs.network.retrofit) implementation(libs.serialization.json) api(projects.features.login.api) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.androidx.compose.ui.test.junit) diff --git a/features/login/impl/src/main/res/values-be/translations.xml b/features/login/impl/src/main/res/values-be/translations.xml index 0163b28c5b..f8e675854e 100644 --- a/features/login/impl/src/main/res/values-be/translations.xml +++ b/features/login/impl/src/main/res/values-be/translations.xml @@ -16,7 +16,7 @@ "Нам не ўдалося звязацца з гэтым хатнім серверам. Упэўніцеся, што вы правільна ўвялі URL-адрас хатняга сервера. Калі URL-адрас пазначаны правільна, звярніцеся да адміністратара хатняга сервера за дадатковай дапамогай." "Sliding sync недаступны з-за праблемы ў вядомым файле: %1$s" - "На жаль, гэты сервер не падтрымлівае sliding sync." + "Выбачце, гэты сервер не падтрымлівае sliding sync." "URL хатняга сервера" "Вы можаце падключыцца толькі да існуючага сервера, які падтрымлівае sliding sync. Адміністратару хатняга сервера запатрабуецца наладзіць яго. %1$s" "Які адрас вашага сервера?" @@ -49,11 +49,11 @@ "Уваход у сістэму не быў завершаны своечасова" "Ваша іншая прылада не падтрымлівае ўваход у %s з дапамогай QR-кода. -Паспрабуйце ўвайсці ў сістэму ўручную або адскануйце QR-код з дапамогай іншай прылады." +Паспрабуйце ўвайсці ў сістэму ўручную або адсканіруйце QR-код з дапамогай іншай прылады." "QR-код не падтрымліваецца" "Ваш правайдар уліковага запісу не падтрымлівае %1$s." "%1$s не падтрымліваецца" - "Гатовы да сканавання" + "Гатовы да сканіравання" "Адкрыйце %1$s на настольнай прыладзе" "Націсніце на свой аватар" "Выберыце %1$s" @@ -65,8 +65,8 @@ "Няправільны QR-код" "Перайсці ў налады камеры" "Каб працягнуць, вам неабходна дазволіць %1$s выкарыстоўваць камеру вашай прылады." - "Дазвольце доступ да камеры для сканавання QR-кода" - "Сканаваць QR-код" + "Дазвольце доступ да камеры для сканіравання QR-кода" + "Сканіраваць QR-код" "Пачаць спачатку" "Адбылася нечаканая памылка. Калі ласка, паспрабуйце яшчэ раз." "У чаканні іншай прылады" diff --git a/features/login/impl/src/main/res/values-el/translations.xml b/features/login/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..8ff0227168 --- /dev/null +++ b/features/login/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,87 @@ + + + "Αλλαγή παρόχου λογαριασμού" + "Διεύθυνση οικιακού διακομιστή" + "Εισήγαγε έναν όρο αναζήτησης ή μια διεύθυνση τομέα." + "Αναζήτησε μια εταιρεία, κοινότητα ή ιδιωτικό διακομιστή." + "Βρες έναν πάροχο λογαριασμού" + "Εδώ θα ζουν οι συνομιλίες σου - όπως θα χρησιμοποιούσες έναν πάροχο email για να διατηρήσεις τα email σου." + "Πρόκειται να συνδεθείς στο %s" + "Εδώ θα ζουν οι συνομιλίες σου - όπως θα χρησιμοποιούσες έναν πάροχο email για να διατηρήσεις τα email σου." + "Πρόκειται να δημιουργήσεις έναν λογαριασμό στο %s" + "Το Matrix.org είναι ένας μεγάλος, δωρεάν διακομιστής στο δημόσιο δίκτυο Matrix για ασφαλή, αποκεντρωμένη επικοινωνία, που διευθύνεται από το Ίδρυμα Matrix.org." + "Άλλο" + "Χρησιμοποίησε διαφορετικό πάροχο λογαριασμού, όπως τον δικό σου ιδιωτικό διακομιστή ή έναν εργασιακό λογαριασμό." + "Αλλαγή παρόχου λογαριασμού" + "Δεν μπορούσαμε να επικοινωνήσουμε με αυτόν τον οικιακό διακομιστή. Βεβαιώσου ότι έχεις εισαγάγει σωστά τη διεύθυνση URL του αρχικού διακομιστή. Εάν η διεύθυνση URL είναι σωστή, επικοινώνησε με τον διαχειριστή του κεντρικού διακομιστή για περαιτέρω βοήθεια." + "Το Sliding sync δεν είναι διαθέσιμο εξαιτίας ενός ζητήματος σε ένα πολύ γνωστό αρχείο: +%1$s" + "Αυτός ο διακομιστής προς το παρόν δεν υποστηρίζει Sliding sync." + "URL οικιακού διακομιστή" + "Μπορείτε να συνδεθείς μόνο σε υπάρχοντα διακομιστή που υποστηρίζει Sliding sync. Ο διαχειριστής του οικιακού διακομιστή σου θα πρέπει να το ρυθμίσει. %1$s" + "Ποια είναι η διεύθυνση του διακομιστή σου;" + "Επέλεξε το διακομιστή σου" + "Αυτός ο λογαριασμός έχει απενεργοποιηθεί." + "Λανθασμένο όνομα χρήστη ή κωδικός πρόσβασης" + "Αυτό δεν είναι έγκυρο αναγνωριστικό χρήστη. Αναμενόμενη μορφή: \'@χρήστης:homeserver.org\'" + "Αυτός ο διακομιστής έχει ρυθμιστεί ώστε να χρησιμοποιεί διακριτικά ανανέωσης. Αυτά δεν υποστηρίζονται όταν χρησιμοποιείς σύνδεση μέσω κωδικού πρόσβασης." + "Ο επιλεγμένος οικιακός διακομιστής δεν υποστηρίζει κωδικό πρόσβασης ή σύνδεση OIDC. Επικοινωνήστε με τον διαχειριστή σου ή επέλεξε άλλο οικιακό διακομιστή." + "Εισήγαγε τα στοιχεία σου" + "Το Matrix είναι ένα ανοιχτό δίκτυο για ασφαλή, αποκεντρωμένη επικοινωνία." + "Καλωσόρισες ξανά!" + "Συνδέσου στο %1$s" + "Εγκαθίδρυση ασφαλούς σύνδεσης" + "Δεν ήταν δυνατή η πραγματοποίηση ασφαλούς σύνδεσης στη νέα συσκευή. Οι υπάρχουσες συσκευές σας εξακολουθούν να είναι ασφαλείς και δεν χρειάζεται να ανησυχείς για αυτές." + "Τί είναι πάλι;" + "Δοκίμασε να συνδεθείς ξανά με έναν κωδικό QR σε περίπτωση που ήταν πρόβλημα του δικτύου" + "Εάν αντιμετωπίσεις το ίδιο πρόβλημα, δοκίμασε ένα διαφορετικό δίκτυο wifi ή χρησιμοποίησε τα δεδομένα του κινητού σου αντί για wifi" + "Εάν δεν λειτουργήσει, συνδέσου χειροκίνητα" + "Η σύνδεση δεν είναι ασφαλής" + "Θα σου ζητηθεί να εισάγεις τα δύο ψηφία που εμφανίζονται σε αυτήν τη συσκευή." + "Εισήγαγε τον παρακάτω αριθμό στην άλλη συσκευή σου" + "Συνδέσου στην άλλη συσκευή σου και στη συνέχεια, δοκίμασε ξανά ή χρησιμοποίησε άλλη συσκευή που είναι ήδη συνδεδεμένη." + "Η άλλη συσκευή δεν έχει συνδεθεί" + "Η σύνδεση ακυρώθηκε στην άλλη συσκευή." + "Το αίτημα σύνδεσης ακυρώθηκε" + "Η σύνδεση απορρίφθηκε στην άλλη συσκευή." + "Η σύνδεση απορρίφθηκε" + "Η είσοδος έληξε. Παρακαλώ προσπάθησε ξανά." + "Η σύνδεση δεν ολοκληρώθηκε εγκαίρως" + "Η άλλη σου συσκευή δεν υποστηρίζει σύνδεση στο %s με κωδικό QR. + +Δοκίμασε να συνδεθείς χειροκίνητα ή σάρωσε τον κωδικό QR με άλλη συσκευή." + "Ο κωδικός QR δεν υποστηρίζεται" + "Ο πάροχος λογαριασμού σου δεν υποστηρίζει το %1$s." + "Το %1$s δεν υποστηρίζεται" + "Έτοιμο για σάρωση" + "Άνοιγμα %1$s σε υπολογιστή" + "Κάνε κλικ στο avatar σου" + "Επιλογή %1$s" + "«Σύνδεση νέας συσκευής»" + "Σάρωσε τον κωδικό QR με αυτήν τη συσκευή" + "Άνοιγμα %1$s σε άλλη συσκευή για να λήψη κωδικού QR" + "Χρησιμοποίησε τον κωδικό QR που εμφανίζεται στην άλλη συσκευή." + "Προσπάθησε ξανά" + "Λάθος κωδικός QR" + "Μετάβαση στις ρυθμίσεις κάμερας" + "Πρέπει να δώσεις άδεια για %1$s για να χρησιμοποιήσεις την κάμερα της συσκευής σου και να συνεχίσεις." + "Επέτρεψε την πρόσβαση της κάμερας για σάρωση του κωδικού QR" + "Σάρωση κωδικού QR" + "Ξανά από την αρχή" + "Παρουσιάστηκε ένα απροσδόκητο σφάλμα. Παρακαλώ προσπάθησε ξανά." + "Αναμονή για την άλλη σου συσκευή" + "Ο πάροχος λογαριασμού σου μπορεί να ζητήσει τον ακόλουθο κωδικό για να επαληθεύσει τη σύνδεση." + "Ο κωδικός επαλήθευσής σου" + "Αλλαγή παρόχου λογαριασμού" + "Ένας ιδιωτικός διακομιστής για υπαλλήλους του Element." + "Το Matrix είναι ένα ανοιχτό δίκτυο για ασφαλή, αποκεντρωμένη επικοινωνία." + "Εδώ θα ζουν οι συνομιλίες σου - όπως θα χρησιμοποιούσες έναν πάροχο email για να διατηρήσεις τα email σου." + "Πρόκειται να συνδεθείς στο %1$s" + "Πρόκειται να δημιουργήσεις έναν λογαριασμό στο %1$s" + "Υπάρχει μεγάλη ζήτηση για το %1$s στον %2$s αυτή τη στιγμή. Επέστρεψε στην εφαρμογή σε λίγες μέρες και δοκίμασε ξανά. + +Ευχαριστώ για την υπομονή σου!" + "Καλώς ήρθες στο %1$s!" + "Σχεδόν τα κατάφερες." + "Είσαι μέσα." + diff --git a/features/login/impl/src/main/res/values-et/translations.xml b/features/login/impl/src/main/res/values-et/translations.xml index 466b28855d..0558b349b4 100644 --- a/features/login/impl/src/main/res/values-et/translations.xml +++ b/features/login/impl/src/main/res/values-et/translations.xml @@ -5,15 +5,65 @@ "Sisesta otsingusõna või domeeni nimi." "Otsi äriühingut, kogukonda või võrgus leiduvat Matrixi serverit." "Leia teenusepakkuja" + "See on koht, kus sinu vestlused elavad – just nagu kasutaksid oma e-kirjade säilitamiseks e-postitenuse pakkujat." "Sa oled sisse logimas %s teenusesse" + "See on koht, kus sinu vestlused elavad – just nagu kasutaksid oma e-kirjade säilitamiseks e-postitenuse pakkujat." "Sa oled loomas kasutajakontot %s teenuses" + "Matrix.org on suur ja tasuta koduserver Matrixi võrgus, mis on mõeldud turvalise ja hajutatud suhtluse jaoks. Selle serveri halduse eest vastutab Matrix.org Foundation." + "Muu teenusepakkuja" + "Kasuta erinevat teenusepakkujat, milleks võib olla ka sinu oma server või töökoha hallatav server." + "Muuda teenusepakkujat" + "Me ei suutnud luuaühendust selle koduserveriga. Palun kontrolli, kas koduserveri aadress on õige. Kui aadress on õige, siis täiendavat teavet oskab sulle anda koduserveri haldaja." + "Sliding sync režiim pole saadaval vea tõttu well-known failis: +%1$s" + "See koduserver hetkel ei toeta Sliding sync režiimi" "Koduserveri url" + "Sa saad luua ühendust vaid olemasoleva serveriga, mis toetab Sliding sync režiimi. Sinu koduserveri haldur peaks selle seadistama. %1$s" "Mis on sinu koduserveri aadress?" "Vali oma server" "Konto on kasutusest eemaldatud." "Vigane kasutajanimi ja/või salasõna" "See ei ole korrektne kasutajanimi. Õige vorming on: „@kasutaja:koduserver.ee“" + "See server on seadistatud kasutama tunnusloa põhist sisselogimist. Salasõnaga sisselogimisel see võimalus aga ei ole toetatud." + "Valitud koduserver ei toeta salasõna ega OIDC-põhist sisselogimist. Lisateavet saad koduserveri haldajalt, aga sa võid ka valida mõne teise serveri." + "Sisesta oma andmed" + "Matrix on avatud võrk turvalise ja hajutatud suhtluse jaoks." + "Tere tulemast tagasi!" + "Logi sisse serverisse %1$s" + "Loome turvalist ühendust" + "Turvalise ühenduse loomine uue seadmega ei õnnestunud. Sinu olemasolevad seadmed on jätkuvalt turvatud ja sa ei pea nende pärast muretsema." + "Mida järgmiseks teeme?" + "Kui see juhtumisi oli võrguühenduse viga, siis proovi uuesti QR-koodiga sisse logida" + "Kui sama probleem kordub, siis kasuta mõnda muud WiFi- või mobiilset andmedsideühendust" + "Kui see ka ei aita, siis logi sisse käsitsi" + "Ühendus pole turvaline" + "Sul palutakse sisestada kaks selles seadmes kuvatud numbrit." + "Sisesta see number oma teises seadmes" + "Logi sisse oma teise seadmesse ja proovi siis uuesti või kasuta mõnda muud oma seadet, mis on juba sisse logitud." + "Teine seade pole sisselogitud" + "Sisselogimine katkestati teises seadmes." + "Sisselogimispäring on tühistatud" + "Sisselogimisest on teise seadmes keeldutud." + "Sisselogimisest on keeldutud" + "Sisselogimine aegus. Palun proovi uuesti." + "Sisselogimine jäi etteantud aja jooksul tegemata" + "Sinu teine seade ei toeta %s sisselogimist QR-koodiga. + +Proovi käsitsi sisselogimist või skaneeri QR-koodi mõne muu seadmega." + "QR-kood pole toetatud" + "Sinu teenusepakkuja ei toeta rakendust %1$s." + "%1$s pole toetatud" + "Skaneerimiseks valmis" + "Ava %1$s töölauarakenduses" + "Klõpsi oma tunnuspilti" + "Vali %1$s" + "„Seo uus seade“" + "Skaneeri QR-koodi selle seadmega" + "QR-koodi saamiseks ava %1$s oma teises seadmes" + "Kasuta teises seadmes näidatavat QR-koodi" "Proovi uuesti" + "Vale QR-kood" + "Ava kaamera seadistused" "Jätkamiseks pead lubama, et %1$s saab kasutada sinu nutiseadme kaamerat" "QR-koodi lugemiseks luba kaamerat kasutada" "Skaneeri QR-koodi" @@ -22,5 +72,16 @@ "Ootame sinu teise seadme järgi" "Sinu teenusepakkuja võib sisselogimisel eeldada selle verifitseerimiskoodi kasutamist." "Sinu verifitseerimiskood" + "Muuda teenusepakujat" + "Privaatne server Elemendi töötajate jaoks." + "Matrix on avatud võrk turvalise ja hajutatud suhtluse jaoks." + "See on koht, kus sinu vestlused elavad – just nagu kasutaksid oma e-kirjade säilitamiseks e-postitenuse pakkujat." + "Sa oled sisselogimas koduserverisse %1$s" + "Sa oled loomas kasutajakontot koduserveris %1$s" + "%1$s kasutamiseks %2$s koduserveris on hetkel palju huvilisi. Proovi seda samast rakendusest mõne päeva pärast. + +Täname kannatlikkuse eest!" "Tere tulemast rakendusse %1$s!" + "Peaaegu olemas." + "Oled nüüd jututoas." diff --git a/features/login/impl/src/main/res/values-it/translations.xml b/features/login/impl/src/main/res/values-it/translations.xml index 7581d61336..dcd9a7c2ae 100644 --- a/features/login/impl/src/main/res/values-it/translations.xml +++ b/features/login/impl/src/main/res/values-it/translations.xml @@ -39,11 +39,26 @@ "La connessione non è sicura" "Ti verrà chiesto di inserire le due cifre mostrate su questo dispositivo." "Inserisci il numero qui sotto sull\'altro dispositivo" + "Accedi all\'altro dispositivo e riprova oppure usa un altro dispositivo che ha già eseguito l\'accesso." + "Altro dispositivo non connesso" + "L\'accesso è stato annullato sull\'altro dispositivo." + "Richiesta di accesso annullata" + "L\'accesso è stato rifiutato sull\'altro dispositivo." + "Accesso rifiutato" + "L\'accesso è scaduto. Riprova." + "L\'accesso non è stato completato in tempo" + "L\'altro dispositivo non supporta l\'accesso a %s con un codice QR. + +Prova ad accedere manualmente o scansiona il codice QR con un altro dispositivo." + "Codice QR non supportato" + "Il tuo fornitore di account non supporta %1$s ." + "%1$s non supportato" + "Pronto per la scansione" "Apri %1$s su un dispositivo desktop" "Clicca sul tuo avatar" "Seleziona %1$s" "\"Collega un nuovo dispositivo\"" - "Segui le istruzioni mostrate" + "Scansiona il codice QR con questo dispositivo" "Apri %1$s su un altro dispositivo per ottenere il codice QR" "Usa il codice QR mostrato sull\'altro dispositivo." "Riprova" diff --git a/features/login/impl/src/main/res/values-pt/translations.xml b/features/login/impl/src/main/res/values-pt/translations.xml index 859eb92d71..f5feb0cbdd 100644 --- a/features/login/impl/src/main/res/values-pt/translations.xml +++ b/features/login/impl/src/main/res/values-pt/translations.xml @@ -83,5 +83,5 @@ Tenta iniciar a sessão manualmente ou digitaliza o código QR com outro disposi Obrigado!" "Bem-vindo à %1$s!" "Estás quase lá." - "Está dentro" + "Estás dentro." diff --git a/features/login/impl/src/main/res/values-ro/translations.xml b/features/login/impl/src/main/res/values-ro/translations.xml index e978485541..1ff3fe2436 100644 --- a/features/login/impl/src/main/res/values-ro/translations.xml +++ b/features/login/impl/src/main/res/values-ro/translations.xml @@ -39,6 +39,20 @@ "Conexiunea nu este sigură" "Vi se va cere să introduceți cele două cifre afișate pe acest dispozitiv." "Introduceți numărul de mai jos pe celălalt dispozitiv" + "Autentificați-vă pe celălalt dispozitiv și apoi încercați din nou sau utilizați un alt dispozitiv care este deja conectat." + "Celălalt dispozitiv nu este conectat" + "Autentificarea a fost anulată de pe celălalt dispozitiv." + "Cererea de autentificare a fost anulată" + "Autentificarea a fost refuzată pe celălalt dispozitiv." + "Autentificarea a fost refuzată" + "Autentificarea a expirat. Vă rugăm să încercați din nou." + "Autentificarea nu a fost finalizată la timp" + "Celălalt dispozitiv nu acceptă autentificarea la %s cu un cod QR. + +Încercați să vă autentificați manual sau să scanați codul QR cu un alt dispozitiv." + "Formatul codului QR nu este acceptat." + "Furnizorul dumneavoastră de cont nu acceptă %1$s." + "%1$s nu este acceptat" "Gata de scanare" "Deschideți %1$s pe un dispozitiv desktop" "Faceți clic pe avatarul dumneavoastră" diff --git a/features/logout/api/build.gradle.kts b/features/logout/api/build.gradle.kts index d2374142a4..85532f5617 100644 --- a/features/logout/api/build.gradle.kts +++ b/features/logout/api/build.gradle.kts @@ -15,7 +15,6 @@ */ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) } android { @@ -26,6 +25,4 @@ dependencies { implementation(projects.libraries.architecture) implementation(projects.libraries.designsystem) implementation(projects.libraries.uiStrings) - - ksp(libs.showkase.processor) } diff --git a/features/logout/impl/build.gradle.kts b/features/logout/impl/build.gradle.kts index 1383384c84..6140e81859 100644 --- a/features/logout/impl/build.gradle.kts +++ b/features/logout/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) } android { @@ -47,7 +46,6 @@ dependencies { implementation(projects.libraries.uiStrings) implementation(projects.libraries.dateformatter.api) api(projects.features.logout.api) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.coroutines.test) diff --git a/features/logout/impl/src/main/res/values-el/translations.xml b/features/logout/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..21cbd34152 --- /dev/null +++ b/features/logout/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,18 @@ + + + "Σίγουρα θες να αποσυνδεθείς;" + "Αποσύνδεση" + "Αποσύνδεση" + "Αποσύνδεση…" + "Πρόκειται να αποσυνδεθείς από την τελευταία σου συνεδρία. Εάν αποσυνδεθείς τώρα, θα χάσεις την πρόσβαση στα κρυπτογραφημένα μηνύματά σου." + "Έχεις απενεργοποιήσει τη δημιουργία αντιγράφων ασφαλείας" + "Εξακολουθούσε να δημιουργείται αντίγραφο ασφαλείας των κλειδιών σου όταν βρέθηκες εκτός σύνδεσης. Επανασυνδέσου, ώστε να είναι δυνατή η δημιουργία αντιγράφων ασφαλείας των κλειδιών σου πριν αποσυνδεθείς." + "Εξακολουθούν να δημιουργούνται αντίγραφα ασφαλείας των κλειδιών σου" + "Περίμενε να ολοκληρωθεί πριν αποσυνδεθείς." + "Εξακολουθούν να δημιουργούνται αντίγραφα ασφαλείας των κλειδιών σου" + "Αποσύνδεση" + "Πρόκειται να αποσυνδεθείς από την τελευταία σου συνεδρία. Εάν αποσυνδεθείς τώρα, θα χάσεις την πρόσβαση στα κρυπτογραφημένα μηνύματά σου." + "Η ανάκτηση δεν έχει ρυθμιστεί" + "Πρόκειται να αποσυνδεθείς από την τελευταία σας συνεδρία. Εάν αποσυνδεθείς τώρα, ενδέχεται να χάσεις την πρόσβαση στα κρυπτογραφημένα μηνύματά σου." + "Έχεις αποθηκεύσει το κλειδί ανάκτησης;" + diff --git a/features/logout/impl/src/main/res/values-et/translations.xml b/features/logout/impl/src/main/res/values-et/translations.xml index 876247ddbd..4bdf169576 100644 --- a/features/logout/impl/src/main/res/values-et/translations.xml +++ b/features/logout/impl/src/main/res/values-et/translations.xml @@ -4,5 +4,15 @@ "Logi välja" "Logi välja" "Logime välja…" + "Oled oma viimasest seansist välja logimas. Kui logid nüüd välja, kaotad ligipääsu oma krüptitud sõnumitele." + "Sa oled varukoopiate tegemise välja lülitanud" + "Kui su võrguühendus katkes, siis sinu krüptovõtmed oli parasjagu varundamisel. Loo võrguühendus uuesti, oota kuni krüptovõtmete varundamine lõppeb ja alles siis logi rakendusest välja." + "Sinu krüptovõtmed on veel varundamisel" + "Enne väljalogimist palun oota, et pooleliolev toiming lõppeb." + "Sinu krüptovõtmed on veel varundamisel" "Logi välja" + "Sa oled logimas välja oma viimasest sessioonist. Kui teed seda nüüd, siis kaotad ligipääsu oma krüptitud sõnumitele." + "Andmete taastamine on seadistamata" + "Sa oled logimas välja oma viimasest sessioonist. Kui teed seda nüüd, siis ilmselt kaotad ligipääsu oma krüptitud sõnumitele." + "Kas sa oled oma taastevõtme salvestanud?" diff --git a/features/messages/impl/build.gradle.kts b/features/messages/impl/build.gradle.kts index 6032d195e6..781a42b2fb 100644 --- a/features/messages/impl/build.gradle.kts +++ b/features/messages/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -104,6 +103,4 @@ dependencies { testImplementation(projects.features.poll.impl) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt index 8859c4ae03..132b8020da 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt @@ -18,7 +18,9 @@ package io.element.android.features.messages.impl import android.os.Parcelable import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier +import androidx.lifecycle.lifecycleScope import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.node @@ -64,12 +66,20 @@ import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.media.MediaSource import io.element.android.libraries.matrix.api.permalink.PermalinkData +import io.element.android.libraries.matrix.api.room.MatrixRoom +import io.element.android.libraries.matrix.api.room.joinedRoomMembers import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo +import io.element.android.libraries.matrix.ui.messages.LocalRoomMemberProfilesCache +import io.element.android.libraries.matrix.ui.messages.RoomMemberProfilesCache import io.element.android.libraries.mediaviewer.api.local.MediaInfo import io.element.android.libraries.mediaviewer.api.viewer.MediaViewerNode +import io.element.android.libraries.textcomposer.mentions.LocalMentionSpanProvider +import io.element.android.libraries.textcomposer.mentions.MentionSpanProvider import io.element.android.services.analytics.api.AnalyticsService import io.element.android.services.analyticsproviders.api.trackers.captureInteraction import kotlinx.collections.immutable.ImmutableList +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach import kotlinx.parcelize.Parcelize @ContributesNode(RoomScope::class) @@ -82,6 +92,9 @@ class MessagesFlowNode @AssistedInject constructor( private val createPollEntryPoint: CreatePollEntryPoint, private val elementCallEntryPoint: ElementCallEntryPoint, private val analyticsService: AnalyticsService, + private val room: MatrixRoom, + private val roomMemberProfilesCache: RoomMemberProfilesCache, + mentionSpanProviderFactory: MentionSpanProvider.Factory, ) : BaseFlowNode( backstack = BackStack( initialElement = NavTarget.Messages, @@ -137,6 +150,18 @@ class MessagesFlowNode @AssistedInject constructor( private val callback = plugins().firstOrNull() + private val mentionSpanProvider = mentionSpanProviderFactory.create(room.sessionId.value) + + override fun onBuilt() { + super.onBuilt() + + room.membersStateFlow + .onEach { membersState -> + roomMemberProfilesCache.replace(membersState.joinedRoomMembers()) + } + .launchIn(lifecycleScope) + } + override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node { return when (navTarget) { is NavTarget.Messages -> { @@ -345,6 +370,13 @@ class MessagesFlowNode @AssistedInject constructor( @Composable override fun View(modifier: Modifier) { - BackstackWithOverlayBox(modifier) + mentionSpanProvider.updateStyles() + + CompositionLocalProvider( + LocalRoomMemberProfilesCache provides roomMemberProfilesCache, + LocalMentionSpanProvider provides mentionSpanProvider, + ) { + BackstackWithOverlayBox(modifier) + } } } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt index e542dfc563..d1e3f87fe3 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt @@ -26,6 +26,7 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.lifecycle.Lifecycle import com.bumble.appyx.core.lifecycle.subscribe import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node @@ -35,6 +36,7 @@ import dagger.assisted.Assisted import dagger.assisted.AssistedInject import io.element.android.anvilannotations.ContributesNode import io.element.android.features.messages.impl.attachments.Attachment +import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents import io.element.android.features.messages.impl.timeline.TimelineController import io.element.android.features.messages.impl.timeline.TimelineEvents import io.element.android.features.messages.impl.timeline.di.LocalTimelineItemPresenterFactories @@ -45,6 +47,7 @@ import io.element.android.libraries.androidutils.system.toast import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.architecture.inputs import io.element.android.libraries.core.bool.orFalse +import io.element.android.libraries.designsystem.utils.OnLifecycleEvent import io.element.android.libraries.di.ApplicationContext import io.element.android.libraries.di.RoomScope import io.element.android.libraries.matrix.api.analytics.toAnalyticsViewRoom @@ -195,6 +198,12 @@ class MessagesNode @AssistedInject constructor( LocalTimelineItemPresenterFactories provides timelineItemPresenterFactories, ) { val state = presenter.present() + OnLifecycleEvent { _, event -> + when (event) { + Lifecycle.Event.ON_PAUSE -> state.composerState.eventSink(MessageComposerEvents.SaveDraft) + else -> Unit + } + } MessagesView( state = state, onBackClick = this::navigateUp, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt index 065c81e407..fc8a8c3975 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt @@ -47,23 +47,10 @@ import io.element.android.features.messages.impl.timeline.components.customreact import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryPresenter import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetPresenter import io.element.android.features.messages.impl.timeline.model.TimelineItem -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemAudioContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemCallNotifyContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEncryptedContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemFileContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemImageContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLegacyCallInviteContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLocationContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemRedactedContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStickerContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemTextBasedContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemUnknownContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVideoContent -import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent import io.element.android.features.messages.impl.typing.TypingNotificationPresenter -import io.element.android.features.messages.impl.utils.messagesummary.MessageSummaryFormatter import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessageComposerPresenter import io.element.android.features.networkmonitor.api.NetworkMonitor import io.element.android.features.networkmonitor.api.NetworkStatus @@ -80,24 +67,27 @@ import io.element.android.libraries.designsystem.utils.snackbar.collectSnackbarM import io.element.android.libraries.featureflag.api.FeatureFlagService import io.element.android.libraries.featureflag.api.FeatureFlags import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.permalink.PermalinkParser import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.room.MatrixRoomInfo import io.element.android.libraries.matrix.api.room.MatrixRoomMembersState import io.element.android.libraries.matrix.api.room.MessageEventType -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType +import io.element.android.libraries.matrix.ui.messages.reply.map +import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.matrix.ui.room.canCall import io.element.android.libraries.matrix.ui.room.canRedactOtherAsState import io.element.android.libraries.matrix.ui.room.canRedactOwnAsState import io.element.android.libraries.matrix.ui.room.canSendMessageAsState import io.element.android.libraries.textcomposer.model.MessageComposerMode import io.element.android.libraries.ui.strings.CommonStrings +import kotlinx.collections.immutable.toPersistentList import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import timber.log.Timber class MessagesPresenter @AssistedInject constructor( + @Assisted private val navigator: MessagesNavigator, private val room: MatrixRoom, private val composerPresenter: MessageComposerPresenter, private val voiceMessageComposerPresenter: VoiceMessageComposerPresenter, @@ -109,14 +99,13 @@ class MessagesPresenter @AssistedInject constructor( private val readReceiptBottomSheetPresenter: ReadReceiptBottomSheetPresenter, private val networkMonitor: NetworkMonitor, private val snackbarDispatcher: SnackbarDispatcher, - private val messageSummaryFormatter: MessageSummaryFormatter, private val dispatchers: CoroutineDispatchers, private val clipboardHelper: ClipboardHelper, private val featureFlagsService: FeatureFlagService, private val htmlConverterProvider: HtmlConverterProvider, - @Assisted private val navigator: MessagesNavigator, private val buildMeta: BuildMeta, private val timelineController: TimelineController, + private val permalinkParser: PermalinkParser, ) : Presenter { private val timelinePresenter = timelinePresenterFactory.create(navigator = navigator) @@ -151,6 +140,9 @@ class MessagesPresenter @AssistedInject constructor( val roomAvatar: AsyncData by remember { derivedStateOf { roomInfo?.avatarData()?.let { AsyncData.Success(it) } ?: AsyncData.Uninitialized } } + val heroes by remember { + derivedStateOf { roomInfo?.heroes().orEmpty().toPersistentList() } + } var hasDismissedInviteDialog by rememberSaveable { mutableStateOf(false) @@ -217,6 +209,7 @@ class MessagesPresenter @AssistedInject constructor( roomId = room.roomId, roomName = roomName, roomAvatar = roomAvatar, + heroes = heroes, userHasPermissionToSendMessage = userHasPermissionToSendMessage, userHasPermissionToRedactOwn = userHasPermissionToRedactOwn, userHasPermissionToRedactOther = userHasPermissionToRedactOther, @@ -250,6 +243,12 @@ class MessagesPresenter @AssistedInject constructor( ) } + private fun MatrixRoomInfo.heroes(): List { + return heroes.map { user -> + user.getAvatarData(size = AvatarSize.TimelineRoom) + } + } + private fun CoroutineScope.handleTimelineAction( action: TimelineItemAction, targetEvent: TimelineItem.Event, @@ -324,6 +323,7 @@ class MessagesPresenter @AssistedInject constructor( else -> { val composerMode = MessageComposerMode.Edit( targetEvent.eventId, + targetEvent.transactionId, (targetEvent.content as? TimelineItemTextBasedContent)?.let { if (enableTextFormatting) { it.htmlBody ?: it.body @@ -331,7 +331,6 @@ class MessagesPresenter @AssistedInject constructor( it.body } }.orEmpty(), - targetEvent.transactionId, ) composerState.eventSink( MessageComposerEvents.SetMode(composerMode) @@ -340,66 +339,15 @@ class MessagesPresenter @AssistedInject constructor( } } - private fun handleActionReply(targetEvent: TimelineItem.Event, composerState: MessageComposerState) { + private suspend fun handleActionReply(targetEvent: TimelineItem.Event, composerState: MessageComposerState) { if (targetEvent.eventId == null) return - val textContent = messageSummaryFormatter.format(targetEvent) - val attachmentThumbnailInfo = when (targetEvent.content) { - is TimelineItemImageContent -> AttachmentThumbnailInfo( - thumbnailSource = targetEvent.content.thumbnailSource ?: targetEvent.content.mediaSource, - textContent = targetEvent.content.body, - type = AttachmentThumbnailType.Image, - blurHash = targetEvent.content.blurhash, - ) - is TimelineItemStickerContent -> AttachmentThumbnailInfo( - thumbnailSource = targetEvent.content.thumbnailSource ?: targetEvent.content.mediaSource, - textContent = targetEvent.content.body, - type = AttachmentThumbnailType.Image, - blurHash = targetEvent.content.blurhash, - ) - is TimelineItemVideoContent -> AttachmentThumbnailInfo( - thumbnailSource = targetEvent.content.thumbnailSource, - textContent = targetEvent.content.body, - type = AttachmentThumbnailType.Video, - blurHash = targetEvent.content.blurHash, - ) - is TimelineItemFileContent -> AttachmentThumbnailInfo( - thumbnailSource = targetEvent.content.thumbnailSource, - textContent = targetEvent.content.body, - type = AttachmentThumbnailType.File, - ) - is TimelineItemAudioContent -> AttachmentThumbnailInfo( - textContent = targetEvent.content.body, - type = AttachmentThumbnailType.Audio, - ) - is TimelineItemVoiceContent -> AttachmentThumbnailInfo( - textContent = textContent, - type = AttachmentThumbnailType.Voice, - ) - is TimelineItemLocationContent -> AttachmentThumbnailInfo( - type = AttachmentThumbnailType.Location, - ) - is TimelineItemPollContent -> AttachmentThumbnailInfo( - textContent = targetEvent.content.question, - type = AttachmentThumbnailType.Poll, + timelineController.invokeOnCurrentTimeline { + val replyToDetails = loadReplyDetails(targetEvent.eventId).map(permalinkParser) + val composerMode = MessageComposerMode.Reply(replyToDetails = replyToDetails) + composerState.eventSink( + MessageComposerEvents.SetMode(composerMode) ) - is TimelineItemTextBasedContent, - is TimelineItemRedactedContent, - is TimelineItemStateContent, - is TimelineItemEncryptedContent, - is TimelineItemLegacyCallInviteContent, - is TimelineItemCallNotifyContent, - is TimelineItemUnknownContent -> null } - val composerMode = MessageComposerMode.Reply( - isThreaded = targetEvent.isThreaded, - senderName = targetEvent.safeSenderName, - eventId = targetEvent.eventId, - attachmentThumbnailInfo = attachmentThumbnailInfo, - defaultContent = textContent, - ) - composerState.eventSink( - MessageComposerEvents.SetMode(composerMode) - ) } private fun handleShowDebugInfoAction(event: TimelineItem.Event) { diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt index 752aa94a9f..e8657d70bd 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt @@ -29,12 +29,14 @@ import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage import io.element.android.libraries.matrix.api.core.RoomId +import kotlinx.collections.immutable.ImmutableList @Immutable data class MessagesState( val roomId: RoomId, val roomName: AsyncData, val roomAvatar: AsyncData, + val heroes: ImmutableList, val userHasPermissionToSendMessage: Boolean, val userHasPermissionToRedactOwn: Boolean, val userHasPermissionToRedactOther: Boolean, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt index 526edfb1e7..1396d3e17c 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt @@ -99,8 +99,8 @@ fun aMessagesState( userHasPermissionToSendReaction: Boolean = true, composerState: MessageComposerState = aMessageComposerState( textEditorState = TextEditorState.Rich(aRichTextEditorState(initialText = "Hello", initialFocus = true)), - isFullScreen = false, - mode = MessageComposerMode.Normal, + isFullScreen = false, + mode = MessageComposerMode.Normal, ), voiceMessageComposerState: VoiceMessageComposerState = aVoiceMessageComposerState(), timelineState: TimelineState = aTimelineState( @@ -121,6 +121,7 @@ fun aMessagesState( roomId = RoomId("!id:domain"), roomName = roomName, roomAvatar = roomAvatar, + heroes = persistentListOf(), userHasPermissionToSendMessage = userHasPermissionToSendMessage, userHasPermissionToRedactOwn = userHasPermissionToRedactOwn, userHasPermissionToRedactOther = userHasPermissionToRedactOther, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt index b8997865ce..24439c0c75 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt @@ -33,6 +33,7 @@ import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.statusBars import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable @@ -43,6 +44,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberUpdatedState import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.input.nestedscroll.NestedScrollConnection @@ -83,9 +85,9 @@ import io.element.android.libraries.androidutils.ui.hideKeyboard import io.element.android.libraries.designsystem.atomic.molecules.IconTitlePlaceholdersRowMolecule import io.element.android.libraries.designsystem.components.ProgressDialog import io.element.android.libraries.designsystem.components.ProgressDialogType -import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.designsystem.components.avatar.CompositeAvatar import io.element.android.libraries.designsystem.components.button.BackButton import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog import io.element.android.libraries.designsystem.preview.ElementPreview @@ -187,6 +189,7 @@ fun MessagesView( MessagesViewTopBar( roomName = state.roomName.dataOrNull(), roomAvatar = state.roomAvatar.dataOrNull(), + heroes = state.heroes, callState = state.callState, onBackClick = { // Since the textfield is now based on an Android view, this is no longer done automatically. @@ -442,6 +445,7 @@ private fun MessagesViewComposerBottomSheetContents( private fun MessagesViewTopBar( roomName: String?, roomAvatar: AvatarData?, + heroes: ImmutableList, callState: RoomCallState, onRoomDetailsClick: () -> Unit, onJoinCallClick: () -> Unit, @@ -452,11 +456,15 @@ private fun MessagesViewTopBar( BackButton(onClick = onBackClick) }, title = { - val titleModifier = Modifier.clickable { onRoomDetailsClick() } + val roundedCornerShape = RoundedCornerShape(8.dp) + val titleModifier = Modifier + .clip(roundedCornerShape) + .clickable { onRoomDetailsClick() } if (roomName != null && roomAvatar != null) { RoomAvatarAndNameRow( roomName = roomName, roomAvatar = roomAvatar, + heroes = heroes, modifier = titleModifier ) } else { @@ -500,15 +508,19 @@ private fun CallMenuItem( private fun RoomAvatarAndNameRow( roomName: String, roomAvatar: AvatarData, + heroes: ImmutableList, modifier: Modifier = Modifier ) { Row( modifier = modifier, verticalAlignment = Alignment.CenterVertically ) { - Avatar(roomAvatar) - Spacer(modifier = Modifier.width(8.dp)) + CompositeAvatar( + avatarData = roomAvatar, + heroes = heroes, + ) Text( + modifier = Modifier.padding(horizontal = 8.dp), text = roomName, style = ElementTheme.typography.fontBodyLgMedium, maxLines = 1, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenter.kt index eedf34b833..d1a19b600d 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenter.kt @@ -104,7 +104,9 @@ class ActionListPresenter @Inject constructor( is TimelineItemStateContent -> { buildList { add(TimelineItemAction.Copy) - add(TimelineItemAction.CopyLink) + if (timelineItem.isRemote) { + add(TimelineItemAction.CopyLink) + } if (isDeveloperModeEnabled) { add(TimelineItemAction.ViewSource) } @@ -128,7 +130,9 @@ class ActionListPresenter @Inject constructor( if (timelineItem.content.canBeCopied()) { add(TimelineItemAction.Copy) } - add(TimelineItemAction.CopyLink) + if (timelineItem.isRemote) { + add(TimelineItemAction.CopyLink) + } if (isDeveloperModeEnabled) { add(TimelineItemAction.ViewSource) } @@ -145,8 +149,8 @@ class ActionListPresenter @Inject constructor( if (timelineItem.isRemote) { add(TimelineItemAction.Reply) add(TimelineItemAction.Forward) + add(TimelineItemAction.CopyLink) } - add(TimelineItemAction.CopyLink) if (isDeveloperModeEnabled) { add(TimelineItemAction.ViewSource) } @@ -187,7 +191,9 @@ class ActionListPresenter @Inject constructor( if (timelineItem.content.canBeCopied()) { add(TimelineItemAction.Copy) } - add(TimelineItemAction.CopyLink) + if (timelineItem.isRemote) { + add(TimelineItemAction.CopyLink) + } if (isDeveloperModeEnabled) { add(TimelineItemAction.ViewSource) } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt index e9588ea55f..ed6fffb90f 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt @@ -55,8 +55,6 @@ import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction -import io.element.android.features.messages.impl.sender.SenderName -import io.element.android.features.messages.impl.sender.SenderNameMode import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.model.event.TimelineItemAudioContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemCallNotifyContent @@ -88,6 +86,8 @@ import io.element.android.libraries.designsystem.theme.components.ListItemStyle import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.hide +import io.element.android.libraries.matrix.ui.messages.sender.SenderName +import io.element.android.libraries.matrix.ui.messages.sender.SenderNameMode import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.collections.immutable.ImmutableList diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/ComposerDraftService.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/ComposerDraftService.kt new file mode 100644 index 0000000000..cc91004411 --- /dev/null +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/ComposerDraftService.kt @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.impl.draft + +import io.element.android.libraries.matrix.api.core.RoomId +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft + +interface ComposerDraftService { + suspend fun loadDraft(roomId: RoomId, isVolatile: Boolean): ComposerDraft? + suspend fun updateDraft(roomId: RoomId, draft: ComposerDraft?, isVolatile: Boolean) +} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/ComposerDraftStore.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/ComposerDraftStore.kt new file mode 100644 index 0000000000..ab36e99a42 --- /dev/null +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/ComposerDraftStore.kt @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.impl.draft + +import io.element.android.libraries.matrix.api.core.RoomId +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft + +interface ComposerDraftStore { + suspend fun loadDraft(roomId: RoomId): ComposerDraft? + suspend fun updateDraft(roomId: RoomId, draft: ComposerDraft?) +} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/DefaultComposerDraftService.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/DefaultComposerDraftService.kt new file mode 100644 index 0000000000..16ea05b4c7 --- /dev/null +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/DefaultComposerDraftService.kt @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.impl.draft + +import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.libraries.di.RoomScope +import io.element.android.libraries.matrix.api.core.RoomId +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft +import javax.inject.Inject + +@ContributesBinding(RoomScope::class) +class DefaultComposerDraftService @Inject constructor( + private val volatileComposerDraftStore: VolatileComposerDraftStore, + private val matrixComposerDraftStore: MatrixComposerDraftStore, +) : ComposerDraftService { + override suspend fun loadDraft(roomId: RoomId, isVolatile: Boolean): ComposerDraft? { + return getStore(isVolatile).loadDraft(roomId) + } + + override suspend fun updateDraft(roomId: RoomId, draft: ComposerDraft?, isVolatile: Boolean) { + getStore(isVolatile).updateDraft(roomId, draft) + } + + private fun getStore(isVolatile: Boolean): ComposerDraftStore { + return if (isVolatile) { + volatileComposerDraftStore + } else { + matrixComposerDraftStore + } + } +} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/MatrixComposerDraftStore.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/MatrixComposerDraftStore.kt new file mode 100644 index 0000000000..b9679e566c --- /dev/null +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/MatrixComposerDraftStore.kt @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.impl.draft + +import io.element.android.libraries.matrix.api.MatrixClient +import io.element.android.libraries.matrix.api.core.RoomId +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft +import timber.log.Timber +import javax.inject.Inject + +/** + * A draft store that persists drafts in the room state. + * It can be used to store drafts that should be persisted across app restarts. + */ +class MatrixComposerDraftStore @Inject constructor( + private val client: MatrixClient, +) : ComposerDraftStore { + override suspend fun loadDraft(roomId: RoomId): ComposerDraft? { + return client.getRoom(roomId)?.use { room -> + room.loadComposerDraft() + .onFailure { + Timber.e(it, "Failed to load composer draft for room $roomId") + } + .onSuccess { draft -> + room.clearComposerDraft() + Timber.d("Loaded composer draft for room $roomId : $draft") + } + .getOrNull() + } + } + + override suspend fun updateDraft(roomId: RoomId, draft: ComposerDraft?) { + client.getRoom(roomId)?.use { room -> + val updateDraftResult = if (draft == null) { + room.clearComposerDraft() + } else { + room.saveComposerDraft(draft) + } + updateDraftResult + .onFailure { + Timber.e(it, "Failed to update composer draft for room $roomId") + } + .onSuccess { + Timber.d("Updated composer draft for room $roomId") + } + } + } +} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/VolatileComposerDraftStore.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/VolatileComposerDraftStore.kt new file mode 100644 index 0000000000..ab955fee42 --- /dev/null +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/draft/VolatileComposerDraftStore.kt @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.impl.draft + +import io.element.android.libraries.matrix.api.core.RoomId +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft +import javax.inject.Inject + +/** + * A volatile draft store that keeps drafts in memory only. + * It can be used to store drafts that should not be persisted across app restarts. + * Currently it's used to store draft message when moving to edit mode. + */ +class VolatileComposerDraftStore @Inject constructor() : ComposerDraftStore { + private val drafts: MutableMap = mutableMapOf() + + override suspend fun loadDraft(roomId: RoomId): ComposerDraft? { + // Remove the draft from the map when it is loaded + return drafts.remove(roomId) + } + + override suspend fun updateDraft(roomId: RoomId, draft: ComposerDraft?) { + if (draft == null) { + drafts.remove(roomId) + } else { + drafts[roomId] = draft + } + } +} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/mentions/MentionSuggestionsPickerView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/mentions/MentionSuggestionsPickerView.kt index 9af2407657..48c626680e 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/mentions/MentionSuggestionsPickerView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/mentions/MentionSuggestionsPickerView.kt @@ -93,14 +93,14 @@ private fun RoomMemberSuggestionItemView( modifier: Modifier = Modifier, ) { Row(modifier = modifier.clickable { onSelectSuggestion(memberSuggestion) }, horizontalArrangement = Arrangement.spacedBy(16.dp)) { - val avatarSize = AvatarSize.TimelineRoom val avatarData = when (memberSuggestion) { - is ResolvedMentionSuggestion.AtRoom -> roomAvatar?.copy(size = avatarSize) ?: AvatarData(roomId, roomName, null, avatarSize) + is ResolvedMentionSuggestion.AtRoom -> roomAvatar?.copy(size = AvatarSize.Suggestion) + ?: AvatarData(roomId, roomName, null, AvatarSize.Suggestion) is ResolvedMentionSuggestion.Member -> AvatarData( - memberSuggestion.roomMember.userId.value, - memberSuggestion.roomMember.displayName, - memberSuggestion.roomMember.avatarUrl, - avatarSize, + id = memberSuggestion.roomMember.userId.value, + name = memberSuggestion.roomMember.displayName, + url = memberSuggestion.roomMember.avatarUrl, + size = AvatarSize.Suggestion, ) } val title = when (memberSuggestion) { diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerEvents.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerEvents.kt index 19ca038bd2..1f6ae7c7f4 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerEvents.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerEvents.kt @@ -45,4 +45,5 @@ sealed interface MessageComposerEvents { data class TypingNotice(val isTyping: Boolean) : MessageComposerEvents data class SuggestionReceived(val suggestion: Suggestion?) : MessageComposerEvents data class InsertMention(val mention: ResolvedMentionSuggestion) : MessageComposerEvents + data object SaveDraft : MessageComposerEvents } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt index 27970697bb..9a80985bd0 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt @@ -39,6 +39,7 @@ import im.vector.app.features.analytics.plan.Composer import im.vector.app.features.analytics.plan.Interaction import io.element.android.features.messages.impl.attachments.Attachment import io.element.android.features.messages.impl.attachments.preview.error.sendAttachmentError +import io.element.android.features.messages.impl.draft.ComposerDraftService import io.element.android.features.messages.impl.mentions.MentionSuggestionsProcessor import io.element.android.features.messages.impl.timeline.TimelineController import io.element.android.libraries.architecture.Presenter @@ -54,15 +55,19 @@ import io.element.android.libraries.matrix.api.permalink.PermalinkBuilder import io.element.android.libraries.matrix.api.permalink.PermalinkParser import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.room.Mention -import io.element.android.libraries.matrix.api.user.CurrentSessionIdHolder +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft +import io.element.android.libraries.matrix.api.room.draft.ComposerDraftType +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.map import io.element.android.libraries.mediapickers.api.PickerProvider import io.element.android.libraries.mediaupload.api.MediaSender import io.element.android.libraries.mediaviewer.api.local.LocalMediaFactory import io.element.android.libraries.permissions.api.PermissionsEvents import io.element.android.libraries.permissions.api.PermissionsPresenter import io.element.android.libraries.preferences.api.store.SessionPreferencesStore +import io.element.android.libraries.textcomposer.mentions.LocalMentionSpanProvider import io.element.android.libraries.textcomposer.mentions.ResolvedMentionSuggestion -import io.element.android.libraries.textcomposer.mentions.rememberMentionSpanProvider +import io.element.android.libraries.textcomposer.model.MarkdownTextEditorState import io.element.android.libraries.textcomposer.model.Message import io.element.android.libraries.textcomposer.model.MessageComposerMode import io.element.android.libraries.textcomposer.model.Suggestion @@ -70,6 +75,7 @@ import io.element.android.libraries.textcomposer.model.TextEditorState import io.element.android.libraries.textcomposer.model.rememberMarkdownTextEditorState import io.element.android.services.analytics.api.AnalyticsService import io.element.android.services.analyticsproviders.api.trackers.captureInteraction +import io.element.android.wysiwyg.compose.RichTextEditorState import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toPersistentList import kotlinx.coroutines.CancellationException @@ -104,15 +110,14 @@ class MessageComposerPresenter @Inject constructor( private val analyticsService: AnalyticsService, private val messageComposerContext: DefaultMessageComposerContext, private val richTextEditorStateFactory: RichTextEditorStateFactory, - private val currentSessionIdHolder: CurrentSessionIdHolder, private val permalinkParser: PermalinkParser, private val permalinkBuilder: PermalinkBuilder, permissionsPresenterFactory: PermissionsPresenter.Factory, private val timelineController: TimelineController, + private val draftService: ComposerDraftService, ) : Presenter { private val cameraPermissionPresenter = permissionsPresenterFactory.create(Manifest.permission.CAMERA) private var pendingEvent: MessageComposerEvents? = null - private val suggestionSearchTrigger = MutableStateFlow(null) // Used to disable some UI related elements in tests @@ -128,8 +133,6 @@ class MessageComposerPresenter @Inject constructor( override fun present(): MessageComposerState { val localCoroutineScope = rememberCoroutineScope() - // Initially disabled so we don't set focus and text twice - var applyFormattingModeChanges by remember { mutableStateOf(false) } val richTextEditorState = richTextEditorStateFactory.remember() if (isTesting) { richTextEditorState.isReadyToProcessActions = true @@ -177,18 +180,6 @@ class MessageComposerPresenter @Inject constructor( val sendTypingNotifications by sessionPreferencesStore.isSendTypingNotificationsEnabled().collectAsState(initial = true) - LaunchedEffect(messageComposerContext.composerMode) { - when (val modeValue = messageComposerContext.composerMode) { - is MessageComposerMode.Edit -> - if (showTextFormatting) { - richTextEditorState.setHtml(modeValue.defaultContent) - } else { - markdownTextEditorState.text.update(modeValue.defaultContent, true) - } - else -> Unit - } - } - LaunchedEffect(attachmentsState.value) { when (val attachmentStateValue = attachmentsState.value) { is AttachmentsState.Sending.Processing -> { @@ -215,7 +206,7 @@ class MessageComposerPresenter @Inject constructor( val memberSuggestions = remember { mutableStateListOf() } LaunchedEffect(isMentionsEnabled) { if (!isMentionsEnabled) return@LaunchedEffect - val currentUserId = currentSessionIdHolder.current + val currentUserId = room.sessionId suspend fun canSendRoomMention(): Boolean { val userCanSendAtRoom = room.canUserTriggerRoomNotification(currentUserId).getOrDefault(false) @@ -261,32 +252,14 @@ class MessageComposerPresenter @Inject constructor( } ) - LaunchedEffect(showTextFormatting) { - if (!applyFormattingModeChanges) { - applyFormattingModeChanges = true - return@LaunchedEffect - } - if (showTextFormatting) { - val markdown = markdownTextEditorState.getMessageMarkdown(permalinkBuilder) - richTextEditorState.setMarkdown(markdown) - richTextEditorState.requestFocus() - } else { - val markdown = richTextEditorState.messageMarkdown - markdownTextEditorState.text.update(markdown, true) - // Give some time for the focus of the previous editor to be cleared - delay(100) - markdownTextEditorState.requestFocusAction() + LaunchedEffect(Unit) { + val draft = draftService.loadDraft(room.roomId, isVolatile = false) + if (draft != null) { + applyDraft(draft, markdownTextEditorState, richTextEditorState) } } - val mentionSpanProvider = if (isTesting) { - null - } else { - rememberMentionSpanProvider( - currentUserId = room.sessionId, - permalinkParser = permalinkParser, - ) - } + val mentionSpanProvider = LocalMentionSpanProvider.current fun handleEvents(event: MessageComposerEvents) { when (event) { @@ -294,26 +267,16 @@ class MessageComposerPresenter @Inject constructor( MessageComposerEvents.CloseSpecialMode -> { if (messageComposerContext.composerMode is MessageComposerMode.Edit) { localCoroutineScope.launch { - textEditorState.reset() + resetComposer(markdownTextEditorState, richTextEditorState, fromEdit = true) } + } else { + messageComposerContext.composerMode = MessageComposerMode.Normal } - messageComposerContext.composerMode = MessageComposerMode.Normal } is MessageComposerEvents.SendMessage -> { - val html = if (showTextFormatting) { - richTextEditorState.messageHtml - } else { - null - } - val markdown = if (showTextFormatting) { - richTextEditorState.messageMarkdown - } else { - markdownTextEditorState.getMessageMarkdown(permalinkBuilder) - } appCoroutineScope.sendMessage( - message = Message(html = html, markdown = markdown), - updateComposerMode = { messageComposerContext.composerMode = it }, - textEditorState = textEditorState, + markdownTextEditorState = markdownTextEditorState, + richTextEditorState = richTextEditorState, ) } is MessageComposerEvents.SendUri -> appCoroutineScope.sendAttachment( @@ -329,19 +292,7 @@ class MessageComposerPresenter @Inject constructor( attachmentState = attachmentsState, ) is MessageComposerEvents.SetMode -> { - messageComposerContext.composerMode = event.composerMode - when (event.composerMode) { - is MessageComposerMode.Reply -> event.composerMode.eventId - is MessageComposerMode.Edit -> event.composerMode.eventId - is MessageComposerMode.Normal -> null - is MessageComposerMode.Quote -> null - }.let { relatedEventId -> - appCoroutineScope.launch { - timelineController.invokeOnCurrentTimeline { - enterSpecialMode(relatedEventId) - } - } - } + localCoroutineScope.setMode(event.composerMode, markdownTextEditorState, richTextEditorState) } MessageComposerEvents.AddAttachment -> localCoroutineScope.launch { showAttachmentSourcePicker = true @@ -389,10 +340,7 @@ class MessageComposerPresenter @Inject constructor( } is MessageComposerEvents.ToggleTextFormatting -> { showAttachmentSourcePicker = false - showTextFormatting = event.enabled - if (showTextFormatting) { - analyticsService.captureInteraction(Interaction.Name.MobileRoomComposerFormattingEnabled) - } + localCoroutineScope.toggleTextFormatting(event.enabled, markdownTextEditorState, richTextEditorState) } is MessageComposerEvents.Error -> { analyticsService.trackError(event.error) @@ -415,23 +363,25 @@ class MessageComposerPresenter @Inject constructor( richTextEditorState.insertAtRoomMentionAtSuggestion() } is ResolvedMentionSuggestion.Member -> { - val text = mention.roomMember.displayName?.prependIndent("@") ?: mention.roomMember.userId.value + val text = mention.roomMember.userId.value val link = permalinkBuilder.permalinkForUser(mention.roomMember.userId).getOrNull() ?: return@launch richTextEditorState.insertMentionAtSuggestion(text = text, link = link) } } } else if (markdownTextEditorState.currentMentionSuggestion != null) { - mentionSpanProvider?.let { - markdownTextEditorState.insertMention( - mention = event.mention, - mentionSpanProvider = it, - permalinkBuilder = permalinkBuilder, - ) - } + markdownTextEditorState.insertMention( + mention = event.mention, + mentionSpanProvider = mentionSpanProvider, + permalinkBuilder = permalinkBuilder, + ) suggestionSearchTrigger.value = null } } } + MessageComposerEvents.SaveDraft -> { + val draft = createDraftFromState(markdownTextEditorState, richTextEditorState) + appCoroutineScope.updateDraft(draft, isVolatile = false) + } } } @@ -446,49 +396,31 @@ class MessageComposerPresenter @Inject constructor( canCreatePoll = canCreatePoll.value, attachmentsState = attachmentsState.value, memberSuggestions = memberSuggestions.toPersistentList(), - currentUserId = currentSessionIdHolder.current, eventSink = { handleEvents(it) } ) } private fun CoroutineScope.sendMessage( - message: Message, - updateComposerMode: (newComposerMode: MessageComposerMode) -> Unit, - textEditorState: TextEditorState, + markdownTextEditorState: MarkdownTextEditorState, + richTextEditorState: RichTextEditorState, ) = launch { + val message = currentComposerMessage(markdownTextEditorState, richTextEditorState, withMentions = true) val capturedMode = messageComposerContext.composerMode - val mentions = when (textEditorState) { - is TextEditorState.Rich -> { - textEditorState.richTextEditorState.mentionsState?.let { state -> - buildList { - if (state.hasAtRoomMention) { - add(Mention.AtRoom) - } - for (userId in state.userIds) { - add(Mention.User(UserId(userId))) - } - } - }.orEmpty() - } - is TextEditorState.Markdown -> textEditorState.state.getMentions() - } // Reset composer right away - textEditorState.reset() - updateComposerMode(MessageComposerMode.Normal) + resetComposer(markdownTextEditorState, richTextEditorState, fromEdit = capturedMode is MessageComposerMode.Edit) when (capturedMode) { - is MessageComposerMode.Normal -> room.sendMessage(body = message.markdown, htmlBody = message.html, mentions = mentions) + is MessageComposerMode.Normal -> room.sendMessage(body = message.markdown, htmlBody = message.html, mentions = message.mentions) is MessageComposerMode.Edit -> { val eventId = capturedMode.eventId val transactionId = capturedMode.transactionId timelineController.invokeOnCurrentTimeline { - editMessage(eventId, transactionId, message.markdown, message.html, mentions) + editMessage(eventId, transactionId, message.markdown, message.html, message.mentions) } } - is MessageComposerMode.Quote -> TODO() is MessageComposerMode.Reply -> { timelineController.invokeOnCurrentTimeline { - replyMessage(capturedMode.eventId, message.markdown, message.html, mentions) + replyMessage(capturedMode.eventId, message.markdown, message.html, message.mentions) } } } @@ -582,4 +514,183 @@ class MessageComposerPresenter @Inject constructor( snackbarDispatcher.post(snackbarMessage) } } + + private fun CoroutineScope.updateDraft( + draft: ComposerDraft?, + isVolatile: Boolean, + ) = launch { + draftService.updateDraft( + roomId = room.roomId, + draft = draft, + isVolatile = isVolatile + ) + } + + private suspend fun applyDraft( + draft: ComposerDraft, + markdownTextEditorState: MarkdownTextEditorState, + richTextEditorState: RichTextEditorState, + ) { + val htmlText = draft.htmlText + val markdownText = draft.plainText + if (htmlText != null) { + showTextFormatting = true + setText(htmlText, markdownTextEditorState, richTextEditorState, requestFocus = true) + } else { + showTextFormatting = false + setText(markdownText, markdownTextEditorState, richTextEditorState, requestFocus = true) + } + when (val draftType = draft.draftType) { + ComposerDraftType.NewMessage -> messageComposerContext.composerMode = MessageComposerMode.Normal + is ComposerDraftType.Edit -> messageComposerContext.composerMode = MessageComposerMode.Edit( + eventId = draftType.eventId, + transactionId = null, + content = htmlText ?: markdownText + ) + is ComposerDraftType.Reply -> { + messageComposerContext.composerMode = MessageComposerMode.Reply(InReplyToDetails.Loading(draftType.eventId)) + timelineController.invokeOnCurrentTimeline { + val replyToDetails = loadReplyDetails(draftType.eventId).map(permalinkParser) + run { messageComposerContext.composerMode = MessageComposerMode.Reply(replyToDetails) } + } + } + } + } + + private fun createDraftFromState( + markdownTextEditorState: MarkdownTextEditorState, + richTextEditorState: RichTextEditorState, + ): ComposerDraft? { + val message = currentComposerMessage(markdownTextEditorState, richTextEditorState, withMentions = false) + val draftType = when (val mode = messageComposerContext.composerMode) { + is MessageComposerMode.Normal -> ComposerDraftType.NewMessage + is MessageComposerMode.Edit -> { + mode.eventId?.let { eventId -> ComposerDraftType.Edit(eventId) } + } + is MessageComposerMode.Reply -> ComposerDraftType.Reply(mode.eventId) + } + return if (draftType == null || message.markdown.isBlank()) { + null + } else { + ComposerDraft( + draftType = draftType, + htmlText = message.html, + plainText = message.markdown, + ) + } + } + + private fun currentComposerMessage( + markdownTextEditorState: MarkdownTextEditorState, + richTextEditorState: RichTextEditorState, + withMentions: Boolean, + ): Message { + return if (showTextFormatting) { + val html = richTextEditorState.messageHtml + val markdown = richTextEditorState.messageMarkdown + val mentions = richTextEditorState.mentionsState + .takeIf { withMentions } + ?.let { state -> + buildList { + if (state.hasAtRoomMention) { + add(Mention.AtRoom) + } + for (userId in state.userIds) { + add(Mention.User(UserId(userId))) + } + } + } + .orEmpty() + Message(html = html, markdown = markdown, mentions = mentions) + } else { + val markdown = markdownTextEditorState.getMessageMarkdown(permalinkBuilder) + val mentions = if (withMentions) { + markdownTextEditorState.getMentions() + } else { + emptyList() + } + Message(html = null, markdown = markdown, mentions = mentions) + } + } + + private fun CoroutineScope.toggleTextFormatting( + enabled: Boolean, + markdownTextEditorState: MarkdownTextEditorState, + richTextEditorState: RichTextEditorState + ) = launch { + showTextFormatting = enabled + if (showTextFormatting) { + val markdown = markdownTextEditorState.getMessageMarkdown(permalinkBuilder) + richTextEditorState.setMarkdown(markdown) + richTextEditorState.requestFocus() + analyticsService.captureInteraction(Interaction.Name.MobileRoomComposerFormattingEnabled) + } else { + val markdown = richTextEditorState.messageMarkdown + markdownTextEditorState.text.update(markdown, true) + // Give some time for the focus of the previous editor to be cleared + delay(100) + markdownTextEditorState.requestFocusAction() + } + } + + private fun CoroutineScope.setMode( + newComposerMode: MessageComposerMode, + markdownTextEditorState: MarkdownTextEditorState, + richTextEditorState: RichTextEditorState, + ) = launch { + val currentComposerMode = messageComposerContext.composerMode + when (newComposerMode) { + is MessageComposerMode.Edit -> { + if (currentComposerMode !is MessageComposerMode.Edit) { + val draft = createDraftFromState(markdownTextEditorState, richTextEditorState) + updateDraft(draft, isVolatile = true).join() + } + setText(newComposerMode.content, markdownTextEditorState, richTextEditorState) + } + else -> { + // When coming from edit, just clear the composer as it'd be weird to reset a volatile draft in this scenario. + if (currentComposerMode is MessageComposerMode.Edit) { + setText("", markdownTextEditorState, richTextEditorState) + } + } + } + messageComposerContext.composerMode = newComposerMode + } + + private suspend fun resetComposer( + markdownTextEditorState: MarkdownTextEditorState, + richTextEditorState: RichTextEditorState, + fromEdit: Boolean, + ) { + // Use the volatile draft only when coming from edit mode otherwise. + val draft = draftService.loadDraft(room.roomId, isVolatile = true).takeIf { fromEdit } + if (draft != null) { + applyDraft(draft, markdownTextEditorState, richTextEditorState) + } else { + setText("", markdownTextEditorState, richTextEditorState) + messageComposerContext.composerMode = MessageComposerMode.Normal + } + } + + private suspend fun setText( + content: String, + markdownTextEditorState: MarkdownTextEditorState, + richTextEditorState: RichTextEditorState, + requestFocus: Boolean = false, + ) { + if (showTextFormatting) { + richTextEditorState.setHtml(content) + if (requestFocus) { + richTextEditorState.requestFocus() + } + } else { + if (content.isEmpty()) { + markdownTextEditorState.selection = IntRange.EMPTY + } + markdownTextEditorState.text.update(content, true) + if (requestFocus) { + markdownTextEditorState.requestFocusAction() + } + } + } } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerState.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerState.kt index 4ac69ed3d6..b1c7ad79b5 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerState.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerState.kt @@ -19,7 +19,6 @@ package io.element.android.features.messages.impl.messagecomposer import androidx.compose.runtime.Immutable import androidx.compose.runtime.Stable import io.element.android.features.messages.impl.attachments.Attachment -import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.permalink.PermalinkParser import io.element.android.libraries.textcomposer.mentions.ResolvedMentionSuggestion import io.element.android.libraries.textcomposer.model.MessageComposerMode @@ -38,7 +37,6 @@ data class MessageComposerState( val canCreatePoll: Boolean, val attachmentsState: AttachmentsState, val memberSuggestions: ImmutableList, - val currentUserId: UserId, val eventSink: (MessageComposerEvents) -> Unit, ) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerStateProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerStateProvider.kt index 7ec47f4ef5..31912f21e6 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerStateProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerStateProvider.kt @@ -17,7 +17,6 @@ package io.element.android.features.messages.impl.messagecomposer import androidx.compose.ui.tooling.preview.PreviewParameterProvider -import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.permalink.PermalinkData import io.element.android.libraries.matrix.api.permalink.PermalinkParser import io.element.android.libraries.textcomposer.aRichTextEditorState @@ -57,6 +56,5 @@ fun aMessageComposerState( canCreatePoll = canCreatePoll, attachmentsState = attachmentsState, memberSuggestions = memberSuggestions, - currentUserId = UserId("@alice:localhost"), eventSink = {}, ) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt index cd2e93e45f..a033791f34 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt @@ -124,7 +124,6 @@ internal fun MessageComposerView( onReceiveSuggestion = ::onSuggestionReceived, onError = ::onError, onTyping = ::onTyping, - currentUserId = state.currentUserId, onSelectRichContent = ::sendUri, ) } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/sender/SenderName.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/sender/SenderName.kt deleted file mode 100644 index 9daa95198e..0000000000 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/sender/SenderName.kt +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (c) 2024 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.messages.impl.sender - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.RowScope -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clipToBounds -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.tooling.preview.PreviewParameter -import androidx.compose.ui.unit.dp -import io.element.android.compound.theme.ElementTheme -import io.element.android.libraries.designsystem.preview.ElementPreview -import io.element.android.libraries.designsystem.preview.PreviewsDayNight -import io.element.android.libraries.designsystem.theme.components.Text -import io.element.android.libraries.matrix.api.core.UserId -import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails - -// https://www.figma.com/file/Ni6Ii8YKtmXCKYNE90cC67/Timeline-(new)?type=design&node-id=917-80169&mode=design&t=A0CJCBbMqR8NOwUQ-0 -@Composable -fun SenderName( - senderId: UserId, - senderProfile: ProfileTimelineDetails, - senderNameMode: SenderNameMode, - modifier: Modifier = Modifier, -) { - Row( - modifier = modifier, - horizontalArrangement = Arrangement.spacedBy(4.dp), - verticalAlignment = Alignment.CenterVertically, - ) { - when (senderProfile) { - is ProfileTimelineDetails.Error, - ProfileTimelineDetails.Pending, - ProfileTimelineDetails.Unavailable -> { - MainText(text = senderId.value, mode = senderNameMode) - } - is ProfileTimelineDetails.Ready -> { - val displayName = senderProfile.displayName - if (displayName.isNullOrEmpty()) { - MainText(text = senderId.value, mode = senderNameMode) - } else { - MainText(text = displayName, mode = senderNameMode) - if (senderProfile.displayNameAmbiguous) { - SecondaryText(text = senderId.value, mode = senderNameMode) - } - } - } - } - } -} - -@Composable -private fun RowScope.MainText( - text: String, - mode: SenderNameMode, -) { - val style = when (mode) { - is SenderNameMode.Timeline -> ElementTheme.typography.fontBodyMdMedium - SenderNameMode.ActionList, - SenderNameMode.Reply -> ElementTheme.typography.fontBodySmMedium - } - val modifier = when (mode) { - is SenderNameMode.Timeline -> Modifier.alignByBaseline() - SenderNameMode.ActionList, - SenderNameMode.Reply -> Modifier - } - val color = when (mode) { - is SenderNameMode.Timeline -> mode.mainColor - SenderNameMode.ActionList, - SenderNameMode.Reply -> MaterialTheme.colorScheme.primary - } - Text( - modifier = modifier.clipToBounds(), - text = text, - style = style, - color = color, - maxLines = 1, - overflow = TextOverflow.Ellipsis, - ) -} - -@Composable -private fun RowScope.SecondaryText( - text: String, - mode: SenderNameMode, -) { - val style = when (mode) { - is SenderNameMode.Timeline -> ElementTheme.typography.fontBodySmRegular - SenderNameMode.ActionList, - SenderNameMode.Reply -> ElementTheme.typography.fontBodyXsRegular - } - val modifier = when (mode) { - is SenderNameMode.Timeline -> Modifier.alignByBaseline() - SenderNameMode.ActionList, - SenderNameMode.Reply -> Modifier - } - Text( - modifier = modifier.clipToBounds(), - text = text, - style = style, - color = MaterialTheme.colorScheme.secondary, - maxLines = 1, - overflow = TextOverflow.Ellipsis, - ) -} - -@PreviewsDayNight -@Composable -internal fun SenderNamePreview( - @PreviewParameter(SenderNameDataProvider::class) senderNameData: SenderNameData, -) = ElementPreview { - SenderName( - senderId = senderNameData.userId, - senderProfile = senderNameData.profileTimelineDetails, - senderNameMode = senderNameData.senderNameMode, - ) -} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/sender/SenderNameDataProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/sender/SenderNameDataProvider.kt deleted file mode 100644 index 138038bb2f..0000000000 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/sender/SenderNameDataProvider.kt +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2024 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.messages.impl.sender - -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.tooling.preview.PreviewParameterProvider -import io.element.android.features.messages.impl.timeline.components.aProfileTimelineDetailsReady -import io.element.android.libraries.matrix.api.core.UserId -import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails - -data class SenderNameData( - val userId: UserId, - val profileTimelineDetails: ProfileTimelineDetails, - val senderNameMode: SenderNameMode, -) - -open class SenderNameDataProvider : PreviewParameterProvider { - override val values: Sequence - get() = sequenceOf( - SenderNameMode.Timeline(mainColor = Color.Red), - SenderNameMode.Reply, - SenderNameMode.ActionList, - ) - .flatMap { senderNameMode -> - sequenceOf( - aSenderNameData( - senderNameMode = senderNameMode, - ), - aSenderNameData( - senderNameMode = senderNameMode, - displayNameAmbiguous = true, - ), - SenderNameData( - senderNameMode = senderNameMode, - userId = UserId("@alice:${senderNameMode.javaClass.simpleName.lowercase()}"), - profileTimelineDetails = ProfileTimelineDetails.Unavailable, - ), - ) - } -} - -private fun aSenderNameData( - senderNameMode: SenderNameMode, - displayNameAmbiguous: Boolean = false, -) = SenderNameData( - userId = UserId("@alice:${senderNameMode.javaClass.simpleName.lowercase()}"), - profileTimelineDetails = aProfileTimelineDetailsReady( - displayName = "Alice ${senderNameMode.javaClass.simpleName}", - displayNameAmbiguous = displayNameAmbiguous, - ), - senderNameMode = senderNameMode, -) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/sender/SenderNameMode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/sender/SenderNameMode.kt deleted file mode 100644 index c61033500a..0000000000 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/sender/SenderNameMode.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2024 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.messages.impl.sender - -import androidx.compose.runtime.Immutable -import androidx.compose.ui.graphics.Color - -@Immutable -sealed interface SenderNameMode { - data class Timeline(val mainColor: Color) : SenderNameMode - data object Reply : SenderNameMode - data object ActionList : SenderNameMode -} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/DefaultHtmlConverterProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/DefaultHtmlConverterProvider.kt index 26ad72dcf9..1987b46053 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/DefaultHtmlConverterProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/DefaultHtmlConverterProvider.kt @@ -28,9 +28,8 @@ import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SingleIn import io.element.android.libraries.matrix.api.core.UserId -import io.element.android.libraries.matrix.api.permalink.PermalinkParser import io.element.android.libraries.textcomposer.ElementRichTextEditorStyle -import io.element.android.libraries.textcomposer.mentions.rememberMentionSpanProvider +import io.element.android.libraries.textcomposer.mentions.LocalMentionSpanProvider import io.element.android.wysiwyg.compose.StyledHtmlConverter import io.element.android.wysiwyg.display.MentionDisplayHandler import io.element.android.wysiwyg.display.TextDisplay @@ -40,9 +39,7 @@ import javax.inject.Inject @ContributesBinding(SessionScope::class) @SingleIn(SessionScope::class) -class DefaultHtmlConverterProvider @Inject constructor( - private val permalinkParser: PermalinkParser, -) : HtmlConverterProvider { +class DefaultHtmlConverterProvider @Inject constructor() : HtmlConverterProvider { private val htmlConverter: MutableState = mutableStateOf(null) @Composable @@ -53,10 +50,7 @@ class DefaultHtmlConverterProvider @Inject constructor( } val editorStyle = ElementRichTextEditorStyle.textStyle() - val mentionSpanProvider = rememberMentionSpanProvider( - currentUserId = currentUserId, - permalinkParser = permalinkParser, - ) + val mentionSpanProvider = LocalMentionSpanProvider.current val context = LocalContext.current diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt index a15763648d..f6b58e2799 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt @@ -16,9 +16,7 @@ package io.element.android.features.messages.impl.timeline -import io.element.android.features.messages.impl.timeline.components.aProfileTimelineDetailsReady import io.element.android.features.messages.impl.timeline.components.receipt.aReadReceiptData -import io.element.android.features.messages.impl.timeline.model.InReplyToDetails import io.element.android.features.messages.impl.timeline.model.NewEventState import io.element.android.features.messages.impl.timeline.model.ReadReceiptData import io.element.android.features.messages.impl.timeline.model.TimelineItem @@ -37,6 +35,8 @@ import io.element.android.libraries.matrix.api.core.TransactionId import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.aProfileTimelineDetailsReady import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toImmutableList @@ -81,7 +81,7 @@ internal fun aTimelineItemList(content: TimelineItemEventContent): ImmutableList isMine = false, content = content, groupPosition = TimelineItemGroupPosition.Middle, - sendState = LocalEventSendState.SendingFailed("Message failed to send"), + sendState = LocalEventSendState.SendingFailed.Unrecoverable("Message failed to send"), ), aTimelineItemEvent( isMine = false, @@ -104,7 +104,7 @@ internal fun aTimelineItemList(content: TimelineItemEventContent): ImmutableList isMine = true, content = content, groupPosition = TimelineItemGroupPosition.Middle, - sendState = LocalEventSendState.SendingFailed("Message failed to send"), + sendState = LocalEventSendState.SendingFailed.Unrecoverable("Message failed to send"), ), aTimelineItemEvent( isMine = true, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/MessageEventBubble.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/MessageEventBubble.kt index 9e1095e02a..f30f6cac55 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/MessageEventBubble.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/MessageEventBubble.kt @@ -32,7 +32,13 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.drawWithContent +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.BlendMode +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.CompositingStrategy import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme @@ -40,8 +46,10 @@ import io.element.android.features.messages.impl.timeline.model.TimelineItemGrou import io.element.android.features.messages.impl.timeline.model.bubble.BubbleState import io.element.android.features.messages.impl.timeline.model.bubble.BubbleStateProvider import io.element.android.libraries.core.extensions.to01 +import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight +import io.element.android.libraries.designsystem.text.toPx import io.element.android.libraries.designsystem.theme.components.Surface import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.messageFromMeBackground @@ -51,6 +59,7 @@ import io.element.android.libraries.testtags.testTag private val BUBBLE_RADIUS = 12.dp internal val BUBBLE_INCOMING_OFFSET = 16.dp +private val avatarRadius = AvatarSize.TimelineSender.dp / 2 // Design says: The maximum width of a bubble is still 3/4 of the screen width. But try with 85% now. private const val BUBBLE_WIDTH_RATIO = 0.85f @@ -66,11 +75,12 @@ fun MessageEventBubble( content: @Composable () -> Unit = {}, ) { fun bubbleShape(): Shape { + val topLeftCorner = if (state.cutTopStart) 0.dp else BUBBLE_RADIUS return when (state.groupPosition) { TimelineItemGroupPosition.First -> if (state.isMine) { RoundedCornerShape(BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp, BUBBLE_RADIUS) } else { - RoundedCornerShape(BUBBLE_RADIUS, BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp) + RoundedCornerShape(topLeftCorner, BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp) } TimelineItemGroupPosition.Middle -> if (state.isMine) { RoundedCornerShape(BUBBLE_RADIUS, 0.dp, 0.dp, BUBBLE_RADIUS) @@ -84,7 +94,7 @@ fun MessageEventBubble( } TimelineItemGroupPosition.None -> RoundedCornerShape( - BUBBLE_RADIUS, + topLeftCorner, BUBBLE_RADIUS, BUBBLE_RADIUS, BUBBLE_RADIUS @@ -106,11 +116,30 @@ fun MessageEventBubble( else -> ElementTheme.colors.messageFromOtherBackground } val bubbleShape = bubbleShape() + val radiusPx = (avatarRadius + SENDER_AVATAR_BORDER_WIDTH).toPx() + val yOffsetPx = -(NEGATIVE_MARGIN_FOR_BUBBLE + avatarRadius).toPx() Box( modifier = modifier .fillMaxWidth(BUBBLE_WIDTH_RATIO) - .padding(horizontal = 16.dp) - .offsetForItem(), + .padding(start = avatarRadius, end = 16.dp) + .offsetForItem() + .graphicsLayer { + compositingStrategy = CompositingStrategy.Offscreen + } + .drawWithContent { + drawContent() + if (state.cutTopStart) { + drawCircle( + color = Color.Black, + center = Offset( + x = 0f, + y = yOffsetPx, + ), + radius = radiusPx, + blendMode = BlendMode.Clear, + ) + } + }, // Need to set the contentAlignment again (it's already set in TimelineItemEventRow), for the case // when content width is low. contentAlignment = if (state.isMine) Alignment.CenterEnd else Alignment.CenterStart diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineEventTimestampView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineEventTimestampView.kt index 5ec0262205..25181d7eb3 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineEventTimestampView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineEventTimestampView.kt @@ -20,6 +20,7 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable @@ -29,45 +30,60 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme +import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.model.event.isEdited import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight +import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Text +import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState import io.element.android.libraries.ui.strings.CommonStrings @Composable fun TimelineEventTimestampView( - formattedTime: String, - isMessageEdited: Boolean, + event: TimelineItem.Event, modifier: Modifier = Modifier, ) { + val formattedTime = event.sentTime + val hasUnrecoverableError = event.localSendState is LocalEventSendState.SendingFailed.Unrecoverable + val isMessageEdited = event.content.isEdited() + val tint = if (hasUnrecoverableError) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.secondary Row( modifier = Modifier - .padding(PaddingValues(start = TimelineEventTimestampViewDefaults.spacing)) - .then(modifier), + .padding(PaddingValues(start = TimelineEventTimestampViewDefaults.spacing)) + .then(modifier), verticalAlignment = Alignment.CenterVertically, ) { if (isMessageEdited) { Text( stringResource(CommonStrings.common_edited_suffix), style = ElementTheme.typography.fontBodyXsRegular, - color = MaterialTheme.colorScheme.secondary, + color = tint, ) Spacer(modifier = Modifier.width(4.dp)) } Text( formattedTime, style = ElementTheme.typography.fontBodyXsRegular, - color = MaterialTheme.colorScheme.secondary, + color = tint, ) + if (hasUnrecoverableError) { + Spacer(modifier = Modifier.width(2.dp)) + Icon( + imageVector = CompoundIcons.Error(), + contentDescription = stringResource(id = CommonStrings.common_sending_failed), + tint = tint, + modifier = Modifier.size(15.dp, 18.dp), + ) + } } } @PreviewsDayNight @Composable internal fun TimelineEventTimestampViewPreview(@PreviewParameter(TimelineItemEventForTimestampViewProvider::class) event: TimelineItem.Event) = ElementPreview { - TimelineEventTimestampView(formattedTime = event.sentTime, isMessageEdited = event.content.isEdited()) + TimelineEventTimestampView(event = event) } object TimelineEventTimestampViewDefaults { diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventForTimestampViewProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventForTimestampViewProvider.kt index 7697ccf4a4..84a93f1c09 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventForTimestampViewProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventForTimestampViewProvider.kt @@ -26,13 +26,15 @@ class TimelineItemEventForTimestampViewProvider : PreviewParameterProvider get() = sequenceOf( aTimelineItemEvent(), - // Sending failed - aTimelineItemEvent().copy(localSendState = LocalEventSendState.SendingFailed("AN_ERROR")), + // Sending failed recoverable + aTimelineItemEvent().copy(localSendState = LocalEventSendState.SendingFailed.Recoverable("AN_ERROR")), + // Sending failed unrecoverable + aTimelineItemEvent().copy(localSendState = LocalEventSendState.SendingFailed.Unrecoverable("AN_ERROR")), // Edited aTimelineItemEvent().copy(content = aTimelineItemTextContent().copy(isEdited = true)), // Sending failed + Edited (not sure this is possible IRL, but should be covered by test) aTimelineItemEvent().copy( - localSendState = LocalEventSendState.SendingFailed("AN_ERROR"), + localSendState = LocalEventSendState.SendingFailed.Unrecoverable("AN_ERROR"), content = aTimelineItemTextContent().copy(isEdited = true), ), ) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt index 0c5dec2553..37febdcf50 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt @@ -17,7 +17,6 @@ package io.element.android.features.messages.impl.timeline.components import android.annotation.SuppressLint -import androidx.compose.foundation.Canvas import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.gestures.Orientation @@ -26,18 +25,15 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.absoluteOffset import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.remember @@ -46,8 +42,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.draw.clipToBounds -import androidx.compose.ui.geometry.Offset import androidx.compose.ui.platform.LocalViewConfiguration import androidx.compose.ui.platform.ViewConfiguration import androidx.compose.ui.res.stringResource @@ -56,10 +50,6 @@ import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.invisibleToUser import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag -import androidx.compose.ui.text.font.FontStyle -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp @@ -68,8 +58,6 @@ import androidx.constraintlayout.compose.ConstrainScope import androidx.constraintlayout.compose.ConstraintLayout import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons -import io.element.android.features.messages.impl.sender.SenderName -import io.element.android.features.messages.impl.sender.SenderNameMode import io.element.android.features.messages.impl.timeline.TimelineEvents import io.element.android.features.messages.impl.timeline.TimelineRoomInfo import io.element.android.features.messages.impl.timeline.aTimelineItemEvent @@ -78,8 +66,6 @@ import io.element.android.features.messages.impl.timeline.components.layout.Cont import io.element.android.features.messages.impl.timeline.components.layout.ContentAvoidingLayoutData import io.element.android.features.messages.impl.timeline.components.receipt.ReadReceiptViewState import io.element.android.features.messages.impl.timeline.components.receipt.TimelineItemReadReceiptView -import io.element.android.features.messages.impl.timeline.model.InReplyToDetails -import io.element.android.features.messages.impl.timeline.model.InReplyToMetadata import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.model.TimelineItemGroupPosition import io.element.android.features.messages.impl.timeline.model.bubble.BubbleState @@ -92,15 +78,10 @@ import io.element.android.features.messages.impl.timeline.model.event.TimelineIt import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemImageContent import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent import io.element.android.features.messages.impl.timeline.model.event.canBeRepliedTo -import io.element.android.features.messages.impl.timeline.model.event.isEdited -import io.element.android.features.messages.impl.timeline.model.eventId -import io.element.android.features.messages.impl.timeline.model.metadata -import io.element.android.libraries.designsystem.atomic.atoms.PlaceholderAtom import io.element.android.libraries.designsystem.colors.AvatarColorsProvider import io.element.android.libraries.designsystem.components.EqualWidthColumn import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData -import io.element.android.libraries.designsystem.icons.CompoundDrawables import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.swipe.SwipeableActionsState @@ -111,14 +92,24 @@ import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails -import io.element.android.libraries.matrix.api.timeline.item.event.getDisambiguatedDisplayName -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnail +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToView +import io.element.android.libraries.matrix.ui.messages.reply.eventId +import io.element.android.libraries.matrix.ui.messages.sender.SenderName +import io.element.android.libraries.matrix.ui.messages.sender.SenderNameMode import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.coroutines.launch import kotlin.math.abs import kotlin.math.roundToInt +// The bubble has a negative margin to be placed a bit upper regarding the sender +// information and overlap the avatar. +val NEGATIVE_MARGIN_FOR_BUBBLE = (-8).dp + +// Width of the transparent border around the sender avatar +val SENDER_AVATAR_BORDER_WIDTH = 3.dp + @Composable fun TimelineItemEventRow( event: TimelineItem.Event, @@ -290,13 +281,11 @@ private fun TimelineItemEventRowContent( ) = createRefs() // Sender - val avatarStrokeSize = 3.dp if (event.showSenderInformation && !timelineRoomInfo.isDm) { MessageSenderInformation( event.senderId, event.senderProfile, event.senderAvatar, - avatarStrokeSize, Modifier .constrainAs(sender) { top.linkTo(parent.top) @@ -322,7 +311,7 @@ private fun TimelineItemEventRowContent( MessageEventBubble( modifier = Modifier .constrainAs(message) { - top.linkTo(sender.bottom, margin = -avatarStrokeSize - 8.dp) + top.linkTo(sender.bottom, margin = NEGATIVE_MARGIN_FOR_BUBBLE) this.linkStartOrEnd(event) }, state = bubbleState, @@ -374,37 +363,17 @@ private fun MessageSenderInformation( senderId: UserId, senderProfile: ProfileTimelineDetails, senderAvatar: AvatarData, - avatarStrokeSize: Dp, modifier: Modifier = Modifier ) { - val avatarStrokeColor = MaterialTheme.colorScheme.background - val avatarSize = senderAvatar.size.dp val avatarColors = AvatarColorsProvider.provide(senderAvatar.id, ElementTheme.isLightTheme) - Box( - modifier = modifier - ) { - // Background of Avatar, to erase the corner of the message content - Canvas( - modifier = Modifier - .size(size = avatarSize + avatarStrokeSize) - .clipToBounds() - ) { - drawCircle( - color = avatarStrokeColor, - center = Offset(x = (avatarSize / 2).toPx(), y = (avatarSize / 2).toPx()), - radius = (avatarSize / 2 + avatarStrokeSize).toPx() - ) - } - // Content - Row { - Avatar(senderAvatar) - Spacer(modifier = Modifier.width(4.dp)) - SenderName( - senderId = senderId, - senderProfile = senderProfile, - senderNameMode = SenderNameMode.Timeline(avatarColors.foreground), - ) - } + Row(modifier = modifier) { + Avatar(senderAvatar) + Spacer(modifier = Modifier.width(4.dp)) + SenderName( + senderId = senderId, + senderProfile = senderProfile, + senderNameMode = SenderNameMode.Timeline(avatarColors.foreground), + ) } } @@ -460,8 +429,7 @@ private fun MessageEventBubbleContent( Box(modifier, contentAlignment = Alignment.Center) { content {} TimelineEventTimestampView( - formattedTime = event.sentTime, - isMessageEdited = event.content.isEdited(), + event = event, modifier = Modifier // Outer padding .padding(horizontal = 4.dp, vertical = 4.dp) @@ -481,8 +449,7 @@ private fun MessageEventBubbleContent( content = { content(this::onContentLayoutChange) }, overlay = { TimelineEventTimestampView( - formattedTime = event.sentTime, - isMessageEdited = event.content.isEdited(), + event = event, modifier = Modifier .padding(horizontal = 8.dp, vertical = 4.dp) ) @@ -492,8 +459,7 @@ private fun MessageEventBubbleContent( Column(modifier) { content {} TimelineEventTimestampView( - formattedTime = event.sentTime, - isMessageEdited = event.content.isEdited(), + event = event, modifier = Modifier .align(Alignment.End) .padding(horizontal = 8.dp, vertical = 4.dp) @@ -560,25 +526,7 @@ private fun MessageEventBubbleContent( .clip(RoundedCornerShape(6.dp)) // FIXME when a node is clickable, its contents won't be added to the semantics tree of its parent .clickable(onClick = inReplyToClick) - when (inReplyTo) { - is InReplyToDetails.Ready -> { - ReplyToContent( - senderId = inReplyTo.senderId, - senderProfile = inReplyTo.senderProfile, - metadata = inReplyTo.metadata(), - modifier = inReplyToModifier, - ) - } - is InReplyToDetails.Error -> - ReplyToErrorContent( - data = inReplyTo, - modifier = inReplyToModifier, - ) - is InReplyToDetails.Loading -> - ReplyToLoadingContent( - modifier = inReplyToModifier, - ) - } + InReplyToView(inReplyTo, modifier = inReplyToModifier) } if (inReplyToDetails != null) { // Use SubComposeLayout only if necessary as it can have consequences on the performance. @@ -614,128 +562,6 @@ private fun MessageEventBubbleContent( ) } -@Composable -private fun ReplyToContent( - senderId: UserId, - senderProfile: ProfileTimelineDetails, - metadata: InReplyToMetadata?, - modifier: Modifier = Modifier, -) { - val paddings = if (metadata is InReplyToMetadata.Thumbnail) { - PaddingValues(start = 4.dp, end = 12.dp, top = 4.dp, bottom = 4.dp) - } else { - PaddingValues(horizontal = 12.dp, vertical = 4.dp) - } - Row( - modifier - .background(MaterialTheme.colorScheme.surface) - .padding(paddings) - ) { - if (metadata is InReplyToMetadata.Thumbnail) { - AttachmentThumbnail( - info = metadata.attachmentThumbnailInfo, - backgroundColor = MaterialTheme.colorScheme.surfaceVariant, - modifier = Modifier - .size(36.dp) - .clip(RoundedCornerShape(4.dp)) - ) - Spacer(modifier = Modifier.width(8.dp)) - } - val a11InReplyToText = stringResource(CommonStrings.common_in_reply_to, senderProfile.getDisambiguatedDisplayName(senderId)) - Column(verticalArrangement = Arrangement.SpaceBetween) { - SenderName( - senderId = senderId, - senderProfile = senderProfile, - senderNameMode = SenderNameMode.Reply, - modifier = Modifier.semantics { - contentDescription = a11InReplyToText - }, - ) - ReplyToContentText(metadata) - } - } -} - -@Composable -private fun ReplyToLoadingContent( - modifier: Modifier = Modifier, -) { - val paddings = PaddingValues(horizontal = 12.dp, vertical = 4.dp) - Row( - modifier - .background(MaterialTheme.colorScheme.surface) - .padding(paddings) - ) { - Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { - PlaceholderAtom(width = 80.dp, height = 12.dp) - PlaceholderAtom(width = 140.dp, height = 14.dp) - } - } -} - -@Composable -private fun ReplyToErrorContent( - data: InReplyToDetails.Error, - modifier: Modifier = Modifier, -) { - val paddings = PaddingValues(horizontal = 12.dp, vertical = 4.dp) - Row( - modifier - .background(MaterialTheme.colorScheme.surface) - .padding(paddings) - ) { - Text( - text = data.message, - style = ElementTheme.typography.fontBodyMdRegular, - color = MaterialTheme.colorScheme.error, - maxLines = 2, - overflow = TextOverflow.Ellipsis, - ) - } -} - -@Composable -private fun ReplyToContentText(metadata: InReplyToMetadata?) { - val text = when (metadata) { - InReplyToMetadata.Redacted -> stringResource(id = CommonStrings.common_message_removed) - InReplyToMetadata.UnableToDecrypt -> stringResource(id = CommonStrings.common_waiting_for_decryption_key) - is InReplyToMetadata.Text -> metadata.text - is InReplyToMetadata.Thumbnail -> metadata.text - null -> "" - } - val iconResourceId = when (metadata) { - InReplyToMetadata.Redacted -> CompoundDrawables.ic_compound_delete - InReplyToMetadata.UnableToDecrypt -> CompoundDrawables.ic_compound_time - else -> null - } - val fontStyle = when (metadata) { - is InReplyToMetadata.Informative -> FontStyle.Italic - else -> FontStyle.Normal - } - Row( - verticalAlignment = Alignment.CenterVertically, - ) { - if (iconResourceId != null) { - Icon( - resourceId = iconResourceId, - tint = MaterialTheme.colorScheme.secondary, - contentDescription = null, - modifier = Modifier.size(16.dp) - ) - Spacer(modifier = Modifier.width(4.dp)) - } - Text( - text = text, - style = ElementTheme.typography.fontBodyMdRegular, - fontStyle = fontStyle, - textAlign = TextAlign.Start, - color = MaterialTheme.colorScheme.secondary, - maxLines = 2, - overflow = TextOverflow.Ellipsis, - ) - } -} - @PreviewsDayNight @Composable internal fun TimelineItemEventRowPreview() = ElementPreview { diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowDisambiguatedPreview.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowDisambiguatedPreview.kt index 2527072c24..7357e279fc 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowDisambiguatedPreview.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowDisambiguatedPreview.kt @@ -18,10 +18,10 @@ package io.element.android.features.messages.impl.timeline.components import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.PreviewParameter -import io.element.android.features.messages.impl.timeline.model.InReplyToDetails import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight -import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetailsDisambiguatedProvider @PreviewsDayNight @Composable @@ -33,18 +33,3 @@ internal fun TimelineItemEventRowDisambiguatedPreview( displayNameAmbiguous = true, ) } - -class InReplyToDetailsDisambiguatedProvider : InReplyToDetailsProvider() { - override val values: Sequence - get() = sequenceOf( - aMessageContent( - body = "Message which are being replied.", - type = TextMessageType("Message which are being replied.", null) - ), - ).map { - aInReplyToDetails( - displayNameAmbiguous = true, - eventContent = it, - ) - } -} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyInformativePreview.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyInformativePreview.kt index 2dbe3eefa4..cdb3ee1d1a 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyInformativePreview.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyInformativePreview.kt @@ -18,11 +18,10 @@ package io.element.android.features.messages.impl.timeline.components import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.PreviewParameter -import io.element.android.features.messages.impl.timeline.model.InReplyToDetails import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight -import io.element.android.libraries.matrix.api.timeline.item.event.RedactedContent -import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecryptContent +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetailsInformativeProvider @PreviewsDayNight @Composable @@ -31,15 +30,3 @@ internal fun TimelineItemEventRowWithReplyInformativePreview( ) = ElementPreview { TimelineItemEventRowWithReplyContentToPreview(inReplyToDetails) } - -class InReplyToDetailsInformativeProvider : InReplyToDetailsProvider() { - override val values: Sequence - get() = sequenceOf( - RedactedContent, - UnableToDecryptContent(UnableToDecryptContent.Data.Unknown), - ).map { - aInReplyToDetails( - eventContent = it, - ) - } -} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyOtherPreview.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyOtherPreview.kt index 2231af606d..c07a7ee41c 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyOtherPreview.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyOtherPreview.kt @@ -18,10 +18,10 @@ package io.element.android.features.messages.impl.timeline.components import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.PreviewParameter -import io.element.android.features.messages.impl.timeline.model.InReplyToDetails import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight -import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetailsOtherProvider @PreviewsDayNight @Composable @@ -30,11 +30,3 @@ internal fun TimelineItemEventRowWithReplyOtherPreview( ) = ElementPreview { TimelineItemEventRowWithReplyContentToPreview(inReplyToDetails) } - -class InReplyToDetailsOtherProvider : InReplyToDetailsProvider() { - override val values: Sequence - get() = sequenceOf( - InReplyToDetails.Loading(eventId = EventId("\$anEventId")), - InReplyToDetails.Error(eventId = EventId("\$anEventId"), message = "An error message."), - ) -} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyPreview.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyPreview.kt index b1500dac2c..7b6bb471c7 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyPreview.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRowWithReplyPreview.kt @@ -19,36 +19,15 @@ package io.element.android.features.messages.impl.timeline.components import androidx.compose.foundation.layout.Column import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.PreviewParameter -import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.features.messages.impl.timeline.aTimelineItemEvent import io.element.android.features.messages.impl.timeline.aTimelineItemReactions -import io.element.android.features.messages.impl.timeline.model.InReplyToDetails import io.element.android.features.messages.impl.timeline.model.TimelineItemGroupPosition import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemImageContent import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight -import io.element.android.libraries.matrix.api.core.EventId -import io.element.android.libraries.matrix.api.core.UserId -import io.element.android.libraries.matrix.api.media.MediaSource -import io.element.android.libraries.matrix.api.poll.PollKind -import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.EmoteMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.EventContent -import io.element.android.libraries.matrix.api.timeline.item.event.FileMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.ImageMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.LocationMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent -import io.element.android.libraries.matrix.api.timeline.item.event.MessageType -import io.element.android.libraries.matrix.api.timeline.item.event.NoticeMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.PollContent -import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails -import io.element.android.libraries.matrix.api.timeline.item.event.StickerMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.VoiceMessageType -import kotlinx.collections.immutable.persistentListOf -import kotlinx.collections.immutable.persistentMapOf +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetailsProvider @PreviewsDayNight @Composable @@ -93,100 +72,3 @@ internal fun TimelineItemEventRowWithReplyContentToPreview( } } } - -open class InReplyToDetailsProvider : PreviewParameterProvider { - override val values: Sequence - get() = sequenceOf( - aMessageContent( - body = "Message which are being replied.", - type = TextMessageType("Message which are being replied.", null) - ), - aMessageContent( - body = "Message which are being replied, and which was long enough to be displayed on two lines (only!).", - type = TextMessageType("Message which are being replied, and which was long enough to be displayed on two lines (only!).", null) - ), - aMessageContent( - body = "Video", - type = VideoMessageType("Video", null, null, MediaSource("url"), null), - ), - aMessageContent( - body = "Audio", - type = AudioMessageType("Audio", MediaSource("url"), null), - ), - aMessageContent( - body = "Voice", - type = VoiceMessageType("Voice", MediaSource("url"), null, null), - ), - aMessageContent( - body = "Image", - type = ImageMessageType("Image", null, null, MediaSource("url"), null), - ), - aMessageContent( - body = "Sticker", - type = StickerMessageType("Image", MediaSource("url"), null), - ), - aMessageContent( - body = "File", - type = FileMessageType("File", MediaSource("url"), null), - ), - aMessageContent( - body = "Location", - type = LocationMessageType("Location", "geo:1,2", null), - ), - aMessageContent( - body = "Notice", - type = NoticeMessageType("Notice", null), - ), - aMessageContent( - body = "Emote", - type = EmoteMessageType("Emote", null), - ), - PollContent( - question = "Poll which are being replied.", - kind = PollKind.Disclosed, - maxSelections = 1u, - answers = persistentListOf(), - votes = persistentMapOf(), - endTime = null, - isEdited = false, - ), - ).map { - aInReplyToDetails( - eventContent = it, - ) - } - - protected fun aMessageContent( - body: String, - type: MessageType, - ) = MessageContent( - body = body, - inReplyTo = null, - isEdited = false, - isThreaded = false, - type = type, - ) - - protected fun aInReplyToDetails( - eventContent: EventContent, - displayNameAmbiguous: Boolean = false, - ) = InReplyToDetails.Ready( - eventId = EventId("\$event"), - eventContent = eventContent, - senderId = UserId("@Sender:domain"), - senderProfile = aProfileTimelineDetailsReady( - displayNameAmbiguous = displayNameAmbiguous, - ), - textContent = (eventContent as? MessageContent)?.body.orEmpty(), - ) -} - -internal fun aProfileTimelineDetailsReady( - displayName: String? = "Sender", - displayNameAmbiguous: Boolean = false, - avatarUrl: String? = null, -) = ProfileTimelineDetails.Ready( - displayName = displayName, - displayNameAmbiguous = displayNameAmbiguous, - avatarUrl = avatarUrl, -) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemTextView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemTextView.kt index a72a6354ed..b9e441f84e 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemTextView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemTextView.kt @@ -17,11 +17,15 @@ package io.element.android.features.messages.impl.timeline.components.event import android.text.SpannableString +import androidx.annotation.VisibleForTesting import androidx.compose.foundation.layout.Box import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalTextStyle import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics @@ -33,7 +37,12 @@ import io.element.android.features.messages.impl.timeline.model.event.TimelineIt import io.element.android.features.messages.impl.timeline.model.event.TimelineItemTextBasedContentProvider import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.ui.messages.LocalRoomMemberProfilesCache +import io.element.android.libraries.matrix.ui.messages.RoomMemberProfilesCache import io.element.android.libraries.textcomposer.ElementRichTextEditorStyle +import io.element.android.libraries.textcomposer.mentions.MentionSpan +import io.element.android.libraries.textcomposer.mentions.getMentionSpans import io.element.android.wysiwyg.compose.EditorStyledText @Composable @@ -47,10 +56,8 @@ fun TimelineItemTextView( LocalContentColor provides ElementTheme.colors.textPrimary, LocalTextStyle provides ElementTheme.typography.fontBodyLgRegular ) { - val formattedBody = content.formattedBody - val body = SpannableString(formattedBody ?: content.body) - - Box(modifier.semantics { contentDescription = body.toString() }) { + val body = getTextWithResolvedMentions(content) + Box(modifier.semantics { contentDescription = content.plainText }) { EditorStyledText( text = body, onLinkClickedListener = onLinkClick, @@ -62,6 +69,40 @@ fun TimelineItemTextView( } } +@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) +@Composable +internal fun getTextWithResolvedMentions(content: TimelineItemTextBasedContent): CharSequence { + val userProfileCache = LocalRoomMemberProfilesCache.current + val lastCacheUpdate by userProfileCache.lastCacheUpdate.collectAsState() + val formattedBody = remember(content.formattedBody, lastCacheUpdate) { + content.formattedBody?.let { formattedBody -> + updateMentionSpans(formattedBody, userProfileCache) + formattedBody + } + } + return SpannableString(formattedBody ?: content.body) +} + +private fun updateMentionSpans(text: CharSequence, cache: RoomMemberProfilesCache): Boolean { + var changedContents = false + for (mentionSpan in text.getMentionSpans()) { + when (mentionSpan.type) { + MentionSpan.Type.USER -> { + val displayName = cache.getDisplayName(UserId(mentionSpan.rawValue)) ?: mentionSpan.rawValue + if (mentionSpan.text != displayName) { + changedContents = true + mentionSpan.text = displayName + } + } + // There's no need to do anything for `@room` pills + MentionSpan.Type.EVERYONE -> Unit + // Nothing yet for room mentions + MentionSpan.Type.ROOM -> Unit + } + } + return changedContents +} + @PreviewsDayNight @Composable internal fun TimelineItemTextViewPreview( diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/TimelineItemReadReceiptView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/TimelineItemReadReceiptView.kt index 84f619341c..0342f684dd 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/TimelineItemReadReceiptView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/TimelineItemReadReceiptView.kt @@ -81,8 +81,8 @@ fun TimelineItemReadReceiptView( } } else { when (state.sendState) { - is LocalEventSendState.SendingFailed, - is LocalEventSendState.NotSentYet -> { + LocalEventSendState.NotSentYet, + is LocalEventSendState.SendingFailed.Recoverable -> { ReadReceiptsRow(modifier) { Icon( modifier = Modifier.padding(2.dp), @@ -92,6 +92,9 @@ fun TimelineItemReadReceiptView( ) } } + is LocalEventSendState.SendingFailed.Unrecoverable -> { + // Error? The timestamp is already displayed in red + } null, is LocalEventSendState.Sent -> { if (state.isLastOutgoingMessage) { diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/factories/event/TimelineItemEventFactory.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/factories/event/TimelineItemEventFactory.kt index 50550bd84f..aea1019f11 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/factories/event/TimelineItemEventFactory.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/factories/event/TimelineItemEventFactory.kt @@ -24,7 +24,6 @@ import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.model.TimelineItemGroupPosition import io.element.android.features.messages.impl.timeline.model.TimelineItemReactions import io.element.android.features.messages.impl.timeline.model.TimelineItemReadReceipts -import io.element.android.features.messages.impl.timeline.model.map import io.element.android.libraries.core.bool.orTrue import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormatter import io.element.android.libraries.designsystem.components.avatar.AvatarData @@ -35,6 +34,7 @@ import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem import io.element.android.libraries.matrix.api.timeline.item.event.getAvatarUrl import io.element.android.libraries.matrix.api.timeline.item.event.getDisambiguatedDisplayName +import io.element.android.libraries.matrix.ui.messages.reply.map import kotlinx.collections.immutable.toImmutableList import java.text.DateFormat import java.util.Date diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToDetails.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToDetails.kt deleted file mode 100644 index 5317c3231e..0000000000 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToDetails.kt +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.messages.impl.timeline.model - -import androidx.compose.runtime.Immutable -import io.element.android.libraries.matrix.api.core.EventId -import io.element.android.libraries.matrix.api.core.UserId -import io.element.android.libraries.matrix.api.permalink.PermalinkParser -import io.element.android.libraries.matrix.api.timeline.item.event.EventContent -import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo -import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent -import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails -import io.element.android.libraries.matrix.api.timeline.item.event.StickerContent -import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType -import io.element.android.libraries.matrix.ui.messages.toPlainText - -@Immutable -sealed interface InReplyToDetails { - data class Ready( - val eventId: EventId, - val senderId: UserId, - val senderProfile: ProfileTimelineDetails, - val eventContent: EventContent?, - val textContent: String?, - ) : InReplyToDetails - - data class Loading(val eventId: EventId) : InReplyToDetails - data class Error(val eventId: EventId, val message: String) : InReplyToDetails -} - -fun InReplyToDetails.eventId() = when (this) { - is InReplyToDetails.Ready -> eventId - is InReplyToDetails.Loading -> eventId - is InReplyToDetails.Error -> eventId -} - -fun InReplyTo.map( - permalinkParser: PermalinkParser, -) = when (this) { - is InReplyTo.Ready -> InReplyToDetails.Ready( - eventId = eventId, - senderId = senderId, - senderProfile = senderProfile, - eventContent = content, - textContent = when (content) { - is MessageContent -> { - val messageContent = content as MessageContent - (messageContent.type as? TextMessageType)?.toPlainText(permalinkParser = permalinkParser) ?: messageContent.body - } - is StickerContent -> { - val stickerContent = content as StickerContent - stickerContent.body - } - else -> null - } - ) - is InReplyTo.Error -> InReplyToDetails.Error(eventId, message) - is InReplyTo.NotLoaded -> InReplyToDetails.Loading(eventId) - is InReplyTo.Pending -> InReplyToDetails.Loading(eventId) -} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToMetadata.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToMetadata.kt deleted file mode 100644 index ab2e418587..0000000000 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToMetadata.kt +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.messages.impl.timeline.model - -import androidx.compose.runtime.Composable -import androidx.compose.runtime.Immutable -import androidx.compose.ui.res.stringResource -import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.CallNotifyContent -import io.element.android.libraries.matrix.api.timeline.item.event.FailedToParseMessageLikeContent -import io.element.android.libraries.matrix.api.timeline.item.event.FailedToParseStateContent -import io.element.android.libraries.matrix.api.timeline.item.event.FileMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.ImageMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.LegacyCallInviteContent -import io.element.android.libraries.matrix.api.timeline.item.event.LocationMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent -import io.element.android.libraries.matrix.api.timeline.item.event.PollContent -import io.element.android.libraries.matrix.api.timeline.item.event.ProfileChangeContent -import io.element.android.libraries.matrix.api.timeline.item.event.RedactedContent -import io.element.android.libraries.matrix.api.timeline.item.event.RoomMembershipContent -import io.element.android.libraries.matrix.api.timeline.item.event.StateContent -import io.element.android.libraries.matrix.api.timeline.item.event.StickerContent -import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecryptContent -import io.element.android.libraries.matrix.api.timeline.item.event.UnknownContent -import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.VoiceMessageType -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType -import io.element.android.libraries.ui.strings.CommonStrings - -@Immutable -internal sealed interface InReplyToMetadata { - data class Thumbnail( - val attachmentThumbnailInfo: AttachmentThumbnailInfo - ) : InReplyToMetadata { - val text: String = attachmentThumbnailInfo.textContent.orEmpty() - } - - data class Text( - val text: String - ) : InReplyToMetadata - - sealed interface Informative : InReplyToMetadata - - data object Redacted : Informative - data object UnableToDecrypt : Informative -} - -/** - * Computes metadata for the in reply to message. - * - * Metadata can be either a thumbnail with a text OR just a text. - */ -@Composable -internal fun InReplyToDetails.Ready.metadata(): InReplyToMetadata? = when (eventContent) { - is MessageContent -> when (val type = eventContent.type) { - is ImageMessageType -> InReplyToMetadata.Thumbnail( - AttachmentThumbnailInfo( - thumbnailSource = type.info?.thumbnailSource ?: type.source, - textContent = eventContent.body, - type = AttachmentThumbnailType.Image, - blurHash = type.info?.blurhash, - ) - ) - is VideoMessageType -> InReplyToMetadata.Thumbnail( - AttachmentThumbnailInfo( - thumbnailSource = type.info?.thumbnailSource, - textContent = eventContent.body, - type = AttachmentThumbnailType.Video, - blurHash = type.info?.blurhash, - ) - ) - is FileMessageType -> InReplyToMetadata.Thumbnail( - AttachmentThumbnailInfo( - thumbnailSource = type.info?.thumbnailSource, - textContent = eventContent.body, - type = AttachmentThumbnailType.File, - ) - ) - is LocationMessageType -> InReplyToMetadata.Thumbnail( - AttachmentThumbnailInfo( - textContent = stringResource(CommonStrings.common_shared_location), - type = AttachmentThumbnailType.Location, - ) - ) - is AudioMessageType -> InReplyToMetadata.Thumbnail( - AttachmentThumbnailInfo( - textContent = eventContent.body, - type = AttachmentThumbnailType.Audio, - ) - ) - is VoiceMessageType -> InReplyToMetadata.Thumbnail( - AttachmentThumbnailInfo( - textContent = stringResource(CommonStrings.common_voice_message), - type = AttachmentThumbnailType.Voice, - ) - ) - else -> InReplyToMetadata.Text(textContent ?: eventContent.body) - } - is StickerContent -> InReplyToMetadata.Thumbnail( - AttachmentThumbnailInfo( - thumbnailSource = eventContent.source, - textContent = eventContent.body, - type = AttachmentThumbnailType.Image, - blurHash = eventContent.info.blurhash, - ) - ) - is PollContent -> InReplyToMetadata.Thumbnail( - AttachmentThumbnailInfo( - textContent = eventContent.question, - type = AttachmentThumbnailType.Poll, - ) - ) - is RedactedContent -> InReplyToMetadata.Redacted - is UnableToDecryptContent -> InReplyToMetadata.UnableToDecrypt - is FailedToParseMessageLikeContent, - is FailedToParseStateContent, - is ProfileChangeContent, - is RoomMembershipContent, - is StateContent, - UnknownContent, - is LegacyCallInviteContent, - is CallNotifyContent, - null -> null -} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/TimelineItem.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/TimelineItem.kt index e948484e5e..f77db70506 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/TimelineItem.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/TimelineItem.kt @@ -30,6 +30,7 @@ import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSen import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails import io.element.android.libraries.matrix.api.timeline.item.event.TimelineItemEventOrigin import io.element.android.libraries.matrix.api.timeline.item.event.getDisambiguatedDisplayName +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails import kotlinx.collections.immutable.ImmutableList @Immutable diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/bubble/BubbleState.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/bubble/BubbleState.kt index 4f1fc3c546..3d66e7c1e9 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/bubble/BubbleState.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/model/bubble/BubbleState.kt @@ -24,4 +24,7 @@ data class BubbleState( val isMine: Boolean, val isHighlighted: Boolean, val timelineRoomInfo: TimelineRoomInfo, -) +) { + /** True to cut out the top start corner of the bubble, to give margin for the sender avatar. */ + val cutTopStart: Boolean = groupPosition.isNew() && !isMine && !timelineRoomInfo.isDm +} diff --git a/features/messages/impl/src/main/res/values-el/translations.xml b/features/messages/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..02a3a765ff --- /dev/null +++ b/features/messages/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,53 @@ + + + "Δραστηριότητες" + "Σημαίες" + "Φαγητό & Ποτό" + "Ζώα & Φύση" + "Αντικείμενα" + "Φατσούλες & Άνθρωποι" + "Ταξίδια & Μέρη" + "Σύμβολα" + "Αποκλεισμός χρήστη" + "Επέλεξε εάν θες να αποκρύψεις όλα τα τρέχοντα και μελλοντικά μηνύματα από αυτόν τον χρήστη" + "Αυτό το μήνυμα θα αναφερθεί στον διαχειριστή του οικιακού διακομιστή σας. Δεν θα μπορεί να διαβάσει κρυπτογραφημένα μηνύματα." + "Λόγος αναφοράς αυτού του περιεχομένου" + "Κάμερα" + "Τράβηξε φωτογραφία" + "Εγγραφή βίντεο" + "Επισύναψη" + "Βιβλιοθήκη Φωτογραφιών & Βίντεο" + "Τοποθεσία" + "Δημοσκόπηση" + "Μορφοποίηση Κειμένου" + "Το ιστορικό μηνυμάτων δεν είναι διαθέσιμο προς το παρόν." + "Το ιστορικό μηνυμάτων δεν είναι διαθέσιμο σε αυτό το δωμάτιο. Επαλήθευσε αυτήν τη συσκευή για να δεις το ιστορικό μηνυμάτων σου." + "Θα ήθελες να τους προσκαλέσεις και συ;" + "Είσαι μόνος σε αυτή τη συνομιλία" + "Ειδοποίησε όλο το δωμάτιο" + "Όλοι" + "Αποστολή ξανά" + "Το μήνυμά σου απέτυχε να σταλεί" + "Προσθήκη emoji" + "Αυτή είναι η αρχή του %1$s." + "Αυτή είναι η αρχή τούτης της συνομιλίας." + "Εμφάνιση λιγότερων" + "Το μήνυμα αντιγράφηκε" + "Δεν έχεις άδεια να δημοσιεύσεις σε αυτό το δωμάτιο" + "Εμφάνιση λιγότερων" + "Εμφάνιση περισσότερων" + "Νέο" + + "%1$d αλλαγή δωματίου" + "%1$d αλλαγές δωματίου" + + + "%1$s, %2$s και %3$d ακόμη" + "%1$s, %2$s και %3$d ακόμη" + + + "Ο χρήστης %1$s πληκτρολογεί" + "Οι χρήστες %1$s πληκτρολογούν" + + "%1$s και %2$s" + diff --git a/features/messages/impl/src/main/res/values-et/translations.xml b/features/messages/impl/src/main/res/values-et/translations.xml index a47e6969e5..86951acfbd 100644 --- a/features/messages/impl/src/main/res/values-et/translations.xml +++ b/features/messages/impl/src/main/res/values-et/translations.xml @@ -8,6 +8,8 @@ "Emotikonid ja inimesed" "Reisimine ja kohad" "Sümbolid" + "Blokeeri kasutaja" + "Vali see eelistus, kui sa soovid peita selle kasutaja kõik senised ja tulevased sõnumid" "Teade selle sõnumi kohta edastatakse sinu koduserveri haldajale. Haldajal ei ole võimalik lugeda krüptitud sõnumite sisu." "Sellest sisust teatamise põhjus" "Kaamera" @@ -20,10 +22,20 @@ "Tekstivorming" "Sõnumite ajalugu pole hetkel saadaval" "Selle jututoa sõnumite ajalugu pole hetkel saadaval. Verifitseeri see seade ja näed tervet oma sõnumiteajalugu." + "Kas sa sooviksid neid tagasi kutsuda?" + "Sa oled selles vestluses üksinda" "Teavita kogu jututuba" "Kõik" + "Saada uuesti" + "Sinu sõnumi saatmine ei õnnestunud" + "Lisa emotikon" "See on %1$s jututoa algus." "See on antud vestluse algus." + "Näita vähem" + "Sõnum on kopeeritud" + "Sul pole õigusi siia jututuppa kirjutada" + "Näita vähem" + "Näita rohkem" "Uus" "%1$d jututoa muudatus" @@ -37,4 +49,5 @@ "%1$s kirjutab" "%1$s kirjutavad" + "%1$s ja %2$s" diff --git a/features/messages/impl/src/main/res/values-fr/translations.xml b/features/messages/impl/src/main/res/values-fr/translations.xml index 1aa0cf330b..ab47aed0ca 100644 --- a/features/messages/impl/src/main/res/values-fr/translations.xml +++ b/features/messages/impl/src/main/res/values-fr/translations.xml @@ -23,7 +23,7 @@ "L’historique des messages n’est actuellement pas disponible dans ce salon" "L’historique de la discussion n’est pas disponible. Vérifiez cette session pour accéder à l’historique." "Souhaitez-vous inviter l’ancien membre à revenir ?" - "Vous êtes seul dans ce salon" + "Vous êtes seul dans cette discussion" "Notifier tout le salon" "Tout le monde" "Envoyer à nouveau" diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt index b0f7fd5a48..74cffb30fd 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt @@ -25,11 +25,11 @@ import com.google.common.truth.Truth.assertThat import io.element.android.features.messages.impl.actionlist.ActionListPresenter import io.element.android.features.messages.impl.actionlist.ActionListState import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction +import io.element.android.features.messages.impl.draft.FakeComposerDraftService import io.element.android.features.messages.impl.fixtures.aMessageEvent import io.element.android.features.messages.impl.fixtures.aTimelineItemsFactory import io.element.android.features.messages.impl.messagecomposer.DefaultMessageComposerContext import io.element.android.features.messages.impl.messagecomposer.MessageComposerPresenter -import io.element.android.features.messages.impl.messagesummary.FakeMessageSummaryFormatter import io.element.android.features.messages.impl.textcomposer.TestRichTextEditorStateFactory import io.element.android.features.messages.impl.timeline.TimelineController import io.element.android.features.messages.impl.timeline.TimelineItemIndexer @@ -65,17 +65,16 @@ import io.element.android.libraries.featureflag.test.FakeFeatureFlagService import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.TransactionId import io.element.android.libraries.matrix.api.media.MediaSource +import io.element.android.libraries.matrix.api.permalink.PermalinkParser import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.room.MatrixRoomMembersState import io.element.android.libraries.matrix.api.room.MessageEventType import io.element.android.libraries.matrix.api.room.RoomMembershipState -import io.element.android.libraries.matrix.api.user.CurrentSessionIdHolder import io.element.android.libraries.matrix.test.AN_AVATAR_URL import io.element.android.libraries.matrix.test.AN_EVENT_ID import io.element.android.libraries.matrix.test.A_ROOM_ID import io.element.android.libraries.matrix.test.A_SESSION_ID import io.element.android.libraries.matrix.test.A_SESSION_ID_2 -import io.element.android.libraries.matrix.test.FakeMatrixClient import io.element.android.libraries.matrix.test.core.aBuildMeta import io.element.android.libraries.matrix.test.permalink.FakePermalinkBuilder import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser @@ -83,6 +82,7 @@ import io.element.android.libraries.matrix.test.room.FakeMatrixRoom import io.element.android.libraries.matrix.test.room.aRoomInfo import io.element.android.libraries.matrix.test.room.aRoomMember import io.element.android.libraries.matrix.test.timeline.FakeTimeline +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails import io.element.android.libraries.mediapickers.test.FakePickerProvider import io.element.android.libraries.mediaplayer.test.FakeMediaPlayer import io.element.android.libraries.mediaupload.api.MediaSender @@ -333,7 +333,7 @@ class MessagesPresenterTest { val finalState = awaitItem() assertThat(finalState.composerState.mode).isInstanceOf(MessageComposerMode.Reply::class.java) val replyMode = finalState.composerState.mode as MessageComposerMode.Reply - assertThat(replyMode.attachmentThumbnailInfo).isNotNull() + assertThat(replyMode.replyToDetails).isInstanceOf(InReplyToDetails.Loading::class.java) assertThat(finalState.actionListState.target).isEqualTo(ActionListState.Target.None) } } @@ -366,7 +366,7 @@ class MessagesPresenterTest { val finalState = awaitItem() assertThat(finalState.composerState.mode).isInstanceOf(MessageComposerMode.Reply::class.java) val replyMode = finalState.composerState.mode as MessageComposerMode.Reply - assertThat(replyMode.attachmentThumbnailInfo).isNotNull() + assertThat(replyMode.replyToDetails).isInstanceOf(InReplyToDetails.Loading::class.java) assertThat(finalState.actionListState.target).isEqualTo(ActionListState.Target.None) } } @@ -392,7 +392,7 @@ class MessagesPresenterTest { val finalState = awaitItem() assertThat(finalState.composerState.mode).isInstanceOf(MessageComposerMode.Reply::class.java) val replyMode = finalState.composerState.mode as MessageComposerMode.Reply - assertThat(replyMode.attachmentThumbnailInfo).isNotNull() + assertThat(replyMode.replyToDetails).isInstanceOf(InReplyToDetails.Loading::class.java) assertThat(finalState.actionListState.target).isEqualTo(ActionListState.Target.None) } } @@ -737,16 +737,15 @@ class MessagesPresenterTest { val finalState = awaitItem() assertThat(finalState.composerState.mode).isInstanceOf(MessageComposerMode.Reply::class.java) val replyMode = finalState.composerState.mode as MessageComposerMode.Reply - assertThat(replyMode.attachmentThumbnailInfo).isNotNull() - assertThat(replyMode.attachmentThumbnailInfo?.textContent) - .isEqualTo("What type of food should we have at the party?") + + assertThat(replyMode.replyToDetails).isInstanceOf(InReplyToDetails.Loading::class.java) assertThat(finalState.actionListState.target).isEqualTo(ActionListState.Target.None) } } private suspend fun ReceiveTurbine.awaitFirstItem(): T { // Skip 2 item if Mentions feature is enabled, else 1 - skipItems(if (FeatureFlags.Mentions.defaultValue) 2 else 1) + skipItems(if (FeatureFlags.Mentions.defaultValue(aBuildMeta())) 2 else 1) return awaitItem() } @@ -760,6 +759,7 @@ class MessagesPresenterTest { analyticsService: FakeAnalyticsService = FakeAnalyticsService(), permissionsPresenter: PermissionsPresenter = FakePermissionsPresenter(), endPollAction: EndPollAction = FakeEndPollAction(), + permalinkParser: PermalinkParser = FakePermalinkParser(), ): MessagesPresenter { val mediaSender = MediaSender(FakeMediaPreProcessor(), matrixRoom) val permissionsPresenterFactory = FakePermissionsPresenterFactory(permissionsPresenter) @@ -778,10 +778,10 @@ class MessagesPresenterTest { messageComposerContext = DefaultMessageComposerContext(), richTextEditorStateFactory = TestRichTextEditorStateFactory(), permissionsPresenterFactory = permissionsPresenterFactory, - currentSessionIdHolder = CurrentSessionIdHolder(FakeMatrixClient(A_SESSION_ID)), permalinkParser = FakePermalinkParser(), permalinkBuilder = FakePermalinkBuilder(), timelineController = TimelineController(matrixRoom), + draftService = FakeComposerDraftService(), ).apply { showTextFormatting = true isTesting = true @@ -833,7 +833,6 @@ class MessagesPresenterTest { readReceiptBottomSheetPresenter = readReceiptBottomSheetPresenter, networkMonitor = FakeNetworkMonitor(), snackbarDispatcher = SnackbarDispatcher(), - messageSummaryFormatter = FakeMessageSummaryFormatter(), navigator = navigator, clipboardHelper = clipboardHelper, featureFlagsService = FakeFeatureFlagService(), @@ -841,6 +840,7 @@ class MessagesPresenterTest { dispatchers = coroutineDispatchers, htmlConverterProvider = FakeHtmlConverterProvider(), timelineController = TimelineController(matrixRoom), + permalinkParser = permalinkParser, ) } } diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt index 54af738466..9a22ced505 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt @@ -470,7 +470,9 @@ private fun AndroidComposeTestRule.setMessa ) { setContent { // Cannot use the RichTextEditor, so simulate a LocalInspectionMode - CompositionLocalProvider(LocalInspectionMode provides true) { + CompositionLocalProvider( + LocalInspectionMode provides true + ) { MessagesView( state = state, onBackClick = onBackClick, diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt index ea18c0af39..76c43a9c8b 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt @@ -615,7 +615,6 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Edit, TimelineItemAction.Copy, - TimelineItemAction.CopyLink, TimelineItemAction.Redact, ) ) diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/draft/FakeComposerDraftService.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/draft/FakeComposerDraftService.kt new file mode 100644 index 0000000000..84f853319d --- /dev/null +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/draft/FakeComposerDraftService.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.impl.draft + +import io.element.android.libraries.matrix.api.core.RoomId +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft + +class FakeComposerDraftService : ComposerDraftService { + var loadDraftLambda: (RoomId, Boolean) -> ComposerDraft? = { _, _ -> null } + override suspend fun loadDraft(roomId: RoomId, isVolatile: Boolean): ComposerDraft? = loadDraftLambda(roomId, isVolatile) + + var saveDraftLambda: (RoomId, ComposerDraft?, Boolean) -> Unit = { _, _, _ -> } + override suspend fun updateDraft(roomId: RoomId, draft: ComposerDraft?, isVolatile: Boolean) = saveDraftLambda(roomId, draft, isVolatile) +} diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/draft/VolatileComposerDraftStoreTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/draft/VolatileComposerDraftStoreTest.kt new file mode 100644 index 0000000000..91c9b2bee9 --- /dev/null +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/draft/VolatileComposerDraftStoreTest.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.impl.draft + +import com.google.common.truth.Truth.assertThat +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft +import io.element.android.libraries.matrix.api.room.draft.ComposerDraftType +import io.element.android.libraries.matrix.test.A_ROOM_ID +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class VolatileComposerDraftStoreTest { + private val roomId = A_ROOM_ID + private val sut = VolatileComposerDraftStore() + private val draft = ComposerDraft("plainText", "htmlText", ComposerDraftType.NewMessage) + + @Test + fun `when storing a non-null draft and then loading it, it's loaded and removed`() = runTest { + val initialDraft = sut.loadDraft(roomId) + assertThat(initialDraft).isNull() + + sut.updateDraft(roomId, draft) + + val loadedDraft = sut.loadDraft(roomId) + assertThat(loadedDraft).isEqualTo(draft) + + val loadedDraftAfter = sut.loadDraft(roomId) + assertThat(loadedDraftAfter).isNull() + } + + @Test + fun `when storing a null draft and then loading it, it's removing the previous one`() = runTest { + val initialDraft = sut.loadDraft(roomId) + assertThat(initialDraft).isNull() + + sut.updateDraft(roomId, draft) + sut.updateDraft(roomId, null) + + val loadedDraft = sut.loadDraft(roomId) + assertThat(loadedDraft).isNull() + } +} diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/fixtures/MessageEventFixtures.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/fixtures/MessageEventFixtures.kt index b6a605bdbf..7f2c3cfbeb 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/fixtures/MessageEventFixtures.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/fixtures/MessageEventFixtures.kt @@ -18,8 +18,6 @@ package io.element.android.features.messages.impl.fixtures import io.element.android.features.messages.impl.timeline.aTimelineItemDebugInfo import io.element.android.features.messages.impl.timeline.aTimelineItemReactions -import io.element.android.features.messages.impl.timeline.components.aProfileTimelineDetailsReady -import io.element.android.features.messages.impl.timeline.model.InReplyToDetails import io.element.android.features.messages.impl.timeline.model.ReadReceiptData import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.model.TimelineItemReadReceipts @@ -35,6 +33,8 @@ import io.element.android.libraries.matrix.test.AN_EVENT_ID import io.element.android.libraries.matrix.test.A_MESSAGE import io.element.android.libraries.matrix.test.A_USER_ID import io.element.android.libraries.matrix.test.A_USER_NAME +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.aProfileTimelineDetailsReady import kotlinx.collections.immutable.toImmutableList internal fun aMessageEvent( diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/textcomposer/MessageComposerPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/textcomposer/MessageComposerPresenterTest.kt index f027612c18..c2d5966fd0 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/textcomposer/MessageComposerPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/textcomposer/MessageComposerPresenterTest.kt @@ -27,6 +27,8 @@ import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import im.vector.app.features.analytics.plan.Composer import im.vector.app.features.analytics.plan.Interaction +import io.element.android.features.messages.impl.draft.ComposerDraftService +import io.element.android.features.messages.impl.draft.FakeComposerDraftService import io.element.android.features.messages.impl.messagecomposer.AttachmentsState import io.element.android.features.messages.impl.messagecomposer.DefaultMessageComposerContext import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents @@ -39,6 +41,7 @@ import io.element.android.libraries.featureflag.api.FeatureFlagService import io.element.android.libraries.featureflag.api.FeatureFlags import io.element.android.libraries.featureflag.test.FakeFeatureFlagService import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.TransactionId import io.element.android.libraries.matrix.api.media.ImageInfo import io.element.android.libraries.matrix.api.media.VideoInfo @@ -47,24 +50,26 @@ import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.room.MatrixRoomMembersState import io.element.android.libraries.matrix.api.room.Mention import io.element.android.libraries.matrix.api.room.RoomMembershipState -import io.element.android.libraries.matrix.api.user.CurrentSessionIdHolder +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft +import io.element.android.libraries.matrix.api.room.draft.ComposerDraftType +import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo import io.element.android.libraries.matrix.test.ANOTHER_MESSAGE import io.element.android.libraries.matrix.test.AN_EVENT_ID import io.element.android.libraries.matrix.test.A_MESSAGE import io.element.android.libraries.matrix.test.A_REPLY -import io.element.android.libraries.matrix.test.A_SESSION_ID +import io.element.android.libraries.matrix.test.A_ROOM_ID import io.element.android.libraries.matrix.test.A_TRANSACTION_ID import io.element.android.libraries.matrix.test.A_USER_ID import io.element.android.libraries.matrix.test.A_USER_ID_2 import io.element.android.libraries.matrix.test.A_USER_ID_3 import io.element.android.libraries.matrix.test.A_USER_ID_4 -import io.element.android.libraries.matrix.test.A_USER_NAME -import io.element.android.libraries.matrix.test.FakeMatrixClient +import io.element.android.libraries.matrix.test.core.aBuildMeta import io.element.android.libraries.matrix.test.permalink.FakePermalinkBuilder import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser import io.element.android.libraries.matrix.test.room.FakeMatrixRoom import io.element.android.libraries.matrix.test.room.aRoomMember import io.element.android.libraries.matrix.test.timeline.FakeTimeline +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails import io.element.android.libraries.mediapickers.api.PickerProvider import io.element.android.libraries.mediapickers.test.FakePickerProvider import io.element.android.libraries.mediaupload.api.MediaPreProcessor @@ -168,22 +173,85 @@ class MessageComposerPresenterTest { @Test fun `present - change mode to edit`() = runTest { - val presenter = createPresenter(this) + val loadDraftLambda = lambdaRecorder { _: RoomId, _: Boolean -> + ComposerDraft(A_MESSAGE, A_MESSAGE, ComposerDraftType.NewMessage) + } + val updateDraftLambda = lambdaRecorder { _: RoomId, _: ComposerDraft?, _: Boolean -> } + val draftService = FakeComposerDraftService().apply { + this.loadDraftLambda = loadDraftLambda + this.saveDraftLambda = updateDraftLambda + } + val presenter = createPresenter( + coroutineScope = this, + draftService = draftService, + ) moleculeFlow(RecompositionMode.Immediate) { val state = presenter.present() remember(state, state.textEditorState.messageHtml()) { state } }.test { var state = awaitFirstItem() - val mode = anEditMode() + val mode = anEditMode(message = ANOTHER_MESSAGE) state.eventSink.invoke(MessageComposerEvents.SetMode(mode)) state = awaitItem() assertThat(state.mode).isEqualTo(mode) - state = awaitItem() + assertThat(state.textEditorState.messageHtml()).isEqualTo(ANOTHER_MESSAGE) + state = backToNormalMode(state) + // The message that was being edited is cleared and volatile draft is loaded assertThat(state.textEditorState.messageHtml()).isEqualTo(A_MESSAGE) - state = backToNormalMode(state, skipCount = 1) - // The message that was being edited is cleared - assertThat(state.textEditorState.messageHtml()).isEqualTo("") + assert(loadDraftLambda) + .isCalledExactly(2) + .withSequence( + // Automatic load of draft + listOf(value(A_ROOM_ID), value(false)), + // Load of volatile draft when closing edit mode + listOf(value(A_ROOM_ID), value(true)) + ) + + assert(updateDraftLambda) + .isCalledOnce() + .with(value(A_ROOM_ID), any(), value(true)) + } + } + + @Test + fun `present - change mode to reply after edit`() = runTest { + val loadDraftLambda = lambdaRecorder { _: RoomId, _: Boolean -> + ComposerDraft(A_MESSAGE, A_MESSAGE, ComposerDraftType.NewMessage) + } + val updateDraftLambda = lambdaRecorder { _: RoomId, _: ComposerDraft?, _: Boolean -> } + val draftService = FakeComposerDraftService().apply { + this.loadDraftLambda = loadDraftLambda + this.saveDraftLambda = updateDraftLambda + } + val presenter = createPresenter( + coroutineScope = this, + draftService = draftService, + ) + moleculeFlow(RecompositionMode.Immediate) { + val state = presenter.present() + remember(state, state.textEditorState.messageHtml()) { state } + }.test { + var state = awaitFirstItem() + val editMode = anEditMode(message = ANOTHER_MESSAGE) + state.eventSink.invoke(MessageComposerEvents.SetMode(editMode)) + state = awaitItem() + assertThat(state.mode).isEqualTo(editMode) + assertThat(state.textEditorState.messageHtml()).isEqualTo(ANOTHER_MESSAGE) + + val replyMode = aReplyMode() + state.eventSink.invoke(MessageComposerEvents.SetMode(replyMode)) + state = awaitItem() + assertThat(state.mode).isEqualTo(replyMode) + assertThat(state.textEditorState.messageHtml()).isEmpty() + + assert(loadDraftLambda) + .isCalledOnce() + .with(value(A_ROOM_ID), value(false)) + + assert(updateDraftLambda) + .isCalledOnce() + .with(value(A_ROOM_ID), any(), value(true)) } } @@ -222,22 +290,6 @@ class MessageComposerPresenterTest { } } - @Test - fun `present - change mode to quote`() = runTest { - val presenter = createPresenter(this) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { - var state = awaitFirstItem() - val mode = aQuoteMode() - state.eventSink.invoke(MessageComposerEvents.SetMode(mode)) - state = awaitItem() - assertThat(state.mode).isEqualTo(mode) - assertThat(state.textEditorState.messageHtml()).isEqualTo("") - backToNormalMode(state) - } - } - @Test fun `present - send message with rich text enabled`() = runTest { val presenter = createPresenter(this) @@ -314,7 +366,6 @@ class MessageComposerPresenterTest { assertThat(initialState.textEditorState.messageHtml()).isEqualTo("") val mode = anEditMode() initialState.eventSink.invoke(MessageComposerEvents.SetMode(mode)) - skipItems(1) val withMessageState = awaitItem() assertThat(withMessageState.mode).isEqualTo(mode) assertThat(withMessageState.textEditorState.messageHtml()).isEqualTo(A_MESSAGE) @@ -330,7 +381,7 @@ class MessageComposerPresenterTest { assert(editMessageLambda) .isCalledOnce() - .with(any(), any(), value(ANOTHER_MESSAGE), value(ANOTHER_MESSAGE), any()) + .with(value(AN_EVENT_ID), value(null), value(ANOTHER_MESSAGE), value(ANOTHER_MESSAGE), any()) assertThat(analyticsService.capturedEvents).containsExactly( Composer( @@ -364,7 +415,6 @@ class MessageComposerPresenterTest { assertThat(initialState.textEditorState.messageHtml()).isEqualTo("") val mode = anEditMode(eventId = null, transactionId = A_TRANSACTION_ID) initialState.eventSink.invoke(MessageComposerEvents.SetMode(mode)) - skipItems(1) val withMessageState = awaitItem() assertThat(withMessageState.mode).isEqualTo(mode) assertThat(withMessageState.textEditorState.messageHtml()).isEqualTo(A_MESSAGE) @@ -380,7 +430,7 @@ class MessageComposerPresenterTest { assert(editMessageLambda) .isCalledOnce() - .with(any(), any(), value(ANOTHER_MESSAGE), value(ANOTHER_MESSAGE), any()) + .with(value(null), value(A_TRANSACTION_ID), value(ANOTHER_MESSAGE), value(ANOTHER_MESSAGE), any()) assertThat(analyticsService.capturedEvents).containsExactly( Composer( @@ -843,7 +893,6 @@ class MessageComposerPresenterTest { // If room is a DM, `RoomMemberSuggestion.Room` is not returned room.givenCanTriggerRoomNotification(Result.success(true)) - room.isDirect } } @@ -1026,6 +1075,268 @@ class MessageComposerPresenterTest { } } + @Test + fun `present - when there is no draft, nothing is restored`() = runTest { + val loadDraftLambda = lambdaRecorder { _, _ -> null } + val composerDraftService = FakeComposerDraftService().apply { + this.loadDraftLambda = loadDraftLambda + } + val presenter = createPresenter(draftService = composerDraftService, coroutineScope = this) + moleculeFlow(RecompositionMode.Immediate) { + presenter.present() + }.test { + awaitFirstItem() + assert(loadDraftLambda) + .isCalledOnce() + .with(value(A_ROOM_ID), value(false)) + + ensureAllEventsConsumed() + } + } + + @Test + fun `present - when there is a draft for new message with plain text, it is restored`() = runTest { + val loadDraftLambda = lambdaRecorder { _, _ -> + ComposerDraft(plainText = A_MESSAGE, htmlText = null, draftType = ComposerDraftType.NewMessage) + } + val composerDraftService = FakeComposerDraftService().apply { + this.loadDraftLambda = loadDraftLambda + } + val permalinkBuilder = FakePermalinkBuilder() + val presenter = createPresenter( + draftService = composerDraftService, + permalinkBuilder = permalinkBuilder, + coroutineScope = this + ) + moleculeFlow(RecompositionMode.Immediate) { + presenter.present() + }.test { + awaitFirstItem().also { state -> + assertThat(state.textEditorState.messageMarkdown(permalinkBuilder)).isEqualTo(A_MESSAGE) + assertThat(state.textEditorState.messageHtml()).isNull() + } + + assert(loadDraftLambda) + .isCalledOnce() + .with(value(A_ROOM_ID), value(false)) + + ensureAllEventsConsumed() + } + } + + @Test + fun `present - when there is a draft for new message with rich text, it is restored`() = runTest { + val loadDraftLambda = lambdaRecorder { _, _ -> + ComposerDraft( + plainText = A_MESSAGE, + htmlText = A_MESSAGE, + draftType = ComposerDraftType.NewMessage + ) + } + val composerDraftService = FakeComposerDraftService().apply { + this.loadDraftLambda = loadDraftLambda + } + val permalinkBuilder = FakePermalinkBuilder() + val presenter = createPresenter( + draftService = composerDraftService, + permalinkBuilder = permalinkBuilder, + coroutineScope = this + ) + moleculeFlow(RecompositionMode.Immediate) { + presenter.present() + }.test { + awaitFirstItem().also { state -> + assertThat(state.showTextFormatting).isTrue() + assertThat(state.textEditorState.messageMarkdown(permalinkBuilder)).isEqualTo(A_MESSAGE) + assertThat(state.textEditorState.messageHtml()).isEqualTo(A_MESSAGE) + } + assert(loadDraftLambda) + .isCalledOnce() + .with(value(A_ROOM_ID), value(false)) + ensureAllEventsConsumed() + } + } + + @Test + fun `present - when there is a draft for edit, it is restored`() = runTest { + val loadDraftLambda = lambdaRecorder { _, _ -> + ComposerDraft( + plainText = A_MESSAGE, + htmlText = null, + draftType = ComposerDraftType.Edit(AN_EVENT_ID) + ) + } + val composerDraftService = FakeComposerDraftService().apply { + this.loadDraftLambda = loadDraftLambda + } + val permalinkBuilder = FakePermalinkBuilder() + val presenter = createPresenter( + draftService = composerDraftService, + permalinkBuilder = permalinkBuilder, + coroutineScope = this + ) + moleculeFlow(RecompositionMode.Immediate) { + presenter.present() + }.test { + awaitFirstItem().also { state -> + assertThat(state.showTextFormatting).isFalse() + assertThat(state.mode).isEqualTo(anEditMode()) + assertThat(state.textEditorState.messageMarkdown(permalinkBuilder)).isEqualTo(A_MESSAGE) + assertThat(state.textEditorState.messageHtml()).isNull() + } + assert(loadDraftLambda) + .isCalledOnce() + .with(value(A_ROOM_ID), value(false)) + + ensureAllEventsConsumed() + } + } + + @Test + fun `present - when there is a draft for reply, it is restored`() = runTest { + val loadDraftLambda = lambdaRecorder { _, _ -> + ComposerDraft( + plainText = A_MESSAGE, + htmlText = null, + draftType = ComposerDraftType.Reply(AN_EVENT_ID) + ) + } + val composerDraftService = FakeComposerDraftService().apply { + this.loadDraftLambda = loadDraftLambda + } + val loadReplyDetailsLambda = lambdaRecorder { eventId -> + InReplyTo.Pending(eventId) + } + val timeline = FakeTimeline().apply { + this.loadReplyDetailsLambda = loadReplyDetailsLambda + } + val room = FakeMatrixRoom(liveTimeline = timeline) + val permalinkBuilder = FakePermalinkBuilder() + val presenter = createPresenter( + room = room, + draftService = composerDraftService, + permalinkBuilder = permalinkBuilder, + coroutineScope = this + ) + moleculeFlow(RecompositionMode.Immediate) { + presenter.present() + }.test { + awaitFirstItem().also { state -> + assertThat(state.showTextFormatting).isFalse() + assertThat(state.mode).isEqualTo(aReplyMode()) + assertThat(state.textEditorState.messageMarkdown(permalinkBuilder)).isEqualTo(A_MESSAGE) + assertThat(state.textEditorState.messageHtml()).isNull() + } + assert(loadDraftLambda) + .isCalledOnce() + .with(value(A_ROOM_ID), value(false)) + + assert(loadReplyDetailsLambda) + .isCalledOnce() + .with(value(AN_EVENT_ID)) + + ensureAllEventsConsumed() + } + } + + @Test + fun `present - when save draft event is invoked and composer is empty then service is called with null draft`() = runTest { + val saveDraftLambda = lambdaRecorder { _, _, _ -> } + val composerDraftService = FakeComposerDraftService().apply { + this.saveDraftLambda = saveDraftLambda + } + val presenter = createPresenter(draftService = composerDraftService, coroutineScope = this) + moleculeFlow(RecompositionMode.Immediate) { + presenter.present() + }.test { + val initialState = awaitFirstItem() + initialState.eventSink.invoke(MessageComposerEvents.SaveDraft) + advanceUntilIdle() + assert(saveDraftLambda) + .isCalledOnce() + .with(value(A_ROOM_ID), value(null), value(false)) + } + } + + @Test + fun `present - when save draft event is invoked and composer is not empty then service is called`() = runTest { + val saveDraftLambda = lambdaRecorder { _, _, _ -> } + val composerDraftService = FakeComposerDraftService().apply { + this.saveDraftLambda = saveDraftLambda + } + val permalinkBuilder = FakePermalinkBuilder() + val presenter = createPresenter( + isRichTextEditorEnabled = false, + draftService = composerDraftService, + permalinkBuilder = permalinkBuilder, + coroutineScope = this + ) + moleculeFlow(RecompositionMode.Immediate) { + val state = presenter.present() + val messageMarkdown = state.textEditorState.messageMarkdown(permalinkBuilder) + remember(state, messageMarkdown) { state } + }.test { + val initialState = awaitFirstItem() + initialState.textEditorState.setMarkdown(A_MESSAGE) + + val withMessageState = awaitItem() + assertThat(withMessageState.textEditorState.messageMarkdown(permalinkBuilder)).isEqualTo(A_MESSAGE) + withMessageState.eventSink(MessageComposerEvents.SaveDraft) + advanceUntilIdle() + + withMessageState.eventSink(MessageComposerEvents.ToggleTextFormatting(true)) + skipItems(1) + val withFormattingState = awaitItem() + assertThat(withFormattingState.showTextFormatting).isTrue() + withFormattingState.eventSink(MessageComposerEvents.SaveDraft) + advanceUntilIdle() + + withFormattingState.eventSink(MessageComposerEvents.SetMode(anEditMode())) + val withEditModeState = awaitItem() + assertThat(withEditModeState.mode).isEqualTo(anEditMode()) + withEditModeState.eventSink(MessageComposerEvents.SaveDraft) + advanceUntilIdle() + + withEditModeState.eventSink(MessageComposerEvents.SetMode(aReplyMode())) + val withReplyModeState = awaitItem() + assertThat(withReplyModeState.mode).isEqualTo(aReplyMode()) + withReplyModeState.eventSink(MessageComposerEvents.SaveDraft) + advanceUntilIdle() + + assert(saveDraftLambda) + .isCalledExactly(5) + .withSequence( + listOf( + value(A_ROOM_ID), + value(ComposerDraft(plainText = A_MESSAGE, htmlText = null, draftType = ComposerDraftType.NewMessage)), + value(false) + ), + listOf( + value(A_ROOM_ID), + value(ComposerDraft(plainText = A_MESSAGE, htmlText = A_MESSAGE, draftType = ComposerDraftType.NewMessage)), + value(false) + ), + listOf( + value(A_ROOM_ID), + value(ComposerDraft(plainText = A_MESSAGE, htmlText = A_MESSAGE, draftType = ComposerDraftType.NewMessage)), + // The volatile draft created when switching to edit mode. + value(true) + ), + listOf( + value(A_ROOM_ID), + value(ComposerDraft(plainText = A_MESSAGE, htmlText = A_MESSAGE, draftType = ComposerDraftType.Edit(AN_EVENT_ID))), + value(false) + ), + listOf( + value(A_ROOM_ID), + // When moving from edit mode, text composer is cleared, so the draft is null + value(null), + value(false) + ) + ) + } + } + private suspend fun ReceiveTurbine.backToNormalMode(state: MessageComposerState, skipCount: Int = 0): MessageComposerState { state.eventSink.invoke(MessageComposerEvents.CloseSpecialMode) skipItems(skipCount) @@ -1045,6 +1356,7 @@ class MessageComposerPresenterTest { permissionPresenter: PermissionsPresenter = FakePermissionsPresenter(), permalinkBuilder: PermalinkBuilder = FakePermalinkBuilder(), isRichTextEditorEnabled: Boolean = true, + draftService: ComposerDraftService = FakeComposerDraftService(), ) = MessageComposerPresenter( coroutineScope, room, @@ -1057,11 +1369,11 @@ class MessageComposerPresenterTest { analyticsService, DefaultMessageComposerContext(), TestRichTextEditorStateFactory(), - currentSessionIdHolder = CurrentSessionIdHolder(FakeMatrixClient(A_SESSION_ID)), permissionsPresenterFactory = FakePermissionsPresenterFactory(permissionPresenter), permalinkParser = FakePermalinkParser(), permalinkBuilder = permalinkBuilder, timelineController = TimelineController(room), + draftService = draftService, ).apply { isTesting = true showTextFormatting = isRichTextEditorEnabled @@ -1069,7 +1381,7 @@ class MessageComposerPresenterTest { private suspend fun ReceiveTurbine.awaitFirstItem(): T { // Skip 2 item if Mentions feature is enabled, else 1 - skipItems(if (FeatureFlags.Mentions.defaultValue) 2 else 1) + skipItems(if (FeatureFlags.Mentions.defaultValue(aBuildMeta())) 2 else 1) return awaitItem() } } @@ -1078,15 +1390,6 @@ fun anEditMode( eventId: EventId? = AN_EVENT_ID, message: String = A_MESSAGE, transactionId: TransactionId? = null, -) = MessageComposerMode.Edit(eventId, message, transactionId) - -fun aReplyMode() = MessageComposerMode.Reply(A_USER_NAME, null, false, AN_EVENT_ID, A_MESSAGE) -fun aQuoteMode() = MessageComposerMode.Quote(AN_EVENT_ID, A_MESSAGE) +) = MessageComposerMode.Edit(eventId, transactionId, message) -private suspend fun TextEditorState.setHtml(html: String) { - (this as? TextEditorState.Rich)?.richTextEditorState?.setHtml(html) ?: error("TextEditorState is not Rich") -} - -private fun TextEditorState.setMarkdown(markdown: String) { - (this as? TextEditorState.Markdown)?.state?.text?.update(markdown, needsDisplaying = false) ?: error("TextEditorState is not Markdown") -} +fun aReplyMode() = MessageComposerMode.Reply(replyToDetails = InReplyToDetails.Loading(AN_EVENT_ID)) diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/DefaultHtmlConverterProviderTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/DefaultHtmlConverterProviderTest.kt index 7411ceda1a..276544a057 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/DefaultHtmlConverterProviderTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/DefaultHtmlConverterProviderTest.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.test.junit4.createComposeRule import com.google.common.truth.Truth.assertThat import io.element.android.libraries.matrix.test.A_USER_ID -import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -33,9 +32,7 @@ class DefaultHtmlConverterProviderTest { @Test fun `calling provide without calling Update first should throw an exception`() { - val provider = DefaultHtmlConverterProvider( - permalinkParser = FakePermalinkParser(), - ) + val provider = DefaultHtmlConverterProvider() val exception = runCatching { provider.provide() }.exceptionOrNull() @@ -44,9 +41,7 @@ class DefaultHtmlConverterProviderTest { @Test fun `calling provide after calling Update first should return an HtmlConverter`() { - val provider = DefaultHtmlConverterProvider( - permalinkParser = FakePermalinkParser(), - ) + val provider = DefaultHtmlConverterProvider() composeTestRule.setContent { CompositionLocalProvider(LocalInspectionMode provides true) { provider.Update(currentUserId = A_USER_ID) diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineTextViewTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineTextViewTest.kt new file mode 100644 index 0000000000..1a08cfd750 --- /dev/null +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineTextViewTest.kt @@ -0,0 +1,175 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.impl.timeline.components.event + +import android.text.SpannableString +import androidx.activity.ComponentActivity +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.test.junit4.AndroidComposeTestRule +import androidx.compose.ui.test.junit4.createAndroidComposeRule +import androidx.core.text.buildSpannedString +import androidx.core.text.inSpans +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.google.common.truth.Truth.assertThat +import io.element.android.features.messages.impl.timeline.model.event.TimelineItemTextBasedContent +import io.element.android.features.messages.impl.timeline.model.event.TimelineItemTextContent +import io.element.android.libraries.matrix.test.A_ROOM_ID +import io.element.android.libraries.matrix.test.A_ROOM_ID_2 +import io.element.android.libraries.matrix.test.A_USER_ID +import io.element.android.libraries.matrix.test.A_USER_ID_2 +import io.element.android.libraries.matrix.test.A_USER_NAME +import io.element.android.libraries.matrix.test.room.aRoomMember +import io.element.android.libraries.matrix.ui.messages.LocalRoomMemberProfilesCache +import io.element.android.libraries.matrix.ui.messages.RoomMemberProfilesCache +import io.element.android.libraries.textcomposer.mentions.MentionSpan +import io.element.android.libraries.textcomposer.mentions.getMentionSpans +import io.element.android.wysiwyg.view.spans.CustomMentionSpan +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.test.runTest +import org.junit.Rule +import org.junit.Test +import org.junit.rules.TestRule +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class TimelineTextViewTest { + @get:Rule val rule = createAndroidComposeRule() + + @Test + fun `getTextWithResolvedMentions - does nothing for a non spannable CharSequence`() = runTest { + val charSequence = "Hello @alice:example.com" + + val result = rule.getText(aTextContentWithFormattedBody(charSequence)) + + assertThat(result.getMentionSpans()).isEmpty() + } + + @Test + fun `getTextWithResolvedMentions - does nothing if there are no mentions`() = runTest { + val charSequence = SpannableString("Hello @alice:example.com") + + val result = rule.getText(aTextContentWithFormattedBody(charSequence)) + + assertThat(result.getMentionSpans()).isEmpty() + } + + @Test + fun `getTextWithResolvedMentions - just returns the body if there is no formattedBody`() = runTest { + val charSequence = "Hello @alice:example.com" + + val result = rule.getText(aTextContentWithFormattedBody(body = charSequence, formattedBody = null)) + + assertThat(result.getMentionSpans()).isEmpty() + assertThat(result.toString()).isEqualTo(charSequence) + } + + @Test + fun `getTextWithResolvedMentions - with Room mention does nothing`() = runTest { + val charSequence = buildSpannedString { + append("Hello ") + inSpans(aMentionSpan(rawValue = A_ROOM_ID_2.value, type = MentionSpan.Type.ROOM)) { + append(A_ROOM_ID.value) + } + } + + val result = rule.getText(aTextContentWithFormattedBody(charSequence)) + + assertThat(result.getMentionSpans().firstOrNull()?.text).isEmpty() + assertThat(result).isEqualTo(charSequence) + } + + @Test + fun `getTextWithResolvedMentions - replaces MentionSpan's text`() = runTest { + val charSequence = buildSpannedString { + append("Hello ") + inSpans(aMentionSpan(rawValue = A_USER_ID.value)) { + append("@NotAlice") + } + } + + val result = rule.getText(aTextContentWithFormattedBody(charSequence)) + + assertThat(result.getMentionSpans().firstOrNull()?.text).isEqualTo("alice") + } + + @Test + fun `getTextWithResolvedMentions - replaces MentionSpan's text inside CustomMentionSpan`() = runTest { + val charSequence = buildSpannedString { + append("Hello ") + inSpans(CustomMentionSpan(aMentionSpan(rawValue = A_USER_ID.value))) { + append("@NotAlice") + } + } + + val result = rule.getText(aTextContentWithFormattedBody(charSequence)) + + assertThat(result.getMentionSpans().firstOrNull()?.text).isEqualTo("alice") + } + + @Test + fun `getTextWithResolvedMentions - replaces MentionSpan's text with user id if no display name is cached`() = runTest { + val charSequence = buildSpannedString { + append("Hello ") + inSpans(aMentionSpan(rawValue = A_USER_ID_2.value)) { + append("@NotAlice") + } + } + + val result = rule.getText(aTextContentWithFormattedBody(charSequence)) + + assertThat(result.getMentionSpans().firstOrNull()?.text).isEqualTo(A_USER_ID_2.value) + } + + private suspend fun AndroidComposeTestRule.getText( + content: TimelineItemTextBasedContent, + ): CharSequence { + val completable = CompletableDeferred() + setContent { + val roomMemberProfilesCache = RoomMemberProfilesCache().apply { + replace(listOf(aRoomMember(userId = A_USER_ID, displayName = A_USER_NAME))) + } + CompositionLocalProvider( + LocalRoomMemberProfilesCache provides roomMemberProfilesCache, + ) { + completable.complete(getTextWithResolvedMentions(content = content)) + } + } + return completable.await() + } + + private fun aMentionSpan( + rawValue: String, + text: String = "", + type: MentionSpan.Type = MentionSpan.Type.USER + ) = MentionSpan( + text = text, + rawValue = rawValue, + type = type, + backgroundColor = 0, + textColor = 0, + startPadding = 0, + endPadding = 0, + ) + + private fun aTextContentWithFormattedBody(formattedBody: CharSequence?, body: String = "") = + TimelineItemTextContent( + body = body, + htmlDocument = null, + formattedBody = formattedBody, + isEdited = false + ) +} diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/groups/TimelineItemGrouperTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/groups/TimelineItemGrouperTest.kt index 3cfc34ee51..ce53e05090 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/groups/TimelineItemGrouperTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/groups/TimelineItemGrouperTest.kt @@ -20,7 +20,6 @@ import com.google.common.truth.Truth.assertThat import io.element.android.features.messages.impl.fixtures.aMessageEvent import io.element.android.features.messages.impl.timeline.aTimelineItemDebugInfo import io.element.android.features.messages.impl.timeline.aTimelineItemReactions -import io.element.android.features.messages.impl.timeline.components.aProfileTimelineDetailsReady import io.element.android.features.messages.impl.timeline.model.ReadReceiptData import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.model.TimelineItemReadReceipts @@ -30,6 +29,7 @@ import io.element.android.libraries.designsystem.components.avatar.anAvatarData import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState import io.element.android.libraries.matrix.test.AN_EVENT_ID import io.element.android.libraries.matrix.test.A_USER_ID +import io.element.android.libraries.matrix.ui.messages.reply.aProfileTimelineDetailsReady import kotlinx.collections.immutable.toImmutableList import org.junit.Test diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToDetailTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToDetailTest.kt deleted file mode 100644 index b103cc8e68..0000000000 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToDetailTest.kt +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.messages.impl.timeline.model - -import com.google.common.truth.Truth.assertThat -import io.element.android.libraries.matrix.api.timeline.item.event.FormattedBody -import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo -import io.element.android.libraries.matrix.api.timeline.item.event.MembershipChange -import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent -import io.element.android.libraries.matrix.api.timeline.item.event.MessageFormat -import io.element.android.libraries.matrix.api.timeline.item.event.RoomMembershipContent -import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType -import io.element.android.libraries.matrix.test.AN_EVENT_ID -import io.element.android.libraries.matrix.test.A_USER_ID -import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser -import io.element.android.libraries.matrix.test.timeline.aProfileTimelineDetails -import org.junit.Test - -class InReplyToDetailTest { - @Test - fun `map - with a not ready InReplyTo return expected object`() { - assertThat( - InReplyTo.Pending(AN_EVENT_ID).map( - permalinkParser = FakePermalinkParser() - ) - ).isEqualTo(InReplyToDetails.Loading(AN_EVENT_ID)) - assertThat( - InReplyTo.NotLoaded(AN_EVENT_ID).map( - permalinkParser = FakePermalinkParser() - ) - ).isEqualTo(InReplyToDetails.Loading(AN_EVENT_ID)) - assertThat( - InReplyTo.Error(AN_EVENT_ID, "a message").map( - permalinkParser = FakePermalinkParser() - ) - ).isEqualTo(InReplyToDetails.Error(AN_EVENT_ID, "a message")) - } - - @Test - fun `map - with something other than a MessageContent has no textContent`() { - val inReplyTo = InReplyTo.Ready( - eventId = AN_EVENT_ID, - senderId = A_USER_ID, - senderProfile = aProfileTimelineDetails(), - content = RoomMembershipContent( - userId = A_USER_ID, - userDisplayName = null, - change = MembershipChange.INVITED, - ) - ) - val inReplyToDetails = inReplyTo.map( - permalinkParser = FakePermalinkParser() - ) - assertThat(inReplyToDetails).isNotNull() - assertThat((inReplyToDetails as InReplyToDetails.Ready).textContent).isNull() - } - - @Test - fun `map - with a message content tries to use the formatted text if exists for its textContent`() { - val inReplyTo = InReplyTo.Ready( - eventId = AN_EVENT_ID, - senderId = A_USER_ID, - senderProfile = aProfileTimelineDetails(), - content = MessageContent( - body = "**Hello!**", - inReplyTo = null, - isEdited = false, - isThreaded = false, - type = TextMessageType( - body = "**Hello!**", - formatted = FormattedBody( - format = MessageFormat.HTML, - body = "

Hello!

" - ) - ) - ) - ) - assertThat( - (inReplyTo.map(permalinkParser = FakePermalinkParser()) as InReplyToDetails.Ready).textContent - ).isEqualTo("Hello!") - } - - @Test - fun `map - with a message content and no formatted body uses body as fallback for textContent`() { - val inReplyTo = InReplyTo.Ready( - eventId = AN_EVENT_ID, - senderId = A_USER_ID, - senderProfile = aProfileTimelineDetails(), - content = MessageContent( - body = "**Hello!**", - inReplyTo = null, - isEdited = false, - isThreaded = false, - type = TextMessageType( - body = "**Hello!**", - formatted = null, - ) - ) - ) - assertThat( - (inReplyTo.map(permalinkParser = FakePermalinkParser()) as InReplyToDetails.Ready).textContent - ).isEqualTo("**Hello!**") - } -} diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToMetadataKtTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToMetadataKtTest.kt deleted file mode 100644 index 134d9ffde3..0000000000 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/model/InReplyToMetadataKtTest.kt +++ /dev/null @@ -1,483 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.features.messages.impl.timeline.model - -import android.content.res.Configuration -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.ui.platform.LocalConfiguration -import androidx.compose.ui.platform.LocalContext -import androidx.test.core.app.ApplicationProvider -import androidx.test.ext.junit.runners.AndroidJUnit4 -import app.cash.molecule.RecompositionMode -import app.cash.molecule.moleculeFlow -import app.cash.turbine.test -import com.google.common.truth.Truth.assertThat -import io.element.android.libraries.matrix.api.core.EventId -import io.element.android.libraries.matrix.api.core.UserId -import io.element.android.libraries.matrix.api.media.AudioInfo -import io.element.android.libraries.matrix.api.media.FileInfo -import io.element.android.libraries.matrix.api.media.ImageInfo -import io.element.android.libraries.matrix.api.media.VideoInfo -import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.EventContent -import io.element.android.libraries.matrix.api.timeline.item.event.FailedToParseMessageLikeContent -import io.element.android.libraries.matrix.api.timeline.item.event.FailedToParseStateContent -import io.element.android.libraries.matrix.api.timeline.item.event.FileMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.ImageMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.LocationMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.OtherState -import io.element.android.libraries.matrix.api.timeline.item.event.ProfileChangeContent -import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails -import io.element.android.libraries.matrix.api.timeline.item.event.RedactedContent -import io.element.android.libraries.matrix.api.timeline.item.event.RoomMembershipContent -import io.element.android.libraries.matrix.api.timeline.item.event.StateContent -import io.element.android.libraries.matrix.api.timeline.item.event.StickerContent -import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecryptContent -import io.element.android.libraries.matrix.api.timeline.item.event.UnknownContent -import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType -import io.element.android.libraries.matrix.api.timeline.item.event.VoiceMessageType -import io.element.android.libraries.matrix.test.AN_EVENT_ID -import io.element.android.libraries.matrix.test.A_USER_ID -import io.element.android.libraries.matrix.test.media.aMediaSource -import io.element.android.libraries.matrix.test.timeline.aMessageContent -import io.element.android.libraries.matrix.test.timeline.aPollContent -import io.element.android.libraries.matrix.test.timeline.aProfileTimelineDetails -import io.element.android.libraries.matrix.ui.components.A_BLUR_HASH -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType -import kotlinx.coroutines.test.runTest -import org.junit.Test -import org.junit.runner.RunWith -import kotlin.time.Duration.Companion.minutes - -@RunWith(AndroidJUnit4::class) -class InReplyToMetadataKtTest { - @Test - fun `any message content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady(eventContent = aMessageContent()).metadata() - }.test { - awaitItem().let { - assertThat(it).isEqualTo(InReplyToMetadata.Text("textContent")) - } - } - } - - @Test - fun `an image message content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = aMessageContent( - messageType = ImageMessageType( - body = "body", - formatted = null, - filename = null, - source = aMediaSource(), - info = anImageInfo(), - ) - ) - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isEqualTo( - InReplyToMetadata.Thumbnail( - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = aMediaSource(), - textContent = "body", - type = AttachmentThumbnailType.Image, - blurHash = A_BLUR_HASH, - ) - ) - ) - } - } - } - - @Test - fun `a sticker message content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = StickerContent( - body = "body", - info = anImageInfo(), - source = aMediaSource(url = "url") - ) - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isEqualTo( - InReplyToMetadata.Thumbnail( - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = aMediaSource(url = "url"), - textContent = "body", - type = AttachmentThumbnailType.Image, - blurHash = A_BLUR_HASH, - ) - ) - ) - } - } - } - - @Test - fun `a video message content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = aMessageContent( - messageType = VideoMessageType( - body = "body", - formatted = null, - filename = null, - source = aMediaSource(), - info = aVideoInfo(), - ) - ) - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isEqualTo( - InReplyToMetadata.Thumbnail( - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = aMediaSource(), - textContent = "body", - type = AttachmentThumbnailType.Video, - blurHash = A_BLUR_HASH, - ) - ) - ) - } - } - } - - @Test - fun `a file message content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = aMessageContent( - messageType = FileMessageType( - body = "body", - source = aMediaSource(), - info = FileInfo( - mimetype = null, - size = null, - thumbnailInfo = null, - thumbnailSource = aMediaSource(), - ), - ) - ) - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isEqualTo( - InReplyToMetadata.Thumbnail( - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = aMediaSource(), - textContent = "body", - type = AttachmentThumbnailType.File, - blurHash = null, - ) - ) - ) - } - } - } - - @Test - fun `a audio message content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = aMessageContent( - messageType = AudioMessageType( - body = "body", - source = aMediaSource(), - info = AudioInfo( - duration = null, - size = null, - mimetype = null - ), - ) - ) - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isEqualTo( - InReplyToMetadata.Thumbnail( - attachmentThumbnailInfo = AttachmentThumbnailInfo( - textContent = "body", - type = AttachmentThumbnailType.Audio, - blurHash = null, - ) - ) - ) - } - } - } - - @Test - fun `a location message content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - testEnv { - anInReplyToDetailsReady( - eventContent = aMessageContent( - messageType = LocationMessageType( - body = "body", - geoUri = "geo:3.0,4.0;u=5.0", - description = null, - ) - ) - ).metadata() - } - }.test { - awaitItem().let { - assertThat(it).isEqualTo( - InReplyToMetadata.Thumbnail( - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = null, - textContent = "Shared location", - type = AttachmentThumbnailType.Location, - blurHash = null, - ) - ) - ) - } - } - } - - @Test - fun `a voice message content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - testEnv { - anInReplyToDetailsReady( - eventContent = aMessageContent( - messageType = VoiceMessageType( - body = "body", - source = aMediaSource(), - info = null, - details = null, - ) - ) - ).metadata() - } - }.test { - awaitItem().let { - assertThat(it).isEqualTo( - InReplyToMetadata.Thumbnail( - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = null, - textContent = "Voice message", - type = AttachmentThumbnailType.Voice, - blurHash = null, - ) - ) - ) - } - } - } - - @Test - fun `a poll content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = aPollContent() - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isEqualTo( - InReplyToMetadata.Thumbnail( - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = null, - textContent = "Do you like polls?", - type = AttachmentThumbnailType.Poll, - blurHash = null, - ) - ) - ) - } - } - } - - @Test - fun `redacted content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = RedactedContent - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isEqualTo(InReplyToMetadata.Redacted) - } - } - } - - @Test - fun `unable to decrypt content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = UnableToDecryptContent(UnableToDecryptContent.Data.Unknown) - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isEqualTo(InReplyToMetadata.UnableToDecrypt) - } - } - } - - @Test - fun `failed to parse message content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = FailedToParseMessageLikeContent("", "") - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isNull() - } - } - } - - @Test - fun `failed to parse state content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = FailedToParseStateContent("", "", "") - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isNull() - } - } - } - - @Test - fun `profile change content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = ProfileChangeContent("", "", "", "") - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isNull() - } - } - } - - @Test - fun `room membership content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = RoomMembershipContent(A_USER_ID, null, null) - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isNull() - } - } - } - - @Test - fun `state content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = StateContent("", OtherState.RoomJoinRules) - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isNull() - } - } - } - - @Test - fun `unknown content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = UnknownContent - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isNull() - } - } - } - - @Test - fun `null content`() = runTest { - moleculeFlow(RecompositionMode.Immediate) { - anInReplyToDetailsReady( - eventContent = null - ).metadata() - }.test { - awaitItem().let { - assertThat(it).isNull() - } - } - } -} - -private fun anInReplyToDetailsReady( - eventId: EventId = AN_EVENT_ID, - senderId: UserId = A_USER_ID, - senderProfile: ProfileTimelineDetails = aProfileTimelineDetails(), - eventContent: EventContent? = aMessageContent(), - textContent: String? = "textContent", -) = InReplyToDetails.Ready( - eventId = eventId, - senderId = senderId, - senderProfile = senderProfile, - eventContent = eventContent, - textContent = textContent, -) - -fun aVideoInfo(): VideoInfo { - return VideoInfo( - duration = 1.minutes, - height = 100, - width = 100, - mimetype = "video/mp4", - size = 1000, - thumbnailInfo = null, - thumbnailSource = aMediaSource(), - blurhash = A_BLUR_HASH, - ) -} - -fun anImageInfo(): ImageInfo { - return ImageInfo( - height = 100, - width = 100, - mimetype = "image/jpeg", - size = 1000, - thumbnailInfo = null, - thumbnailSource = aMediaSource(), - blurhash = A_BLUR_HASH, - ) -} - -@Composable -private fun testEnv(content: @Composable () -> Any?): Any? { - var result: Any? = null - CompositionLocalProvider( - LocalConfiguration provides Configuration(), - LocalContext provides ApplicationProvider.getApplicationContext(), - ) { - content().apply { - result = this - } - } - return result -} diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/voicemessages/composer/VoiceMessageComposerPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/voicemessages/composer/VoiceMessageComposerPresenterTest.kt index 303fb366b9..1c08a76e3d 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/voicemessages/composer/VoiceMessageComposerPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/voicemessages/composer/VoiceMessageComposerPresenterTest.kt @@ -29,9 +29,8 @@ import im.vector.app.features.analytics.plan.Composer import io.element.android.features.messages.impl.voicemessages.VoiceMessageException import io.element.android.features.messages.test.FakeMessageComposerContext import io.element.android.libraries.matrix.test.AN_EVENT_ID -import io.element.android.libraries.matrix.test.A_MESSAGE -import io.element.android.libraries.matrix.test.A_USER_NAME import io.element.android.libraries.matrix.test.room.FakeMatrixRoom +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails import io.element.android.libraries.mediaplayer.test.FakeMediaPlayer import io.element.android.libraries.mediaupload.api.MediaSender import io.element.android.libraries.mediaupload.test.FakeMediaPreProcessor @@ -712,7 +711,7 @@ class VoiceMessageComposerPresenterTest { ) } -private fun aReplyMode() = MessageComposerMode.Reply(A_USER_NAME, null, false, AN_EVENT_ID, A_MESSAGE) +private fun aReplyMode() = MessageComposerMode.Reply(replyToDetails = InReplyToDetails.Loading(AN_EVENT_ID)) private fun aVoiceMessageComposerEvent( isReply: Boolean = false diff --git a/features/migration/impl/build.gradle.kts b/features/migration/impl/build.gradle.kts index 392a8f3889..6978975070 100644 --- a/features/migration/impl/build.gradle.kts +++ b/features/migration/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) } android { @@ -35,8 +34,6 @@ dependencies { implementation(projects.libraries.sessionStorage.api) implementation(projects.libraries.uiStrings) - ksp(libs.showkase.processor) - testImplementation(libs.test.junit) testImplementation(libs.coroutines.test) testImplementation(libs.molecule.runtime) diff --git a/features/networkmonitor/api/build.gradle.kts b/features/networkmonitor/api/build.gradle.kts index a7fe58285c..941c3f96e5 100644 --- a/features/networkmonitor/api/build.gradle.kts +++ b/features/networkmonitor/api/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) } android { @@ -27,6 +26,4 @@ dependencies { implementation(libs.coroutines.core) implementation(projects.libraries.designsystem) implementation(projects.libraries.uiStrings) - - ksp(libs.showkase.processor) } diff --git a/features/onboarding/impl/build.gradle.kts b/features/onboarding/impl/build.gradle.kts index a8c7b0db00..1bd4f74445 100644 --- a/features/onboarding/impl/build.gradle.kts +++ b/features/onboarding/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -48,7 +47,6 @@ dependencies { implementation(projects.libraries.testtags) implementation(projects.libraries.uiStrings) api(projects.features.onboarding.api) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.androidx.compose.ui.test.junit) diff --git a/features/onboarding/impl/src/main/res/values-el/translations.xml b/features/onboarding/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..bdaf30f11b --- /dev/null +++ b/features/onboarding/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,9 @@ + + + "Σύνδεση χειροκίνητα" + "Συνδέσου με κωδικό QR" + "Δημιουργία λογαριασμού" + "Καλώς ήλθατε στο γρηγορότερο %1$s όλων των εποχών. Υπερτροφοδοτούμενο με ταχύτητα και απλότητα." + "Καλώς ήρθες στο %1$s. Υπερφορτισμένο, για ταχύτητα και απλότητα." + "Μείνε στο element σου" + diff --git a/features/onboarding/impl/src/main/res/values-et/translations.xml b/features/onboarding/impl/src/main/res/values-et/translations.xml index b6aba3f925..5242c6f69c 100644 --- a/features/onboarding/impl/src/main/res/values-et/translations.xml +++ b/features/onboarding/impl/src/main/res/values-et/translations.xml @@ -3,4 +3,7 @@ "Logi sisse käsitsi" "Logi sisse QR-koodi alusel" "Loo kasutajakonto" + "Läbi aegade kiireim ja mugavaim %1$s." + "Tere tulemast kasutama kiiret ja lihtsat suhtlusrakendust %1$s." + "Ole oma elemendis" diff --git a/features/onboarding/impl/src/test/kotlin/io/element/android/features/onboarding/impl/OnBoardingPresenterTest.kt b/features/onboarding/impl/src/test/kotlin/io/element/android/features/onboarding/impl/OnBoardingPresenterTest.kt index 651d8c5cf4..66b6baf48b 100644 --- a/features/onboarding/impl/src/test/kotlin/io/element/android/features/onboarding/impl/OnBoardingPresenterTest.kt +++ b/features/onboarding/impl/src/test/kotlin/io/element/android/features/onboarding/impl/OnBoardingPresenterTest.kt @@ -35,13 +35,18 @@ class OnBoardingPresenterTest { @Test fun `present - initial state`() = runTest { + val buildMeta = aBuildMeta( + applicationName = "A", + productionApplicationName = "B", + desktopApplicationName = "C", + ) + val featureFlagService = FakeFeatureFlagService( + initialState = mapOf(FeatureFlags.QrCodeLogin.key to true), + buildMeta = buildMeta, + ) val presenter = OnBoardingPresenter( - buildMeta = aBuildMeta( - applicationName = "A", - productionApplicationName = "B", - desktopApplicationName = "C", - ), - featureFlagService = FakeFeatureFlagService(initialState = mapOf(FeatureFlags.QrCodeLogin.name to true)), + buildMeta = buildMeta, + featureFlagService = featureFlagService, ) moleculeFlow(RecompositionMode.Immediate) { presenter.present() diff --git a/features/poll/api/build.gradle.kts b/features/poll/api/build.gradle.kts index 6d94fa1b2f..16a99aaa8e 100644 --- a/features/poll/api/build.gradle.kts +++ b/features/poll/api/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) } android { @@ -28,6 +27,4 @@ dependencies { implementation(projects.libraries.designsystem) implementation(projects.libraries.uiStrings) implementation(projects.libraries.matrix.api) - - ksp(libs.showkase.processor) } diff --git a/features/poll/impl/build.gradle.kts b/features/poll/impl/build.gradle.kts index 16725e3579..7e95c1aeef 100644 --- a/features/poll/impl/build.gradle.kts +++ b/features/poll/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -62,6 +61,4 @@ dependencies { testImplementation(projects.features.poll.test) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/poll/impl/src/main/res/values-el/translations.xml b/features/poll/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..ef833135ee --- /dev/null +++ b/features/poll/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,19 @@ + + + "Προσθήκη επιλογής" + "Εμφάνιση αποτελεσμάτων μόνο μετά τη λήξη της ψηφοφορίας" + "Απόκρυψη ψήφων" + "Επιλογή %1$d" + "Οι αλλαγές σου δεν έχουν αποθηκευτεί. Σίγουρα θέλεις να πας πίσω;" + "Ερώτηση ή θέμα" + "Τί αφορά η δημοσκόπηση;" + "Δημιουργία Δημοσκόπησης" + "Θες σίγουρα να διαγράψεις αυτήν τη δημοσκόπηση;" + "Διαγραφή Δημοσκόπησης" + "Επεξεργασία δημοσκόπησης" + "Δεν είναι δυνατή η εύρεση ενεργών δημοσκοπήσεων" + "Δεν είναι δυνατή η εύρεση παλιών δημοσκοπήσεων" + "Σε εξέλιξη" + "Παρελθόν" + "Δημοσκοπήσεις" + diff --git a/features/preferences/impl/build.gradle.kts b/features/preferences/impl/build.gradle.kts index b4d2f54bab..ead4515360 100644 --- a/features/preferences/impl/build.gradle.kts +++ b/features/preferences/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -72,7 +71,6 @@ dependencies { implementation(libs.androidx.browser) implementation(libs.androidx.datastore.preferences) api(projects.features.preferences.api) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.coroutines.test) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsStateProvider.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsStateProvider.kt index 0aace5ea43..a669126e34 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsStateProvider.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsStateProvider.kt @@ -42,6 +42,7 @@ open class NotificationSettingsStateProvider : PreviewParameterProvider stringResource(id = CommonStrings.common_mute) null -> "" } - val avatarData = AvatarData( - id = summary.identifier(), - name = summary.details.name, - url = summary.details.avatarUrl, - size = AvatarSize.CustomRoomNotificationSetting, - ) ListItem( headlineContent = { val roomName = summary.details.name @@ -114,7 +109,12 @@ fun EditDefaultNotificationSettingView( Text(text = subtitle) }, leadingContent = ListItemContent.Custom { - Avatar(avatarData = avatarData) + CompositeAvatar( + avatarData = summary.details.getAvatarData(size = AvatarSize.CustomRoomNotificationSetting), + heroes = summary.details.heroes.map { user -> + user.getAvatarData(size = AvatarSize.CustomRoomNotificationSetting) + }.toPersistentList() + ) }, onClick = { openRoomNotificationSettings(summary.details.roomId) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileView.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileView.kt index 167c301a35..d191ef2eee 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileView.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfileView.kt @@ -109,7 +109,7 @@ fun EditUserProfileView( matrixId = state.userId.value, displayName = state.displayName, avatarUrl = state.userAvatarUrl, - avatarSize = AvatarSize.RoomHeader, + avatarSize = AvatarSize.EditProfileDetails, onAvatarClick = { onAvatarClick() }, modifier = Modifier.align(Alignment.CenterHorizontally), ) diff --git a/features/preferences/impl/src/main/res/values-be/translations.xml b/features/preferences/impl/src/main/res/values-be/translations.xml index d064ee1f40..b27a22bb8d 100644 --- a/features/preferences/impl/src/main/res/values-be/translations.xml +++ b/features/preferences/impl/src/main/res/values-be/translations.xml @@ -1,5 +1,7 @@ + "Каб не прапусціць важны званок, зменіце налады, каб дазволіць поўнаэкранныя апавяшчэнні, калі тэлефон заблакіраваны." + "Палепшыце якасць званкоў" "Выберыце спосаб атрымання апавяшчэнняў" "Рэжым распрацоўшчыка" "Падайце распрацоўнікам доступ да функцый і функцыянальным магчымасцям." diff --git a/features/preferences/impl/src/main/res/values-cs/translations.xml b/features/preferences/impl/src/main/res/values-cs/translations.xml index 587623d4e5..88e7a23abe 100644 --- a/features/preferences/impl/src/main/res/values-cs/translations.xml +++ b/features/preferences/impl/src/main/res/values-cs/translations.xml @@ -1,5 +1,7 @@ + "Abyste nikdy nezmeškali důležitý hovor, změňte nastavení tak, abyste povolili oznámení na celé obrazovce, když je telefon uzamčen." + "Vylepšete si zážitek z volání" "Vyberte, jak chcete přijímat oznámení" "Vývojářský režim" "Povolením získáte přístup k funkcím a funkcím pro vývojáře." diff --git a/features/preferences/impl/src/main/res/values-el/translations.xml b/features/preferences/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..0a94a6c3a6 --- /dev/null +++ b/features/preferences/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,56 @@ + + + "Για να διασφαλίσεις ότι δεν θα χάσεις ποτέ μια σημαντική κλήση, άλλαξε τις ρυθμίσεις σου για να επιτρέψεις τις ειδοποιήσεις πλήρους οθόνης όταν το τηλέφωνό σου είναι κλειδωμένο." + "Βελτίωσε την εμπειρία κλήσεων" + "Επέλεξε τον τρόπο λήψης ειδοποιήσεων" + "Λειτουργία προγραμματιστή" + "Ενεργοποίησε την πρόσβαση σε δυνατότητες και λειτουργικότητα για προγραμματιστές." + "Προσαρμοσμένο URL βάσης κλήσεων Element" + "Όρισε μια προσαρμοσμένη διεύθυνση βάσης URL για κλήση Element." + "Μη έγκυρη διεύθυνση URL, βεβαιώσου ότι έχεις συμπεριλάβει το πρωτόκολλο (http/https) και τη σωστή διεύθυνση." + "Πάροχος ειδοποιήσεων push" + "Απενεργοποίησε τον επεξεργαστή εμπλουτισμένου κειμένου για να πληκτρολογήσεις Markdown χειροκίνητα." + "Αποδεικτικά ανάγνωσης" + "Εάν απενεργοποιηθεί, τα αποδεικτικά ανάγνωσης δεν θα στέλνονται σε κανέναν. Θα εξακολουθείς να λαμβάνεις αποδεικτικά ανάγνωσης από άλλους χρήστες." + "Κοινή χρήση παρουσίας" + "Εάν απενεργοποιηθεί, δεν θα μπορείς να στέλνεις ή να λαμβάνεις αποδεικτικά ανάγνωσης ή ειδοποιήσεις πληκτρολόγησης" + "Ενεργοποίησε την επιλογή για προβολή πηγής μηνυμάτων στη ροή." + "Άρση αποκλεισμού" + "Θα μπορείς να δεις ξανά όλα τα μηνύματα του." + "Κατάργηση αποκλεισμού χρήστη" + "Εμφανιζόμενο όνομα" + "Το εμφανιζόμενο όνομά σου" + "Παρουσιάστηκε ένα άγνωστο σφάλμα και οι πληροφορίες δεν μπορούσαν να αλλάξουν." + "Δεν είναι δυνατή η ενημέρωση του προφίλ" + "Επεξεργασία προφίλ" + "Ενημέρωση προφίλ…" + "Πρόσθετες ρυθμίσεις" + "Κλήσεις ήχου και βίντεο" + "Αναντιστοιχία διαμόρφωσης" + "Απλοποιήσαμε τις Ρυθμίσεις Ειδοποιήσεων για να διευκολύνουμε την εύρεση επιλογών. Ορισμένες προσαρμοσμένες ρυθμίσεις που έχετε επιλέξει στο παρελθόν δεν εμφανίζονται εδώ, αλλά εξακολουθούν να είναι ενεργές. + +Εάν προχωρήσεις, ορισμένες από τις ρυθμίσεις σας ενδέχεται να αλλάξουν." + "Άμεσες συνομιλίες" + "Προσαρμοσμένη ρύθμιση ανά συνομιλία" + "Παρουσιάστηκε σφάλμα κατά την ενημέρωση της ρύθμισης ειδοποίησης." + "Όλα τα μηνύματα" + "Μόνο αναφορές και λέξεις-κλειδιά" + "Σε άμεσες συνομιλίες, ειδοποίησέ με για" + "Σε ομαδικές συνομιλίες, ειδοποίησέ με για" + "Ενεργοποίηση ειδοποιήσεων σε αυτήν τη συσκευή" + "Η διαμόρφωση δεν έχει διορθωθεί, δοκίμασε ξανά." + "Ομαδικές συνομιλίες" + "Προσκλήσεις" + "Ο οικιακός διακομιστής σου δεν υποστηρίζει αυτήν την επιλογή σε κρυπτογραφημένα δωμάτια, ενδέχεται να μην λάβεις ειδοποίηση σε ορισμένα δωμάτια." + "Αναφορές" + "Όλα" + "Αναφορές" + "Ειδοποιήσε με για" + "Ειδοποίηση για @room" + "Για να λαμβάνεις ειδοποιήσεις, άλλαξε το %1$s ." + "ρυθμίσεις συστήματος" + "Ειδοποιήσεις συστήματος ανενεργές" + "Ειδοποιήσεις" + "Αντιμετώπιση προβλημάτων" + "Αντιμετώπιση προβλημάτων ειδοποιήσεων" + diff --git a/features/preferences/impl/src/main/res/values-et/translations.xml b/features/preferences/impl/src/main/res/values-et/translations.xml index 59722a9580..e7700b012a 100644 --- a/features/preferences/impl/src/main/res/values-et/translations.xml +++ b/features/preferences/impl/src/main/res/values-et/translations.xml @@ -1,8 +1,12 @@ + "Selleks, et sul ainsamgi tähtis kõne ei jääks märkamata, siis palun muuda oma nutiseadme seadistusi nii, et lukustusvaates oleksid täisekraani mõõtu teavitused." + "Täiusta oma telefonikõnede kogemust" "Vali kuidas sa soovid saada teavitusi" "Arendaja valikud" "Selle eelistuse sisselülitamisel lisanduvad rakendusse arendaja tööks vajalikud valikud." + "Element Calli kohandatud teenuseaadress" + "Seadista kohandatud teenuseaadress Element Calli jaoks." "Vigane url. Palun vaata, et url algaks protokolliga (http/https) ning aadress ise oleks ka õige." "Tõuketeavituste pakkuja" "Kui soovid Markdown-vormingut käsitsi lisada, siis lülita vormindatud teksti toimeti välja." @@ -12,6 +16,9 @@ "Kui see eelistus on välja lülitatud, siis sa ei saa ega saada ei lugemisteatisi ega kirjutamise teavitusi" "Selle eelistuse sisselülitamisel on võimalik ajajoonel vaadata sõnumite lähtekoodi." "Sa pole ühtegi kasutajat blokeerinud" + "Eemalda blokeering" + "Nüüd näed sa jälle kõiki tema sõnumeid" + "Eemalda kasutajalt blokeering" "Eemaldame blokeeringu…" "Kuvatav nimi" "Sinu kuvatav nimi" @@ -46,4 +53,6 @@ Kui sa jätkad muutmist, siis võivad muutuda ka need peidetud eelistused.""süsteemi seadistusi"
"Süsteemi teavitused on välja lülitatud" "Teavitused" + "Veaotsing" + "Teavituste veaotsing" diff --git a/features/preferences/impl/src/main/res/values-fr/translations.xml b/features/preferences/impl/src/main/res/values-fr/translations.xml index ac12390e76..ccdd333135 100644 --- a/features/preferences/impl/src/main/res/values-fr/translations.xml +++ b/features/preferences/impl/src/main/res/values-fr/translations.xml @@ -1,5 +1,7 @@ + "Afin de ne jamais manquer un appel important, veuillez modifier vos paramètres pour autoriser les notifications en plein écran lorsque votre appareil est verrouillé." + "Améliorez votre expérience d’appel" "Choisissez le mode de réception des notifications" "Mode développeur" "Activer pour pouvoir accéder aux fonctionnalités destinées aux développeurs." diff --git a/features/preferences/impl/src/main/res/values-hu/translations.xml b/features/preferences/impl/src/main/res/values-hu/translations.xml index 2739361a20..92c1df9871 100644 --- a/features/preferences/impl/src/main/res/values-hu/translations.xml +++ b/features/preferences/impl/src/main/res/values-hu/translations.xml @@ -1,5 +1,7 @@ + "Annak érdekében, hogy soha ne maradjon le egyetlen fontos hívásról sem, módosítsa a beállításokat, hogy engedélyezze a teljes képernyős értesítéseket, amikor a telefon zárolva van." + "Növelje a hívásélményét" "Válassza ki az értesítések fogadási módját" "Fejlesztői mód" "Engedélyezze, hogy elérje a fejlesztőknek szánt funkciókat." diff --git a/features/preferences/impl/src/main/res/values-in/translations.xml b/features/preferences/impl/src/main/res/values-in/translations.xml index 2597dab58d..f6bb5b1968 100644 --- a/features/preferences/impl/src/main/res/values-in/translations.xml +++ b/features/preferences/impl/src/main/res/values-in/translations.xml @@ -1,5 +1,7 @@ + "Untuk memastikan Anda tidak melewatkan panggilan penting, silakan ubah pengaturan Anda untuk memperbolehkan notifikasi layar penuh ketika ponsel Anda terkunci." + "Tingkatkan pengalaman panggilan Anda" "Pilih cara menerima notifikasi" "Mode pengembang" "Aktifkan untuk mengakses fitur dan fungsi untuk para pengembang." diff --git a/features/preferences/impl/src/main/res/values-it/translations.xml b/features/preferences/impl/src/main/res/values-it/translations.xml index b8a483d290..ea7395492c 100644 --- a/features/preferences/impl/src/main/res/values-it/translations.xml +++ b/features/preferences/impl/src/main/res/values-it/translations.xml @@ -1,11 +1,14 @@ + "Per non perdere mai una chiamata importante, modifica le impostazioni per consentire le notifiche a schermo intero quando il telefono è bloccato." + "Migliora la tua esperienza di chiamata" "Scegli come ricevere le notifiche" "Modalità sviluppatore" "Attiva per avere accesso alle funzionalità per sviluppatori." "URL base di Element Call personalizzato" "Imposta un URL di base personalizzato per Element Call." "URL non valido, assicurati di includere il protocollo (http/https) e l\'indirizzo corretto." + "Fornitore di notifiche push" "Disattiva l\'editor di testo avanzato per scrivere manualmente in Markdown" "Ricevute di visualizzazione" "Se disattivato, le tue ricevute di visualizzazione non verranno inviate a nessuno. Riceverai comunque ricevute di visualizzazione da altri utenti." diff --git a/features/preferences/impl/src/main/res/values-pt/translations.xml b/features/preferences/impl/src/main/res/values-pt/translations.xml index 5986f8e93a..db6df3941e 100644 --- a/features/preferences/impl/src/main/res/values-pt/translations.xml +++ b/features/preferences/impl/src/main/res/values-pt/translations.xml @@ -1,5 +1,7 @@ + "Para garantir que nunca perdes uma chamada importante, altera as configurações para permitir notificações em ecrã inteiro quando o telemóvel está bloqueado." + "Melhora a tua experiência de chamada" "Escolhe como receber notificações" "Modo de programador" "Permite o acesso a funcionalidades para programadores." @@ -52,5 +54,5 @@ Se prosseguires, algumas delas podem ser alteradas." "Notificações do sistema desativadas" "Notificações" "Resolução de problemas" - "Resolver problemas com as notificações" + "Corrigir notificações" diff --git a/features/preferences/impl/src/main/res/values-ro/translations.xml b/features/preferences/impl/src/main/res/values-ro/translations.xml index b191002a32..bf0e2b2f9c 100644 --- a/features/preferences/impl/src/main/res/values-ro/translations.xml +++ b/features/preferences/impl/src/main/res/values-ro/translations.xml @@ -1,11 +1,14 @@ + "Pentru a vă asigura că nu pierdeți niciodată un apel important, vă rugăm să modificați setările pentru a permite notificări fullscreen atunci când telefonul este blocat." + "Îmbunătățiți-vă experiența in timpul unui apel" "Alegeți modul de primire a notificărilor" "Modul dezvoltator" "Activați pentru a avea acces la funcționalități pentru dezvoltatori." "Adresa URL de bază Element Call" "Setați o adresă URL de bază personalizată pentru Element Call." "URL invalid, vă rugăm să vă asigurați că includeți protocolul (http/https) și adresa corectă." + "Furnizor de notificări push" "Dezactivați editorul avansat pentru a tasta manual Markdown." "Chitanțe de citire" "Dacă dezactivată, chitanțele dumneavoastră de citire nu vor fi trimise nimănui. Veți primi în continuare chitanțe de citire de la alți utilizatori." diff --git a/features/preferences/impl/src/main/res/values-ru/translations.xml b/features/preferences/impl/src/main/res/values-ru/translations.xml index 3c4a49dd6d..fdd2b54652 100644 --- a/features/preferences/impl/src/main/res/values-ru/translations.xml +++ b/features/preferences/impl/src/main/res/values-ru/translations.xml @@ -1,5 +1,7 @@ + "Чтобы никогда не пропустить важный звонок, измените настройки, чтобы разрешить полноэкранные уведомления, когда ваш телефон заблокирован." + "Улучшите качество звонков" "Выберите способ получения уведомлений" "Режим разработчика" "Предоставьте разработчикам доступ к функциям и функциональным возможностям." diff --git a/features/preferences/impl/src/main/res/values-sk/translations.xml b/features/preferences/impl/src/main/res/values-sk/translations.xml index edabc77ec5..3d8eaa5d00 100644 --- a/features/preferences/impl/src/main/res/values-sk/translations.xml +++ b/features/preferences/impl/src/main/res/values-sk/translations.xml @@ -1,5 +1,7 @@ + "Aby ste už nikdy nezmeškali dôležitý hovor, zmeňte svoje nastavenia a povoľte upozornenia na celú obrazovku, keď je váš telefón uzamknutý." + "Vylepšite svoj zážitok z hovoru" "Vyberte spôsob prijímania oznámení" "Vývojársky režim" "Umožniť prístup k možnostiam a funkciám pre vývojárov." diff --git a/features/preferences/impl/src/main/res/values-sv/translations.xml b/features/preferences/impl/src/main/res/values-sv/translations.xml index 57233bb027..a4ce5bc50c 100644 --- a/features/preferences/impl/src/main/res/values-sv/translations.xml +++ b/features/preferences/impl/src/main/res/values-sv/translations.xml @@ -50,4 +50,6 @@ Om du fortsätter kan vissa av dina inställningar ändras." "systeminställningar" "Systemaviseringar avstängda" "Aviseringar" + "Felsök" + "Felsök aviseringar" diff --git a/features/preferences/impl/src/main/res/values-zh-rTW/translations.xml b/features/preferences/impl/src/main/res/values-zh-rTW/translations.xml index 000be710d7..179e903ee3 100644 --- a/features/preferences/impl/src/main/res/values-zh-rTW/translations.xml +++ b/features/preferences/impl/src/main/res/values-zh-rTW/translations.xml @@ -1,9 +1,13 @@ + "提升您的通話體驗" "選擇接收通知的機制" "開發者模式" + "手動輸入 Markdown,停用格式化文字編輯器。" + "已讀回條" "分享動態" "解除封鎖" + "您將無法看到任何來自他們的訊息。" "解除封鎖使用者" "顯示名稱" "您的顯示名稱" diff --git a/features/rageshake/api/build.gradle.kts b/features/rageshake/api/build.gradle.kts index 4b7fc44f7a..b0db52e65f 100644 --- a/features/rageshake/api/build.gradle.kts +++ b/features/rageshake/api/build.gradle.kts @@ -15,7 +15,6 @@ */ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) } android { @@ -27,6 +26,4 @@ dependencies { implementation(projects.libraries.designsystem) implementation(projects.libraries.androidutils) implementation(projects.libraries.uiStrings) - - ksp(libs.showkase.processor) } diff --git a/features/rageshake/api/src/main/res/values-el/translations.xml b/features/rageshake/api/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..6fff38c0d8 --- /dev/null +++ b/features/rageshake/api/src/main/res/values-el/translations.xml @@ -0,0 +1,7 @@ + + + "Το %1$s διακόπηκε την τελευταία φορά που χρησιμοποιήθηκε. Θα \'θελες να μοιραστείς μια αναφορά σφάλματος μαζί μας;" + "Φαίνεται να κουνάς το τηλέφωνο με σύγχυση. Θες να ανοίξεις την οθόνη αναφοράς σφαλμάτων;" + "Rageshake" + "Όριο ανίχνευσης" + diff --git a/features/rageshake/impl/build.gradle.kts b/features/rageshake/impl/build.gradle.kts index 6ac0776d0a..7cbe541fe3 100644 --- a/features/rageshake/impl/build.gradle.kts +++ b/features/rageshake/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -55,7 +54,6 @@ dependencies { implementation(libs.network.okhttp.okhttp) implementation(libs.coil) implementation(libs.coil.compose) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.test.robolectric) diff --git a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/reporter/DefaultBugReporter.kt b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/reporter/DefaultBugReporter.kt index 9e89ff9a76..72e668c3f4 100755 --- a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/reporter/DefaultBugReporter.kt +++ b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/reporter/DefaultBugReporter.kt @@ -169,6 +169,9 @@ class DefaultBugReporter @Inject constructor( currentTracingFilter?.let { builder.addFormDataPart("tracing_filter", it) } + if (buildMeta.isEnterpriseBuild) { + builder.addFormDataPart("label", "Enterprise") + } // add the gzipped files, don't cancel the whole upload if only some file failed to upload var totalUploadedSize = 0L var uploadedSomeLogs = false @@ -282,11 +285,13 @@ class DefaultBugReporter @Inject constructor( listener.onUploadFailed(serverError) } } finally { - // delete the generated files when the bug report process has finished - for (file in bugReportFiles) { - file.safeDelete() + withContext(coroutineDispatchers.io) { + // delete the generated files when the bug report process has finished + for (file in bugReportFiles) { + file.safeDelete() + } + response?.close() } - response?.close() } } diff --git a/features/rageshake/impl/src/main/res/values-el/translations.xml b/features/rageshake/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..86400b4806 --- /dev/null +++ b/features/rageshake/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,17 @@ + + + "Επισύναψη στιγμιοτύπου οθόνης" + "Μπορείς να επικοινωνήσεις μαζί μου εάν έχεις οποιεσδήποτε επιπλέον ερωτήσεις." + "Επικοινώνησε μαζί μου" + "Επεξεργασία στιγμιότυπου οθόνης" + "Παρακαλώ περιέγραψε το πρόβλημα. Τί έκανες; Τί περίμενες να συμβεί; Τι πραγματικά συνέβη. Παρακαλώ μπες σε όσο περισσότερες λεπτομέρειες μπορείς." + "Περιέγραψε το πρόβλημα…" + "Εάν είναι δυνατόν, γράψε την περιγραφή στα αγγλικά." + "Η περιγραφή είναι πολύ σύντομη, δώσε περισσότερες λεπτομέρειες σχετικά με το τί συνέβη. Ευχαριστώ!" + "Αποστολή αρχείων καταγραφής σφαλμάτων" + "Να επιτρέπονται τα αρχεία καταγραφής" + "Αποστολή στιγμιοτύπου οθόνης" + "Τα αρχεία καταγραφής θα συμπεριληφθούν στο μήνυμά σου για να βεβαιωθούμε ότι όλα λειτουργούν σωστά. Για να στείλεις το μήνυμά σου χωρίς αρχεία καταγραφής, απενεργοποίησε αυτήν τη ρύθμιση." + "Το %1$s διακόπηκε την τελευταία φορά που χρησιμοποιήθηκε. Θα \'θελες να μοιραστείς μια αναφορά σφάλματος μαζί μας;" + "Προβολή αρχείων καταγραφής" + diff --git a/features/rageshake/impl/src/main/res/values-zh-rTW/translations.xml b/features/rageshake/impl/src/main/res/values-zh-rTW/translations.xml index bd4d1cb665..f0177e67b3 100644 --- a/features/rageshake/impl/src/main/res/values-zh-rTW/translations.xml +++ b/features/rageshake/impl/src/main/res/values-zh-rTW/translations.xml @@ -4,5 +4,11 @@ "如果有其他問題,你可以聯絡我。" "聯絡我" "編輯螢幕截圖" + "請描述問題。你做了什麼?你預期的結果是什麼?實際上發生了什麼事情?請盡可能提供越多細節越好。" + "描述問題…" + "如果方便的話,請使用英文。" + "您的描述太短了,請提供更多細節。謝謝!" + "提供日誌" "傳送螢幕截圖" + "查看日誌" diff --git a/features/roomaliasresolver/impl/build.gradle.kts b/features/roomaliasresolver/impl/build.gradle.kts index 00be3b0076..6ad5758e04 100644 --- a/features/roomaliasresolver/impl/build.gradle.kts +++ b/features/roomaliasresolver/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -56,6 +55,4 @@ dependencies { testImplementation(projects.tests.testutils) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/roomaliasresolver/impl/src/main/res/values-el/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..8b1725d64a --- /dev/null +++ b/features/roomaliasresolver/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,4 @@ + + + "Αποτυχία επίλυσης ψευδωνύμου δωματίου." + diff --git a/features/roomaliasresolver/impl/src/main/res/values-et/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-et/translations.xml new file mode 100644 index 0000000000..6b712e00ee --- /dev/null +++ b/features/roomaliasresolver/impl/src/main/res/values-et/translations.xml @@ -0,0 +1,4 @@ + + + "Jututoa aliasele vastava aadressi tuvastamine ei õnnestunud." + diff --git a/features/roomdetails/impl/build.gradle.kts b/features/roomdetails/impl/build.gradle.kts index b90a0e679d..07302b4876 100644 --- a/features/roomdetails/impl/build.gradle.kts +++ b/features/roomdetails/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -82,6 +81,4 @@ dependencies { testImplementation(projects.services.analytics.test) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsPresenter.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsPresenter.kt index 966dade2c3..50fad866d9 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsPresenter.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsPresenter.kt @@ -45,10 +45,12 @@ import io.element.android.libraries.matrix.api.room.powerlevels.canInvite import io.element.android.libraries.matrix.api.room.powerlevels.canSendState import io.element.android.libraries.matrix.api.room.roomNotificationSettings import io.element.android.libraries.matrix.ui.room.canCall +import io.element.android.libraries.matrix.ui.room.getCurrentRoomMember import io.element.android.libraries.matrix.ui.room.getDirectRoomMember import io.element.android.libraries.matrix.ui.room.isOwnUserAdmin import io.element.android.services.analytics.api.AnalyticsService import io.element.android.services.analyticsproviders.api.trackers.captureInteraction +import kotlinx.collections.immutable.toPersistentList import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -97,8 +99,9 @@ class RoomDetailsPresenter @Inject constructor( val canEditTopic by getCanSendState(membersState, StateEventType.ROOM_TOPIC) val canJoinCall by room.canCall(updateKey = syncUpdateTimestamp) val dmMember by room.getDirectRoomMember(membersState) + val currentMember by room.getCurrentRoomMember(membersState) val roomMemberDetailsPresenter = roomMemberDetailsPresenter(dmMember) - val roomType by getRoomType(dmMember) + val roomType by getRoomType(dmMember, currentMember) val topicState = remember(canEditTopic, roomTopic, roomType) { val topic = roomTopic @@ -151,6 +154,7 @@ class RoomDetailsPresenter @Inject constructor( isFavorite = isFavorite, displayRolesAndPermissionsSettings = !room.isDm && isUserAdmin, isPublic = isPublic, + heroes = roomInfo?.heroes.orEmpty().toPersistentList(), eventSink = ::handleEvents, ) } @@ -163,10 +167,16 @@ class RoomDetailsPresenter @Inject constructor( } @Composable - private fun getRoomType(dmMember: RoomMember?): State = remember(dmMember) { + private fun getRoomType( + dmMember: RoomMember?, + currentMember: RoomMember?, + ): State = remember(dmMember, currentMember) { derivedStateOf { - if (dmMember != null) { - RoomDetailsType.Dm(dmMember) + if (dmMember != null && currentMember != null) { + RoomDetailsType.Dm( + me = currentMember, + otherMember = dmMember, + ) } else { RoomDetailsType.Room } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsState.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsState.kt index aee1694e93..f6a63d70f5 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsState.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsState.kt @@ -23,6 +23,8 @@ import io.element.android.libraries.matrix.api.core.RoomAlias import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomNotificationSettings +import io.element.android.libraries.matrix.api.user.MatrixUser +import kotlinx.collections.immutable.ImmutableList data class RoomDetailsState( val roomId: RoomId, @@ -43,13 +45,17 @@ data class RoomDetailsState( val isFavorite: Boolean, val displayRolesAndPermissionsSettings: Boolean, val isPublic: Boolean, + val heroes: ImmutableList, val eventSink: (RoomDetailsEvent) -> Unit ) @Immutable sealed interface RoomDetailsType { data object Room : RoomDetailsType - data class Dm(val roomMember: RoomMember) : RoomDetailsType + data class Dm( + val me: RoomMember, + val otherMember: RoomMember, + ) : RoomDetailsType } @Immutable diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsStateProvider.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsStateProvider.kt index f970b80d82..45bdf3163d 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsStateProvider.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsStateProvider.kt @@ -19,6 +19,7 @@ package io.element.android.features.roomdetails.impl import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.features.leaveroom.api.LeaveRoomState import io.element.android.features.leaveroom.api.aLeaveRoomState +import io.element.android.features.roomdetails.impl.members.aRoomMember import io.element.android.features.userprofile.shared.UserProfileState import io.element.android.features.userprofile.shared.aUserProfileState import io.element.android.libraries.matrix.api.core.RoomAlias @@ -28,6 +29,9 @@ import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomMembershipState import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.api.room.RoomNotificationSettings +import io.element.android.libraries.matrix.api.user.MatrixUser +import io.element.android.libraries.matrix.ui.components.aMatrixUserList +import kotlinx.collections.immutable.toPersistentList open class RoomDetailsStateProvider : PreviewParameterProvider { override val values: Sequence @@ -48,6 +52,7 @@ open class RoomDetailsStateProvider : PreviewParameterProvider ), aRoomDetailsState(canCall = false, canInvite = false), aRoomDetailsState(isPublic = false), + aRoomDetailsState(heroes = aMatrixUserList()), // Add other state here ) } @@ -99,6 +104,7 @@ fun aRoomDetailsState( isFavorite: Boolean = false, displayAdminSettings: Boolean = false, isPublic: Boolean = true, + heroes: List = emptyList(), eventSink: (RoomDetailsEvent) -> Unit = {}, ) = RoomDetailsState( roomId = roomId, @@ -119,6 +125,7 @@ fun aRoomDetailsState( isFavorite = isFavorite, displayRolesAndPermissionsSettings = displayAdminSettings, isPublic = isPublic, + heroes = heroes.toPersistentList(), eventSink = eventSink ) @@ -135,6 +142,10 @@ fun aDmRoomDetailsState( roomName: String = "Daniel", ) = aRoomDetailsState( roomName = roomName, - roomType = RoomDetailsType.Dm(aDmRoomMember(isIgnored = isDmMemberIgnored)), + isPublic = false, + roomType = RoomDetailsType.Dm( + aRoomMember(), + aDmRoomMember(isIgnored = isDmMemberIgnored), + ), roomMemberDetailsState = aUserProfileState() ) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt index 078e1f6def..fc2a051dc6 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt @@ -20,13 +20,13 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons @@ -49,14 +49,14 @@ import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.leaveroom.api.LeaveRoomView import io.element.android.features.roomdetails.impl.components.RoomBadge -import io.element.android.features.userprofile.shared.UserProfileHeaderSection import io.element.android.features.userprofile.shared.blockuser.BlockUserDialogs import io.element.android.features.userprofile.shared.blockuser.BlockUserSection import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage import io.element.android.libraries.designsystem.components.ClickableLinkText -import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.designsystem.components.avatar.CompositeAvatar +import io.element.android.libraries.designsystem.components.avatar.DmAvatars import io.element.android.libraries.designsystem.components.button.BackButton import io.element.android.libraries.designsystem.components.button.MainActionButton import io.element.android.libraries.designsystem.components.list.ListItemContent @@ -79,11 +79,16 @@ import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.designsystem.utils.CommonDrawables import io.element.android.libraries.matrix.api.core.RoomAlias import io.element.android.libraries.matrix.api.core.RoomId +import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.api.room.getBestName +import io.element.android.libraries.matrix.api.user.MatrixUser +import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag import io.element.android.libraries.ui.strings.CommonStrings +import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.toPersistentList @Composable fun RoomDetailsView( @@ -125,38 +130,35 @@ fun RoomDetailsView( roomId = state.roomId, roomName = state.roomName, roomAlias = state.roomAlias, - isEncrypted = state.isEncrypted, - isPublic = state.isPublic, + heroes = state.heroes, openAvatarPreview = { avatarUrl -> openAvatarPreview(state.roomName, avatarUrl) }, ) - MainActionsSection( - state = state, - onShareRoom = onShareRoom, - onInvitePeople = invitePeople, - onCall = onJoinCallClick, - ) } - is RoomDetailsType.Dm -> { - val member = state.roomType.roomMember - UserProfileHeaderSection( - avatarUrl = state.roomAvatarUrl ?: member.avatarUrl, - userId = member.userId, - userName = state.roomName, - openAvatarPreview = { avatarUrl -> - openAvatarPreview(member.getBestName(), avatarUrl) + DmHeaderSection( + me = state.roomType.me, + otherMember = state.roomType.otherMember, + roomName = state.roomName, + openAvatarPreview = { name, avatarUrl -> + openAvatarPreview(name, avatarUrl) }, ) - MainActionsSection( - state = state, - onShareRoom = onShareRoom, - onInvitePeople = invitePeople, - onCall = onJoinCallClick, - ) } } + BadgeList( + isEncrypted = state.isEncrypted, + isPublic = state.isPublic, + modifier = Modifier.align(Alignment.CenterHorizontally), + ) + Spacer(Modifier.height(32.dp)) + MainActionsSection( + state = state, + onShareRoom = onShareRoom, + onInvitePeople = invitePeople, + onCall = onJoinCallClick, + ) Spacer(Modifier.height(12.dp)) if (state.roomTopic !is RoomTopicState.Hidden) { @@ -322,8 +324,7 @@ private fun RoomHeaderSection( roomId: RoomId, roomName: String, roomAlias: RoomAlias?, - isEncrypted: Boolean, - isPublic: Boolean, + heroes: ImmutableList, openAvatarPreview: (url: String) -> Unit, ) { Column( @@ -332,30 +333,65 @@ private fun RoomHeaderSection( .padding(horizontal = 16.dp), horizontalAlignment = Alignment.CenterHorizontally, ) { - Avatar( + CompositeAvatar( avatarData = AvatarData(roomId.value, roomName, avatarUrl, AvatarSize.RoomHeader), + heroes = heroes.map { user -> + user.getAvatarData(size = AvatarSize.RoomHeader) + }.toPersistentList(), modifier = Modifier - .size(70.dp) .clickable(enabled = avatarUrl != null) { openAvatarPreview(avatarUrl!!) } .testTag(TestTags.roomDetailAvatar) ) - Spacer(modifier = Modifier.height(24.dp)) + TitleAndSubtitle(title = roomName, subtitle = roomAlias?.value) + } +} + +@Composable +private fun DmHeaderSection( + me: RoomMember, + otherMember: RoomMember, + roomName: String, + openAvatarPreview: (name: String, url: String) -> Unit, + modifier: Modifier = Modifier +) { + Column( + modifier = modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + DmAvatars( + userAvatarData = me.getAvatarData(size = AvatarSize.DmCluster), + otherUserAvatarData = otherMember.getAvatarData(size = AvatarSize.DmCluster), + openAvatarPreview = { url -> openAvatarPreview(me.getBestName(), url) }, + openOtherAvatarPreview = { url -> openAvatarPreview(roomName, url) }, + ) + TitleAndSubtitle( + title = roomName, + subtitle = otherMember.userId.value, + ) + } +} + +@Composable +private fun ColumnScope.TitleAndSubtitle( + title: String, + subtitle: String?, +) { + Spacer(modifier = Modifier.height(24.dp)) + Text( + text = title, + style = ElementTheme.typography.fontHeadingLgBold, + textAlign = TextAlign.Center, + ) + if (subtitle != null) { + Spacer(modifier = Modifier.height(6.dp)) Text( - text = roomName, - style = ElementTheme.typography.fontHeadingLgBold, + text = subtitle, + style = ElementTheme.typography.fontBodyLgRegular, + color = MaterialTheme.colorScheme.secondary, textAlign = TextAlign.Center, ) - if (roomAlias != null) { - Spacer(modifier = Modifier.height(6.dp)) - Text( - text = roomAlias.value, - style = ElementTheme.typography.fontBodyLgRegular, - color = MaterialTheme.colorScheme.secondary, - textAlign = TextAlign.Center, - ) - } - BadgeList(isEncrypted = isEncrypted, isPublic = isPublic) - Spacer(Modifier.height(32.dp)) } } @@ -363,11 +399,12 @@ private fun RoomHeaderSection( private fun BadgeList( isEncrypted: Boolean, isPublic: Boolean, + modifier: Modifier = Modifier, ) { if (isEncrypted || isPublic) { - Spacer(modifier = Modifier.height(8.dp)) Row( - modifier = Modifier.padding(horizontal = 16.dp), + modifier = modifier + .padding(start = 16.dp, end = 16.dp, top = 8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp), ) { if (isEncrypted) { diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListView.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListView.kt index 488286ce00..b12ecf4ec8 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListView.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListView.kt @@ -67,7 +67,7 @@ import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.TextButton import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.matrix.api.room.RoomMember -import io.element.android.libraries.matrix.api.user.MatrixUser +import io.element.android.libraries.matrix.api.room.toMatrixUser import io.element.android.libraries.matrix.ui.components.MatrixUserRow import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.collections.immutable.ImmutableList @@ -276,11 +276,7 @@ private fun RoomMemberListItem( } MatrixUserRow( modifier = modifier.clickable(onClick = onClick), - matrixUser = MatrixUser( - userId = roomMember.userId, - displayName = roomMember.displayName, - avatarUrl = roomMember.avatarUrl, - ), + matrixUser = roomMember.toMatrixUser(), avatarSize = AvatarSize.UserListItem, trailingContent = roleText?.let { @Composable { diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationView.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationView.kt index 03c602fdd4..a96e4ef46f 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationView.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationView.kt @@ -45,7 +45,6 @@ import io.element.android.libraries.designsystem.components.async.AsyncIndicator import io.element.android.libraries.designsystem.components.async.AsyncIndicatorHost import io.element.android.libraries.designsystem.components.async.rememberAsyncIndicatorState import io.element.android.libraries.designsystem.components.avatar.Avatar -import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog import io.element.android.libraries.designsystem.components.list.ListItemContent @@ -59,6 +58,7 @@ import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.getBestName +import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.collections.immutable.ImmutableList import kotlinx.coroutines.launch @@ -217,12 +217,7 @@ private fun RoomMemberActionsBottomSheet( modifier = Modifier.padding(vertical = 16.dp) ) { Avatar( - avatarData = AvatarData( - id = roomMember.userId.value, - name = roomMember.displayName, - url = roomMember.avatarUrl, - size = AvatarSize.RoomListManageUser, - ), + avatarData = roomMember.getAvatarData(size = AvatarSize.RoomListManageUser), modifier = Modifier .padding(bottom = 28.dp) .align(Alignment.CenterHorizontally) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsPresenter.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsPresenter.kt index 3f7224602d..9f5c7d041e 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsPresenter.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsPresenter.kt @@ -33,7 +33,7 @@ import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.room.MatrixRoomInfo import io.element.android.libraries.matrix.api.room.RoomMember -import io.element.android.libraries.matrix.api.room.joinedRoomMembers +import io.element.android.libraries.matrix.api.room.activeRoomMembers import io.element.android.libraries.matrix.api.room.powerlevels.UserRoleChange import io.element.android.services.analytics.api.AnalyticsService import kotlinx.coroutines.CoroutineScope @@ -50,21 +50,21 @@ class RolesAndPermissionsPresenter @Inject constructor( val coroutineScope = rememberCoroutineScope() val roomInfo by room.roomInfoFlow.collectAsState(initial = null) val roomMembers by room.membersStateFlow.collectAsState() - // Get the list of joined room members, in order to filter members present in the power - // level state Event, but not member of the room anymore. - val joinedRoomMemberIds by remember { + // Get the list of active room members (joined or invited), in order to filter members present in the power + // level state Event. + val activeRoomMemberIds by remember { derivedStateOf { - roomMembers.joinedRoomMembers().map { it.userId } + roomMembers.activeRoomMembers().map { it.userId } } } val moderatorCount by remember { derivedStateOf { - roomInfo.userCountWithRole(joinedRoomMemberIds, RoomMember.Role.MODERATOR) + roomInfo.userCountWithRole(activeRoomMemberIds, RoomMember.Role.MODERATOR) } } val adminCount by remember { derivedStateOf { - roomInfo.userCountWithRole(joinedRoomMemberIds, RoomMember.Role.ADMIN) + roomInfo.userCountWithRole(activeRoomMemberIds, RoomMember.Role.ADMIN) } } val changeOwnRoleAction = remember { mutableStateOf>(AsyncAction.Uninitialized) } @@ -118,9 +118,9 @@ class RolesAndPermissionsPresenter @Inject constructor( } } - private fun MatrixRoomInfo?.userCountWithRole(joinedRoomMemberIds: List, role: RoomMember.Role): Int { + private fun MatrixRoomInfo?.userCountWithRole(userIds: List, role: RoomMember.Role): Int { return this?.userPowerLevels.orEmpty().count { (userId, level) -> - RoomMember.Role.forPowerLevel(level) == role && userId in joinedRoomMemberIds + RoomMember.Role.forPowerLevel(level) == role && userId in userIds } } } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesView.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesView.kt index f5b1873717..d89ad29b78 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesView.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesView.kt @@ -81,6 +81,7 @@ import io.element.android.libraries.matrix.api.room.getBestName import io.element.android.libraries.matrix.api.room.toMatrixUser import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.ui.components.SelectedUsersRowList +import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.collections.immutable.ImmutableList @@ -327,7 +328,7 @@ private fun ListMemberItem( } MemberRow( modifier = Modifier.clickable(enabled = canToggle, onClick = { onToggleSelection(roomMember) }), - avatarData = AvatarData(roomMember.userId.value, roomMember.displayName, roomMember.avatarUrl, AvatarSize.UserListItem), + avatarData = roomMember.getAvatarData(size = AvatarSize.UserListItem), name = roomMember.getBestName(), userId = roomMember.userId.value.takeIf { roomMember.displayName?.isNotBlank() == true }, isPending = roomMember.membership == RoomMembershipState.INVITE, diff --git a/features/roomdetails/impl/src/main/res/values-el/translations.xml b/features/roomdetails/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..9262a346c5 --- /dev/null +++ b/features/roomdetails/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,108 @@ + + + "Παρουσιάστηκε σφάλμα κατά την ενημέρωση της ρύθμισης ειδοποίησης." + "Ο οικιακός διακομιστής σου δεν υποστηρίζει αυτήν την επιλογή σε κρυπτογραφημένα δωμάτια, ενδέχεται να μην λάβεις ειδοποίηση σε ορισμένα δωμάτια." + "Δημοσκοπήσεις" + "Μόνο διαχειριστές" + "Αφαίρεση μηνυμάτων" + "Όλοι" + "Πρόσκληση ατόμων" + "Συντονισμός μελών" + "Μηνύματα και περιεχόμενο" + "Διαχειριστές και συντονιστές" + "Αφαίρεση ατόμων" + "Αλλαγή avatar δωματίου" + "Λεπτομέρειες δωματίου" + "Αλλαγή ονόματος δωματίου" + "Αλλαγή θέματος δωματίου" + "Αποστολή μηνυμάτων" + "Επεξεργασία Διαχειριστών" + "Δεν θα μπορείς να αναιρέσεις αυτήν την ενέργεια. Προβιβάζεις τον χρήστη να έχει το ίδιο επίπεδο ισχύος με σένα." + "Προσθήκη Διαχειριστή;" + "Υποβιβασμός" + "Δεν θα μπορείς να αναιρέσεις αυτήν την αλλαγή αφού, υποβιβάζεσαι. Εάν είσαι ο τελευταίος προνομιούχος χρήστης στο δωμάτιο θα είναι αδύνατο να ανακτηθούν προνόμια." + "Υποβιβασμός του εαυτού σου;" + "%1$s (Σε αναμονή)" + "(Σε αναμονή)" + "Οι διαχειριστές έχουν αυτόματα δικαιώματα συντονιστή" + "Επεξεργασία Συντονιστών" + "Διαχειριστές" + "Συντονιστές" + "Μέλη" + "Έχεις μη αποθηκευμένες αλλαγές." + "Αποθήκευση αλλαγών;" + "Προσθήκη θέματος" + "Ήδη μέλος" + "Ήδη προσκεκλημένος" + "Κρυπτογραφημένο" + "Μη κρυπτογραφημένο" + "Δημόσιο δωμάτιο" + "Επεξεργασία Δωματίου" + "Υπήρξε ένα άγνωστο σφάλμα και οι πληροφορίες δεν μπορούσαν να αλλάξουν." + "Δεν είναι δυνατή η ενημέρωση του δωματίου" + "Τα μηνύματα ασφαλίζονται με κλειδαριές. Μόνο εσύ και οι παραλήπτες έχετε τα μοναδικά κλειδιά για να τα ξεκλειδώσετε." + "Ενεργοποιημένη κρυπτογράφηση μηνυμάτων" + "Παρουσιάστηκε σφάλμα κατά τη φόρτωση των ρυθμίσεων ειδοποίησης." + "Αποτυχία σίγασης αυτού του δωματίου, δοκίμασε ξανά." + "Αποτυχία κατάργησης σίγασης αυτού του δωματίου, δοκίμασε ξανά." + "Πρόσκληση ατόμων" + "Αποχώρηση από τη συζήτηση" + "Αποχώρηση από το δωμάτιο" + "Προσαρμοσμένο" + "Προεπιλογή" + "Ειδοποιήσεις" + "Ρόλοι και δικαιώματα" + "Όνομα δωματίου" + "Ασφάλεια" + "Κοινή χρήση δωματίου" + "Πληροφορίες δωματίου" + "Θέμα" + "Ενημέρωση δωματίου…" + "Δεν θα μπορεί να συμμετέχει ξανά σε αυτό το δωμάτιο εάν προσκληθεί." + + "%1$d άτομο" + "%1$d άτομα" + + "Αφαίρεση από το δωμάτιο" + "Αφαίρεση και αποκλεισμός μέλους" + "Μόνο αφαίρεση μέλους" + "Αφαίρεση μέλους και απαγόρευση συμμετοχής στο μέλλον;" + "Αναίρεση αποκλεισμού" + "Θα μπορεί να συμμετάσχει ξανά στο δωμάτιο εάν προσκληθεί." + "Προβολή προφίλ" + "Αποκλεισμένοι" + "Μέλη" + "Σε αναμονή" + "Αφαίρεση %1$s…" + "Διαχειριστής" + "Συντονιστής" + "Μέλη δωματίου" + "Να επιτρέπεται η προσαρμοσμένη ρύθμιση" + "Η ενεργοποίηση αυτής της ρύθμισης θα παρακάμψει την προεπιλεγμένη ρύθμιση" + "Ειδοποιήσε με σε αυτήν τη συνομιλία για" + "Μπορείς να το αλλάξεις στο δικό σου %1$s." + "καθολικές ρυθμίσεις" + "Προεπιλεγμένη ρύθμιση" + "Κατάργηση προσαρμοσμένης ρύθμισης" + "Παρουσιάστηκε σφάλμα κατά τη φόρτωση των ρυθμίσεων ειδοποίησης." + "Αποτυχία επαναφοράς της προεπιλεγμένης λειτουργίας, δοκίμασε ξανά." + "Αποτυχία ρύθμισης της λειτουργίας, δοκίμασε ξανά." + "Ο οικιακός σου διακομιστής δεν υποστηρίζει αυτήν την επιλογή σε κρυπτογραφημένα δωμάτια, δεν θα λαμβάνεις ειδοποίηση σε αυτό το δωμάτιο." + "Όλα τα μηνύματα" + "Μόνο αναφορές και λέξεις-κλειδιά" + "Σε αυτό το δωμάτιο, ειδοποίησέ με για" + "Διαχειριστές" + "Άλλαξε τον ρόλο μου" + "Υποβιβασμός σε μέλος" + "Υποβιβασμός σε συντονιστή" + "Συντονισμός μελών" + "Μηνύματα και περιεχόμενο" + "Συντονιστές" + "Άδειες" + "Επαναφορά δικαιωμάτων" + "Μόλις επαναφέρεις τα δικαιώματα, θα χάσεις τις τρέχουσες ρυθμίσεις." + "Επαναφορά δικαιωμάτων;" + "Ρόλοι" + "Λεπτομέρειες δωματίου" + "Ρόλοι και δικαιώματα" + diff --git a/features/roomdetails/impl/src/main/res/values-et/translations.xml b/features/roomdetails/impl/src/main/res/values-et/translations.xml index 7934b165d6..f7b473720f 100644 --- a/features/roomdetails/impl/src/main/res/values-et/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-et/translations.xml @@ -17,8 +17,21 @@ "Jututoa nime muutmine" "Jututoa teema muutmine" "Sõnumite saatmine" + "Muuda peakasutajaid" + "Kuna sa annad teisele kasutajale sinu õigustega võrreldes samad õigused, siis sa ei saa seda muudatust hiljem tagasi pöörata." + "Lisame peakasutaja?" + "Vähenda õigusi" + "Kui sa võtad endalt kõik õigused ära ja oled viimane peakasutaja selles jututoas, siis sa ei saa seda muudatust hiljem tagasi pöörata." + "Kas vähendad enda õigusi?" + "%1$s (ootel)" + "(ootel)" + "Peakasutajatel on automaatselt ka moderaatori õigused" + "Muuda moderaatoreid" "Peakasutajad" "Moderaatorid" + "Liikmed" + "Sul on salvestamata muudatusi" + "Kas salvestame muudatused?" "Lisa teema" "Sa juba oled jututoa liige" "Sa juba oled kutse saanud" @@ -46,16 +59,46 @@ "Jututoa teave" "Teema" "Uuendame jututuba…" + "Sea suhtluskeeld" + "Ta ei saa selle jututoaga liituda isegi kutse olemasolul." + "Kas sa oled kindel, et soovid sellele kasutajale seada suhtluskeelu?" + "Jututoas pole suhtluskeeluga kasutajaid" + "Seame kasutajale %1$s suhtluskeelu" "%1$d osaleja" "%1$d osalejat" + "Eemalda ja sea suhtluskeeld" "Eemalda kasutaja jututoast" + "Eemalda kasutaja jututoast ja sea talle suhtluskeeld" + "Ainult eemalda kasutaja" + "Kas eemaldama kasutaja ja seame talle tulevikuks suhtluskeelu?" + "Eemalda suhtluskeeld" + "Kutse olemasolul saab ta nüüd jututoaga uuesti liituda" + "Eemalda kasutaja suhtluskeeld" + "Vaata profiili" + "Suhtluskeeluga kasutajad" + "Liikmed" + "Ootel" + "Eemaldame kasutajat %1$s…" "Peakasutaja" "Moderaator" + "Jututoas osalejad" + "Eemaldame suhtluskeelu kasutajalt %1$s" + "Kasuta kohandatud seadistusi" + "Selle eelistuse valimine asendab vaikimisi seadistused" + "Selles vestluses teavita mind" + "Sa saad seda muuta siin: %1$s" + "üldised teavitused" + "Vaikimisi teavitused" + "Eemalda kohandatud seadistused" + "Teavituste seadistuste laadimisel tekkis viga." "Vaikimisi seadistuste taastamine ei õnnestunud. Palun proovi uuesti." "Seadistuste muutmine ei õnnestunud. Palun proovi uuesti." + "Sinu koduserver ei toeta seda võimalust krüptitud jututubades, seega sa ei saa selle jututoa kohta teavitusi." + "Kõik sõnumid" "Mainimiste ja võtmesõnade alusel" + "Selles jututoas teavita mind" "Peakasutajad" "Muuda minu rolli" "Muuda tavaliikmeks" diff --git a/features/roomdetails/impl/src/main/res/values-it/translations.xml b/features/roomdetails/impl/src/main/res/values-it/translations.xml index d1ae1c380c..fe752f2874 100644 --- a/features/roomdetails/impl/src/main/res/values-it/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-it/translations.xml @@ -35,6 +35,9 @@ "Aggiungi argomento" "Già membro" "Già invitato" + "Cifrata" + "Non cifrata" + "Stanza pubblica" "Modifica stanza" "Si è verificato un errore sconosciuto e non è stato possibile modificare le informazioni." "Impossibile aggiornare la stanza" diff --git a/features/roomdetails/impl/src/main/res/values-sv/translations.xml b/features/roomdetails/impl/src/main/res/values-sv/translations.xml index f49cadc64a..aec11eed32 100644 --- a/features/roomdetails/impl/src/main/res/values-sv/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-sv/translations.xml @@ -23,10 +23,14 @@ "Degradera" "Du kommer inte att kunna ångra denna ändring eftersom du degraderar dig själv, om du är den sista privilegierade användaren i rummet kommer det att vara omöjligt att återfå privilegier." "Degradera dig själv?" + "%1$s (Väntar)" + "(Väntar)" "Redigera moderatorer" "Administratörer" "Moderatorer" "Medlemmar" + "Du har osparade ändringar." + "Spara ändringar?" "Lägg till ämne" "Redan medlem" "Redan inbjuden" @@ -48,16 +52,19 @@ "Rumsnamn" "Säkerhet" "Dela rum" + "Rumsinfo" "Ämne" "Uppdaterar rummet …" "Banna" "Denne kommer inte att kunna gå med i det här rummet igen om denne bjuds in." "Är du säker på att du vill banna den här medlemmen?" + "Det finns inga bannade användare i det här rummet." "Bannar %1$s" "%1$d person" "%1$d personer" + "Ta bort och banna medlem" "Ta bort från rummet" "Ta bort och banna medlem" "Ta bara bort medlem" @@ -89,11 +96,16 @@ "Endast omnämnanden och nyckelord" "I det här rummet, meddela mig för" "Administratörer" + "Ändra min roll" + "Degradera till medlem" + "Degradera till moderator" "Medlemsmoderering" "Meddelanden och innehåll" "Moderatorer" "Behörigheter" "Återställ behörigheter" + "När du har återställt behörigheterna kommer du att förlora de aktuella inställningarna." + "Återställ behörigheter?" "Roller" "Rumsdetaljer" "Roller och behörigheter" diff --git a/features/roomdetails/impl/src/main/res/values-zh-rTW/translations.xml b/features/roomdetails/impl/src/main/res/values-zh-rTW/translations.xml index e2101473cf..b9a9de0fde 100644 --- a/features/roomdetails/impl/src/main/res/values-zh-rTW/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-zh-rTW/translations.xml @@ -3,14 +3,20 @@ "更新通知設定時發生錯誤。" "所有投票" "僅限管理員" + "管理黑名單" "移除訊息" "所有人" + "邀請夥伴" "成員管理" "訊息與內容" "管理員和版主" + "踢出成員" "聊天室資訊" + "變更聊天室名稱" + "變更聊天室主題" "傳送訊息" "編輯管理員" + "要新增管理員嗎?" "編輯版主" "管理員" "版主" @@ -39,19 +45,32 @@ "聊天室名稱" "安全性" "分享聊天室" + "聊天室資訊" "主題" "正在更新聊天室…" + "加入黑名單" + "即使收到邀請,他們仍然無法加入聊天室。" + "您確定要將此成員加入黑名單?" "此聊天室沒有黑名單。" + "正在將 %1$s 加入黑名單" "%1$d 位夥伴" + "踢出並加入黑名單" + "踢出聊天室" + "踢出並加入黑名單" + "解除黑名單" + "如果收到邀請,他們能再次加入聊天室。" + "解除黑名單" "查看個人檔案" "黑名單" "成員" "待定" + "正在踢出 %1$s…" "管理員" "版主" "聊天室成員" + "正在解除黑名單 %1$s" "全域設定" "預設" "無法重設為預設模式,請再試一次。" diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/RoomDetailsPresenterTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/RoomDetailsPresenterTest.kt index e3788e4187..92ac27454a 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/RoomDetailsPresenterTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/RoomDetailsPresenterTest.kt @@ -169,8 +169,12 @@ class RoomDetailsPresenterTest { val presenter = createRoomDetailsPresenter(room) presenter.test { val initialState = awaitItem() - assertThat(initialState.roomType).isEqualTo(RoomDetailsType.Dm(otherRoomMember)) - + assertThat(initialState.roomType).isEqualTo( + RoomDetailsType.Dm( + me = myRoomMember, + otherMember = otherRoomMember, + ) + ) cancelAndIgnoreRemainingEvents() } } diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsViewTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsViewTest.kt index 62dbac449c..b3bbb21cf6 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsViewTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsViewTest.kt @@ -23,6 +23,7 @@ import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performClick import androidx.test.ext.junit.runners.AndroidJUnit4 +import io.element.android.features.roomdetails.impl.members.aRoomMember import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.ui.strings.CommonStrings @@ -126,6 +127,7 @@ class RoomDetailsViewTest { } } + @Config(qualifiers = "h1024dp") @Test fun `click on add topic emit expected event`() { ensureCalledOnceWithParam(RoomDetailsAction.AddTopic) { callback -> @@ -176,7 +178,11 @@ class RoomDetailsViewTest { fun `click on avatar test on DM`() { val eventsRecorder = EventsRecorder(expectEvents = false) val state = aRoomDetailsState( - roomType = RoomDetailsType.Dm(aDmRoomMember(avatarUrl = "an_avatar_url")), + roomType = RoomDetailsType.Dm( + aRoomMember(), + aDmRoomMember(avatarUrl = "an_avatar_url"), + ), + roomName = "Daniel", eventSink = eventsRecorder, ) val callback = EnsureCalledOnceWithTwoParams("Daniel", "an_avatar_url") diff --git a/features/roomdirectory/impl/build.gradle.kts b/features/roomdirectory/impl/build.gradle.kts index 71bfa5ff89..5c31d04303 100644 --- a/features/roomdirectory/impl/build.gradle.kts +++ b/features/roomdirectory/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -58,6 +57,4 @@ dependencies { testImplementation(libs.test.turbine) testImplementation(projects.libraries.matrix.test) testImplementation(projects.tests.testutils) - - ksp(libs.showkase.processor) } diff --git a/features/roomdirectory/impl/src/main/res/values-el/translations.xml b/features/roomdirectory/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..9b3f8bb12d --- /dev/null +++ b/features/roomdirectory/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,5 @@ + + + "Αποτυχία φόρτωσης" + "Κατάλογος δωματίων" + diff --git a/features/roomdirectory/impl/src/main/res/values-et/translations.xml b/features/roomdirectory/impl/src/main/res/values-et/translations.xml index e31e0695e1..9c6c6601e2 100644 --- a/features/roomdirectory/impl/src/main/res/values-et/translations.xml +++ b/features/roomdirectory/impl/src/main/res/values-et/translations.xml @@ -1,4 +1,5 @@ "Andmeid ei õnnestunud laadida" + "Jututubade kataloog" diff --git a/features/roomdirectory/impl/src/main/res/values-sv/translations.xml b/features/roomdirectory/impl/src/main/res/values-sv/translations.xml new file mode 100644 index 0000000000..94e4acb27f --- /dev/null +++ b/features/roomdirectory/impl/src/main/res/values-sv/translations.xml @@ -0,0 +1,5 @@ + + + "Misslyckades att ladda" + "Rumskatalog" + diff --git a/features/roomdirectory/impl/src/main/res/values-zh-rTW/translations.xml b/features/roomdirectory/impl/src/main/res/values-zh-rTW/translations.xml new file mode 100644 index 0000000000..3cd1e903b1 --- /dev/null +++ b/features/roomdirectory/impl/src/main/res/values-zh-rTW/translations.xml @@ -0,0 +1,5 @@ + + + "無法載入" + "聊天室目錄" + diff --git a/features/roomlist/impl/build.gradle.kts b/features/roomlist/impl/build.gradle.kts index 07cf9b1d22..dac4e1c507 100644 --- a/features/roomlist/impl/build.gradle.kts +++ b/features/roomlist/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -62,7 +61,6 @@ dependencies { implementation(projects.services.analytics.api) implementation(libs.androidx.datastore.preferences) api(projects.features.roomlist.api) - ksp(libs.showkase.processor) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomSummaryRow.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomSummaryRow.kt index d90faef985..f7602faa16 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomSummaryRow.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomSummaryRow.kt @@ -53,7 +53,7 @@ import io.element.android.features.roomlist.impl.model.RoomListRoomSummaryProvid import io.element.android.features.roomlist.impl.model.RoomSummaryDisplayType import io.element.android.libraries.core.extensions.orEmpty import io.element.android.libraries.designsystem.atomic.atoms.UnreadIndicatorAtom -import io.element.android.libraries.designsystem.components.avatar.Avatar +import io.element.android.libraries.designsystem.components.avatar.CompositeAvatar import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Button @@ -158,7 +158,10 @@ private fun RoomSummaryScaffoldRow( .padding(horizontal = 16.dp, vertical = 11.dp) .height(IntrinsicSize.Min), ) { - Avatar(room.avatarData) + CompositeAvatar( + avatarData = room.avatarData, + heroes = room.heroes, + ) Spacer(modifier = Modifier.width(16.dp)) Column( modifier = Modifier.fillMaxWidth(), diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt index 80232563ed..18ba73bdc1 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt @@ -26,7 +26,11 @@ import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.room.CurrentUserMembership import io.element.android.libraries.matrix.api.roomlist.RoomSummary +import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails +import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.matrix.ui.model.toInviteSender +import kotlinx.collections.immutable.persistentListOf +import kotlinx.collections.immutable.toImmutableList import javax.inject.Inject class RoomListRoomSummaryFactory @Inject constructor( @@ -54,43 +58,45 @@ class RoomListRoomSummaryFactory @Inject constructor( inviteSender = null, isDm = false, canonicalAlias = null, + heroes = persistentListOf(), ) } } fun create(roomSummary: RoomSummary.Filled): RoomListRoomSummary { - val roomIdentifier = roomSummary.identifier() - val avatarData = AvatarData( - id = roomIdentifier, - name = roomSummary.details.name, - url = roomSummary.details.avatarUrl, - size = AvatarSize.RoomListItem, - ) + return create(roomSummary.details) + } + + private fun create(details: RoomSummaryDetails): RoomListRoomSummary { + val avatarData = details.getAvatarData(size = AvatarSize.RoomListItem) return RoomListRoomSummary( - id = roomIdentifier, - roomId = RoomId(roomIdentifier), - name = roomSummary.details.name, - numberOfUnreadMessages = roomSummary.details.numUnreadMessages, - numberOfUnreadMentions = roomSummary.details.numUnreadMentions, - numberOfUnreadNotifications = roomSummary.details.numUnreadNotifications, - isMarkedUnread = roomSummary.details.isMarkedUnread, - timestamp = lastMessageTimestampFormatter.format(roomSummary.details.lastMessageTimestamp), - lastMessage = roomSummary.details.lastMessage?.let { message -> - roomLastMessageFormatter.format(message.event, roomSummary.details.isDirect) + id = details.roomId.value, + roomId = details.roomId, + name = details.name, + numberOfUnreadMessages = details.numUnreadMessages, + numberOfUnreadMentions = details.numUnreadMentions, + numberOfUnreadNotifications = details.numUnreadNotifications, + isMarkedUnread = details.isMarkedUnread, + timestamp = lastMessageTimestampFormatter.format(details.lastMessageTimestamp), + lastMessage = details.lastMessage?.let { message -> + roomLastMessageFormatter.format(message.event, details.isDirect) }.orEmpty(), avatarData = avatarData, - userDefinedNotificationMode = roomSummary.details.userDefinedNotificationMode, - hasRoomCall = roomSummary.details.hasRoomCall, - isDirect = roomSummary.details.isDirect, - isFavorite = roomSummary.details.isFavorite, - inviteSender = roomSummary.details.inviter?.toInviteSender(), - isDm = roomSummary.details.isDm, - canonicalAlias = roomSummary.details.canonicalAlias, - displayType = if (roomSummary.details.currentUserMembership == CurrentUserMembership.INVITED) { + userDefinedNotificationMode = details.userDefinedNotificationMode, + hasRoomCall = details.hasRoomCall, + isDirect = details.isDirect, + isFavorite = details.isFavorite, + inviteSender = details.inviter?.toInviteSender(), + isDm = details.isDm, + canonicalAlias = details.canonicalAlias, + displayType = if (details.currentUserMembership == CurrentUserMembership.INVITED) { RoomSummaryDisplayType.INVITE } else { RoomSummaryDisplayType.ROOM - } + }, + heroes = details.heroes.map { user -> + user.getAvatarData(size = AvatarSize.RoomListItem) + }.toImmutableList(), ) } } diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersView.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersView.kt index 545884c875..884c13b0f9 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersView.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersView.kt @@ -22,6 +22,7 @@ import androidx.compose.animation.core.spring import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.clickable +import androidx.compose.foundation.gestures.animateScrollBy import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues @@ -34,8 +35,12 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.FilterChip import androidx.compose.material3.FilterChipDefaults import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip @@ -66,7 +71,31 @@ fun RoomListFiltersView( state.eventSink(RoomListFiltersEvents.ToggleFilter(filter)) } + var scrollToStart by remember { mutableIntStateOf(0) } val lazyListState = rememberLazyListState() + LaunchedEffect(scrollToStart) { + // Scroll until the first item start to be displayed + // Since all items have different size, there is no way to compute the amount of + // pixel to scroll to go directly to the start of the row. + // But IRL it should only happen for one item. + while (lazyListState.firstVisibleItemIndex > 0) { + lazyListState.animateScrollBy( + value = -(lazyListState.firstVisibleItemScrollOffset + 1f), + animationSpec = spring( + stiffness = Spring.StiffnessMediumLow, + ) + ) + } + // Then scroll to the start of the list, a bit faster, to fully reveal the first + // item, which can be the close button to reset filter, or the first item + // if the user has scroll a bit before clicking on the close button. + lazyListState.animateScrollBy( + value = -lazyListState.firstVisibleItemScrollOffset.toFloat(), + animationSpec = spring( + stiffness = Spring.StiffnessMedium, + ) + ) + } val previousFilters = remember { mutableStateOf(listOf()) } LazyRow( contentPadding = PaddingValues(start = 8.dp, end = 16.dp), @@ -84,6 +113,9 @@ fun RoomListFiltersView( onClick = { previousFilters.value = state.selectedFilters() onClearFiltersClick() + // When clearing filter, we want to ensure that the list + // of filters is scrolled to the start. + scrollToStart++ } ) } @@ -100,6 +132,10 @@ fun RoomListFiltersView( onClick = { previousFilters.value = state.selectedFilters() onToggleFilter(it) + // When selecting a filter, we want to scroll to the start of the list + if (filterWithSelection.isSelected.not()) { + scrollToStart++ + } }, ) } diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummary.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummary.kt index 9afa6cd749..5e0bd5c65a 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummary.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummary.kt @@ -22,6 +22,7 @@ import io.element.android.libraries.matrix.api.core.RoomAlias import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.ui.model.InviteSender +import kotlinx.collections.immutable.ImmutableList @Immutable data class RoomListRoomSummary( @@ -43,6 +44,7 @@ data class RoomListRoomSummary( val isDm: Boolean, val isFavorite: Boolean, val inviteSender: InviteSender?, + val heroes: ImmutableList, ) { val isHighlighted = userDefinedNotificationMode != RoomNotificationMode.MUTE && (numberOfUnreadNotifications > 0 || numberOfUnreadMentions > 0) || diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryProvider.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryProvider.kt index a39d50eac0..473c60049a 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryProvider.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryProvider.kt @@ -24,6 +24,7 @@ import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.ui.model.InviteSender +import kotlinx.collections.immutable.toImmutableList open class RoomListRoomSummaryProvider : PreviewParameterProvider { override val values: Sequence @@ -142,6 +143,7 @@ internal fun aRoomListRoomSummary( inviteSender: InviteSender? = null, displayType: RoomSummaryDisplayType = RoomSummaryDisplayType.ROOM, canonicalAlias: RoomAlias? = null, + heroes: List = emptyList(), ) = RoomListRoomSummary( id = id, roomId = RoomId(id), @@ -161,4 +163,5 @@ internal fun aRoomListRoomSummary( inviteSender = inviteSender, displayType = displayType, canonicalAlias = canonicalAlias, + heroes = heroes.toImmutableList(), ) diff --git a/features/roomlist/impl/src/main/res/values-be/translations.xml b/features/roomlist/impl/src/main/res/values-be/translations.xml index 603ac6c3f3..f5b884971a 100644 --- a/features/roomlist/impl/src/main/res/values-be/translations.xml +++ b/features/roomlist/impl/src/main/res/values-be/translations.xml @@ -2,6 +2,8 @@ "Ваша рэзервовая копія чата зараз не сінхранізавана. Вам трэба пацвердзіць ключ аднаўлення, каб захаваць доступ да рэзервовай копіі чата." "Увядзіце ключ аднаўлення" + "Каб не прапусціць важны званок, зменіце налады, каб дазволіць поўнаэкранныя апавяшчэнні, калі тэлефон заблакіраваны." + "Палепшыце якасць званкоў" "Вы ўпэўненыя, што хочаце адхіліць запрашэнне ў %1$s?" "Адхіліць запрашэнне" "Вы ўпэўненыя, што хочаце адмовіцца ад прыватных зносін з %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-cs/translations.xml b/features/roomlist/impl/src/main/res/values-cs/translations.xml index 4168a5224c..f3dc0bda9f 100644 --- a/features/roomlist/impl/src/main/res/values-cs/translations.xml +++ b/features/roomlist/impl/src/main/res/values-cs/translations.xml @@ -2,6 +2,8 @@ "Vaše záloha chatu není aktuálně synchronizována. Abyste si zachovali přístup k záloze chatu, musíte potvrdit klíč pro obnovení." "Potvrďte klíč pro obnovení" + "Abyste nikdy nezmeškali důležitý hovor, změňte nastavení tak, abyste povolili oznámení na celé obrazovce, když je telefon uzamčen." + "Vylepšete si zážitek z volání" "Opravdu chcete odmítnout pozvánku do %1$s?" "Odmítnout pozvání" "Opravdu chcete odmítnout tuto soukromou konverzaci s %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-el/translations.xml b/features/roomlist/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..b3a4a8f04d --- /dev/null +++ b/features/roomlist/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,39 @@ + + + "Το αντίγραφο ασφαλείας της συνομιλίας σου δεν είναι συγχρονισμένο αυτήν τη στιγμή. Πρέπει να εισαγάγεις το κλειδί ανάκτησης για να διατηρήσεις την πρόσβαση στο αντίγραφο ασφαλείας της συνομιλίας σου." + "Εισήγαγε το κλειδί ανάκτησης" + "Για να διασφαλίσεις ότι δεν θα χάσεις ποτέ μια σημαντική κλήση, άλλαξε τις ρυθμίσεις σου για να επιτρέψεις τις ειδοποιήσεις πλήρους οθόνης όταν το τηλέφωνό σου είναι κλειδωμένο." + "Βελτίωσε την εμπειρία κλήσεων" + "Σίγουρα θες να απορρίψεις την πρόσκληση συμμετοχής στο %1$s;" + "Απόρριψη πρόσκλησης" + "Σίγουρα θες να απορρίψεις την ιδιωτική συνομιλία με τον χρήστη %1$s;" + "Απόρριψη συνομιλίας" + "Χωρίς προσκλήσεις" + "%1$s (%2$s) σέ προσκάλεσε" + "Αυτή είναι μια εφάπαξ διαδικασία, ευχαριστώ που περίμενες." + "Ρύθμιση του λογαριασμού σου." + "Δημιουργία νέας συνομιλίας ή δωματίου" + "Ξεκίνησε στέλνοντας μηνύματα σε κάποιον." + "Δεν υπάρχουν συνομιλίες ακόμα." + "Αγαπημένα" + "Μπορείς να προσθέσεις μια συνομιλία στα αγαπημένα σου στις ρυθμίσεις συνομιλίας. +Προς το παρόν, μπορείς να καταργήσεις την επιλογή φίλτρων για να δεις τις άλλες συνομιλίες σου" + "Δεν έχεις ακόμα αγαπημένες συνομιλίες" + "Προσκλήσεις" + "Δεν έχεις εκκρεμείς προσκλήσεις." + "Χαμηλής Προτεραιότητας" + "Μπορείς να καταργήσεις την επιλογή φίλτρων για να δεις τις άλλες συνομιλίες σου" + "Δεν έχεις συνομιλίες για αυτήν την επιλογή" + "Άτομα" + "Δωμάτια" + "Δεν είσαι ακόμα σε κανένα δωμάτιο" + "Μη αναγνωσμένα" + "Συγχαρητήρια! +Δεν έχεις μη αναγνωσμένα μηνύματα!" + "Συζητήσεις" + "Επισήμανση ως αναγνωσμένου" + "Επισήμανση ως μη αναγνωσμένου" + "Περιήγηση σε όλα τα δωμάτια" + "Φαίνεται ότι χρησιμοποιείς μια νέα συσκευή. Επαλήθευσε με άλλη συσκευή για πρόσβαση στα κρυπτογραφημένα σου μηνύματα." + "Επαλήθευσε ότι είσαι εσύ" + diff --git a/features/roomlist/impl/src/main/res/values-et/translations.xml b/features/roomlist/impl/src/main/res/values-et/translations.xml index eaa92cd437..3bd8c87d29 100644 --- a/features/roomlist/impl/src/main/res/values-et/translations.xml +++ b/features/roomlist/impl/src/main/res/values-et/translations.xml @@ -1,7 +1,40 @@ + "Sinu vestluste varukoopia pole hetkel sünkroonis. Säilitamaks ligipääsu vestluse varukoopiale palun sisesta oma taastevõti." "Sisesta oma taastevõti" + "Selleks, et sul ainsamgi tähtis kõne ei jääks märkamata, siis palun muuda oma nutiseadme seadistusi nii, et lukustusvaates oleksid täisekraani mõõtu teavitused." + "Täiusta oma telefonikõnede kogemust" + "Kas sa oled kindel, et soovid keelduda liitumiskutsest: %1$s?" + "Lükka kutse tagasi" + "Kas sa oled kindel, et soovid keelduda privaatsest vestlusest kasutajaga %1$s?" + "Keeldu vestlusest" + "Kutseid pole" + "%1$s (%2$s) saatis sulle kutse" + "Tänud, et ootad - seda toimingut on vaja teha vaid üks kord." + "Seadistame sinu kasutajakontot." + "Loo uus vestlus või jututuba" + "Alustamiseks saada kellelegi sõnum." + "Veel pole vestlusi." + "Lemmikud" + "Vestluse seadistusest saad ta määrata lemmikuks. +Aga seni… oma teiste vestluste nägemiseks pead eemaldama filtrid" + "Sul veel pole lemmikvestlusi" + "Kutsed" + "Sul pole ootel kutseid." + "Vähetähtis" + "Oma teiste vestluste nägemiseks sa pead filtrid eemaldama" + "Selle valiku jaoks sul veel pole vestlusi" "Inimesed" + "Sul pole veel otsevestlusi" + "Jututoad" + "Sa veel ei osale mitte üheski jututoas" + "Lugemata" + "Õnnitleme! +Sul pole ühtegi lugemata sõnumit!" + "Vestlused" + "Märgi loetuks" + "Märgi mitteloetuks" + "Sirvi kõiki jututube" "Tundub, et kasutad uut seadet. Oma krüptitud sõnumite lugemiseks verifitseeri ta mõne muu oma seadmega." "Verifitseeri, et see oled sina" diff --git a/features/roomlist/impl/src/main/res/values-fr/translations.xml b/features/roomlist/impl/src/main/res/values-fr/translations.xml index 55b82935d3..e2f3b22fe1 100644 --- a/features/roomlist/impl/src/main/res/values-fr/translations.xml +++ b/features/roomlist/impl/src/main/res/values-fr/translations.xml @@ -2,6 +2,8 @@ "La sauvegarde des conversations est désynchronisée. Vous devez confirmer la clé de récupération pour accéder à votre historique." "Confirmer votre clé de récupération" + "Afin de ne jamais manquer un appel important, veuillez modifier vos paramètres pour autoriser les notifications en plein écran lorsque votre appareil est verrouillé." + "Améliorez votre expérience d’appel" "Êtes-vous sûr de vouloir décliner l’invitation à rejoindre %1$s ?" "Refuser l’invitation" "Êtes-vous sûr de vouloir refuser cette discussion privée avec %1$s ?" diff --git a/features/roomlist/impl/src/main/res/values-hu/translations.xml b/features/roomlist/impl/src/main/res/values-hu/translations.xml index 47695444d5..477c666356 100644 --- a/features/roomlist/impl/src/main/res/values-hu/translations.xml +++ b/features/roomlist/impl/src/main/res/values-hu/translations.xml @@ -2,6 +2,8 @@ "A csevegés biztonsági mentése nincs szinkronban. Meg kell erősítenie a helyreállítási kulcsát, hogy továbbra is hozzáférjen a csevegés biztonsági mentéséhez." "Helyreállítási kulcs megerősítése" + "Annak érdekében, hogy soha ne maradjon le egyetlen fontos hívásról sem, módosítsa a beállításokat, hogy engedélyezze a teljes képernyős értesítéseket, amikor a telefon zárolva van." + "Növelje a hívásélményét" "Biztos, hogy elutasítja a meghívást, hogy csatlakozzon ehhez: %1$s?" "Meghívás elutasítása" "Biztos, hogy elutasítja ezt a privát csevegést vele: %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-in/translations.xml b/features/roomlist/impl/src/main/res/values-in/translations.xml index 7f5fd69eee..3340a9e06e 100644 --- a/features/roomlist/impl/src/main/res/values-in/translations.xml +++ b/features/roomlist/impl/src/main/res/values-in/translations.xml @@ -2,6 +2,8 @@ "Cadangan percakapan Anda saat ini tidak tersinkron. Anda perlu mengonfirmasi kunci pemulihan Anda untuk tetap memiliki akses ke cadangan percakapan Anda." "Konfirmasi kunci pemulihan Anda" + "Untuk memastikan Anda tidak melewatkan panggilan penting, silakan ubah pengaturan Anda untuk memperbolehkan notifikasi layar penuh ketika ponsel Anda terkunci." + "Tingkatkan pengalaman panggilan Anda" "Apakah Anda yakin ingin menolak undangan untuk bergabung ke %1$s?" "Tolak undangan" "Apakah Anda yakin ingin menolak obrolan pribadi dengan %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-it/translations.xml b/features/roomlist/impl/src/main/res/values-it/translations.xml index c44dbd07db..ef28ca0625 100644 --- a/features/roomlist/impl/src/main/res/values-it/translations.xml +++ b/features/roomlist/impl/src/main/res/values-it/translations.xml @@ -2,6 +2,8 @@ "Il backup della chat non è attualmente sincronizzato. Devi confermare la chiave di recupero per mantenere l\'accesso al backup della chat." "Inserisci la chiave di recupero" + "Per non perdere mai una chiamata importante, modifica le impostazioni per consentire le notifiche a schermo intero quando il telefono è bloccato." + "Migliora la tua esperienza di chiamata" "Vuoi davvero rifiutare l\'invito ad entrare in %1$s?" "Rifiuta l\'invito" "Vuoi davvero rifiutare questa conversazione privata con %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-pt/translations.xml b/features/roomlist/impl/src/main/res/values-pt/translations.xml index 2bb094c693..b3f6376456 100644 --- a/features/roomlist/impl/src/main/res/values-pt/translations.xml +++ b/features/roomlist/impl/src/main/res/values-pt/translations.xml @@ -2,6 +2,8 @@ "A tua cópia de segurança das conversas está atualmente dessincronizada. Tens de inserir a tua chave de recuperação para manteres o acesso à cópia." "Insere a tua chave de recuperação" + "Para garantir que nunca perdes uma chamada importante, altera as configurações para permitir notificações em ecrã inteiro quando o telemóvel está bloqueado." + "Melhora a tua experiência de chamada" "Tens a certeza que queres rejeitar o convite para %1$s?" "Rejeitar conite" "Tens a certeza que queres rejeitar esta conversa privada com %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-ro/translations.xml b/features/roomlist/impl/src/main/res/values-ro/translations.xml index a4e250070e..3e219883ad 100644 --- a/features/roomlist/impl/src/main/res/values-ro/translations.xml +++ b/features/roomlist/impl/src/main/res/values-ro/translations.xml @@ -2,6 +2,8 @@ "Backup-ul pentru chat nu este sincronizat în prezent. Trebuie să confirmați cheia de recuperare pentru a menține accesul la backup." "Confirmați cheia de recuperare" + "Pentru a vă asigura că nu pierdeți niciodată un apel important, vă rugăm să modificați setările pentru a permite notificări fullscreen atunci când telefonul este blocat." + "Îmbunătățiți-vă experiența in timpul unui apel" "Sigur doriți să refuzați alăturarea la %1$s?" "Refuzați invitația" "Sigur doriți să refuzați conversațiile cu %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-ru/translations.xml b/features/roomlist/impl/src/main/res/values-ru/translations.xml index bf66490a73..c9ccc1f44f 100644 --- a/features/roomlist/impl/src/main/res/values-ru/translations.xml +++ b/features/roomlist/impl/src/main/res/values-ru/translations.xml @@ -5,6 +5,8 @@ "Введите " "ключ восстановления" + "Чтобы никогда не пропустить важный звонок, измените настройки, чтобы разрешить полноэкранные уведомления, когда ваш телефон заблокирован." + "Улучшите качество звонков" "Вы уверены, что хотите отклонить приглашение в %1$s?" "Отклонить приглашение" "Вы уверены, что хотите отказаться от личного общения с %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-sk/translations.xml b/features/roomlist/impl/src/main/res/values-sk/translations.xml index 4b610c28b4..3bbb65165a 100644 --- a/features/roomlist/impl/src/main/res/values-sk/translations.xml +++ b/features/roomlist/impl/src/main/res/values-sk/translations.xml @@ -2,6 +2,8 @@ "Vaša záloha konverzácie nie je momentálne synchronizovaná. Na zachovanie prístupu k zálohe konverzácie musíte potvrdiť svoj kľúč na obnovu." "Potvrďte svoj kľúč na obnovenie" + "Aby ste už nikdy nezmeškali dôležitý hovor, zmeňte svoje nastavenia a povoľte upozornenia na celú obrazovku, keď je váš telefón uzamknutý." + "Vylepšite svoj zážitok z hovoru" "Naozaj chcete odmietnuť pozvánku na pripojenie do %1$s?" "Odmietnuť pozvanie" "Naozaj chcete odmietnuť túto súkromnú konverzáciu s %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-sv/translations.xml b/features/roomlist/impl/src/main/res/values-sv/translations.xml index 9b6927127f..69d5dc7cf3 100644 --- a/features/roomlist/impl/src/main/res/values-sv/translations.xml +++ b/features/roomlist/impl/src/main/res/values-sv/translations.xml @@ -14,8 +14,11 @@ "Kom igång genom att skicka meddelanden till någon." "Inga chattar än." "Favoriter" + "Du kan lägga till en chatt till dina favoriter i chattinställningarna. +För tillfället kan du avmarkera filter för att se dina andra chattar" "Du har inga favoritchattar än" "Låg prioritet" + "Du kan avmarkera filter för att se dina andra chattar" "Du har inga chattar för det här valet" "Personer" "Du har inga DM:er än" @@ -27,6 +30,7 @@ Du har inga olästa meddelanden!" "Alla chattar" "Markera som läst" "Markera som oläst" + "Bläddra bland alla rum" "Det verkar som om du använder en ny enhet. Verifiera med en annan enhet för att komma åt dina krypterade meddelanden." "Verifiera att det är du" diff --git a/features/roomlist/impl/src/main/res/values-zh-rTW/translations.xml b/features/roomlist/impl/src/main/res/values-zh-rTW/translations.xml index 6d01b67889..8f2df7b13e 100644 --- a/features/roomlist/impl/src/main/res/values-zh-rTW/translations.xml +++ b/features/roomlist/impl/src/main/res/values-zh-rTW/translations.xml @@ -1,11 +1,13 @@ "輸入您的復原金鑰" + "提升您的通話體驗" "沒有邀請" "%1$s(%2$s)邀請您" "這是一次性的程序,感謝您耐心等候。" "正在設定您的帳號。" "建立新的對話或聊天室" + "尚無聊天室。" "我的最愛" "邀請" "夥伴" diff --git a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryTest.kt b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryTest.kt index 6ad7c07960..bf24dfd6dd 100644 --- a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryTest.kt +++ b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryTest.kt @@ -23,6 +23,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.test.A_ROOM_ID import io.element.android.libraries.matrix.test.A_ROOM_NAME +import kotlinx.collections.immutable.toPersistentList import org.junit.Test class RoomListRoomSummaryTest { @@ -91,6 +92,7 @@ internal fun createRoomListRoomSummary( userDefinedNotificationMode: RoomNotificationMode? = null, isFavorite: Boolean = false, displayType: RoomSummaryDisplayType = RoomSummaryDisplayType.ROOM, + heroes: List = emptyList(), ) = RoomListRoomSummary( id = A_ROOM_ID.value, roomId = A_ROOM_ID, @@ -110,4 +112,5 @@ internal fun createRoomListRoomSummary( canonicalAlias = null, inviteSender = null, isDm = false, + heroes = heroes.toPersistentList(), ) diff --git a/features/securebackup/impl/build.gradle.kts b/features/securebackup/impl/build.gradle.kts index 64c207c798..41f3ba8942 100644 --- a/features/securebackup/impl/build.gradle.kts +++ b/features/securebackup/impl/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) alias(libs.plugins.anvil) id("kotlin-parcelize") } @@ -61,6 +60,4 @@ dependencies { testImplementation(projects.libraries.matrix.test) testImplementation(projects.tests.testutils) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/securebackup/impl/src/main/res/values-el/translations.xml b/features/securebackup/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..e62f465743 --- /dev/null +++ b/features/securebackup/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,54 @@ + + + "Απενεργοποίηση αντιγράφων ασφαλείας" + "Ενεργοποίηση αντιγράφων ασφαλείας" + "Η δημιουργία αντιγράφων ασφαλείας διασφαλίζει ότι δεν θα χάσεις το ιστορικό μηνυμάτων σου. %1$s." + "Αντίγραφο ασφαλείας" + "Αλλαγή κλειδιού ανάκτησης" + "Εισαγωγή κλειδιού ανάκτησης" + "Το αντίγραφο ασφαλείας της συνομιλίας σου δεν είναι συγχρονισμένο αυτήν τη στιγμή." + "Ρύθμιση ανάκτησης" + "Απόκτησε πρόσβαση στα κρυπτογραφημένα σου μηνύματα εάν χάσεις όλες τις συσκευές σου ή έχεις αποσυνδεθεί από το %1$s παντού." + "Άνοιγμα %1$s σε συσκευή υπολογιστή" + "Συνδέσου ξανά στο λογαριασμό σου" + "Όταν σου ζητηθεί να επαληθεύσεις τη συσκευή σου, επέλεξε %1$s" + "«Επαναφορά όλων»" + "Ακολούθησε τις οδηγίες για να δημιουργήσεις ένα νέο κλειδί ανάκτησης" + "Αποθήκευσε το νέο κλειδί ανάκτησης σε έναν διαχειριστή κωδικών πρόσβασης ή σε κρυπτογραφημένη σημείωση" + "Επανάφερε την κρυπτογράφηση για το λογαριασμό σου χρησιμοποιώντας άλλη συσκευή" + "Απενεργοποίηση" + "Θα χάσεις τα κρυπτογραφημένα μηνύματά σου εάν αποσυνδεθείς από όλες τις συσκευές." + "Σίγουρα θες να απενεργοποιήσεις τα αντίγραφα ασφαλείας;" + "Η απενεργοποίηση του αντιγράφου ασφαλείας θα καταργήσει το τρέχον αντίγραφο ασφαλείας κλειδιού κρυπτογράφησης και θα απενεργοποιήσει άλλες δυνατότητες ασφαλείας. Σε αυτή την περίπτωση, θα:" + "Να μην έχεις κρυπτογραφημένο ιστορικό μηνυμάτων στις νέες συσκευές" + "Χάσεις την πρόσβαση στα κρυπτογραφημένα μηνύματά σου εάν είσαι αποσυνδεδεμένος από %1$s παντού" + "Σίγουρα θες να απενεργοποιήσεις τα αντίγραφα ασφαλείας;" + "Απόκτησε ένα νέο κλειδί ανάκτησης εάν έχεις χάσει το υπάρχον. Αφού αλλάξεις το κλειδί ανάκτησης, το παλιό δεν θα λειτουργεί πλέον." + "Δημιουργία νέου κλειδιού ανάκτησης" + "Βεβαιώσου ότι μπορείς να αποθηκεύσεις το κλειδί ανάκτησης σε ασφαλές μέρος" + "Το κλειδί ανάκτησης άλλαξε" + "Αλλαγή κλειδιού ανάκτησης;" + "Δημιουργία νέου κλειδιού ανάκτησης" + "Βεβαιώσου ότι κανείς δεν μπορεί να δει αυτήν την οθόνη!" + "Προσπάθησε ξανά για να επιβεβαιώσεις την πρόσβαση στο αντίγραφο ασφαλείας της συνομιλίας σου." + "Λανθασμένο κλειδί ανάκτησης" + "Εάν έχεις ένα κλειδί ασφαλείας ή μια φράση ασφαλείας, θα λειτουργήσει επίσης." + "Κλειδί ανάκτησης ή κωδικός πρόσβασης" + "Εισαγωγή…" + "Έχασες το κλειδί ανάκτησης;" + "Επιβεβαιώθηκε το κλειδί ανάκτησης" + "Εισήγαγε το κλειδί ανάκτησης" + "Αντιγράφηκε το κλειδί ανάκτησης" + "Δημιουργία…" + "Αποθήκευση κλειδιού ανάκτησης" + "Γράψε το κλειδί ανάκτησης κάπου ασφαλές ή αποθήκευσέ το σε έναν διαχειριστή κωδικών πρόσβασης." + "Πάτα για να αντιγράψεις το κλειδί ανάκτησης" + "Αποθήκευσε το κλειδί ανάκτησης" + "Δεν θα μπορείς να αποκτήσεις πρόσβαση στο νέο κλειδί ανάκτησης μετά από αυτό το βήμα." + "Έχεις αποθηκεύσει το κλειδί ανάκτησης;" + "Το αντίγραφο ασφαλείας της συνομιλίας σου προστατεύεται από ένα κλειδί ανάκτησης. Εάν χρειαστείς ένα νέο κλειδί ανάκτησης μετά την εγκατάσταση, μπορείς να δημιουργήσεις ξανά επιλέγοντας «Αλλαγή κλειδιού ανάκτησης»." + "Δημιουργία κλειδιού ανάκτησης" + "Βεβαιώσου ότι μπορείς να αποθηκεύσεις το κλειδί ανάκτησης κάπου ασφαλές" + "Επιτυχής ρύθμιση ανάκτησης" + "Ρύθμιση ανάκτησης" + diff --git a/features/securebackup/impl/src/main/res/values-et/translations.xml b/features/securebackup/impl/src/main/res/values-et/translations.xml index 8aa23adc02..00efa8cf14 100644 --- a/features/securebackup/impl/src/main/res/values-et/translations.xml +++ b/features/securebackup/impl/src/main/res/values-et/translations.xml @@ -9,6 +9,19 @@ "Sinu vestluste krüptograafia varukoopia pole hetkel enam sünkroonis." "Seadista krüptovõtmete varundus" "Säilita ligipääs oma krüptitud sõnumitele ka siis, kui sa kaotad kõik oma seadmed ja/või logid kõikjal välja rakendusest %1$s." + "Ava %1$s töölauaga seadmes" + "Logi uuesti sisse oma kasutajakontole" + "Kui sul palutakse seadet verifitseerida, vali %1$s" + "„Lähtesta kõik“" + "Uue taastevõtme loomiseks palun järgi juhendit" + "Salvesta oma uus taastevõti kas salasõnahalduris, krüptitud failis või mõnel muul turvalisel viisil" + "Lähtesta oma konto krüptimine mõnest muust oma seadmest" + "Lülita välja" + "Kui sa logid välja kõikidest oma seadmetest, siis sa kaotad ligipääsu oma krüptitud sõnumitele." + "Kas sa oled kindel, et soovid varukoopiate tegemise välja lülitada?" + "Varunduse väljalülitamisel kustutatakse hetkel olemasolev sinu krüptovõtmete varukoopia ning lülituvad välja veel mõned turvafunktsionaalsused. Sellisel juhul sul:" + "sul ei ole krüptitud sõnumite ajalugu uutes seadmetes" + "sa kaotad ligipääsu oma krüptitud sõnumitele, kui sa logid kõikjal välja rakendusest %1$s" "Kas sa oled kindel, et soovid varunduse välja lülitada?" "Kui oled vana taastevõtme kaotanud, siis loo uus. Peale seda muudatust vana taastevõti enam ei tööta." "Loo uus taastevõti" diff --git a/features/securebackup/impl/src/main/res/values-fr/translations.xml b/features/securebackup/impl/src/main/res/values-fr/translations.xml index 6296e0d7ac..a23f66f643 100644 --- a/features/securebackup/impl/src/main/res/values-fr/translations.xml +++ b/features/securebackup/impl/src/main/res/values-fr/translations.xml @@ -29,8 +29,8 @@ "Clé de récupération modifée" "Changer la clé de récupération?" "Créer une nouvelle clé de récupération" - "Assurez vous que personne d’autre ne regarde l’écran!" - "Veuillez réessayer pour accéder à votre historique chiffré." + "Assurez vous que personne d’autre ne regarde votre écran!" + "Veuillez réessayer afin de pouvoir accéder à vos anciens messages." "Clé de récupération incorrecte" "Si vous avez une clé de sécurité ou une phrase de sécurité, cela fonctionnera également." "Clé de récupération" diff --git a/features/securebackup/impl/src/main/res/values-hu/translations.xml b/features/securebackup/impl/src/main/res/values-hu/translations.xml index ffa1c31be3..68db567a89 100644 --- a/features/securebackup/impl/src/main/res/values-hu/translations.xml +++ b/features/securebackup/impl/src/main/res/values-hu/translations.xml @@ -21,7 +21,7 @@ "Biztos, hogy kikapcsolja a biztonsági mentéseket?" "A biztonsági mentés kikapcsolása eltávolítja a jelenlegi titkosítási kulcsának mentését, és kikapcsol más biztonsági funkciókat is. Ebben az esetben:" "Nem lesznek meg a titkosított üzenetek előzményei az új eszközein" - "Elveszti a titkosított üzenetei hozzáférését, ha mindenhol kilép az %1$sből" + "Elveszti a hozzáférését a titkosított üzeneteihez, ha mindenhol kilép az %1$sből" "Biztos, hogy kikapcsolja a biztonsági mentéseket?" "Szerezzen új helyreállítási kulcsot, ha elvesztette a meglévőt. A helyreállítása kulcsa módosítása után a régi már nem fog működni." "Új helyreállítási kulcs előállítása" diff --git a/features/securebackup/impl/src/main/res/values-pt/translations.xml b/features/securebackup/impl/src/main/res/values-pt/translations.xml index 274de6d6af..0d8d61137c 100644 --- a/features/securebackup/impl/src/main/res/values-pt/translations.xml +++ b/features/securebackup/impl/src/main/res/values-pt/translations.xml @@ -10,7 +10,7 @@ "Configurar recuperação" "Obtém acesso às tuas mensagens cifradas mesmo se perderes todos os teus dispositivos ou se terminares todas as tuas sessões %1$s." "Abre a %1$s num computador" - "Inicia sessão novamente" + "Iniciar sessão novamente" "Quando te for pedido para verificares o teu dispositivo, seleciona %1$s" "“Repor tudo”" "Segue as instruções para criar uma nova chave de recuperação" @@ -19,9 +19,9 @@ "Desligar" "Perderás as tuas mensagens cifradas se tiveres terminado a sessão em todos os teus dispositivos." "Tens a certeza que queres desativar a cópia de segurança?" - "Desativar a cópia de segurança irá remover a atual cópia da chave de cifragem e desativar outras funcionalidades de segurança. Neste caso, irá:" - "O histórico de mensagens cifradas em novos dispositivos" - "Acesso às tuas mensagens cifradas se terminares todas as sessões %1$s" + "Desativar a cópia de segurança irá remover a atual cópia da chave de cifragem e desativar outras funcionalidades de segurança. Neste caso, irás:" + "Não ter o histórico de mensagens cifradas em novos dispositivos" + "Perder o acesso às tuas mensagens cifradas se terminares todas as sessões %1$s" "Tens a certeza que queres desativar a cópia de segurança?" "Obtém uma nova chave de recuperação se tiveres perdido a atual. Depois de a alterares, a antiga deixará de funcionar." "Gerar uma nova chave de recuperação" @@ -35,12 +35,12 @@ "Também funciona se tiveres uma chave ou frase de segurança." "Chave ou código de recuperação" "Inserir…" - "Perdeste a tua chave de recuperação?" + "Perdeste a tua chave?" "Chave de recuperação confirmada" "Insere a tua chave de recuperação" "Chave de recuperação copiada" "A gerar…" - "Guardar chave de recuperação" + "Guardar chave" "Anota a tua chave de recuperação num local seguro ou guarda-a num gestor de senhas." "Toca para copiar a chave de recuperação" "Guarda a tua chave de recuperação" diff --git a/features/securebackup/impl/src/main/res/values-ru/translations.xml b/features/securebackup/impl/src/main/res/values-ru/translations.xml index 6a46ab3797..23de19d911 100644 --- a/features/securebackup/impl/src/main/res/values-ru/translations.xml +++ b/features/securebackup/impl/src/main/res/values-ru/translations.xml @@ -31,7 +31,7 @@ "Вы действительно хотите отключить резервное копирование?" "Отключение резервного копирования удалит текущую резервную копию ключа шифрования и отключит другие функции безопасности. В этом случае вы выполните следующие действия:" "Нет зашифрованной истории сообщений на новых устройствах" - "Потерять доступ к зашифрованным сообщениям, если вы вышли из %1$s любой точки мира" + "Вы потеряете доступ к зашифрованным сообщениям, если выйдете из %1$s везде" "Вы действительно хотите отключить резервное копирование?" "Получите новый ключ восстановления, если вы потеряли существующий. После смены ключа восстановления старый ключ больше не будет работать." diff --git a/features/share/impl/build.gradle.kts b/features/share/impl/build.gradle.kts index c180c5d29a..309b640932 100644 --- a/features/share/impl/build.gradle.kts +++ b/features/share/impl/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) alias(libs.plugins.anvil) id("kotlin-parcelize") } @@ -65,6 +64,4 @@ dependencies { testImplementation(projects.libraries.mediaupload.test) testImplementation(projects.tests.testutils) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/signedout/impl/build.gradle.kts b/features/signedout/impl/build.gradle.kts index 0255ac3ca1..307a4449e7 100644 --- a/features/signedout/impl/build.gradle.kts +++ b/features/signedout/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -48,6 +47,4 @@ dependencies { testImplementation(projects.libraries.matrix.test) testImplementation(projects.libraries.sessionStorage.implMemory) testImplementation(projects.tests.testutils) - - ksp(libs.showkase.processor) } diff --git a/features/signedout/impl/src/main/res/values-el/translations.xml b/features/signedout/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..3df0bbd037 --- /dev/null +++ b/features/signedout/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,8 @@ + + + "Άλλαξες τον κωδικό πρόσβασής σου σε άλλη συνεδρία" + "Έχεις διαγράψει τη συνεδρία από άλλη συνεδρία" + "Ο διαχειριστής του διακομιστή σου έχει ακυρώσει την πρόσβασή σου" + "Μπορεί να έχεις αποσυνδεθεί για έναν από τους λόγους που αναφέρονται παρακάτω. Συνδέσου ξανά για να συνεχίσεις να χρησιμοποιείς %s." + "Έχεις αποσυνδεθεί" + diff --git a/features/userprofile/impl/build.gradle.kts b/features/userprofile/impl/build.gradle.kts index 3837e81f9b..2a9bd91006 100644 --- a/features/userprofile/impl/build.gradle.kts +++ b/features/userprofile/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -65,6 +64,4 @@ dependencies { testImplementation(projects.tests.testutils) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/userprofile/shared/build.gradle.kts b/features/userprofile/shared/build.gradle.kts index 2407770ed4..cae0b54e69 100644 --- a/features/userprofile/shared/build.gradle.kts +++ b/features/userprofile/shared/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -66,6 +65,4 @@ dependencies { testImplementation(projects.tests.testutils) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/userprofile/shared/src/main/kotlin/io/element/android/features/userprofile/shared/UserProfileHeaderSection.kt b/features/userprofile/shared/src/main/kotlin/io/element/android/features/userprofile/shared/UserProfileHeaderSection.kt index 9db6aee2b9..78d87c275d 100644 --- a/features/userprofile/shared/src/main/kotlin/io/element/android/features/userprofile/shared/UserProfileHeaderSection.kt +++ b/features/userprofile/shared/src/main/kotlin/io/element/android/features/userprofile/shared/UserProfileHeaderSection.kt @@ -17,14 +17,11 @@ package io.element.android.features.userprofile.shared import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -36,6 +33,8 @@ import io.element.android.compound.theme.ElementTheme import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.designsystem.preview.ElementPreview +import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.testtags.TestTags @@ -55,15 +54,12 @@ fun UserProfileHeaderSection( .padding(horizontal = 16.dp), horizontalAlignment = Alignment.CenterHorizontally, ) { - Box(modifier = Modifier.size(70.dp)) { - Avatar( - avatarData = AvatarData(userId.value, userName, avatarUrl, AvatarSize.UserHeader), - modifier = Modifier + Avatar( + avatarData = AvatarData(userId.value, userName, avatarUrl, AvatarSize.UserHeader), + modifier = Modifier .clickable(enabled = avatarUrl != null) { openAvatarPreview(avatarUrl!!) } - .fillMaxSize() .testTag(TestTags.memberDetailAvatar) - ) - } + ) Spacer(modifier = Modifier.height(24.dp)) if (userName != null) { Text( @@ -86,3 +82,14 @@ fun UserProfileHeaderSection( Spacer(Modifier.height(40.dp)) } } + +@PreviewsDayNight +@Composable +internal fun UserProfileHeaderSectionPreview() = ElementPreview { + UserProfileHeaderSection( + avatarUrl = null, + userId = UserId("@alice:example.com"), + userName = "Alice", + openAvatarPreview = {}, + ) +} diff --git a/features/userprofile/shared/src/main/res/values-el/translations.xml b/features/userprofile/shared/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..24061384ed --- /dev/null +++ b/features/userprofile/shared/src/main/res/values-el/translations.xml @@ -0,0 +1,10 @@ + + + "Αποκλεισμός" + "Οι αποκλεισμένοι χρήστες δεν θα μπορούν να σου στέλνουν μηνύματα και όλα τα μηνύματά τους θα είναι κρυμμένα. Μπορείς να τα ξεμπλοκάρεις ανά πάσα στιγμή." + "Αποκλεισμός χρήστη" + "Άρση αποκλεισμού" + "Θα μπορείς να δεις ξανά όλα τα μηνύματα του." + "Κατάργηση αποκλεισμού χρήστη" + "Παρουσιάστηκε σφάλμα κατά την προσπάθεια έναρξης μιας συνομιλίας" + diff --git a/features/userprofile/shared/src/main/res/values-et/translations.xml b/features/userprofile/shared/src/main/res/values-et/translations.xml new file mode 100644 index 0000000000..d34ba97674 --- /dev/null +++ b/features/userprofile/shared/src/main/res/values-et/translations.xml @@ -0,0 +1,10 @@ + + + "Blokeeri" + "Blokeeritud kasutajad ei saa sulle kirjutada ja kõik nende sõnumid on sinu eest peidetud. Sa saad alati blokeeringu eemaldada." + "Blokeeri kasutaja" + "Eemalda blokeering" + "Nüüd näed sa jälle kõiki tema sõnumeid" + "Eemalda kasutajalt blokeering" + "Vestluse alustamisel tekkis viga" + diff --git a/features/userprofile/shared/src/main/res/values-zh-rTW/translations.xml b/features/userprofile/shared/src/main/res/values-zh-rTW/translations.xml index ee42766639..ec239ebbd5 100644 --- a/features/userprofile/shared/src/main/res/values-zh-rTW/translations.xml +++ b/features/userprofile/shared/src/main/res/values-zh-rTW/translations.xml @@ -1,7 +1,9 @@ "封鎖" + "被封鎖的使用者無法傳訊息給您,他們的訊息會被隱藏。您可以在任何時候解除封鎖。" "封鎖使用者" "解除封鎖" + "您將無法看到任何來自他們的訊息。" "解除封鎖使用者" diff --git a/features/verifysession/impl/build.gradle.kts b/features/verifysession/impl/build.gradle.kts index 38cb453a05..8c1028dabd 100644 --- a/features/verifysession/impl/build.gradle.kts +++ b/features/verifysession/impl/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) alias(libs.plugins.anvil) } @@ -58,6 +57,4 @@ dependencies { testImplementation(projects.tests.testutils) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/features/verifysession/impl/src/main/res/values-el/translations.xml b/features/verifysession/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..5b0402cf50 --- /dev/null +++ b/features/verifysession/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,28 @@ + + + "Δημιουργία νέου κλειδιού ανάκτησης" + "Επαλήθευσε αυτήν τη συσκευή για να ρυθμίσεις την ασφαλή επικοινωνία." + "Επιβεβαίωσε ότι είσαι εσύ" + "Τώρα μπορείς να διαβάζεις ή να στέλνεις μηνύματα με ασφάλεια και επίσης μπορεί να εμπιστευτεί αυτήν τη συσκευή οποιοσδήποτε με τον οποίο συνομιλείς." + "Επαληθευμένη συσκευή" + "Χρήση άλλης συσκευής" + "Αναμονή σε άλλη συσκευή…" + "Κάτι δεν πάει καλά. Είτε το αίτημα έληξε είτε απορρίφθηκε." + "Επιβεβαίωσε ότι τα παρακάτω emoji ταιριάζουν με αυτά που εμφανίζονται στην άλλη συνεδρία σου." + "Σύγκριση emoji" + "Επιβεβαίωσε ότι οι παρακάτω αριθμοί ταιριάζουν με αυτούς που εμφανίζονται στην άλλη συνεδρία σου." + "Σύγκριση αριθμών" + "Η νέα σου συνεδρία έχει πλέον επαληθευτεί. Έχει πρόσβαση στα κρυπτογραφημένα μηνύματά σας και άλλοι χρήστες θα το βλέπουν ως αξιόπιστο." + "Εισαγωγή κλειδιού ανάκτησης" + "Απέδειξε ότι είσαι εσύ για να αποκτήσεις πρόσβαση στο κρυπτογραφημένο ιστορικό μηνυμάτων σου." + "Άνοιξε μια υπάρχουσα συνεδρία" + "Επανάληψη επαλήθευσης" + "Είμαι έτοιμος/η" + "Αναμονή για αντιστοίχιση" + "Σύγκρινε ένα μοναδικό σύνολο emojis." + "Σύγκρινε τα μοναδικά emoji και σιγουρέψου ότι εμφανίζονται με την ίδια σειρά." + "Δεν ταιριάζουν" + "Ταιριάζουν" + "Αποδέξου το αίτημα για να ξεκινήσεις τη διαδικασία επαλήθευσης στην άλλη συνεδρία σου για να συνεχίσεις." + "Αναμονή για αποδοχή αιτήματος" + diff --git a/features/verifysession/impl/src/main/res/values-et/translations.xml b/features/verifysession/impl/src/main/res/values-et/translations.xml index e058012acc..efe615fa46 100644 --- a/features/verifysession/impl/src/main/res/values-et/translations.xml +++ b/features/verifysession/impl/src/main/res/values-et/translations.xml @@ -1,8 +1,28 @@ + "Loo uus taastevõti" "Krüptitud sõnumivahetuse tagamiseks verifitseeri see seade." "Kinnita, et see oled sina" "Nüüd saad saata või lugeda sõnumeid turvaliselt ning kõik sinu vestluspartnerid võivad usaldada seda seadet." "Seade on verifitseeritud" "Kasuta mõnda muud seadet" + "Ootame teise seadme järgi…" + "Olukord pole päris õige. Päring kas aegus või teine osapool keeldus päringule vastamast." + "Kinnita, et kõik alljärgnevas kuvatud emojid on täpselt samad, mida sa näed oma teises sessioonis." + "Võrdle emojisid" + "Kinnita, et kõik alljärgnevas kuvatud numbrid on täpselt samad, mida sa näed oma teises sessioonis." + "Võrdle numbreid" + "Sinu uus sessioon on nüüd verifitseeritud. Sellel sessioonil on nüüd ligipääs sinu krüptitud sõnumitele ja teised osapooled näevad teda usaldusväärsena." + "Sisesta taastevõti" + "Saamaks ligipääsu krüptitud sõnumite ajaloole tõesta et tegemist on sinuga." + "Ava olemasolev sessioon" + "Proovi uuesti verifitseerimist" + "Ma olen valmis alustama" + "Ootame kinnitust sobivusele" + "Võrdle unikaalset emojide kombinatsiooni" + "Võrdle unikaalset emojide kombinatsiooni ning kontrolli, et nad on täpselt samas järjekorras." + "Nad ei klapi omavahel" + "Nad klapivad omavahel" + "Jätkamaks nõustu verifitseerimisprotsessi alustamisega oma teises sessioonis." + "Ootame nõustumist verifitseerimispäringuga" diff --git a/features/verifysession/impl/src/main/res/values-fr/translations.xml b/features/verifysession/impl/src/main/res/values-fr/translations.xml index 9f75e36ad9..6f7aa9982b 100644 --- a/features/verifysession/impl/src/main/res/values-fr/translations.xml +++ b/features/verifysession/impl/src/main/res/values-fr/translations.xml @@ -13,7 +13,7 @@ "Confirmez que les nombres ci-dessous correspondent à ceux affichés sur votre autre session." "Comparez les nombres" "Votre nouvelle session est désormais vérifiée. Elle a accès à vos messages chiffrés et les autres utilisateurs la verront identifiée comme fiable." - "Confirmer la clé de récupération" + "Utiliser la clé de récupération" "Prouvez qu’il s’agit bien de vous pour accéder à l’historique de vos messages chiffrés." "Ouvrir une session existante" "Réessayer la vérification" diff --git a/features/verifysession/impl/src/main/res/values-pt/translations.xml b/features/verifysession/impl/src/main/res/values-pt/translations.xml index 919c8db023..b563196913 100644 --- a/features/verifysession/impl/src/main/res/values-pt/translations.xml +++ b/features/verifysession/impl/src/main/res/values-pt/translations.xml @@ -16,7 +16,7 @@ "Insere a chave de recuperação" "Prova que és tu para acederes ao teu histórico de mensagens cifradas." "Abrir sessão existente" - "Repetir verficiação" + "Repetir verificação" "Estou pronto" "A aguardar correspondência" "Compara um conjunto único de emojis." diff --git a/features/verifysession/impl/src/main/res/values-sv/translations.xml b/features/verifysession/impl/src/main/res/values-sv/translations.xml index 5460b76d12..392754174b 100644 --- a/features/verifysession/impl/src/main/res/values-sv/translations.xml +++ b/features/verifysession/impl/src/main/res/values-sv/translations.xml @@ -1,5 +1,12 @@ + "Skapa en ny återställningsnyckel" + "Verifiera den här enheten för att konfigurera säkra meddelanden." + "Bekräfta att det är du" + "Nu kan du läsa eller skicka meddelanden säkert, och alla du chattar med kan också lita på den här enheten." + "Enhet verifierad" + "Använd en annan enhet" + "Väntar på annan enhet …" "Något verkar inte stämma. Antingen gick tidsgränsen för begäran ut eller så avvisades begäran." "Bekräfta att emojierna nedan matchar de som visas på din andra session." "Jämför emojis" diff --git a/features/viewfolder/impl/build.gradle.kts b/features/viewfolder/impl/build.gradle.kts index 67c818f185..3da0fdda95 100644 --- a/features/viewfolder/impl/build.gradle.kts +++ b/features/viewfolder/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -38,7 +37,6 @@ dependencies { implementation(projects.libraries.designsystem) implementation(projects.libraries.uiStrings) api(projects.features.viewfolder.api) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.test.robolectric) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 13c2e02858..51760bb7c5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -34,7 +34,7 @@ coroutines = "1.8.1" accompanist = "0.34.0" # Test -test_core = "1.5.0" +test_core = "1.6.1" #other coil = "2.6.0" @@ -44,7 +44,7 @@ serialization_json = "1.6.3" showkase = "1.0.3" appyx = "1.4.0" sqldelight = "2.0.2" -wysiwyg = "2.37.3" +wysiwyg = "2.37.4" telephoto = "0.11.2" # DI @@ -55,8 +55,7 @@ anvil = "2.4.9" autoservice = "1.1.1" # quality -androidx-test-ext-junit = "1.1.5" -espresso-core = "3.5.1" +androidx-test-ext-junit = "1.2.1" kover = "0.8.0" [libraries] @@ -68,7 +67,7 @@ kotlin_gradle_plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", v kover_gradle_plugin = { module = "org.jetbrains.kotlinx:kover-gradle-plugin", version.ref = "kover" } gms_google_services = "com.google.gms:google-services:4.4.2" # https://firebase.google.com/docs/android/setup#available-libraries -google_firebase_bom = "com.google.firebase:firebase-bom:33.1.0" +google_firebase_bom = "com.google.firebase:firebase-bom:33.1.1" firebase_appdistribution_gradle = { module = "com.google.firebase:firebase-appdistribution-gradle", version.ref = "firebaseAppDistribution" } autonomousapps_dependencyanalysis_plugin = { module = "com.autonomousapps:dependency-analysis-gradle-plugin", version.ref = "dependencyAnalysis" } @@ -138,14 +137,15 @@ test_core = { module = "androidx.test:core", version.ref = "test_core" } test_corektx = { module = "androidx.test:core-ktx", version.ref = "test_core" } test_arch_core = "androidx.arch.core:core-testing:2.2.0" test_junit = "junit:junit:4.13.2" -test_runner = "androidx.test:runner:1.5.2" +test_runner = "androidx.test:runner:1.6.1" test_mockk = "io.mockk:mockk:1.13.11" test_konsist = "com.lemonappdev:konsist:0.15.1" test_turbine = "app.cash.turbine:turbine:1.1.0" -test_truth = "com.google.truth:truth:1.4.2" +test_truth = "com.google.truth:truth:1.4.3" test_parameter_injector = "com.google.testparameterinjector:test-parameter-injector:1.16" test_robolectric = "org.robolectric:robolectric:4.12.2" test_appyx_junit = { module = "com.bumble.appyx:testing-junit4", version.ref = "appyx" } +test_composable_preview_scanner = "com.github.sergio-sastre.ComposablePreviewScanner:android:0.1.2" # Others coil = { module = "io.coil-kt:coil", version.ref = "coil" } @@ -162,7 +162,7 @@ jsoup = "org.jsoup:jsoup:1.17.2" appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" } molecule-runtime = "app.cash.molecule:molecule-runtime:2.0.0" timber = "com.jakewharton.timber:timber:5.0.1" -matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.2.27" +matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.2.30" matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" } matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" } sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" } @@ -175,7 +175,7 @@ otaliastudios_transcoder = "com.otaliastudios:transcoder:0.10.5" vanniktech_blurhash = "com.vanniktech:blurhash:0.3.0" telephoto_zoomableimage = { module = "me.saket.telephoto:zoomable-image-coil", version.ref = "telephoto" } telephoto_flick = { module = "me.saket.telephoto:flick-android", version.ref = "telephoto" } -statemachine = "com.freeletics.flowredux:compose:1.2.1" +statemachine = "com.freeletics.flowredux:compose:1.2.2" maplibre = "org.maplibre.gl:android-sdk:11.0.1" maplibre_ktx = "org.maplibre.gl:android-sdk-ktx-v7:3.0.0" maplibre_annotation = "org.maplibre.gl:android-plugin-annotation-v9:3.0.0" @@ -184,8 +184,8 @@ kotlinpoet = "com.squareup:kotlinpoet:1.17.0" zxing_cpp = "io.github.zxing-cpp:android:2.2.0" # Analytics -posthog = "com.posthog:posthog-android:3.3.2" -sentry = "io.sentry:sentry-android:7.10.0" +posthog = "com.posthog:posthog-android:3.4.2" +sentry = "io.sentry:sentry-android:7.11.0" # main branch can be tested replacing the version with main-SNAPSHOT matrix_analytics_events = "com.github.matrix-org:matrix-analytics-events:0.23.1" @@ -209,8 +209,6 @@ google_autoservice_annotations = { module = "com.google.auto.service:auto-servic # See https://github.com/renovatebot/renovate/issues/18354 android_composeCompiler = { module = "androidx.compose.compiler:compiler", version.ref = "composecompiler" } androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-ext-junit" } -espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso-core" } -appcompat = "androidx.appcompat:appcompat:1.7.0" [bundles] @@ -226,7 +224,7 @@ anvil = { id = "com.squareup.anvil", version.ref = "anvil" } detekt = "io.gitlab.arturbosch.detekt:1.23.6" ktlint = "org.jlleitschuh.gradle.ktlint:12.1.1" dependencygraph = "com.savvasdalkitsis.module-dependency-graph:0.12" -dependencycheck = "org.owasp.dependencycheck:9.2.0" +dependencycheck = "org.owasp.dependencycheck:10.0.1" dependencyanalysis = { id = "com.autonomousapps.dependency-analysis", version.ref = "dependencyAnalysis" } paparazzi = "app.cash.paparazzi:1.3.4" sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } diff --git a/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/system/SystemUtils.kt b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/system/SystemUtils.kt index 49e055cc29..5b9866254d 100644 --- a/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/system/SystemUtils.kt +++ b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/system/SystemUtils.kt @@ -26,16 +26,12 @@ import android.os.Build import android.provider.Settings import android.widget.Toast import androidx.activity.result.ActivityResultLauncher -import androidx.annotation.ChecksSdkIntAtLeast import androidx.annotation.RequiresApi import androidx.core.content.pm.PackageInfoCompat import io.element.android.libraries.androidutils.R import io.element.android.libraries.androidutils.compat.getApplicationInfoCompat import io.element.android.libraries.core.mimetype.MimeTypes -@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.O) -fun supportNotificationChannels() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O - /** * Return the application label of the provided package. If not found, the package is returned. */ diff --git a/libraries/androidutils/src/main/res/values-el/translations.xml b/libraries/androidutils/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..ef86d3c98f --- /dev/null +++ b/libraries/androidutils/src/main/res/values-el/translations.xml @@ -0,0 +1,4 @@ + + + "Δεν βρέθηκε συμβατή εφαρμογή για να χειριστεί αυτήν την ενέργεια." + diff --git a/libraries/core/src/main/kotlin/io/element/android/libraries/core/meta/BuildMeta.kt b/libraries/core/src/main/kotlin/io/element/android/libraries/core/meta/BuildMeta.kt index a9cb78548f..2d62a5be70 100644 --- a/libraries/core/src/main/kotlin/io/element/android/libraries/core/meta/BuildMeta.kt +++ b/libraries/core/src/main/kotlin/io/element/android/libraries/core/meta/BuildMeta.kt @@ -23,6 +23,7 @@ data class BuildMeta( val productionApplicationName: String, val desktopApplicationName: String, val applicationId: String, + val isEnterpriseBuild: Boolean, val lowPrivacyLoggingEnabled: Boolean, val versionName: String, val versionCode: Long, diff --git a/libraries/dateformatter/impl/build.gradle.kts b/libraries/dateformatter/impl/build.gradle.kts index a980c835e1..f1205c7388 100644 --- a/libraries/dateformatter/impl/build.gradle.kts +++ b/libraries/dateformatter/impl/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-library") - alias(libs.plugins.ksp) alias(libs.plugins.anvil) } diff --git a/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DateFormatters.kt b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DateFormatters.kt index 9493079925..5d92f137e5 100644 --- a/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DateFormatters.kt +++ b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DateFormatters.kt @@ -26,19 +26,18 @@ import kotlinx.datetime.toJavaLocalDate import kotlinx.datetime.toJavaLocalDateTime import java.time.Period import java.time.format.DateTimeFormatter +import java.time.format.FormatStyle import java.util.Locale import javax.inject.Inject import kotlin.math.absoluteValue -// TODO rework this date formatting class DateFormatters @Inject constructor( private val locale: Locale, private val clock: Clock, private val timeZone: TimeZone, ) { private val onlyTimeFormatter: DateTimeFormatter by lazy { - val pattern = DateFormat.getBestDateTimePattern(locale, "HH:mm") ?: "HH:mm" - DateTimeFormatter.ofPattern(pattern, locale) + DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT).withLocale(locale) } private val dateWithMonthFormatter: DateTimeFormatter by lazy { @@ -51,6 +50,10 @@ class DateFormatters @Inject constructor( DateTimeFormatter.ofPattern(pattern, locale) } + private val dateWithFullFormatFormatter: DateTimeFormatter by lazy { + DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(locale) + } + internal fun formatTime(localDateTime: LocalDateTime): String { return onlyTimeFormatter.format(localDateTime.toJavaLocalDateTime()) } @@ -63,6 +66,10 @@ class DateFormatters @Inject constructor( return dateWithYearFormatter.format(localDateTime.toJavaLocalDateTime()) } + internal fun formatDateWithFullFormat(localDateTime: LocalDateTime): String { + return dateWithFullFormatFormatter.format(localDateTime.toJavaLocalDateTime()) + } + internal fun formatDate( dateToFormat: LocalDateTime, currentDate: LocalDateTime, diff --git a/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt index 90d7f5c205..2760894645 100644 --- a/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt +++ b/libraries/dateformatter/impl/src/main/kotlin/io/element/android/libraries/dateformatter/impl/DefaultDaySeparatorFormatter.kt @@ -28,6 +28,7 @@ class DefaultDaySeparatorFormatter @Inject constructor( ) : DaySeparatorFormatter { override fun format(timestamp: Long): String { val dateToFormat = localDateTimeProvider.providesFromTimestamp(timestamp) - return dateFormatters.formatDateWithYear(dateToFormat) + // TODO use relative formatting once iOS uses it too + return dateFormatters.formatDateWithFullFormat(dateToFormat) } } diff --git a/libraries/dateformatter/impl/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageTimestampFormatterTest.kt b/libraries/dateformatter/impl/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageTimestampFormatterTest.kt index dd8f75cae3..38e4fbffb3 100644 --- a/libraries/dateformatter/impl/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageTimestampFormatterTest.kt +++ b/libraries/dateformatter/impl/src/test/kotlin/io/element/android/libraries/dateformatter/impl/DefaultLastMessageTimestampFormatterTest.kt @@ -21,6 +21,7 @@ import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormat import io.element.android.libraries.dateformatter.test.FakeClock import kotlinx.datetime.Instant import kotlinx.datetime.TimeZone +import kotlinx.datetime.toLocalDateTime import org.junit.Test import java.util.Locale @@ -44,7 +45,7 @@ class DefaultLastMessageTimestampFormatterTest { val now = "1980-04-06T18:35:24.00Z" val dat = "1980-04-06T18:35:24.00Z" val formatter = createFormatter(now) - assertThat(formatter.format(Instant.parse(dat).toEpochMilliseconds())).isEqualTo("18:35") + assertThat(formatter.format(Instant.parse(dat).toEpochMilliseconds())).isEqualTo("6:35 PM") } @Test @@ -52,7 +53,7 @@ class DefaultLastMessageTimestampFormatterTest { val now = "1980-04-06T18:35:24.00Z" val dat = "1980-04-06T18:35:23.00Z" val formatter = createFormatter(now) - assertThat(formatter.format(Instant.parse(dat).toEpochMilliseconds())).isEqualTo("18:35") + assertThat(formatter.format(Instant.parse(dat).toEpochMilliseconds())).isEqualTo("6:35 PM") } @Test @@ -60,7 +61,7 @@ class DefaultLastMessageTimestampFormatterTest { val now = "1980-04-06T18:35:24.00Z" val dat = "1980-04-06T18:34:24.00Z" val formatter = createFormatter(now) - assertThat(formatter.format(Instant.parse(dat).toEpochMilliseconds())).isEqualTo("18:34") + assertThat(formatter.format(Instant.parse(dat).toEpochMilliseconds())).isEqualTo("6:34 PM") } @Test @@ -68,7 +69,7 @@ class DefaultLastMessageTimestampFormatterTest { val now = "1980-04-06T18:35:24.00Z" val dat = "1980-04-06T17:35:24.00Z" val formatter = createFormatter(now) - assertThat(formatter.format(Instant.parse(dat).toEpochMilliseconds())).isEqualTo("17:35") + assertThat(formatter.format(Instant.parse(dat).toEpochMilliseconds())).isEqualTo("5:35 PM") } @Test @@ -96,6 +97,15 @@ class DefaultLastMessageTimestampFormatterTest { assertThat(formatter.format(Instant.parse(dat).toEpochMilliseconds())).isEqualTo("06.04.1979") } + @Test + fun `test full format`() { + val now = "1980-04-06T18:35:24.00Z" + val dat = "1979-04-06T18:35:24.00Z" + val clock = FakeClock().apply { givenInstant(Instant.parse(now)) } + val dateFormatters = DateFormatters(Locale.US, clock, TimeZone.UTC) + assertThat(dateFormatters.formatDateWithFullFormat(Instant.parse(dat).toLocalDateTime(TimeZone.UTC))).isEqualTo("Friday, April 6, 1979") + } + /** * Create DefaultLastMessageFormatter and set current time to the provided date. */ diff --git a/libraries/designsystem/build.gradle.kts b/libraries/designsystem/build.gradle.kts index 13d5e18e1a..9934da3e13 100644 --- a/libraries/designsystem/build.gradle.kts +++ b/libraries/designsystem/build.gradle.kts @@ -46,7 +46,6 @@ android { implementation(projects.libraries.uiStrings) ksp(libs.showkase.processor) - kspTest(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.coroutines.test) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/IconTitlePlaceholdersRowMolecule.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/IconTitlePlaceholdersRowMolecule.kt index 7bb0e22771..eeeb8ed5d5 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/IconTitlePlaceholdersRowMolecule.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/IconTitlePlaceholdersRowMolecule.kt @@ -58,6 +58,7 @@ fun IconTitlePlaceholdersRowMolecule( PlaceholderAtom(width = 20.dp, height = 7.dp) Spacer(modifier = Modifier.width(7.dp)) PlaceholderAtom(width = 45.dp, height = 7.dp) + Spacer(modifier = Modifier.width(8.dp)) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt index 173716aee3..4e8183977f 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.semantics.clearAndSetSemantics import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import coil.compose.AsyncImage @@ -52,18 +53,22 @@ fun Avatar( avatarData: AvatarData, modifier: Modifier = Modifier, contentDescription: String? = null, + // If not null, will be used instead of the size from avatarData + forcedAvatarSize: Dp? = null, ) { val commonModifier = modifier - .size(avatarData.size.dp) + .size(forcedAvatarSize ?: avatarData.size.dp) .clip(CircleShape) if (avatarData.url.isNullOrBlank()) { InitialsAvatar( avatarData = avatarData, + forcedAvatarSize = forcedAvatarSize, modifier = commonModifier, ) } else { ImageAvatar( avatarData = avatarData, + forcedAvatarSize = forcedAvatarSize, modifier = commonModifier, contentDescription = contentDescription, ) @@ -73,6 +78,7 @@ fun Avatar( @Composable private fun ImageAvatar( avatarData: AvatarData, + forcedAvatarSize: Dp?, modifier: Modifier = Modifier, contentDescription: String? = null, ) { @@ -98,9 +104,15 @@ private fun ImageAvatar( SideEffect { Timber.e(state.result.throwable, "Error loading avatar $state\n${state.result}") } - InitialsAvatar(avatarData = avatarData) + InitialsAvatar( + avatarData = avatarData, + forcedAvatarSize = forcedAvatarSize, + ) } - else -> InitialsAvatar(avatarData = avatarData) + else -> InitialsAvatar( + avatarData = avatarData, + forcedAvatarSize = forcedAvatarSize, + ) } } } @@ -109,13 +121,14 @@ private fun ImageAvatar( @Composable private fun InitialsAvatar( avatarData: AvatarData, + forcedAvatarSize: Dp?, modifier: Modifier = Modifier, ) { val avatarColors = AvatarColorsProvider.provide(avatarData.id, ElementTheme.isLightTheme) Box( modifier.background(color = avatarColors.background) ) { - val fontSize = avatarData.size.dp.toSp() / 2 + val fontSize = (forcedAvatarSize ?: avatarData.size.dp).toSp() / 2 val originalFont = ElementTheme.typography.fontHeadingMdBold val ratio = fontSize.value / originalFont.fontSize.value val lineHeight = originalFont.lineHeight * ratio diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarSize.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarSize.kt index 54791f8505..adf87af45a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarSize.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarSize.kt @@ -36,6 +36,8 @@ enum class AvatarSize(val dp: Dp) { SelectedUser(56.dp), SelectedRoom(56.dp), + DmCluster(75.dp), + TimelineRoom(32.dp), TimelineSender(32.dp), TimelineReadReceipt(16.dp), @@ -55,4 +57,8 @@ enum class AvatarSize(val dp: Dp) { CustomRoomNotificationSetting(36.dp), RoomDirectoryItem(36.dp), + + EditProfileDetails(96.dp), + + Suggestion(32.dp), } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/CompositeAvatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/CompositeAvatar.kt new file mode 100644 index 0000000000..6ae505e048 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/CompositeAvatar.kt @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.components.avatar + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import io.element.android.libraries.designsystem.preview.ElementThemedPreview +import io.element.android.libraries.designsystem.preview.PreviewGroup +import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.toPersistentList +import java.util.Collections +import kotlin.math.PI +import kotlin.math.cos +import kotlin.math.sin + +@Composable +fun CompositeAvatar( + avatarData: AvatarData, + heroes: ImmutableList, + modifier: Modifier = Modifier, + contentDescription: String? = null, +) { + if (avatarData.url != null || heroes.isEmpty()) { + Avatar(avatarData, modifier, contentDescription) + } else { + val limitedHeroes = heroes.take(4) + val numberOfHeroes = limitedHeroes.size + if (numberOfHeroes == 4) { + // Swap 2 and 3 so that the 4th hero is at the bottom right + Collections.swap(limitedHeroes, 2, 3) + } + when (numberOfHeroes) { + 0 -> { + error("Unsupported number of heroes: 0") + } + 1 -> { + Avatar(heroes[0], modifier, contentDescription) + } + else -> { + val angle = 2 * Math.PI / numberOfHeroes + val offsetRadius = when (numberOfHeroes) { + 2 -> avatarData.size.dp.value / 4.2 + 3 -> avatarData.size.dp.value / 4.0 + 4 -> avatarData.size.dp.value / 3.1 + else -> error("Unsupported number of heroes: $numberOfHeroes") + } + val heroAvatarSize = when (numberOfHeroes) { + 2 -> avatarData.size.dp / 2.2f + 3 -> avatarData.size.dp / 2.4f + 4 -> avatarData.size.dp / 2.2f + else -> error("Unsupported number of heroes: $numberOfHeroes") + } + val angleOffset = when (numberOfHeroes) { + 2 -> PI + 3 -> 7 * PI / 6 + 4 -> 13 * PI / 4 + else -> error("Unsupported number of heroes: $numberOfHeroes") + } + Box( + modifier = modifier + .size(avatarData.size.dp) + .semantics { + this.contentDescription = contentDescription.orEmpty() + }, + contentAlignment = Alignment.Center, + ) { + limitedHeroes.forEachIndexed { index, heroAvatar -> + val xOffset = (offsetRadius * cos(angle * index.toDouble() + angleOffset)).dp + val yOffset = (offsetRadius * sin(angle * index.toDouble() + angleOffset)).dp + Box( + modifier = Modifier + .size(heroAvatarSize) + .offset( + x = xOffset, + y = yOffset, + ) + ) { + Avatar( + heroAvatar, + forcedAvatarSize = heroAvatarSize, + ) + } + } + } + } + } + } +} + +@Preview(group = PreviewGroup.Avatars) +@Composable +internal fun CompositeAvatarPreview() = ElementThemedPreview { + val mainAvatar = anAvatarData( + id = "Zac", + name = "Zac", + size = AvatarSize.RoomListItem, + ) + Row( + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + repeat(6) { nbOfHeroes -> + CompositeAvatar( + avatarData = mainAvatar, + heroes = List(nbOfHeroes) { aHeroAvatarData(it) }.toPersistentList(), + ) + } + } +} + +private fun aHeroAvatarData(i: Int) = anAvatarData( + id = ('A' + i).toString(), + name = ('A' + i).toString() +) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/DmAvatars.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/DmAvatars.kt new file mode 100644 index 0000000000..fa3cb66b15 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/DmAvatars.kt @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.components.avatar + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.drawWithContent +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.BlendMode +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.CompositingStrategy +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.tooling.preview.Preview +import io.element.android.libraries.designsystem.preview.ElementThemedPreview +import io.element.android.libraries.designsystem.preview.PreviewGroup +import io.element.android.libraries.designsystem.text.toPx +import io.element.android.libraries.testtags.TestTags +import io.element.android.libraries.testtags.testTag + +/** Ratio between the box size (120 on Figma) and the avatar size (75 on Figma). */ +private const val SIZE_RATIO = 1.6f + +/** + * https://www.figma.com/design/A2pAEvTEpJZBiOPUlcMnKi/Settings-%2B-Room-Details-(new)?node-id=1787-56333 + */ +@Composable +fun DmAvatars( + userAvatarData: AvatarData, + otherUserAvatarData: AvatarData, + openAvatarPreview: (url: String) -> Unit, + openOtherAvatarPreview: (url: String) -> Unit, + modifier: Modifier = Modifier, +) { + val boxSize = userAvatarData.size.dp * SIZE_RATIO + val boxSizePx = boxSize.toPx() + val otherAvatarRadius = otherUserAvatarData.size.dp.toPx() / 2 + Box( + modifier = modifier.size(boxSize), + ) { + // Draw user avatar and cut top right corner + Avatar( + avatarData = userAvatarData, + modifier = Modifier + .align(Alignment.BottomStart) + .graphicsLayer { + compositingStrategy = CompositingStrategy.Offscreen + } + .drawWithContent { + drawContent() + drawCircle( + color = Color.Black, + center = Offset( + x = boxSizePx - otherAvatarRadius, + y = size.height - (boxSizePx - otherAvatarRadius), + ), + radius = otherAvatarRadius / 0.9f, + blendMode = BlendMode.Clear, + ) + } + .clip(CircleShape) + .clickable(enabled = userAvatarData.url != null) { + userAvatarData.url?.let { openAvatarPreview(it) } + } + ) + // Draw other user avatar + Avatar( + avatarData = otherUserAvatarData, + modifier = Modifier + .align(Alignment.TopEnd) + .clip(CircleShape) + .clickable(enabled = otherUserAvatarData.url != null) { + otherUserAvatarData.url?.let { openOtherAvatarPreview(it) } + } + .testTag(TestTags.memberDetailAvatar) + ) + } +} + +@Preview(group = PreviewGroup.Avatars) +@Composable +internal fun DmAvatarsPreview() = ElementThemedPreview { + val size = AvatarSize.DmCluster + DmAvatars( + userAvatarData = anAvatarData( + id = "Alice", + name = "Alice", + size = size, + ), + otherUserAvatarData = anAvatarData( + id = "Bob", + name = "Bob", + size = size, + ), + openAvatarPreview = {}, + openOtherAvatarPreview = {}, + ) +} diff --git a/libraries/eventformatter/impl/src/main/res/values-el/translations.xml b/libraries/eventformatter/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..322842e825 --- /dev/null +++ b/libraries/eventformatter/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,62 @@ + + + "(άλλαξε και το άβαταρ)" + "Ο χρήστης %1$s άλλαξε το άβατάρ του" + "Άλλαξες το άβατάρ σου" + "Ο χρήστης %1$s υποβιβάστηκε σε μέλος" + "Ο χρήστης %1$s υποβιβάστηκε σε συντονιστής" + "Ο χρήστης %1$s άλλαξε το εμφανιζόμενο όνομά του από %2$s σε %3$s" + "Άλλαξες το εμφανιζόμενο όνομα σου από %1$s σε %2$s" + "Ο χρήστης %1$s αφαίρεσε το εμφανιζόμενο όνομά του (ήταν %2$s)" + "Αφαίρεσες το εμφανιζόμενο όνομά σου (ήταν %1$s)" + "Ο χρήστης %1$s όρισε το εμφανιζόμενο όνομά του σε %2$s" + "Όρισες το εμφανιζόμενο όνομά σου σε %1$s" + "Ο χρήστης %1$s προήχθη σε διαχειριστής" + "Ο χρήστης %1$s προήχθη σε συντονιστής" + "Ο χρήστης %1$s άλλαξε το άβαταρ του δωματίου" + "Άλλαξες το άβαταρ του δωματίου" + "Ο χρήστης %1$s αφαίρεσε το άβαταρ του δωματίου" + "Αφαίρεσες το άβαταρ του δωματίου" + "Ο χρήστης %1$s απέκλεισε τον χρήστη %2$s" + "Απέκλεισες τον χρήστη %1$s" + "Ο χρήστης %1$s δημιούργησε το δωμάτιο" + "Εσύ δημιούργησες το δωμάτιο" + "Ο χρήστης %1$s προσκάλεσε τον χρήστη %2$s" + "Ο χρήστης %1$s αποδέχτηκε την πρόσκληση" + "Αποδέχτηκες την πρόσκληση" + "Προσκάλεσες τον χρήστη %1$s" + "Ο χρήστης %1$s σέ προσκάλεσε" + "Ο χρήστης %1$s συμμετέχει στο δωμάτιο" + "Μπήκες στο δωμάτιο" + "Ο χρήστης %1$s ζήτησε να συμμετάσχει" + "Ο χρήστης %1$s επέτρεψε στον χρήστη %2$s να συμμετάσχει" + "Επέστρεψες στον χρήστη%1$s να συμμετάσχει" + "Ζήτησες να συμμετάσχεις" + "Ο χρήστης %1$s απέρριψε το αίτημα του χρήστη %2$s να συμμετάσχει" + "Απορρίψατε το αίτημα συμμετοχής του χρήστη %1$s" + "Ο χρήστης %1$s απέρριψε το αίτημά σου για συμμετοχή" + "Ο χρήστης %1$s δεν ενδιαφέρεται πλέον να συμμετάσχει" + "Ακύρωσες το αίτημά σου για συμμετοχή" + "Ο χρήστης %1$s αποχώρησε από το δωμάτιο" + "Έφυγες από το δωμάτιο" + "Ο χρήστης %1$s άλλαξε το όνομα του δωματίου σε: %2$s" + "Άλλαξες το όνομα του δωματίου σε: %1$s" + "Ο χρήστης %1$s αφαίρεσε το όνομα του δωματίου" + "Αφαίρεσες το όνομα του δωματίου" + "Ο χρήστης %1$s δεν έκανε καμία αλλαγή" + "Δεν έκανες καμία αλλαγή" + "Ο χρήστης %1$s απέρριψε την πρόσκληση" + "Απέρριψες την πρόσκληση" + "Ο χρήστης %1$s αφαίρεσε τον χρήστη %2$s" + "Αφαίρεσες τον χρήστη %1$s" + "Ο χρήστης %1$s έστειλε πρόσκληση στον χρήστη %2$s για συμμετοχή στο δωμάτιο" + "Στείλατε μια πρόσκληση στον χρήστη %1$s για να γίνει μέλος στο δωμάτιο" + "Ο χρήστης %1$s ανακάλεσε την πρόσκληση συμμετοχής του χρήστη %2$s στο δωμάτιο" + "Ανακάλεσες την πρόσκληση για συμμετοχή του χρήστη %1$s στο δωμάτιο" + "Ο χρήστης %1$s άλλαξε το θέμα σε: %2$s" + "Άλλαξες το θέμα σε: %1$s" + "Ο χρήστης %1$s αφαίρεσε το θέμα του δωματίου" + "Αφαίρεσες το θέμα του δωματίου" + "Ο χρήστης %1$s έκανε άρση αποκλεισμού στον χρήστη %2$s" + "Έκανες άρση αποκλεισμού στον χρήστη %1$s" + diff --git a/libraries/eventformatter/impl/src/main/res/values-et/translations.xml b/libraries/eventformatter/impl/src/main/res/values-et/translations.xml index 28e5a56f34..715453fbef 100644 --- a/libraries/eventformatter/impl/src/main/res/values-et/translations.xml +++ b/libraries/eventformatter/impl/src/main/res/values-et/translations.xml @@ -30,7 +30,7 @@ "Sina liitusid jututoaga" "%1$s palus liitumist" "%1$s lubas kasutajal %2$s liituda" - "Sina lubasid kasutajal %1$s liituda" + "Sina lubasid kasutajal %1$s liituda!" "Sina palusid liitumist" "%1$s lükkas tagasi kasutaja %2$s liitumispalve" "Sina lükkasid tagasi kasutaja %1$s liitumispalve" diff --git a/libraries/eventformatter/impl/src/main/res/values-ru/translations.xml b/libraries/eventformatter/impl/src/main/res/values-ru/translations.xml index 186c594be2..a6a339bba6 100644 --- a/libraries/eventformatter/impl/src/main/res/values-ru/translations.xml +++ b/libraries/eventformatter/impl/src/main/res/values-ru/translations.xml @@ -2,7 +2,7 @@ "(изображение тоже было изменено)" "%1$s сменили свое изображение" - "Вы сменили изображение" + "Вы сменили изображение профиля" "%1$s был понижен в должности до участника" "%1$s был понижен в должности до модератора" "%1$s изменил свое отображаемое имя с %2$s на %3$s" diff --git a/libraries/eventformatter/impl/src/main/res/values-sv/translations.xml b/libraries/eventformatter/impl/src/main/res/values-sv/translations.xml index 8e913a4e28..014f21ee4a 100644 --- a/libraries/eventformatter/impl/src/main/res/values-sv/translations.xml +++ b/libraries/eventformatter/impl/src/main/res/values-sv/translations.xml @@ -3,12 +3,16 @@ "(avatar ändrades också)" "%1$s bytte sin avatar" "Du bytte din avatar" + "%1$s degraderades till medlem" + "%1$s degraderades till moderator" "%1$s bytte sitt visningsnamn från %2$s till %3$s" "Du bytte ditt visningsnamn från %1$s till %2$s" "%1$s tog bort sitt visningsnamn (det var %2$s)" "Du tog bort ditt visningsnamn (det var %1$s)" "%1$s satte sitt visningsnamn till %2$s" "Du satte ditt visningsnamn till %1$s" + "%1$s befordrades till admin" + "%1$s befordrades till moderator" "%1$s bytte rummets avatar" "Du bytte rummets avatar" "%1$s tog bort rummets avatar" diff --git a/libraries/eventformatter/impl/src/main/res/values-zh-rTW/translations.xml b/libraries/eventformatter/impl/src/main/res/values-zh-rTW/translations.xml index 376d6dcc3e..d9822bb0aa 100644 --- a/libraries/eventformatter/impl/src/main/res/values-zh-rTW/translations.xml +++ b/libraries/eventformatter/impl/src/main/res/values-zh-rTW/translations.xml @@ -1,39 +1,51 @@ + "%1$s 變更了他的大頭貼" + "您變更了自己的大頭貼" "%1$s 將他的顯示名稱從 %2$s 變更為 %3$s" "您將您的顯示名稱從 %1$s1 變更為 %2$s" "%1$s 的顯示名稱已被本人移除(原為 %2$s)" "您的顯示名稱已被您移除(原為 %1$s)" "%1$s 將他的顯示名稱設為 %2$s" "您將您的顯示名稱設為 %1$s" + "%1$s 將 %2$s 加入黑名單" + "您將 %1$s 加入黑名單" "%1$s 建立此聊天室" "您建立此聊天室" - "%1$s 邀請 %2$s" - "%1$s 接受邀請" - "您接受邀請" - "您邀請 %1$s" - "%1$s 邀請您" + "%1$s 已邀請 %2$s" + "%1$s 接受了邀請" + "您接受了邀請" + "您已邀請 %1$s" + "%1$s 已邀請您" "%1$s 加入聊天室" "您加入聊天室" "%1$s 請求加入" + "%1$s 允許 %2$s 加入" + "您允許 %1$s 加入" "您請求加入" - "%1$s 拒絕 %2$s 的加入請求" - "您拒絕 %1$s 的加入請求" - "%1$s 拒絕您的加入請求" + "%1$s 拒絕了 %2$s 的加入請求" + "您拒絕了 %1$s 的加入請求" + "%1$s 拒絕了您的加入請求" + "%1$s 不再有興趣加入" + "您取消了您的加入請求" "%1$s 離開聊天室" "您離開聊天室" "%1$s 將聊天室名稱變更為 %2$s" "您將聊天室名稱變更為 %1$s" "聊天室名稱已被 %1$s 移除" "聊天室名稱已被您移除" + "%1$s 拒絕了邀請" + "您拒絕了邀請" "%2$s 已被 %1$s 移除" "%1$s 已被您移除" - "%1$s 邀請 %2$s 加入聊天室" - "您邀請 %1$s 加入聊天室" - "%1$s 撤銷了 %2$s 加入房間的邀請" - "您撤銷了 %1$s 加入房間的邀請" + "%1$s 已邀請 %2$s 加入聊天室" + "您已邀請 %1$s 加入聊天室" + "%1$s 撤銷了對 %2$s 的聊天室邀請" + "您撤銷了對 %1$s 的聊天室邀請" "%1$s 將主題變更為 %2$s" "您將主題變更為 %1$s" "聊天室主題已被 %1$s 移除" "聊天室主題已被您移除" + "%1$s 將 %2$s 從黑名單中移除" + "您將 %1$s 從黑名單中移除" diff --git a/libraries/featureflag/api/build.gradle.kts b/libraries/featureflag/api/build.gradle.kts index 9420821932..4351dd521f 100644 --- a/libraries/featureflag/api/build.gradle.kts +++ b/libraries/featureflag/api/build.gradle.kts @@ -23,5 +23,7 @@ android { } dependencies { + implementation(projects.appconfig) + implementation(projects.libraries.core) implementation(libs.coroutines.core) } diff --git a/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/Feature.kt b/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/Feature.kt index ee98091953..8d220e13bf 100644 --- a/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/Feature.kt +++ b/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/Feature.kt @@ -16,6 +16,8 @@ package io.element.android.libraries.featureflag.api +import io.element.android.libraries.core.meta.BuildMeta + interface Feature { /** * Unique key to identify the feature. @@ -33,9 +35,9 @@ interface Feature { val description: String? /** - * The default value of the feature (enabled or disabled). + * Calculate the default value of the feature (enabled or disabled) given a [BuildMeta]. */ - val defaultValue: Boolean + val defaultValue: (BuildMeta) -> Boolean /** * Whether the feature is finished or not. diff --git a/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt b/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt index 4d0c50a533..17ea03f7a9 100644 --- a/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt +++ b/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt @@ -16,6 +16,10 @@ package io.element.android.libraries.featureflag.api +import io.element.android.appconfig.OnBoardingConfig +import io.element.android.libraries.core.meta.BuildMeta +import io.element.android.libraries.core.meta.BuildType + /** * To enable or disable a FeatureFlags, change the `defaultValue` value. * Warning: to enable a flag for the release app, you MUST update the file @@ -25,82 +29,88 @@ enum class FeatureFlags( override val key: String, override val title: String, override val description: String? = null, - override val defaultValue: Boolean, + override val defaultValue: (BuildMeta) -> Boolean, override val isFinished: Boolean, ) : Feature { LocationSharing( key = "feature.locationsharing", title = "Allow user to share location", - defaultValue = true, + defaultValue = { true }, isFinished = true, ), Polls( key = "feature.polls", title = "Polls", description = "Create poll and render poll events in the timeline", - defaultValue = true, + defaultValue = { true }, isFinished = true, ), NotificationSettings( key = "feature.notificationsettings", title = "Show notification settings", - defaultValue = true, + defaultValue = { true }, isFinished = true, ), VoiceMessages( key = "feature.voicemessages", title = "Voice messages", description = "Send and receive voice messages", - defaultValue = true, + defaultValue = { true }, isFinished = true, ), PinUnlock( key = "feature.pinunlock", title = "Pin unlock", description = "Allow user to lock/unlock the app with a pin code or biometrics", - defaultValue = true, + defaultValue = { true }, isFinished = true, ), Mentions( key = "feature.mentions", title = "Mentions", description = "Type `@` to get mention suggestions and insert them", - defaultValue = true, + defaultValue = { true }, isFinished = false, ), MarkAsUnread( key = "feature.markAsUnread", title = "Mark as unread", description = "Allow user to mark a room as unread", - defaultValue = true, + defaultValue = { true }, isFinished = false, ), RoomDirectorySearch( key = "feature.roomdirectorysearch", title = "Room directory search", description = "Allow user to search for public rooms in their homeserver", - defaultValue = false, + defaultValue = { false }, isFinished = false, ), ShowBlockedUsersDetails( key = "feature.showBlockedUsersDetails", title = "Show blocked users details", description = "Show the name and avatar of blocked users in the blocked users list", - defaultValue = false, + defaultValue = { false }, isFinished = false, ), QrCodeLogin( key = "feature.qrCodeLogin", title = "Enable login using QR code", description = "Allow the user to login using the QR code flow", - defaultValue = true, + defaultValue = { buildMeta -> + when (buildMeta.buildType) { + // TODO remove once the feature is ready to publish + BuildType.RELEASE -> false + else -> OnBoardingConfig.CAN_LOGIN_WITH_QR_CODE + } + }, isFinished = false, ), IncomingShare( key = "feature.incomingShare", title = "Incoming Share support", description = "Allow the application to receive data from other applications", - defaultValue = true, + defaultValue = { true }, isFinished = false, ), } diff --git a/libraries/featureflag/impl/build.gradle.kts b/libraries/featureflag/impl/build.gradle.kts index 76b6836eb3..bb4b249d26 100644 --- a/libraries/featureflag/impl/build.gradle.kts +++ b/libraries/featureflag/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -41,4 +40,5 @@ dependencies { testImplementation(libs.coroutines.test) testImplementation(libs.test.truth) testImplementation(libs.test.turbine) + testImplementation(projects.libraries.matrix.test) } diff --git a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/DefaultFeatureFlagService.kt b/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/DefaultFeatureFlagService.kt index 0a6b97e13d..b06f99e95e 100644 --- a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/DefaultFeatureFlagService.kt +++ b/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/DefaultFeatureFlagService.kt @@ -17,6 +17,7 @@ package io.element.android.libraries.featureflag.impl import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.libraries.core.meta.BuildMeta import io.element.android.libraries.di.AppScope import io.element.android.libraries.di.SingleIn import io.element.android.libraries.featureflag.api.Feature @@ -28,14 +29,15 @@ import javax.inject.Inject @ContributesBinding(AppScope::class) @SingleIn(AppScope::class) class DefaultFeatureFlagService @Inject constructor( - private val providers: Set<@JvmSuppressWildcards FeatureFlagProvider> + private val providers: Set<@JvmSuppressWildcards FeatureFlagProvider>, + private val buildMeta: BuildMeta, ) : FeatureFlagService { override fun isFeatureEnabledFlow(feature: Feature): Flow { return providers.filter { it.hasFeature(feature) } .sortedByDescending(FeatureFlagProvider::priority) .firstOrNull() ?.isFeatureEnabledFlow(feature) - ?: flowOf(feature.defaultValue) + ?: flowOf(feature.defaultValue(buildMeta)) } override suspend fun setFeatureEnabled(feature: Feature, enabled: Boolean): Boolean { diff --git a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/PreferencesFeatureFlagProvider.kt b/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/PreferencesFeatureFlagProvider.kt index 76344e078c..e5e1be63ec 100644 --- a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/PreferencesFeatureFlagProvider.kt +++ b/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/PreferencesFeatureFlagProvider.kt @@ -22,6 +22,7 @@ import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.preferencesDataStore +import io.element.android.libraries.core.meta.BuildMeta import io.element.android.libraries.di.ApplicationContext import io.element.android.libraries.featureflag.api.Feature import kotlinx.coroutines.flow.Flow @@ -34,7 +35,10 @@ private val Context.dataStore: DataStore by preferencesDataStore(na /** * Note: this will be used only in the nightly and in the debug build. */ -class PreferencesFeatureFlagProvider @Inject constructor(@ApplicationContext context: Context) : MutableFeatureFlagProvider { +class PreferencesFeatureFlagProvider @Inject constructor( + @ApplicationContext context: Context, + private val buildMeta: BuildMeta, +) : MutableFeatureFlagProvider { private val store = context.dataStore override val priority = MEDIUM_PRIORITY @@ -47,7 +51,7 @@ class PreferencesFeatureFlagProvider @Inject constructor(@ApplicationContext con override fun isFeatureEnabledFlow(feature: Feature): Flow { return store.data.map { prefs -> - prefs[booleanPreferencesKey(feature.key)] ?: feature.defaultValue + prefs[booleanPreferencesKey(feature.key)] ?: feature.defaultValue(buildMeta) }.distinctUntilChanged() } diff --git a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/StaticFeatureFlagProvider.kt b/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/StaticFeatureFlagProvider.kt deleted file mode 100644 index 7574144066..0000000000 --- a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/StaticFeatureFlagProvider.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.libraries.featureflag.impl - -import io.element.android.appconfig.OnBoardingConfig -import io.element.android.libraries.featureflag.api.Feature -import io.element.android.libraries.featureflag.api.FeatureFlags -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.flowOf -import javax.inject.Inject - -/** - * This provider is used for release build. - * This is the place to enable or disable feature for the release build. - */ -class StaticFeatureFlagProvider @Inject constructor() : - FeatureFlagProvider { - override val priority = LOW_PRIORITY - - override fun isFeatureEnabledFlow(feature: Feature): Flow { - val isFeatureEnabled = if (feature is FeatureFlags) { - when (feature) { - FeatureFlags.LocationSharing -> true - FeatureFlags.Polls -> true - FeatureFlags.NotificationSettings -> true - FeatureFlags.VoiceMessages -> true - FeatureFlags.PinUnlock -> true - FeatureFlags.Mentions -> true - FeatureFlags.MarkAsUnread -> true - FeatureFlags.RoomDirectorySearch -> false - FeatureFlags.ShowBlockedUsersDetails -> false - FeatureFlags.QrCodeLogin -> OnBoardingConfig.CAN_LOGIN_WITH_QR_CODE - FeatureFlags.IncomingShare -> true - } - } else { - false - } - return flowOf(isFeatureEnabled) - } - - override fun hasFeature(feature: Feature) = true -} diff --git a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/di/FeatureFlagModule.kt b/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/di/FeatureFlagModule.kt index 19d4b1336d..99755992af 100644 --- a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/di/FeatureFlagModule.kt +++ b/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/di/FeatureFlagModule.kt @@ -20,11 +20,9 @@ import com.squareup.anvil.annotations.ContributesTo import dagger.Module import dagger.Provides import dagger.multibindings.ElementsIntoSet -import io.element.android.libraries.core.meta.BuildType import io.element.android.libraries.di.AppScope import io.element.android.libraries.featureflag.impl.FeatureFlagProvider import io.element.android.libraries.featureflag.impl.PreferencesFeatureFlagProvider -import io.element.android.libraries.featureflag.impl.StaticFeatureFlagProvider @Module @ContributesTo(AppScope::class) @@ -33,20 +31,10 @@ object FeatureFlagModule { @Provides @ElementsIntoSet fun providesFeatureFlagProvider( - buildType: BuildType, mutableFeatureFlagProvider: PreferencesFeatureFlagProvider, - staticFeatureFlagProvider: StaticFeatureFlagProvider, ): Set { - val providers = HashSet() - when (buildType) { - BuildType.RELEASE -> { - providers.add(staticFeatureFlagProvider) - } - BuildType.NIGHTLY, - BuildType.DEBUG -> { - providers.add(mutableFeatureFlagProvider) - } + return buildSet { + add(mutableFeatureFlagProvider) } - return providers } } diff --git a/libraries/featureflag/impl/src/test/kotlin/io/element/android/libraries/featureflag/impl/DefaultFeatureFlagServiceTest.kt b/libraries/featureflag/impl/src/test/kotlin/io/element/android/libraries/featureflag/impl/DefaultFeatureFlagServiceTest.kt index 0fd503d6d4..df1feef14e 100644 --- a/libraries/featureflag/impl/src/test/kotlin/io/element/android/libraries/featureflag/impl/DefaultFeatureFlagServiceTest.kt +++ b/libraries/featureflag/impl/src/test/kotlin/io/element/android/libraries/featureflag/impl/DefaultFeatureFlagServiceTest.kt @@ -19,38 +19,42 @@ package io.element.android.libraries.featureflag.impl import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.libraries.featureflag.api.FeatureFlags +import io.element.android.libraries.matrix.test.core.aBuildMeta import kotlinx.coroutines.test.runTest import org.junit.Test class DefaultFeatureFlagServiceTest { @Test fun `given service without provider when feature is checked then it returns the default value`() = runTest { - val featureFlagService = DefaultFeatureFlagService(emptySet()) + val buildMeta = aBuildMeta() + val featureFlagService = DefaultFeatureFlagService(emptySet(), buildMeta) featureFlagService.isFeatureEnabledFlow(FeatureFlags.LocationSharing).test { - assertThat(awaitItem()).isEqualTo(FeatureFlags.LocationSharing.defaultValue) + assertThat(awaitItem()).isEqualTo(FeatureFlags.LocationSharing.defaultValue(buildMeta)) cancelAndIgnoreRemainingEvents() } } @Test fun `given service without provider when set enabled feature is called then it returns false`() = runTest { - val featureFlagService = DefaultFeatureFlagService(emptySet()) + val featureFlagService = DefaultFeatureFlagService(emptySet(), aBuildMeta()) val result = featureFlagService.setFeatureEnabled(FeatureFlags.LocationSharing, true) assertThat(result).isFalse() } @Test fun `given service with a runtime provider when set enabled feature is called then it returns true`() = runTest { - val featureFlagProvider = FakeMutableFeatureFlagProvider(0) - val featureFlagService = DefaultFeatureFlagService(setOf(featureFlagProvider)) + val buildMeta = aBuildMeta() + val featureFlagProvider = FakeMutableFeatureFlagProvider(0, buildMeta) + val featureFlagService = DefaultFeatureFlagService(setOf(featureFlagProvider), buildMeta) val result = featureFlagService.setFeatureEnabled(FeatureFlags.LocationSharing, true) assertThat(result).isTrue() } @Test fun `given service with a runtime provider and feature enabled when feature is checked then it returns the correct value`() = runTest { - val featureFlagProvider = FakeMutableFeatureFlagProvider(0) - val featureFlagService = DefaultFeatureFlagService(setOf(featureFlagProvider)) + val buildMeta = aBuildMeta() + val featureFlagProvider = FakeMutableFeatureFlagProvider(0, buildMeta) + val featureFlagService = DefaultFeatureFlagService(setOf(featureFlagProvider), buildMeta) featureFlagService.setFeatureEnabled(FeatureFlags.LocationSharing, true) featureFlagService.isFeatureEnabledFlow(FeatureFlags.LocationSharing).test { assertThat(awaitItem()).isTrue() @@ -61,9 +65,10 @@ class DefaultFeatureFlagServiceTest { @Test fun `given service with 2 runtime providers when feature is checked then it uses the priority correctly`() = runTest { - val lowPriorityFeatureFlagProvider = FakeMutableFeatureFlagProvider(LOW_PRIORITY) - val highPriorityFeatureFlagProvider = FakeMutableFeatureFlagProvider(HIGH_PRIORITY) - val featureFlagService = DefaultFeatureFlagService(setOf(lowPriorityFeatureFlagProvider, highPriorityFeatureFlagProvider)) + val buildMeta = aBuildMeta() + val lowPriorityFeatureFlagProvider = FakeMutableFeatureFlagProvider(LOW_PRIORITY, buildMeta) + val highPriorityFeatureFlagProvider = FakeMutableFeatureFlagProvider(HIGH_PRIORITY, buildMeta) + val featureFlagService = DefaultFeatureFlagService(setOf(lowPriorityFeatureFlagProvider, highPriorityFeatureFlagProvider), buildMeta) lowPriorityFeatureFlagProvider.setFeatureEnabled(FeatureFlags.LocationSharing, false) highPriorityFeatureFlagProvider.setFeatureEnabled(FeatureFlags.LocationSharing, true) featureFlagService.isFeatureEnabledFlow(FeatureFlags.LocationSharing).test { diff --git a/libraries/featureflag/impl/src/test/kotlin/io/element/android/libraries/featureflag/impl/FakeMutableFeatureFlagProvider.kt b/libraries/featureflag/impl/src/test/kotlin/io/element/android/libraries/featureflag/impl/FakeMutableFeatureFlagProvider.kt index 315624d474..583fb081e3 100644 --- a/libraries/featureflag/impl/src/test/kotlin/io/element/android/libraries/featureflag/impl/FakeMutableFeatureFlagProvider.kt +++ b/libraries/featureflag/impl/src/test/kotlin/io/element/android/libraries/featureflag/impl/FakeMutableFeatureFlagProvider.kt @@ -16,11 +16,15 @@ package io.element.android.libraries.featureflag.impl +import io.element.android.libraries.core.meta.BuildMeta import io.element.android.libraries.featureflag.api.Feature import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow -class FakeMutableFeatureFlagProvider(override val priority: Int) : MutableFeatureFlagProvider { +class FakeMutableFeatureFlagProvider( + override val priority: Int, + private val buildMeta: BuildMeta, +) : MutableFeatureFlagProvider { private val enabledFeatures = mutableMapOf>() override suspend fun setFeatureEnabled(feature: Feature, enabled: Boolean) { @@ -29,7 +33,7 @@ class FakeMutableFeatureFlagProvider(override val priority: Int) : MutableFeatur } override fun isFeatureEnabledFlow(feature: Feature): Flow { - return enabledFeatures.getOrPut(feature.key) { MutableStateFlow(feature.defaultValue) } + return enabledFeatures.getOrPut(feature.key) { MutableStateFlow(feature.defaultValue(buildMeta)) } } override fun hasFeature(feature: Feature): Boolean = true diff --git a/libraries/featureflag/test/build.gradle.kts b/libraries/featureflag/test/build.gradle.kts index 3c3b199ce6..bb18234ea0 100644 --- a/libraries/featureflag/test/build.gradle.kts +++ b/libraries/featureflag/test/build.gradle.kts @@ -23,6 +23,8 @@ android { dependencies { api(projects.libraries.featureflag.api) + implementation(projects.libraries.core) + implementation(projects.libraries.matrix.test) implementation(libs.coroutines.core) } } diff --git a/libraries/featureflag/test/src/main/java/io/element/android/libraries/featureflag/test/FakeFeatureFlagService.kt b/libraries/featureflag/test/src/main/java/io/element/android/libraries/featureflag/test/FakeFeatureFlagService.kt index 1cdde03286..c5104d054b 100644 --- a/libraries/featureflag/test/src/main/java/io/element/android/libraries/featureflag/test/FakeFeatureFlagService.kt +++ b/libraries/featureflag/test/src/main/java/io/element/android/libraries/featureflag/test/FakeFeatureFlagService.kt @@ -16,19 +16,19 @@ package io.element.android.libraries.featureflag.test +import io.element.android.libraries.core.meta.BuildMeta import io.element.android.libraries.featureflag.api.Feature import io.element.android.libraries.featureflag.api.FeatureFlagService +import io.element.android.libraries.matrix.test.core.aBuildMeta import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow class FakeFeatureFlagService( - initialState: Map = emptyMap() + initialState: Map = emptyMap(), + private val buildMeta: BuildMeta = aBuildMeta(), ) : FeatureFlagService { private val enabledFeatures = initialState - .map { - it.key to MutableStateFlow(it.value) - } - .toMap() + .mapValues { MutableStateFlow(it.value) } .toMutableMap() override suspend fun setFeatureEnabled(feature: Feature, enabled: Boolean): Boolean { @@ -38,6 +38,6 @@ class FakeFeatureFlagService( } override fun isFeatureEnabledFlow(feature: Feature): Flow { - return enabledFeatures.getOrPut(feature.key) { MutableStateFlow(feature.defaultValue) } + return enabledFeatures.getOrPut(feature.key) { MutableStateFlow(feature.defaultValue(buildMeta)) } } } diff --git a/libraries/featureflag/ui/build.gradle.kts b/libraries/featureflag/ui/build.gradle.kts index 1d5aac6c57..aabf560d61 100644 --- a/libraries/featureflag/ui/build.gradle.kts +++ b/libraries/featureflag/ui/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -33,5 +32,4 @@ dependencies { implementation(projects.anvilannotations) anvil(projects.anvilcodegen) implementation(projects.libraries.designsystem) - ksp(libs.showkase.processor) } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/MatrixClient.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/MatrixClient.kt index 4dd00984f1..b3b47d4499 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/MatrixClient.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/MatrixClient.kt @@ -121,4 +121,15 @@ interface MatrixClient : Closeable { * This flow will emit a new value whenever the send queue is disabled for a room. */ fun sendQueueDisabledFlow(): Flow + + /** + * Return the server name part of the current user ID, using the SDK, and if a failure occurs, + * compute it manually. + */ + fun userIdServerName(): String + + /** + * Execute generic GET requests through the SDKs internal HTTP client. + */ + suspend fun getUrl(url: String): Result } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/AuthenticationException.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/AuthenticationException.kt index 9620dc6d7f..559a548757 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/AuthenticationException.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/AuthenticationException.kt @@ -17,10 +17,7 @@ package io.element.android.libraries.matrix.api.auth sealed class AuthenticationException(message: String) : Exception(message) { - class ClientMissing(message: String) : AuthenticationException(message) class InvalidServerName(message: String) : AuthenticationException(message) class SlidingSyncNotAvailable(message: String) : AuthenticationException(message) - class SessionMissing(message: String) : AuthenticationException(message) class Generic(message: String) : AuthenticationException(message) - data class OidcError(val type: String, override val message: String) : AuthenticationException(message) } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/call/ElementCallBaseUrlProvider.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/call/ElementCallBaseUrlProvider.kt new file mode 100644 index 0000000000..94c9cb3489 --- /dev/null +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/call/ElementCallBaseUrlProvider.kt @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.api.call + +import io.element.android.libraries.matrix.api.MatrixClient + +interface ElementCallBaseUrlProvider { + suspend fun provides(matrixClient: MatrixClient): String? +} diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/core/MatrixPatterns.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/core/MatrixPatterns.kt index fecac81633..ac77e58986 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/core/MatrixPatterns.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/core/MatrixPatterns.kt @@ -16,9 +16,6 @@ package io.element.android.libraries.matrix.api.core -import io.element.android.libraries.androidutils.metadata.isInDebug -import timber.log.Timber - /** * This class contains pattern to match the different Matrix ids * Ref: https://matrix.org/docs/spec/appendices#identifier-grammar @@ -31,7 +28,7 @@ object MatrixPatterns { // See https://matrix.org/docs/spec/appendices#historical-user-ids // Sadly, we need to relax the regex pattern a bit as there already exist some ids that don't match the spec. private const val MATRIX_USER_IDENTIFIER_REGEX = "^@.*?$DOMAIN_REGEX$" - val PATTERN_CONTAIN_MATRIX_USER_IDENTIFIER = MATRIX_USER_IDENTIFIER_REGEX.toRegex(RegexOption.IGNORE_CASE) + private val PATTERN_CONTAIN_MATRIX_USER_IDENTIFIER = MATRIX_USER_IDENTIFIER_REGEX.toRegex(RegexOption.IGNORE_CASE) // regex pattern to find room ids in a string. private const val MATRIX_ROOM_IDENTIFIER_REGEX = "![A-Z0-9.-]+$DOMAIN_REGEX" @@ -54,52 +51,6 @@ object MatrixPatterns { private const val MATRIX_EVENT_IDENTIFIER_V4_REGEX = "\\$[A-Z0-9\\-_]+" private val PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER_V4 = MATRIX_EVENT_IDENTIFIER_V4_REGEX.toRegex(RegexOption.IGNORE_CASE) - // regex pattern to find group ids in a string. - private const val MATRIX_GROUP_IDENTIFIER_REGEX = "\\+[A-Z0-9=_\\-./]+$DOMAIN_REGEX" - private val PATTERN_CONTAIN_MATRIX_GROUP_IDENTIFIER = MATRIX_GROUP_IDENTIFIER_REGEX.toRegex(RegexOption.IGNORE_CASE) - - // regex pattern to find permalink with message id. - // Android does not support in URL so extract it. - private const val PERMALINK_BASE_REGEX = "https://matrix\\.to/#/" - private const val APP_BASE_REGEX = "https://[A-Z0-9.-]+\\.[A-Z]{2,}/[A-Z]{3,}/#/room/" - const val SEP_REGEX = "/" - - private const val LINK_TO_ROOM_ID_REGEXP = PERMALINK_BASE_REGEX + MATRIX_ROOM_IDENTIFIER_REGEX + SEP_REGEX + MATRIX_EVENT_IDENTIFIER_REGEX - private val PATTERN_CONTAIN_MATRIX_TO_PERMALINK_ROOM_ID = LINK_TO_ROOM_ID_REGEXP.toRegex(RegexOption.IGNORE_CASE) - - private const val LINK_TO_ROOM_ALIAS_REGEXP = PERMALINK_BASE_REGEX + MATRIX_ROOM_ALIAS_REGEX + SEP_REGEX + MATRIX_EVENT_IDENTIFIER_REGEX - private val PATTERN_CONTAIN_MATRIX_TO_PERMALINK_ROOM_ALIAS = LINK_TO_ROOM_ALIAS_REGEXP.toRegex(RegexOption.IGNORE_CASE) - - private const val LINK_TO_APP_ROOM_ID_REGEXP = APP_BASE_REGEX + MATRIX_ROOM_IDENTIFIER_REGEX + SEP_REGEX + MATRIX_EVENT_IDENTIFIER_REGEX - private val PATTERN_CONTAIN_APP_LINK_PERMALINK_ROOM_ID = LINK_TO_APP_ROOM_ID_REGEXP.toRegex(RegexOption.IGNORE_CASE) - - private const val LINK_TO_APP_ROOM_ALIAS_REGEXP = APP_BASE_REGEX + MATRIX_ROOM_ALIAS_REGEX + SEP_REGEX + MATRIX_EVENT_IDENTIFIER_REGEX - private val PATTERN_CONTAIN_APP_LINK_PERMALINK_ROOM_ALIAS = LINK_TO_APP_ROOM_ALIAS_REGEXP.toRegex(RegexOption.IGNORE_CASE) - - // ascii characters in the range \x20 (space) to \x7E (~) - val ORDER_STRING_REGEX = "[ -~]+".toRegex() - - // list of patterns to find some matrix item. - val MATRIX_PATTERNS = listOf( - PATTERN_CONTAIN_MATRIX_TO_PERMALINK_ROOM_ID, - PATTERN_CONTAIN_MATRIX_TO_PERMALINK_ROOM_ALIAS, - PATTERN_CONTAIN_APP_LINK_PERMALINK_ROOM_ID, - PATTERN_CONTAIN_APP_LINK_PERMALINK_ROOM_ALIAS, - PATTERN_CONTAIN_MATRIX_USER_IDENTIFIER, - PATTERN_CONTAIN_MATRIX_ALIAS, - PATTERN_CONTAIN_MATRIX_ROOM_IDENTIFIER, - PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER, - PATTERN_CONTAIN_MATRIX_GROUP_IDENTIFIER - ) - - /** - * Tells if a string is a valid session Id. This is an alias for [isUserId] - * - * @param str the string to test - * @return true if the string is a valid session id - */ - fun isSessionId(str: String?) = isUserId(str) - /** * Tells if a string is a valid user Id. * @@ -158,69 +109,4 @@ object MatrixPatterns { * @return true if the string is a valid thread id. */ fun isThreadId(str: String?) = isEventId(str) - - /** - * Tells if a string is a valid group id. - * - * @param str the string to test - * @return true if the string is a valid group id. - */ - fun isGroupId(str: String?): Boolean { - return str != null && str matches PATTERN_CONTAIN_MATRIX_GROUP_IDENTIFIER - } - - /** - * Extract server name from a matrix id. - * - * @param matrixId - * @return null if not found or if matrixId is null - */ - fun extractServerNameFromId(matrixId: String?): String? { - return matrixId?.substringAfter(":", missingDelimiterValue = "")?.takeIf { it.isNotEmpty() } - } - - /** - * Extract user name from a matrix id. - * - * @param matrixId - * @return null if the input is not a valid matrixId - */ - fun extractUserNameFromId(matrixId: String): String? { - return if (isUserId(matrixId)) { - matrixId.removePrefix("@").substringBefore(":", missingDelimiterValue = "") - } else { - null - } - } - - /** - * Orders which are not strings, or do not consist solely of ascii characters in the range \x20 (space) to \x7E (~), - * or consist of more than 50 characters, are forbidden and the field should be ignored if received. - */ - fun isValidOrderString(order: String?): Boolean { - return order != null && order.length < 50 && order matches ORDER_STRING_REGEX - } - - /* - fun candidateAliasFromRoomName(roomName: String, domain: String): String { - return roomName.lowercase() - .replaceSpaceChars(replacement = "_") - .removeInvalidRoomNameChars() - .take(MatrixConstants.maxAliasLocalPartLength(domain)) - } - */ - - /** - * Return the domain form a userId. - * Examples: - * - "@alice:domain.org".getDomain() will return "domain.org" - * - "@bob:domain.org:3455".getDomain() will return "domain.org:3455" - */ - fun String.getServerName(): String { - if (isInDebug && !isUserId(this)) { - // They are some invalid userId localpart in the wild, but the domain part should be there anyway - Timber.w("Not a valid user ID: $this") - } - return substringAfter(":") - } } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt index 4cfc303974..44a611a43e 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt @@ -29,6 +29,7 @@ import io.element.android.libraries.matrix.api.media.ImageInfo import io.element.android.libraries.matrix.api.media.MediaUploadHandler import io.element.android.libraries.matrix.api.media.VideoInfo import io.element.android.libraries.matrix.api.poll.PollKind +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft import io.element.android.libraries.matrix.api.room.location.AssetType import io.element.android.libraries.matrix.api.room.powerlevels.MatrixRoomPowerLevels import io.element.android.libraries.matrix.api.room.powerlevels.UserRoleChange @@ -307,8 +308,8 @@ interface MatrixRoom : Closeable { suspend fun generateWidgetWebViewUrl( widgetSettings: MatrixWidgetSettings, clientId: String, - languageTag: String? = null, - theme: String? = null, + languageTag: String?, + theme: String?, ): Result /** @@ -337,5 +338,20 @@ interface MatrixRoom : Closeable { suspend fun setSendQueueEnabled(enabled: Boolean) + /** + * Store the given `ComposerDraft` in the state store of this room. + */ + suspend fun saveComposerDraft(composerDraft: ComposerDraft): Result + + /** + * Retrieve the `ComposerDraft` stored in the state store for this room. + */ + suspend fun loadComposerDraft(): Result + + /** + * Clear the `ComposerDraft` stored in the state store for this room. + */ + suspend fun clearComposerDraft(): Result + override fun close() = destroy() } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoomInfo.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoomInfo.kt index 4fae22ad57..70da8e7364 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoomInfo.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoomInfo.kt @@ -20,6 +20,7 @@ import androidx.compose.runtime.Immutable import io.element.android.libraries.matrix.api.core.RoomAlias import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.user.MatrixUser import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableMap @@ -49,5 +50,6 @@ data class MatrixRoomInfo( val notificationCount: Long, val userDefinedNotificationMode: RoomNotificationMode?, val hasRoomCall: Boolean, - val activeRoomCallParticipants: ImmutableList + val activeRoomCallParticipants: ImmutableList, + val heroes: ImmutableList, ) diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoomMembersState.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoomMembersState.kt index 13f19fe0e0..d41336b369 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoomMembersState.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoomMembersState.kt @@ -39,3 +39,7 @@ fun MatrixRoomMembersState.roomMembers(): List? { fun MatrixRoomMembersState.joinedRoomMembers(): List { return roomMembers().orEmpty().filter { it.membership == RoomMembershipState.JOIN } } + +fun MatrixRoomMembersState.activeRoomMembers(): List { + return roomMembers().orEmpty().filter { it.membership.isActive() } +} diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/draft/ComposerDraft.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/draft/ComposerDraft.kt new file mode 100644 index 0000000000..661764fc9a --- /dev/null +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/draft/ComposerDraft.kt @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.api.room.draft + +/** + * A draft of a message composed by the user. + * @param plainText The draft content in plain text. + * @param htmlText If the message is formatted in HTML, the HTML representation of the message. + * @param draftType The type of draft. + */ +data class ComposerDraft( + val plainText: String, + val htmlText: String?, + val draftType: ComposerDraftType +) diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/draft/ComposerDraftType.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/draft/ComposerDraftType.kt new file mode 100644 index 0000000000..7ce059a98b --- /dev/null +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/draft/ComposerDraftType.kt @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.api.room.draft + +import io.element.android.libraries.matrix.api.core.EventId + +sealed interface ComposerDraftType { + data object NewMessage : ComposerDraftType + data class Reply(val eventId: EventId) : ComposerDraftType + data class Edit(val eventId: EventId) : ComposerDraftType +} diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/powerlevels/MatrixRoomMembersWithRole.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/powerlevels/MatrixRoomMembersWithRole.kt index 2c17718ccf..bbfa928643 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/powerlevels/MatrixRoomMembersWithRole.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/powerlevels/MatrixRoomMembersWithRole.kt @@ -18,7 +18,7 @@ package io.element.android.libraries.matrix.api.room.powerlevels import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.room.RoomMember -import io.element.android.libraries.matrix.api.room.joinedRoomMembers +import io.element.android.libraries.matrix.api.room.activeRoomMembers import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.toPersistentList import kotlinx.coroutines.flow.Flow @@ -27,14 +27,13 @@ import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.map /** - * Return a flow of the list of room members who are still in the room (with membership == RoomMembershipState.JOIN) - * and who have the given role. + * Return a flow of the list of active room members who have the given role. */ fun MatrixRoom.usersWithRole(role: RoomMember.Role): Flow> { return roomInfoFlow .map { it.userPowerLevels.filter { (_, powerLevel) -> RoomMember.Role.forPowerLevel(powerLevel) == role } } .combine(membersStateFlow) { powerLevels, membersState -> - membersState.joinedRoomMembers() + membersState.activeRoomMembers() .filter { powerLevels.containsKey(it.userId) } .toPersistentList() } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/roomlist/RoomSummary.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/roomlist/RoomSummary.kt index 425da8d3ca..1e38b00b61 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/roomlist/RoomSummary.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/roomlist/RoomSummary.kt @@ -22,6 +22,7 @@ import io.element.android.libraries.matrix.api.room.CurrentUserMembership import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.api.room.message.RoomMessage +import io.element.android.libraries.matrix.api.user.MatrixUser sealed interface RoomSummary { data class Empty(val identifier: String) : RoomSummary @@ -52,6 +53,7 @@ data class RoomSummaryDetails( val isDm: Boolean, val isFavorite: Boolean, val currentUserMembership: CurrentUserMembership, + val heroes: List, ) { val lastMessageTimestamp = lastMessage?.originServerTs } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/server/UserServerResolver.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/server/UserServerResolver.kt new file mode 100644 index 0000000000..1de60a98e3 --- /dev/null +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/server/UserServerResolver.kt @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.api.server + +interface UserServerResolver { + fun resolve(): String +} diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/Timeline.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/Timeline.kt index ee745ea59d..3d8defa252 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/Timeline.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/Timeline.kt @@ -28,6 +28,7 @@ import io.element.android.libraries.matrix.api.media.VideoInfo import io.element.android.libraries.matrix.api.poll.PollKind import io.element.android.libraries.matrix.api.room.Mention import io.element.android.libraries.matrix.api.room.location.AssetType +import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow import java.io.File @@ -55,8 +56,6 @@ interface Timeline : AutoCloseable { suspend fun editMessage(originalEventId: EventId?, transactionId: TransactionId?, body: String, htmlBody: String?, mentions: List): Result - suspend fun enterSpecialMode(eventId: EventId?): Result - suspend fun replyMessage( eventId: EventId, body: String, @@ -168,4 +167,6 @@ interface Timeline : AutoCloseable { waveform: List, progressCallback: ProgressCallback? ): Result + + suspend fun loadReplyDetails(eventId: EventId): InReplyTo } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/item/event/LocalEventSendState.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/item/event/LocalEventSendState.kt index e68ca3fedb..b956e51168 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/item/event/LocalEventSendState.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/item/event/LocalEventSendState.kt @@ -22,11 +22,10 @@ import io.element.android.libraries.matrix.api.core.EventId @Immutable sealed interface LocalEventSendState { data object NotSentYet : LocalEventSendState - - data class SendingFailed( - val error: String - ) : LocalEventSendState - + sealed class SendingFailed(open val error: String) : LocalEventSendState { + data class Recoverable(override val error: String) : SendingFailed(error) + data class Unrecoverable(override val error: String) : SendingFailed(error) + } data class Sent( val eventId: EventId ) : LocalEventSendState diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt index ebb871541d..c8574a7934 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt @@ -280,6 +280,23 @@ class RustMatrixClient( } } + override fun userIdServerName(): String { + return runCatching { + client.userIdServerName() + } + .onFailure { + Timber.w(it, "Failed to get userIdServerName") + } + .getOrNull() + ?: sessionId.value.substringAfter(":") + } + + override suspend fun getUrl(url: String): Result = withContext(sessionDispatcher) { + runCatching { + client.getUrl(url) + } + } + override suspend fun getRoom(roomId: RoomId): MatrixRoom? { return roomFactory.create(roomId) } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt index 4b3d89baac..03d8680e4e 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt @@ -46,11 +46,9 @@ class RustMatrixClientFactory @Inject constructor( private val utdTracker: UtdTracker, ) { suspend fun create(sessionData: SessionData): RustMatrixClient = withContext(coroutineDispatchers.io) { - val client = getBaseClientBuilder(sessionData.sessionPath) + val client = getBaseClientBuilder(sessionData.sessionPath, sessionData.passphrase) .homeserverUrl(sessionData.homeserverUrl) .username(sessionData.userId) - .passphrase(sessionData.passphrase) - // FIXME Quick and dirty fix for stopping version requests on startup https://github.com/matrix-org/matrix-rust-sdk/pull/1376 .use { it.build() } client.restoreSession(sessionData.toSession()) @@ -71,21 +69,24 @@ class RustMatrixClientFactory @Inject constructor( ) } - internal fun getBaseClientBuilder(sessionPath: String): ClientBuilder { + internal fun getBaseClientBuilder( + sessionPath: String, + passphrase: String?, + slidingSyncProxy: String? = null, + ): ClientBuilder { return ClientBuilder() .sessionPath(sessionPath) + .passphrase(passphrase) + .slidingSyncProxy(slidingSyncProxy) .userAgent(userAgentProvider.provide()) .addRootCertificates(userCertificatesProvider.provides()) + .autoEnableBackups(true) + .autoEnableCrossSigning(true) + // FIXME Quick and dirty fix for stopping version requests on startup https://github.com/matrix-org/matrix-rust-sdk/pull/1376 .serverVersions(listOf("v1.0", "v1.1", "v1.2", "v1.3", "v1.4", "v1.5")) - .let { - // Sadly ClientBuilder.proxy() does not accept null :/ - // Tracked by https://github.com/matrix-org/matrix-rust-sdk/issues/3159 - val proxy = proxyProvider.provides() - if (proxy != null) { - it.proxy(proxy) - } else { - it - } + .run { + // Workaround for non-nullable proxy parameter in the SDK, since each call to the ClientBuilder returns a new reference we need to keep + proxyProvider.provides()?.let { proxy(it) } ?: this } } } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/AuthenticationException.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/AuthenticationException.kt index 423fe925dc..9e2f5b0b5b 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/AuthenticationException.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/AuthenticationException.kt @@ -17,22 +17,14 @@ package io.element.android.libraries.matrix.impl.auth import io.element.android.libraries.matrix.api.auth.AuthenticationException -import org.matrix.rustcomponents.sdk.AuthenticationException as RustAuthenticationException +import org.matrix.rustcomponents.sdk.ClientBuildException as RustAuthenticationException fun Throwable.mapAuthenticationException(): AuthenticationException { val message = this.message ?: "Unknown error" return when (this) { - is RustAuthenticationException.ClientMissing -> AuthenticationException.ClientMissing(message) is RustAuthenticationException.Generic -> AuthenticationException.Generic(message) is RustAuthenticationException.InvalidServerName -> AuthenticationException.InvalidServerName(message) - is RustAuthenticationException.SessionMissing -> AuthenticationException.SessionMissing(message) is RustAuthenticationException.SlidingSyncNotAvailable -> AuthenticationException.SlidingSyncNotAvailable(message) - is RustAuthenticationException.OidcException -> AuthenticationException.OidcError("OidcException", message) - is RustAuthenticationException.OidcMetadataInvalid -> AuthenticationException.OidcError("OidcMetadataInvalid", message) - is RustAuthenticationException.OidcMetadataMissing -> AuthenticationException.OidcError("OidcMetadataMissing", message) - is RustAuthenticationException.OidcNotSupported -> AuthenticationException.OidcError("OidcNotSupported", message) - is RustAuthenticationException.OidcCancelled -> AuthenticationException.OidcError("OidcCancelled", message) - is RustAuthenticationException.OidcCallbackUrlInvalid -> AuthenticationException.OidcError("OidcCallbackUrlInvalid", message) else -> AuthenticationException.Generic(message) } } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationService.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationService.kt index bb65a5a442..8c0546fa8b 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationService.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationService.kt @@ -17,6 +17,7 @@ package io.element.android.libraries.matrix.impl.auth import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.appconfig.AuthenticationConfig import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.core.extensions.mapFailure import io.element.android.libraries.di.AppScope @@ -32,12 +33,9 @@ import io.element.android.libraries.matrix.impl.RustMatrixClientFactory import io.element.android.libraries.matrix.impl.auth.qrlogin.QrErrorMapper import io.element.android.libraries.matrix.impl.auth.qrlogin.SdkQrCodeLoginData import io.element.android.libraries.matrix.impl.auth.qrlogin.toStep -import io.element.android.libraries.matrix.impl.certificates.UserCertificatesProvider import io.element.android.libraries.matrix.impl.exception.mapClientException import io.element.android.libraries.matrix.impl.keys.PassphraseGenerator import io.element.android.libraries.matrix.impl.mapper.toSessionData -import io.element.android.libraries.matrix.impl.proxy.ProxyProvider -import io.element.android.libraries.network.useragent.UserAgentProvider import io.element.android.libraries.sessionstorage.api.LoggedInState import io.element.android.libraries.sessionstorage.api.LoginType import io.element.android.libraries.sessionstorage.api.SessionStore @@ -46,17 +44,17 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.withContext +import org.matrix.rustcomponents.sdk.Client import org.matrix.rustcomponents.sdk.HumanQrLoginException -import org.matrix.rustcomponents.sdk.OidcAuthenticationData import org.matrix.rustcomponents.sdk.QrCodeDecodeException import org.matrix.rustcomponents.sdk.QrLoginProgress import org.matrix.rustcomponents.sdk.QrLoginProgressListener import org.matrix.rustcomponents.sdk.use import timber.log.Timber +import uniffi.matrix_sdk.OidcAuthorizationData import java.io.File import java.util.UUID import javax.inject.Inject -import org.matrix.rustcomponents.sdk.AuthenticationService as RustAuthenticationService @ContributesBinding(AppScope::class) @SingleIn(AppScope::class) @@ -64,28 +62,15 @@ class RustMatrixAuthenticationService @Inject constructor( baseDirectory: File, private val coroutineDispatchers: CoroutineDispatchers, private val sessionStore: SessionStore, - userAgentProvider: UserAgentProvider, private val rustMatrixClientFactory: RustMatrixClientFactory, private val passphraseGenerator: PassphraseGenerator, - userCertificatesProvider: UserCertificatesProvider, - proxyProvider: ProxyProvider, private val oidcConfigurationProvider: OidcConfigurationProvider, ) : MatrixAuthenticationService { // Passphrase which will be used for new sessions. Existing sessions will use the passphrase // stored in the SessionData. private val pendingPassphrase = getDatabasePassphrase() private val sessionPath = File(baseDirectory, UUID.randomUUID().toString()).absolutePath - private val authService: RustAuthenticationService = RustAuthenticationService( - sessionPath = sessionPath, - passphrase = pendingPassphrase, - proxy = proxyProvider.provides(), - userAgent = userAgentProvider.provide(), - additionalRootCertificates = userCertificatesProvider.provides(), - oidcConfiguration = oidcConfigurationProvider.get(), - customSlidingSyncProxy = null, - sessionDelegate = null, - crossProcessRefreshLockId = null, - ) + private var currentClient: Client? = null private var currentHomeserver = MutableStateFlow(null) override fun loggedInStateFlow(): Flow { @@ -132,11 +117,14 @@ class RustMatrixAuthenticationService @Inject constructor( override suspend fun setHomeserver(homeserver: String): Result = withContext(coroutineDispatchers.io) { runCatching { - authService.configureHomeserver(homeserver) - val homeServerDetails = authService.homeserverDetails()?.map() - if (homeServerDetails != null) { - currentHomeserver.value = homeServerDetails.copy(url = homeserver) - } + val client = getBaseClientBuilder() + .serverNameOrHomeserverUrl(homeserver) + .build() + currentClient = client + val homeServerDetails = client.homeserverLoginDetails().map() + currentHomeserver.value = homeServerDetails.copy(url = homeserver) + }.onFailure { + clear() }.mapFailure { failure -> failure.mapAuthenticationException() } @@ -145,15 +133,16 @@ class RustMatrixAuthenticationService @Inject constructor( override suspend fun login(username: String, password: String): Result = withContext(coroutineDispatchers.io) { runCatching { - val client = authService.login(username, password, "Element X Android", null) - val sessionData = client.use { - it.session().toSessionData( + val client = currentClient ?: error("You need to call `setHomeserver()` first") + client.login(username, password, "Element X Android", null) + val sessionData = client.session() + .toSessionData( isTokenValid = true, loginType = LoginType.PASSWORD, passphrase = pendingPassphrase, sessionPath = sessionPath, ) - } + clear() sessionStore.storeData(sessionData) SessionId(sessionData.userId) }.mapFailure { failure -> @@ -161,14 +150,15 @@ class RustMatrixAuthenticationService @Inject constructor( } } - private var pendingOidcAuthenticationData: OidcAuthenticationData? = null + private var pendingOidcAuthorizationData: OidcAuthorizationData? = null override suspend fun getOidcUrl(): Result { return withContext(coroutineDispatchers.io) { runCatching { - val oidcAuthenticationData = authService.urlForOidcLogin() + val client = currentClient ?: error("You need to call `setHomeserver()` first") + val oidcAuthenticationData = client.urlForOidcLogin(oidcConfigurationProvider.get()) val url = oidcAuthenticationData.loginUrl() - pendingOidcAuthenticationData = oidcAuthenticationData + pendingOidcAuthorizationData = oidcAuthenticationData OidcDetails(url) }.mapFailure { failure -> failure.mapAuthenticationException() @@ -179,8 +169,8 @@ class RustMatrixAuthenticationService @Inject constructor( override suspend fun cancelOidcLogin(): Result { return withContext(coroutineDispatchers.io) { runCatching { - pendingOidcAuthenticationData?.close() - pendingOidcAuthenticationData = null + pendingOidcAuthorizationData?.close() + pendingOidcAuthorizationData = null }.mapFailure { failure -> failure.mapAuthenticationException() } @@ -193,18 +183,18 @@ class RustMatrixAuthenticationService @Inject constructor( override suspend fun loginWithOidc(callbackUrl: String): Result { return withContext(coroutineDispatchers.io) { runCatching { - val urlForOidcLogin = pendingOidcAuthenticationData ?: error("You need to call `getOidcUrl()` first") - val client = authService.loginWithOidcCallback(urlForOidcLogin, callbackUrl) - val sessionData = client.use { - it.session().toSessionData( - isTokenValid = true, - loginType = LoginType.OIDC, - passphrase = pendingPassphrase, - sessionPath = sessionPath, - ) - } - pendingOidcAuthenticationData?.close() - pendingOidcAuthenticationData = null + val client = currentClient ?: error("You need to call `setHomeserver()` first") + val urlForOidcLogin = pendingOidcAuthorizationData ?: error("You need to call `getOidcUrl()` first") + client.loginWithOidcCallback(urlForOidcLogin, callbackUrl) + val sessionData = client.session().toSessionData( + isTokenValid = true, + loginType = LoginType.OIDC, + passphrase = pendingPassphrase, + sessionPath = sessionPath, + ) + clear() + pendingOidcAuthorizationData?.close() + pendingOidcAuthorizationData = null sessionStore.storeData(sessionData) SessionId(sessionData.userId) }.mapFailure { failure -> @@ -216,8 +206,11 @@ class RustMatrixAuthenticationService @Inject constructor( override suspend fun loginWithQrCode(qrCodeData: MatrixQrCodeLoginData, progress: (QrCodeLoginStep) -> Unit) = withContext(coroutineDispatchers.io) { runCatching { - val client = rustMatrixClientFactory.getBaseClientBuilder(sessionPath) - .passphrase(pendingPassphrase) + val client = rustMatrixClientFactory.getBaseClientBuilder( + sessionPath = sessionPath, + passphrase = pendingPassphrase, + slidingSyncProxy = AuthenticationConfig.SLIDING_SYNC_PROXY_URL, + ) .buildWithQrCode( qrCodeData = (qrCodeData as SdkQrCodeLoginData).rustQrCodeData, oidcConfiguration = oidcConfigurationProvider.get(), @@ -252,4 +245,17 @@ class RustMatrixAuthenticationService @Inject constructor( Timber.e(throwable, "Failed to login with QR code") } } + + private fun getBaseClientBuilder() = rustMatrixClientFactory + .getBaseClientBuilder( + sessionPath = sessionPath, + passphrase = pendingPassphrase, + slidingSyncProxy = AuthenticationConfig.SLIDING_SYNC_PROXY_URL, + ) + .requiresSlidingSync() + + private fun clear() { + currentClient?.close() + currentClient = null + } } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/call/DefaultElementCallBaseUrlProvider.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/call/DefaultElementCallBaseUrlProvider.kt new file mode 100644 index 0000000000..debc0e9174 --- /dev/null +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/call/DefaultElementCallBaseUrlProvider.kt @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.impl.call + +import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.libraries.di.AppScope +import io.element.android.libraries.matrix.api.MatrixClient +import io.element.android.libraries.matrix.api.call.ElementCallBaseUrlProvider +import timber.log.Timber +import javax.inject.Inject + +@ContributesBinding(AppScope::class) +class DefaultElementCallBaseUrlProvider @Inject constructor( + private val elementWellKnownParser: ElementWellKnownParser, +) : ElementCallBaseUrlProvider { + override suspend fun provides(matrixClient: MatrixClient): String? { + val url = buildString { + append("https://") + append(matrixClient.userIdServerName()) + append("/.well-known/element/element.json") + } + return matrixClient.getUrl(url) + .onFailure { failure -> + Timber.w(failure, "Failed to fetch well-known element.json") + } + .getOrNull() + ?.let { wellKnownStr -> + elementWellKnownParser.parse(wellKnownStr) + .onFailure { failure -> + // Can be a HTML 404. + Timber.w(failure, "Failed to parse content") + } + .getOrNull() + } + ?.call + ?.widgetUrl + } +} diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/call/ElementWellKnownParser.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/call/ElementWellKnownParser.kt new file mode 100644 index 0000000000..aac31b89ff --- /dev/null +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/call/ElementWellKnownParser.kt @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.impl.call + +import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.libraries.di.AppScope +import org.matrix.rustcomponents.sdk.ElementWellKnown +import org.matrix.rustcomponents.sdk.makeElementWellKnown +import javax.inject.Inject + +interface ElementWellKnownParser { + fun parse(str: String): Result +} + +@ContributesBinding(AppScope::class) +class RustElementWellKnownParser @Inject constructor() : ElementWellKnownParser { + override fun parse(str: String): Result { + return runCatching { + makeElementWellKnown(str) + } + } +} diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt index e7f9199a34..402f86ce4f 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt @@ -26,12 +26,13 @@ internal fun Session.toSessionData( loginType: LoginType, passphrase: String?, sessionPath: String, + homeserverUrl: String? = null, ) = SessionData( userId = userId, deviceId = deviceId, accessToken = accessToken, refreshToken = refreshToken, - homeserverUrl = homeserverUrl, + homeserverUrl = homeserverUrl ?: this.homeserverUrl, oidcData = oidcData, slidingSyncProxy = slidingSyncProxy, loginTimestamp = Date(), diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MatrixRoomInfoMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MatrixRoomInfoMapper.kt index d01a7d1740..6a87b02a2b 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MatrixRoomInfoMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MatrixRoomInfoMapper.kt @@ -22,10 +22,12 @@ import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.room.CurrentUserMembership import io.element.android.libraries.matrix.api.room.MatrixRoomInfo import io.element.android.libraries.matrix.api.room.RoomNotificationMode +import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.impl.room.member.RoomMemberMapper import kotlinx.collections.immutable.ImmutableMap import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toPersistentMap +import org.matrix.rustcomponents.sdk.RoomHero import org.matrix.rustcomponents.sdk.Membership as RustMembership import org.matrix.rustcomponents.sdk.RoomInfo as RustRoomInfo import org.matrix.rustcomponents.sdk.RoomNotificationMode as RustRoomNotificationMode @@ -55,7 +57,8 @@ class MatrixRoomInfoMapper { notificationCount = it.notificationCount.toLong(), userDefinedNotificationMode = it.userDefinedNotificationMode?.map(), hasRoomCall = it.hasRoomCall, - activeRoomCallParticipants = it.activeRoomCallParticipants.toImmutableList() + activeRoomCallParticipants = it.activeRoomCallParticipants.toImmutableList(), + heroes = it.elementHeroes().toImmutableList() ) } } @@ -72,6 +75,15 @@ fun RustRoomNotificationMode.map(): RoomNotificationMode = when (this) { RustRoomNotificationMode.MUTE -> RoomNotificationMode.MUTE } +/** + * Map a RoomHero to a MatrixUser. There is not need to create a RoomHero type on the application side. + */ +fun RoomHero.map(): MatrixUser = MatrixUser( + userId = UserId(userId), + displayName = displayName, + avatarUrl = avatarUrl +) + fun mapPowerLevels(powerLevels: Map): ImmutableMap { return powerLevels.mapKeys { (key, _) -> UserId(key) }.toPersistentMap() } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomInfoExt.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomInfoExt.kt new file mode 100644 index 0000000000..bd6cc7eda4 --- /dev/null +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomInfoExt.kt @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.impl.room + +import io.element.android.libraries.matrix.api.user.MatrixUser +import org.matrix.rustcomponents.sdk.RoomInfo + +/** + * Extract the heroes from the room info. + * For now we only use heroes for direct rooms with 2 members. + * Also we keep the heroes only if there is one single hero. + */ +fun RoomInfo.elementHeroes(): List { + return heroes + .takeIf { isDirect && activeMembersCount.toLong() == 2L } + ?.takeIf { it.size == 1 } + ?.map { it.map() } + .orEmpty() +} diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt index 1a14c7a860..463defb284 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt @@ -41,6 +41,7 @@ import io.element.android.libraries.matrix.api.room.Mention import io.element.android.libraries.matrix.api.room.MessageEventType import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.StateEventType +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft import io.element.android.libraries.matrix.api.room.location.AssetType import io.element.android.libraries.matrix.api.room.powerlevels.MatrixRoomPowerLevels import io.element.android.libraries.matrix.api.room.powerlevels.UserRoleChange @@ -49,6 +50,7 @@ import io.element.android.libraries.matrix.api.timeline.ReceiptType import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.matrix.api.widget.MatrixWidgetDriver import io.element.android.libraries.matrix.api.widget.MatrixWidgetSettings +import io.element.android.libraries.matrix.impl.room.draft.into import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher import io.element.android.libraries.matrix.impl.room.member.RoomMemberMapper import io.element.android.libraries.matrix.impl.room.powerlevels.RoomPowerLevelsMapper @@ -605,6 +607,21 @@ class RustMatrixRoom( innerRoom.enableSendQueue(enabled) } + override suspend fun saveComposerDraft(composerDraft: ComposerDraft): Result = runCatching { + Timber.d("saveComposerDraft: $composerDraft into $roomId") + innerRoom.saveComposerDraft(composerDraft.into()) + } + + override suspend fun loadComposerDraft(): Result = runCatching { + Timber.d("loadComposerDraft for $roomId") + innerRoom.loadComposerDraft()?.into() + } + + override suspend fun clearComposerDraft(): Result = runCatching { + Timber.d("clearComposerDraft for $roomId") + innerRoom.clearComposerDraft() + } + private fun createTimeline( timeline: InnerTimeline, isLive: Boolean, diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/draft/ComposerDraftMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/draft/ComposerDraftMapper.kt new file mode 100644 index 0000000000..b8e6ead3b9 --- /dev/null +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/draft/ComposerDraftMapper.kt @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.impl.room.draft + +import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft +import io.element.android.libraries.matrix.api.room.draft.ComposerDraftType +import org.matrix.rustcomponents.sdk.ComposerDraft as RustComposerDraft +import org.matrix.rustcomponents.sdk.ComposerDraftType as RustComposerDraftType + +internal fun ComposerDraft.into(): RustComposerDraft { + return RustComposerDraft( + plainText = plainText, + htmlText = htmlText, + draftType = draftType.into() + ) +} + +internal fun RustComposerDraft.into(): ComposerDraft { + return ComposerDraft( + plainText = plainText, + htmlText = htmlText, + draftType = draftType.into() + ) +} + +private fun RustComposerDraftType.into(): ComposerDraftType { + return when (this) { + RustComposerDraftType.NewMessage -> ComposerDraftType.NewMessage + is RustComposerDraftType.Reply -> ComposerDraftType.Reply(EventId(eventId)) + is RustComposerDraftType.Edit -> ComposerDraftType.Edit(EventId(eventId)) + } +} + +private fun ComposerDraftType.into(): RustComposerDraftType { + return when (this) { + ComposerDraftType.NewMessage -> RustComposerDraftType.NewMessage + is ComposerDraftType.Reply -> RustComposerDraftType.Reply(eventId.value) + is ComposerDraftType.Edit -> RustComposerDraftType.Edit(eventId.value) + } +} diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt index 3ccc071316..f45c843694 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/roomlist/RoomSummaryDetailsFactory.kt @@ -20,6 +20,7 @@ import io.element.android.libraries.matrix.api.core.RoomAlias import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails import io.element.android.libraries.matrix.impl.notificationsettings.RoomNotificationSettingsMapper +import io.element.android.libraries.matrix.impl.room.elementHeroes import io.element.android.libraries.matrix.impl.room.map import io.element.android.libraries.matrix.impl.room.member.RoomMemberMapper import io.element.android.libraries.matrix.impl.room.message.RoomMessageFactory @@ -49,6 +50,7 @@ class RoomSummaryDetailsFactory(private val roomMessageFactory: RoomMessageFacto isDm = roomInfo.isDirect && roomInfo.activeMembersCount.toLong() == 2L, isFavorite = roomInfo.isFavourite, currentUserMembership = roomInfo.membership.map(), + heroes = roomInfo.elementHeroes(), ) } } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/server/DefaultUserServerResolver.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/server/DefaultUserServerResolver.kt new file mode 100644 index 0000000000..ac20573324 --- /dev/null +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/server/DefaultUserServerResolver.kt @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.impl.server + +import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.libraries.di.SessionScope +import io.element.android.libraries.matrix.api.MatrixClient +import io.element.android.libraries.matrix.api.server.UserServerResolver +import javax.inject.Inject + +@ContributesBinding(SessionScope::class) +class DefaultUserServerResolver @Inject constructor( + private val matrixClient: MatrixClient, +) : UserServerResolver { + override fun resolve(): String { + return matrixClient.userIdServerName() + } +} diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/RustTimeline.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/RustTimeline.kt index 75b59e8c65..443191a538 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/RustTimeline.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/RustTimeline.kt @@ -33,6 +33,7 @@ import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem import io.element.android.libraries.matrix.api.timeline.ReceiptType import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.matrix.api.timeline.TimelineException +import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo import io.element.android.libraries.matrix.impl.core.toProgressWatcher import io.element.android.libraries.matrix.impl.media.MediaUploadHandlerImpl import io.element.android.libraries.matrix.impl.media.map @@ -41,7 +42,6 @@ import io.element.android.libraries.matrix.impl.poll.toInner import io.element.android.libraries.matrix.impl.room.RoomContentForwarder import io.element.android.libraries.matrix.impl.room.location.toInner import io.element.android.libraries.matrix.impl.room.map -import io.element.android.libraries.matrix.impl.timeline.item.event.EventMessageMapper import io.element.android.libraries.matrix.impl.timeline.item.event.EventTimelineItemMapper import io.element.android.libraries.matrix.impl.timeline.item.event.TimelineEventContentMapper import io.element.android.libraries.matrix.impl.timeline.item.virtual.VirtualTimelineItemMapper @@ -49,6 +49,7 @@ import io.element.android.libraries.matrix.impl.timeline.postprocessor.LastForwa import io.element.android.libraries.matrix.impl.timeline.postprocessor.LoadingIndicatorsPostProcessor import io.element.android.libraries.matrix.impl.timeline.postprocessor.RoomBeginningPostProcessor import io.element.android.libraries.matrix.impl.timeline.postprocessor.TimelineEncryptedHistoryPostProcessor +import io.element.android.libraries.matrix.impl.timeline.reply.InReplyToMapper import io.element.android.services.toolbox.api.systemclock.SystemClock import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CoroutineDispatcher @@ -67,7 +68,6 @@ import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import org.matrix.rustcomponents.sdk.EventTimelineItem import org.matrix.rustcomponents.sdk.FormattedBody import org.matrix.rustcomponents.sdk.MessageFormat import org.matrix.rustcomponents.sdk.RoomMessageEventContentWithoutRelation @@ -118,14 +118,14 @@ class RustTimeline( private val loadingIndicatorsPostProcessor = LoadingIndicatorsPostProcessor(systemClock) private val lastForwardIndicatorsPostProcessor = LastForwardIndicatorsPostProcessor(isLive) + private val timelineEventContentMapper = TimelineEventContentMapper() + private val inReplyToMapper = InReplyToMapper(timelineEventContentMapper) private val timelineItemFactory = MatrixTimelineItemMapper( fetchDetailsForEvent = this::fetchDetailsForEvent, roomCoroutineScope = roomCoroutineScope, virtualTimelineItemMapper = VirtualTimelineItemMapper(), eventTimelineItemMapper = EventTimelineItemMapper( - contentMapper = TimelineEventContentMapper( - eventMessageMapper = EventMessageMapper() - ) + contentMapper = timelineEventContentMapper ) ) @@ -251,7 +251,6 @@ class RustTimeline( override fun close() { inner.close() - specialModeEventTimelineItem?.destroy() } private suspend fun fetchMembers() = withContext(dispatcher) { @@ -328,17 +327,16 @@ class RustTimeline( runCatching { when { originalEventId != null -> { - val editedEvent = specialModeEventTimelineItem ?: inner.getEventTimelineItemByEventId(originalEventId.value) - editedEvent.use { - inner.edit( - newContent = messageEventContentFromParts(body, htmlBody).withMentions(mentions.map()), - editItem = it, - ) - } - specialModeEventTimelineItem = null + inner.editByEventId( + newContent = messageEventContentFromParts(body, htmlBody).withMentions(mentions.map()), + eventId = originalEventId.value, + ) } transactionId != null -> { - error("Editing local echo is not supported yet.") + inner.edit( + newContent = messageEventContentFromParts(body, htmlBody).withMentions(mentions.map()), + item = inner.getEventTimelineItemByTransactionId(transactionId.value), + ) } else -> { error("Either originalEventId or transactionId must be non null") @@ -347,18 +345,6 @@ class RustTimeline( } } - private var specialModeEventTimelineItem: EventTimelineItem? = null - - override suspend fun enterSpecialMode(eventId: EventId?): Result = withContext(dispatcher) { - runCatching { - specialModeEventTimelineItem?.destroy() - specialModeEventTimelineItem = null - specialModeEventTimelineItem = eventId?.let { inner.getEventTimelineItemByEventId(it.value) } - }.onFailure { - Timber.e(it, "Unable to retrieve event for special mode. Are you using the correct timeline?") - } - } - override suspend fun replyMessage( eventId: EventId, body: String, @@ -368,19 +354,7 @@ class RustTimeline( ): Result = withContext(dispatcher) { runCatching { val msg = messageEventContentFromParts(body, htmlBody).withMentions(mentions.map()) - if (fromNotification) { - // When replying from a notification, do not interfere with `specialModeEventTimelineItem` - val inReplyTo = inner.getEventTimelineItemByEventId(eventId.value) - inReplyTo.use { eventTimelineItem -> - inner.sendReply(msg, eventTimelineItem) - } - } else { - val inReplyTo = specialModeEventTimelineItem ?: inner.getEventTimelineItemByEventId(eventId.value) - inReplyTo.use { eventTimelineItem -> - inner.sendReply(msg, eventTimelineItem) - } - specialModeEventTimelineItem = null - } + inner.sendReply(msg, eventId.value) } } @@ -580,4 +554,21 @@ class RustTimeline( inner.fetchDetailsForEvent(eventId.value) } } + + override suspend fun loadReplyDetails(eventId: EventId): InReplyTo = withContext(dispatcher) { + val timelineItem = _timelineItems.value.firstOrNull { timelineItem -> + timelineItem is MatrixTimelineItem.Event && timelineItem.eventId == eventId + } as? MatrixTimelineItem.Event + + if (timelineItem != null) { + InReplyTo.Ready( + eventId = eventId, + content = timelineItem.event.content, + senderId = timelineItem.event.sender, + senderProfile = timelineItem.event.senderProfile, + ) + } else { + inner.loadReplyDetails(eventId.value).use(inReplyToMapper::map) + } + } } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt index 09a66fa656..70f1f45a85 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt @@ -16,8 +16,6 @@ package io.element.android.libraries.matrix.impl.timeline.item.event -import io.element.android.libraries.matrix.api.core.EventId -import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType import io.element.android.libraries.matrix.api.timeline.item.event.EmoteMessageType import io.element.android.libraries.matrix.api.timeline.item.event.FileMessageType @@ -33,42 +31,20 @@ import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageTy import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType import io.element.android.libraries.matrix.api.timeline.item.event.VoiceMessageType import io.element.android.libraries.matrix.impl.media.map +import io.element.android.libraries.matrix.impl.timeline.reply.InReplyToMapper import org.matrix.rustcomponents.sdk.Message import org.matrix.rustcomponents.sdk.MessageType -import org.matrix.rustcomponents.sdk.RepliedToEventDetails import org.matrix.rustcomponents.sdk.use import org.matrix.rustcomponents.sdk.FormattedBody as RustFormattedBody import org.matrix.rustcomponents.sdk.MessageFormat as RustMessageFormat import org.matrix.rustcomponents.sdk.MessageType as RustMessageType class EventMessageMapper { - private val timelineEventContentMapper by lazy { TimelineEventContentMapper() } + private val inReplyToMapper by lazy { InReplyToMapper(TimelineEventContentMapper()) } fun map(message: Message): MessageContent = message.use { val type = it.msgtype().use(this::mapMessageType) - val inReplyToEvent: InReplyTo? = it.inReplyTo()?.use { details -> - val inReplyToId = EventId(details.eventId) - when (val event = details.event) { - is RepliedToEventDetails.Ready -> { - InReplyTo.Ready( - eventId = inReplyToId, - content = timelineEventContentMapper.map(event.content), - senderId = UserId(event.sender), - senderProfile = event.senderProfile.map(), - ) - } - is RepliedToEventDetails.Error -> InReplyTo.Error( - eventId = inReplyToId, - message = event.message, - ) - RepliedToEventDetails.Pending -> InReplyTo.Pending( - eventId = inReplyToId, - ) - is RepliedToEventDetails.Unavailable -> InReplyTo.NotLoaded( - eventId = inReplyToId - ) - } - } + val inReplyToEvent: InReplyTo? = it.inReplyTo()?.use(inReplyToMapper::map) MessageContent( body = it.body(), inReplyTo = inReplyToEvent, diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt index a603d354e5..dd0bdabd7f 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt @@ -77,7 +77,13 @@ fun RustEventSendState?.map(): LocalEventSendState? { return when (this) { null -> null RustEventSendState.NotSentYet -> LocalEventSendState.NotSentYet - is RustEventSendState.SendingFailed -> LocalEventSendState.SendingFailed(error) + is RustEventSendState.SendingFailed -> { + if (this.isRecoverable) { + LocalEventSendState.SendingFailed.Recoverable(this.error) + } else { + LocalEventSendState.SendingFailed.Unrecoverable(this.error) + } + } is RustEventSendState.Sent -> LocalEventSendState.Sent(EventId(eventId)) } } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/reply/InReplyToMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/reply/InReplyToMapper.kt new file mode 100644 index 0000000000..57a18697c2 --- /dev/null +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/reply/InReplyToMapper.kt @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.impl.timeline.reply + +import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo +import io.element.android.libraries.matrix.impl.timeline.item.event.TimelineEventContentMapper +import io.element.android.libraries.matrix.impl.timeline.item.event.map +import org.matrix.rustcomponents.sdk.InReplyToDetails +import org.matrix.rustcomponents.sdk.RepliedToEventDetails + +class InReplyToMapper( + private val timelineEventContentMapper: TimelineEventContentMapper, +) { + fun map(inReplyToDetails: InReplyToDetails): InReplyTo { + val inReplyToId = EventId(inReplyToDetails.eventId) + return when (val event = inReplyToDetails.event) { + is RepliedToEventDetails.Ready -> { + InReplyTo.Ready( + eventId = inReplyToId, + content = timelineEventContentMapper.map(event.content), + senderId = UserId(event.sender), + senderProfile = event.senderProfile.map(), + ) + } + is RepliedToEventDetails.Error -> InReplyTo.Error( + eventId = inReplyToId, + message = event.message, + ) + RepliedToEventDetails.Pending -> InReplyTo.Pending( + eventId = inReplyToId, + ) + is RepliedToEventDetails.Unavailable -> InReplyTo.NotLoaded( + eventId = inReplyToId + ) + } + } +} diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt index 5b6d960d09..3c3aeb7bcb 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt @@ -57,11 +57,17 @@ class RustSessionVerificationService( private val encryptionService: Encryption = client.encryption() private lateinit var verificationController: SessionVerificationController + private val _verificationFlowState = MutableStateFlow(VerificationFlowState.Initial) + override val verificationFlowState = _verificationFlowState.asStateFlow() + + private val _sessionVerifiedStatus = MutableStateFlow(SessionVerifiedStatus.Unknown) + override val sessionVerifiedStatus: StateFlow = _sessionVerifiedStatus.asStateFlow() + // Listen for changes in verification status and update accordingly private val verificationStateListenerTaskHandle = encryptionService.verificationStateListener(object : VerificationStateListener { override fun onUpdate(status: VerificationState) { Timber.d("New verification state: $status") - updateVerificationStatus(status) + sessionCoroutineScope.launch { updateVerificationStatus() } } }) @@ -70,16 +76,10 @@ class RustSessionVerificationService( override fun onUpdate(status: RecoveryState) { Timber.d("New recovery state: $status") // We could check the `RecoveryState`, but it's easier to just use the verification state directly - updateVerificationStatus(encryptionService.verificationState()) + sessionCoroutineScope.launch { updateVerificationStatus() } } }) - private val _verificationFlowState = MutableStateFlow(VerificationFlowState.Initial) - override val verificationFlowState = _verificationFlowState.asStateFlow() - - private val _sessionVerifiedStatus = MutableStateFlow(SessionVerifiedStatus.Unknown) - override val sessionVerifiedStatus: StateFlow = _sessionVerifiedStatus.asStateFlow() - /** * The internal service that checks verification can only run after the initial sync. * This [StateFlow] will notify consumers when the service is ready to be used. @@ -92,15 +92,16 @@ class RustSessionVerificationService( init { // Update initial state in case sliding sync isn't ready - updateVerificationStatus(encryptionService.verificationState()) + sessionCoroutineScope.launch { updateVerificationStatus() } isReady.onEach { isReady -> if (isReady) { Timber.d("Starting verification service") // Immediate status update - updateVerificationStatus(encryptionService.verificationState()) + updateVerificationStatus() } else { Timber.d("Stopping verification service") + updateVerificationStatus() } } .launchIn(sessionCoroutineScope) @@ -161,8 +162,9 @@ class RustSessionVerificationService( } } .onSuccess { - updateVerificationStatus(VerificationState.VERIFIED) + // Order here is important, first set the flow state as finished, then update the verification status _verificationFlowState.value = VerificationFlowState.Finished + updateVerificationStatus() } .onFailure { Timber.e(it, "Verification finished, but the Rust SDK still reports the session as unverified.") @@ -200,11 +202,36 @@ class RustSessionVerificationService( } } - private fun updateVerificationStatus(verificationState: VerificationState) { - _sessionVerifiedStatus.value = when (verificationState) { - VerificationState.UNKNOWN -> SessionVerifiedStatus.Unknown - VerificationState.VERIFIED -> SessionVerifiedStatus.Verified - VerificationState.UNVERIFIED -> SessionVerifiedStatus.NotVerified + private suspend fun updateVerificationStatus() { + if (verificationFlowState.value == VerificationFlowState.Finished) { + // Calling `encryptionService.verificationState()` performs a network call and it will deadlock if there is no network + // So we need to check that *only* if we know there is network connection, which is the case when the verification flow just finished + Timber.d("Updating verification status: flow just finished") + runCatching { + encryptionService.waitForE2eeInitializationTasks() + }.onSuccess { + _sessionVerifiedStatus.value = when (encryptionService.verificationState()) { + VerificationState.UNKNOWN -> SessionVerifiedStatus.Unknown + VerificationState.VERIFIED -> SessionVerifiedStatus.Verified + VerificationState.UNVERIFIED -> SessionVerifiedStatus.NotVerified + } + Timber.d("New verification status: ${_sessionVerifiedStatus.value}") + } + } else { + // Otherwise, just check the current verification status from the session verification controller instead + Timber.d("Updating verification status: flow is pending or was finished some time ago") + runCatching { + if (!this@RustSessionVerificationService::verificationController.isInitialized) { + verificationController = client.getSessionVerificationController() + verificationController.setDelegate(this@RustSessionVerificationService) + } + _sessionVerifiedStatus.value = if (verificationController.isVerified()) { + SessionVerifiedStatus.Verified + } else { + SessionVerifiedStatus.NotVerified + } + Timber.d("New verification status: ${_sessionVerifiedStatus.value}") + } } } } diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/auth/AuthenticationExceptionMappingTest.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/auth/AuthenticationExceptionMappingTest.kt index f6778489e4..3dff6320b2 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/auth/AuthenticationExceptionMappingTest.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/auth/AuthenticationExceptionMappingTest.kt @@ -20,7 +20,7 @@ import com.google.common.truth.ThrowableSubject import com.google.common.truth.Truth.assertThat import io.element.android.libraries.matrix.api.auth.AuthenticationException import org.junit.Test -import org.matrix.rustcomponents.sdk.AuthenticationException as RustAuthenticationException +import org.matrix.rustcomponents.sdk.ClientBuildException class AuthenticationExceptionMappingTest { @Test @@ -39,64 +39,21 @@ class AuthenticationExceptionMappingTest { @Test fun `mapping specific exceptions map to their kotlin counterparts`() { - assertThat(RustAuthenticationException.ClientMissing("Client missing").mapAuthenticationException()) - .isException("Client missing") + assertThat(ClientBuildException.Generic("Unknown error").mapAuthenticationException()) + .isException("Unknown error") - assertThat(RustAuthenticationException.Generic("Generic").mapAuthenticationException()).isException("Generic") - - assertThat(RustAuthenticationException.InvalidServerName("Invalid server name").mapAuthenticationException()) + assertThat(ClientBuildException.InvalidServerName("Invalid server name").mapAuthenticationException()) .isException("Invalid server name") - assertThat(RustAuthenticationException.SessionMissing("Session missing").mapAuthenticationException()) - .isException("Session missing") + assertThat(ClientBuildException.Sdk("SDK issue").mapAuthenticationException()) + .isException("SDK issue") - assertThat(RustAuthenticationException.SlidingSyncNotAvailable("Sliding sync not available").mapAuthenticationException()) + assertThat(ClientBuildException.SlidingSyncNotAvailable("Sliding sync not available").mapAuthenticationException()) .isException("Sliding sync not available") } - @Test - fun `mapping Oidc related exceptions creates an 'OidcError' with different types`() { - assertIsOidcError( - throwable = RustAuthenticationException.OidcException("Oidc exception"), - type = "OidcException", - message = "Oidc exception" - ) - assertIsOidcError( - throwable = RustAuthenticationException.OidcMetadataInvalid("Oidc metadata invalid"), - type = "OidcMetadataInvalid", - message = "Oidc metadata invalid" - ) - assertIsOidcError( - throwable = RustAuthenticationException.OidcMetadataMissing("Oidc metadata missing"), - type = "OidcMetadataMissing", - message = "Oidc metadata missing" - ) - assertIsOidcError( - throwable = RustAuthenticationException.OidcNotSupported("Oidc not supported"), - type = "OidcNotSupported", - message = "Oidc not supported" - ) - assertIsOidcError( - throwable = RustAuthenticationException.OidcCancelled("Oidc cancelled"), - type = "OidcCancelled", - message = "Oidc cancelled" - ) - assertIsOidcError( - throwable = RustAuthenticationException.OidcCallbackUrlInvalid("Oidc callback url invalid"), - type = "OidcCallbackUrlInvalid", - message = "Oidc callback url invalid" - ) - } - private inline fun ThrowableSubject.isException(message: String) { isInstanceOf(T::class.java) hasMessageThat().isEqualTo(message) } - - private fun assertIsOidcError(throwable: Throwable, type: String, message: String) { - val authenticationException = throwable.mapAuthenticationException() - assertThat(authenticationException).isInstanceOf(AuthenticationException.OidcError::class.java) - assertThat((authenticationException as? AuthenticationException.OidcError)?.type).isEqualTo(type) - assertThat(authenticationException.message).isEqualTo(message) - } } diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/call/DefaultElementCallBaseUrlProviderTest.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/call/DefaultElementCallBaseUrlProviderTest.kt new file mode 100644 index 0000000000..1d6e8fe443 --- /dev/null +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/call/DefaultElementCallBaseUrlProviderTest.kt @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.impl.call + +import com.google.common.truth.Truth.assertThat +import io.element.android.libraries.matrix.test.AN_EXCEPTION +import io.element.android.libraries.matrix.test.FakeMatrixClient +import io.element.android.tests.testutils.lambda.lambdaRecorder +import io.element.android.tests.testutils.lambda.value +import kotlinx.coroutines.test.runTest +import org.junit.Test +import org.matrix.rustcomponents.sdk.ElementCallWellKnown +import org.matrix.rustcomponents.sdk.ElementWellKnown + +class DefaultElementCallBaseUrlProviderTest { + @Test + fun `provides returns null when getUrl returns an error`() = runTest { + val userIdServerNameLambda = lambdaRecorder { "example.com" } + val getUrlLambda = lambdaRecorder> { _ -> + Result.failure(AN_EXCEPTION) + } + val sut = DefaultElementCallBaseUrlProvider( + FakeElementWellKnownParser( + Result.success(createElementWellKnown("")) + ) + ) + val matrixClient = FakeMatrixClient( + userIdServerNameLambda = userIdServerNameLambda, + getUrlLambda = getUrlLambda, + ) + val result = sut.provides(matrixClient) + assertThat(result).isNull() + userIdServerNameLambda.assertions().isCalledOnce() + getUrlLambda.assertions().isCalledOnce() + .with(value("https://example.com/.well-known/element/element.json")) + } + + @Test + fun `provides returns null when content parsing fails`() = runTest { + val userIdServerNameLambda = lambdaRecorder { "example.com" } + val getUrlLambda = lambdaRecorder> { _ -> + Result.success("""{"call":{"widget_url":"https://example.com/call"}}""") + } + val sut = DefaultElementCallBaseUrlProvider( + createFakeElementWellKnownParser( + Result.failure(AN_EXCEPTION) + ) + ) + val matrixClient = FakeMatrixClient( + userIdServerNameLambda = userIdServerNameLambda, + getUrlLambda = getUrlLambda, + ) + val result = sut.provides(matrixClient) + assertThat(result).isNull() + userIdServerNameLambda.assertions().isCalledOnce() + getUrlLambda.assertions().isCalledOnce() + .with(value("https://example.com/.well-known/element/element.json")) + } + + @Test + fun `provides returns value when getUrl returns correct content`() = runTest { + val userIdServerNameLambda = lambdaRecorder { "example.com" } + val getUrlLambda = lambdaRecorder> { _ -> + Result.success("""{"call":{"widget_url":"https://example.com/call"}}""") + } + val sut = DefaultElementCallBaseUrlProvider( + createFakeElementWellKnownParser( + Result.success(createElementWellKnown("aUrl")) + ) + ) + val matrixClient = FakeMatrixClient( + userIdServerNameLambda = userIdServerNameLambda, + getUrlLambda = getUrlLambda, + ) + val result = sut.provides(matrixClient) + assertThat(result).isEqualTo("aUrl") + userIdServerNameLambda.assertions().isCalledOnce() + getUrlLambda.assertions().isCalledOnce() + .with(value("https://example.com/.well-known/element/element.json")) + } + + private fun createFakeElementWellKnownParser(result: Result): FakeElementWellKnownParser { + return FakeElementWellKnownParser(result) + } + + private fun createElementWellKnown(widgetUrl: String): ElementWellKnown { + return ElementWellKnown( + call = ElementCallWellKnown( + widgetUrl = widgetUrl + ) + ) + } +} diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/call/FakeElementWellKnownParser.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/call/FakeElementWellKnownParser.kt new file mode 100644 index 0000000000..d6108b955f --- /dev/null +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/call/FakeElementWellKnownParser.kt @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.impl.call + +import org.matrix.rustcomponents.sdk.ElementWellKnown + +class FakeElementWellKnownParser( + private val result: Result +) : ElementWellKnownParser { + override fun parse(str: String): Result { + return result + } +} diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/FakeMatrixClient.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/FakeMatrixClient.kt index d2eb47a585..1b6223279c 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/FakeMatrixClient.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/FakeMatrixClient.kt @@ -82,6 +82,8 @@ class FakeMatrixClient( private val resolveRoomAliasResult: (RoomAlias) -> Result = { Result.success(ResolvedRoomAlias(A_ROOM_ID, emptyList())) }, private val getRoomPreviewFromRoomIdResult: (RoomId, List) -> Result = { _, _ -> Result.failure(AN_EXCEPTION) }, private val clearCacheLambda: () -> Unit = { lambdaError() }, + private val userIdServerNameLambda: () -> String = { lambdaError() }, + private val getUrlLambda: (String) -> Result = { lambdaError() }, ) : MatrixClient { var setDisplayNameCalled: Boolean = false private set @@ -313,4 +315,12 @@ class FakeMatrixClient( var sendQueueDisabledFlow = emptyFlow() override fun sendQueueDisabledFlow(): Flow = sendQueueDisabledFlow + + override fun userIdServerName(): String { + return userIdServerNameLambda() + } + + override suspend fun getUrl(url: String): Result { + return getUrlLambda(url) + } } diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/core/BuildMeta.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/core/BuildMeta.kt index 52c15d05a4..569c33db7d 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/core/BuildMeta.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/core/BuildMeta.kt @@ -26,6 +26,7 @@ fun aBuildMeta( productionApplicationName: String = applicationName, desktopApplicationName: String = applicationName, applicationId: String = "", + isEnterpriseBuild: Boolean = false, lowPrivacyLoggingEnabled: Boolean = true, versionName: String = "", versionCode: Long = 0, @@ -40,6 +41,7 @@ fun aBuildMeta( productionApplicationName = productionApplicationName, desktopApplicationName = desktopApplicationName, applicationId = applicationId, + isEnterpriseBuild = isEnterpriseBuild, lowPrivacyLoggingEnabled = lowPrivacyLoggingEnabled, versionName = versionName, versionCode = versionCode, diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt index 5583f6b11e..7b08b2ea63 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt @@ -40,11 +40,13 @@ import io.element.android.libraries.matrix.api.room.MessageEventType import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.api.room.StateEventType +import io.element.android.libraries.matrix.api.room.draft.ComposerDraft import io.element.android.libraries.matrix.api.room.location.AssetType import io.element.android.libraries.matrix.api.room.powerlevels.MatrixRoomPowerLevels import io.element.android.libraries.matrix.api.room.powerlevels.UserRoleChange import io.element.android.libraries.matrix.api.timeline.ReceiptType import io.element.android.libraries.matrix.api.timeline.Timeline +import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.api.widget.MatrixWidgetDriver import io.element.android.libraries.matrix.api.widget.MatrixWidgetSettings import io.element.android.libraries.matrix.test.AN_AVATAR_URL @@ -527,6 +529,15 @@ class FakeMatrixRoom( var setSendQueueEnabledLambda = { _: Boolean -> } override suspend fun setSendQueueEnabled(enabled: Boolean) = setSendQueueEnabledLambda(enabled) + var saveComposerDraftLambda = { _: ComposerDraft -> Result.success(Unit) } + override suspend fun saveComposerDraft(composerDraft: ComposerDraft) = saveComposerDraftLambda(composerDraft) + + var loadComposerDraftLambda = { Result.success(null) } + override suspend fun loadComposerDraft() = loadComposerDraftLambda() + + var clearComposerDraftLambda = { Result.success(Unit) } + override suspend fun clearComposerDraft() = clearComposerDraftLambda() + override fun getWidgetDriver(widgetSettings: MatrixWidgetSettings): Result = getWidgetDriverResult fun givenRoomMembersState(state: MatrixRoomMembersState) { @@ -754,7 +765,8 @@ fun aRoomInfo( userDefinedNotificationMode: RoomNotificationMode? = null, hasRoomCall: Boolean = false, userPowerLevels: ImmutableMap = persistentMapOf(), - activeRoomCallParticipants: List = emptyList() + activeRoomCallParticipants: List = emptyList(), + heroes: List = emptyList(), ) = MatrixRoomInfo( id = id, name = name, @@ -779,6 +791,7 @@ fun aRoomInfo( hasRoomCall = hasRoomCall, userPowerLevels = userPowerLevels, activeRoomCallParticipants = activeRoomCallParticipants.toImmutableList(), + heroes = heroes.toImmutableList(), ) fun defaultRoomPowerLevels() = MatrixRoomPowerLevels( diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomSummaryFixture.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomSummaryFixture.kt index d9fdffa62a..611a68aad6 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomSummaryFixture.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomSummaryFixture.kt @@ -27,6 +27,7 @@ import io.element.android.libraries.matrix.api.room.message.RoomMessage import io.element.android.libraries.matrix.api.roomlist.RoomSummary import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails import io.element.android.libraries.matrix.api.timeline.item.event.EventTimelineItem +import io.element.android.libraries.matrix.api.user.MatrixUser import io.element.android.libraries.matrix.test.AN_EVENT_ID import io.element.android.libraries.matrix.test.A_ROOM_ID import io.element.android.libraries.matrix.test.A_ROOM_NAME @@ -78,6 +79,7 @@ fun aRoomSummaryDetails( isDm: Boolean = false, isFavorite: Boolean = false, currentUserMembership: CurrentUserMembership = CurrentUserMembership.JOINED, + heroes: List = emptyList(), ) = RoomSummaryDetails( roomId = roomId, name = name, @@ -95,6 +97,7 @@ fun aRoomSummaryDetails( isDm = isDm, isFavorite = isFavorite, currentUserMembership = currentUserMembership, + heroes = heroes, ) fun aRoomMessage( diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/timeline/FakeTimeline.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/timeline/FakeTimeline.kt index 9f62df2ca6..4fa9f7a94c 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/timeline/FakeTimeline.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/timeline/FakeTimeline.kt @@ -31,6 +31,7 @@ import io.element.android.libraries.matrix.api.room.location.AssetType import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem import io.element.android.libraries.matrix.api.timeline.ReceiptType import io.element.android.libraries.matrix.api.timeline.Timeline +import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo import io.element.android.libraries.matrix.test.media.FakeMediaUploadHandler import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow @@ -103,12 +104,6 @@ class FakeTimeline( mentions ) - var enterSpecialModeLambda: (eventId: EventId?) -> Result = { - Result.success(Unit) - } - - override suspend fun enterSpecialMode(eventId: EventId?): Result = enterSpecialModeLambda(eventId) - var replyMessageLambda: ( eventId: EventId, body: String, @@ -370,6 +365,12 @@ class FakeTimeline( } } + var loadReplyDetailsLambda: (eventId: EventId) -> InReplyTo = { + InReplyTo.NotLoaded(it) + } + + override suspend fun loadReplyDetails(eventId: EventId) = loadReplyDetailsLambda(eventId) + var closeCounter = 0 private set diff --git a/libraries/matrixui/build.gradle.kts b/libraries/matrixui/build.gradle.kts index ed7f3d068d..6a8a799cf3 100644 --- a/libraries/matrixui/build.gradle.kts +++ b/libraries/matrixui/build.gradle.kts @@ -17,12 +17,16 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } android { namespace = "io.element.android.libraries.matrix.ui" + testOptions { + unitTests { + isIncludeAndroidResources = true + } + } } anvil { @@ -44,10 +48,17 @@ dependencies { implementation(libs.coil.gif) implementation(libs.jsoup) - ksp(libs.showkase.processor) - + testImplementation(libs.coroutines.test) testImplementation(libs.test.junit) + testImplementation(libs.coroutines.test) + testImplementation(libs.molecule.runtime) testImplementation(libs.test.truth) - testImplementation(libs.test.robolectric) + testImplementation(libs.test.turbine) testImplementation(projects.libraries.matrix.test) + testImplementation(projects.libraries.dateformatter.test) + testImplementation(projects.tests.testutils) + testImplementation(libs.test.mockk) + testImplementation(libs.test.robolectric) + testImplementation(libs.androidx.compose.ui.test.junit) + testImplementation(projects.libraries.sessionStorage.test) } diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/RoomSummaryDetailsProvider.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/RoomSummaryDetailsProvider.kt index a433f49395..275848f3fc 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/RoomSummaryDetailsProvider.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/RoomSummaryDetailsProvider.kt @@ -24,6 +24,7 @@ import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomNotificationMode import io.element.android.libraries.matrix.api.room.message.RoomMessage import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails +import io.element.android.libraries.matrix.api.user.MatrixUser open class RoomSummaryDetailsProvider : PreviewParameterProvider { override val values: Sequence @@ -50,6 +51,7 @@ fun aRoomSummaryDetails( isMarkedUnread: Boolean = false, isFavorite: Boolean = false, currentUserMembership: CurrentUserMembership = CurrentUserMembership.JOINED, + heroes: List = emptyList(), ) = RoomSummaryDetails( roomId = roomId, name = name, @@ -67,4 +69,5 @@ fun aRoomSummaryDetails( isMarkedUnread = isMarkedUnread, isFavorite = isFavorite, currentUserMembership = currentUserMembership, + heroes = heroes, ) diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/SelectedRoom.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/SelectedRoom.kt index 7f8f9f2f56..f34b071379 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/SelectedRoom.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/SelectedRoom.kt @@ -36,16 +36,17 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.tokens.generated.CompoundIcons -import io.element.android.libraries.designsystem.components.avatar.Avatar -import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.designsystem.components.avatar.CompositeAvatar import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Surface import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails +import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.ui.strings.CommonStrings +import kotlinx.collections.immutable.toImmutableList @Composable fun SelectedRoom( @@ -60,7 +61,12 @@ fun SelectedRoom( Column( horizontalAlignment = Alignment.CenterHorizontally, ) { - Avatar(AvatarData(roomSummary.roomId.value, roomSummary.name, roomSummary.avatarUrl, AvatarSize.SelectedRoom)) + CompositeAvatar( + avatarData = roomSummary.getAvatarData(size = AvatarSize.SelectedRoom), + heroes = roomSummary.heroes.map { user -> + user.getAvatarData(size = AvatarSize.SelectedRoom) + }.toImmutableList() + ) Text( // If name is null, we do not have space to render "No room name", so just use `#` here. text = roomSummary.name ?: "#", diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderFactories.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderFactories.kt index 4c5309e2bd..95b23f54a1 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderFactories.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderFactories.kt @@ -22,18 +22,24 @@ import coil.ImageLoader import coil.ImageLoaderFactory import coil.decode.GifDecoder import coil.decode.ImageDecoderDecoder +import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.libraries.di.AppScope import io.element.android.libraries.di.ApplicationContext import io.element.android.libraries.matrix.api.MatrixClient import okhttp3.OkHttpClient import javax.inject.Inject import javax.inject.Provider -class LoggedInImageLoaderFactory( - private val context: Context, - private val matrixClient: MatrixClient, +interface LoggedInImageLoaderFactory { + fun newImageLoader(matrixClient: MatrixClient): ImageLoader +} + +@ContributesBinding(AppScope::class) +class DefaultLoggedInImageLoaderFactory @Inject constructor( + @ApplicationContext private val context: Context, private val okHttpClient: Provider, -) : ImageLoaderFactory { - override fun newImageLoader(): ImageLoader { +) : LoggedInImageLoaderFactory { + override fun newImageLoader(matrixClient: MatrixClient): ImageLoader { return ImageLoader .Builder(context) .okHttpClient { okHttpClient.get() } diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderHolder.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderHolder.kt index fc027d0e5c..10f81f254d 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderHolder.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/media/ImageLoaderHolder.kt @@ -16,29 +16,25 @@ package io.element.android.libraries.matrix.ui.media -import android.content.Context import coil.ImageLoader import com.squareup.anvil.annotations.ContributesBinding import io.element.android.libraries.di.AppScope -import io.element.android.libraries.di.ApplicationContext import io.element.android.libraries.di.SingleIn import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.sessionstorage.api.observer.SessionListener import io.element.android.libraries.sessionstorage.api.observer.SessionObserver -import okhttp3.OkHttpClient import javax.inject.Inject -import javax.inject.Provider interface ImageLoaderHolder { fun get(client: MatrixClient): ImageLoader + fun remove(sessionId: SessionId) } @ContributesBinding(AppScope::class) @SingleIn(AppScope::class) class DefaultImageLoaderHolder @Inject constructor( - @ApplicationContext private val context: Context, - private val okHttpClient: Provider, + private val loggedInImageLoaderFactory: LoggedInImageLoaderFactory, private val sessionObserver: SessionObserver, ) : ImageLoaderHolder { private val map = mutableMapOf() @@ -52,7 +48,7 @@ class DefaultImageLoaderHolder @Inject constructor( override suspend fun onSessionCreated(userId: String) = Unit override suspend fun onSessionDeleted(userId: String) { - map.remove(SessionId(userId)) + remove(SessionId(userId)) } }) } @@ -60,12 +56,15 @@ class DefaultImageLoaderHolder @Inject constructor( override fun get(client: MatrixClient): ImageLoader { return synchronized(map) { map.getOrPut(client.sessionId) { - LoggedInImageLoaderFactory( - context = context, - matrixClient = client, - okHttpClient = okHttpClient, - ).newImageLoader() + loggedInImageLoaderFactory + .newImageLoader(client) } } } + + override fun remove(sessionId: SessionId) { + synchronized(map) { + map.remove(sessionId) + } + } } diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/RoomMemberProfilesCache.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/RoomMemberProfilesCache.kt new file mode 100644 index 0000000000..32f82cece1 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/RoomMemberProfilesCache.kt @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages + +import androidx.compose.runtime.staticCompositionLocalOf +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.room.RoomMember +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import javax.inject.Inject + +class RoomMemberProfilesCache @Inject constructor() { + private val cache = MutableStateFlow(mapOf()) + + private val _lastCacheUpdate = MutableStateFlow(0L) + val lastCacheUpdate: StateFlow = _lastCacheUpdate + + fun replace(items: List) { + cache.value = items.associateBy { it.userId } + _lastCacheUpdate.tryEmit(_lastCacheUpdate.value + 1) + } + + fun getDisplayName(userId: UserId): String? { + return cache.value[userId]?.disambiguatedDisplayName + } +} + +val LocalRoomMemberProfilesCache = staticCompositionLocalOf { + RoomMemberProfilesCache() +} diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToDetails.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToDetails.kt new file mode 100644 index 0000000000..18202e5df2 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToDetails.kt @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages.reply + +import androidx.compose.runtime.Immutable +import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.permalink.PermalinkParser +import io.element.android.libraries.matrix.api.timeline.item.event.EventContent +import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo +import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent +import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails +import io.element.android.libraries.matrix.api.timeline.item.event.StickerContent +import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType +import io.element.android.libraries.matrix.ui.messages.toPlainText + +@Immutable +sealed interface InReplyToDetails { + data class Ready( + val eventId: EventId, + val senderId: UserId, + val senderProfile: ProfileTimelineDetails, + val eventContent: EventContent?, + val textContent: String?, + ) : InReplyToDetails + + data class Loading(val eventId: EventId) : InReplyToDetails + data class Error(val eventId: EventId, val message: String) : InReplyToDetails +} + +fun InReplyToDetails.eventId() = when (this) { + is InReplyToDetails.Ready -> eventId + is InReplyToDetails.Loading -> eventId + is InReplyToDetails.Error -> eventId +} + +fun InReplyTo.map( + permalinkParser: PermalinkParser, +) = when (this) { + is InReplyTo.Ready -> InReplyToDetails.Ready( + eventId = eventId, + senderId = senderId, + senderProfile = senderProfile, + eventContent = content, + textContent = when (content) { + is MessageContent -> { + val messageContent = content as MessageContent + (messageContent.type as? TextMessageType)?.toPlainText(permalinkParser = permalinkParser) ?: messageContent.body + } + is StickerContent -> { + val stickerContent = content as StickerContent + stickerContent.body + } + else -> null + } + ) + is InReplyTo.Error -> InReplyToDetails.Error(eventId, message) + is InReplyTo.NotLoaded -> InReplyToDetails.Loading(eventId) + is InReplyTo.Pending -> InReplyToDetails.Loading(eventId) +} diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToDetailsProvider.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToDetailsProvider.kt new file mode 100644 index 0000000000..cbb137b293 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToDetailsProvider.kt @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages.reply + +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.media.MediaSource +import io.element.android.libraries.matrix.api.poll.PollKind +import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.EmoteMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.EventContent +import io.element.android.libraries.matrix.api.timeline.item.event.FileMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.ImageMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.LocationMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent +import io.element.android.libraries.matrix.api.timeline.item.event.MessageType +import io.element.android.libraries.matrix.api.timeline.item.event.NoticeMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.PollContent +import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails +import io.element.android.libraries.matrix.api.timeline.item.event.RedactedContent +import io.element.android.libraries.matrix.api.timeline.item.event.StickerMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecryptContent +import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.VoiceMessageType +import kotlinx.collections.immutable.persistentListOf +import kotlinx.collections.immutable.persistentMapOf + +open class InReplyToDetailsProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + aMessageContent( + body = "Message which are being replied.", + type = TextMessageType("Message which are being replied.", null) + ), + aMessageContent( + body = "Message which are being replied, and which was long enough to be displayed on two lines (only!).", + type = TextMessageType("Message which are being replied, and which was long enough to be displayed on two lines (only!).", null) + ), + aMessageContent( + body = "Video", + type = VideoMessageType("Video", null, null, MediaSource("url"), null), + ), + aMessageContent( + body = "Audio", + type = AudioMessageType("Audio", MediaSource("url"), null), + ), + aMessageContent( + body = "Voice", + type = VoiceMessageType("Voice", MediaSource("url"), null, null), + ), + aMessageContent( + body = "Image", + type = ImageMessageType("Image", null, null, MediaSource("url"), null), + ), + aMessageContent( + body = "Sticker", + type = StickerMessageType("Image", MediaSource("url"), null), + ), + aMessageContent( + body = "File", + type = FileMessageType("File", MediaSource("url"), null), + ), + aMessageContent( + body = "Location", + type = LocationMessageType("Location", "geo:1,2", null), + ), + aMessageContent( + body = "Notice", + type = NoticeMessageType("Notice", null), + ), + aMessageContent( + body = "Emote", + type = EmoteMessageType("Emote", null), + ), + PollContent( + question = "Poll which are being replied.", + kind = PollKind.Disclosed, + maxSelections = 1u, + answers = persistentListOf(), + votes = persistentMapOf(), + endTime = null, + isEdited = false, + ), + ).map { + aInReplyToDetails( + eventContent = it, + ) + } +} + +class InReplyToDetailsDisambiguatedProvider : InReplyToDetailsProvider() { + override val values: Sequence + get() = sequenceOf( + aMessageContent( + body = "Message which are being replied.", + type = TextMessageType("Message which are being replied.", null) + ), + ).map { + aInReplyToDetails( + displayNameAmbiguous = true, + eventContent = it, + ) + } +} + +class InReplyToDetailsInformativeProvider : InReplyToDetailsProvider() { + override val values: Sequence + get() = sequenceOf( + RedactedContent, + UnableToDecryptContent(UnableToDecryptContent.Data.Unknown), + ).map { + aInReplyToDetails( + eventContent = it, + ) + } +} + +class InReplyToDetailsOtherProvider : InReplyToDetailsProvider() { + override val values: Sequence + get() = sequenceOf( + InReplyToDetails.Loading(eventId = EventId("\$anEventId")), + InReplyToDetails.Error(eventId = EventId("\$anEventId"), message = "An error message."), + ) +} + +private fun aMessageContent( + body: String, + type: MessageType, +) = MessageContent( + body = body, + inReplyTo = null, + isEdited = false, + isThreaded = false, + type = type, +) + +private fun aInReplyToDetails( + eventContent: EventContent, + displayNameAmbiguous: Boolean = false, +) = InReplyToDetails.Ready( + eventId = EventId("\$event"), + eventContent = eventContent, + senderId = UserId("@Sender:domain"), + senderProfile = aProfileTimelineDetailsReady( + displayNameAmbiguous = displayNameAmbiguous, + ), + textContent = (eventContent as? MessageContent)?.body.orEmpty(), +) + +fun aProfileTimelineDetailsReady( + displayName: String? = "Sender", + displayNameAmbiguous: Boolean = false, + avatarUrl: String? = null, +) = ProfileTimelineDetails.Ready( + displayName = displayName, + displayNameAmbiguous = displayNameAmbiguous, + avatarUrl = avatarUrl, +) diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToMetadata.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToMetadata.kt new file mode 100644 index 0000000000..689d38e3b7 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToMetadata.kt @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages.reply + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.Immutable +import androidx.compose.ui.res.stringResource +import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.CallNotifyContent +import io.element.android.libraries.matrix.api.timeline.item.event.FailedToParseMessageLikeContent +import io.element.android.libraries.matrix.api.timeline.item.event.FailedToParseStateContent +import io.element.android.libraries.matrix.api.timeline.item.event.FileMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.ImageMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.LegacyCallInviteContent +import io.element.android.libraries.matrix.api.timeline.item.event.LocationMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent +import io.element.android.libraries.matrix.api.timeline.item.event.PollContent +import io.element.android.libraries.matrix.api.timeline.item.event.ProfileChangeContent +import io.element.android.libraries.matrix.api.timeline.item.event.RedactedContent +import io.element.android.libraries.matrix.api.timeline.item.event.RoomMembershipContent +import io.element.android.libraries.matrix.api.timeline.item.event.StateContent +import io.element.android.libraries.matrix.api.timeline.item.event.StickerContent +import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecryptContent +import io.element.android.libraries.matrix.api.timeline.item.event.UnknownContent +import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.VoiceMessageType +import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo +import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType +import io.element.android.libraries.ui.strings.CommonStrings + +@Immutable +internal sealed interface InReplyToMetadata { + data class Thumbnail( + val attachmentThumbnailInfo: AttachmentThumbnailInfo + ) : InReplyToMetadata { + val text: String = attachmentThumbnailInfo.textContent.orEmpty() + } + + data class Text( + val text: String + ) : InReplyToMetadata + + sealed interface Informative : InReplyToMetadata + + data object Redacted : Informative + data object UnableToDecrypt : Informative +} + +/** + * Computes metadata for the in reply to message. + * + * Metadata can be either a thumbnail with a text OR just a text. + */ +@Composable +internal fun InReplyToDetails.Ready.metadata(): InReplyToMetadata? = when (eventContent) { + is MessageContent -> when (val type = eventContent.type) { + is ImageMessageType -> InReplyToMetadata.Thumbnail( + AttachmentThumbnailInfo( + thumbnailSource = type.info?.thumbnailSource ?: type.source, + textContent = eventContent.body, + type = AttachmentThumbnailType.Image, + blurHash = type.info?.blurhash, + ) + ) + is VideoMessageType -> InReplyToMetadata.Thumbnail( + AttachmentThumbnailInfo( + thumbnailSource = type.info?.thumbnailSource, + textContent = eventContent.body, + type = AttachmentThumbnailType.Video, + blurHash = type.info?.blurhash, + ) + ) + is FileMessageType -> InReplyToMetadata.Thumbnail( + AttachmentThumbnailInfo( + thumbnailSource = type.info?.thumbnailSource, + textContent = eventContent.body, + type = AttachmentThumbnailType.File, + ) + ) + is LocationMessageType -> InReplyToMetadata.Thumbnail( + AttachmentThumbnailInfo( + textContent = stringResource(CommonStrings.common_shared_location), + type = AttachmentThumbnailType.Location, + ) + ) + is AudioMessageType -> InReplyToMetadata.Thumbnail( + AttachmentThumbnailInfo( + textContent = eventContent.body, + type = AttachmentThumbnailType.Audio, + ) + ) + is VoiceMessageType -> InReplyToMetadata.Thumbnail( + AttachmentThumbnailInfo( + textContent = stringResource(CommonStrings.common_voice_message), + type = AttachmentThumbnailType.Voice, + ) + ) + else -> InReplyToMetadata.Text(textContent ?: eventContent.body) + } + is StickerContent -> InReplyToMetadata.Thumbnail( + AttachmentThumbnailInfo( + thumbnailSource = eventContent.source, + textContent = eventContent.body, + type = AttachmentThumbnailType.Image, + blurHash = eventContent.info.blurhash, + ) + ) + is PollContent -> InReplyToMetadata.Thumbnail( + AttachmentThumbnailInfo( + textContent = eventContent.question, + type = AttachmentThumbnailType.Poll, + ) + ) + is RedactedContent -> InReplyToMetadata.Redacted + is UnableToDecryptContent -> InReplyToMetadata.UnableToDecrypt + is FailedToParseMessageLikeContent, + is FailedToParseStateContent, + is ProfileChangeContent, + is RoomMembershipContent, + is StateContent, + UnknownContent, + is LegacyCallInviteContent, + is CallNotifyContent, + null -> null +} diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToView.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToView.kt new file mode 100644 index 0000000000..fb70314ee3 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToView.kt @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages.reply + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.unit.dp +import io.element.android.compound.theme.ElementTheme +import io.element.android.libraries.designsystem.atomic.atoms.PlaceholderAtom +import io.element.android.libraries.designsystem.icons.CompoundDrawables +import io.element.android.libraries.designsystem.preview.ElementPreview +import io.element.android.libraries.designsystem.preview.PreviewsDayNight +import io.element.android.libraries.designsystem.theme.components.Icon +import io.element.android.libraries.designsystem.theme.components.Text +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails +import io.element.android.libraries.matrix.api.timeline.item.event.getDisambiguatedDisplayName +import io.element.android.libraries.matrix.ui.components.AttachmentThumbnail +import io.element.android.libraries.matrix.ui.messages.sender.SenderName +import io.element.android.libraries.matrix.ui.messages.sender.SenderNameMode +import io.element.android.libraries.ui.strings.CommonStrings + +@Composable +fun InReplyToView( + inReplyTo: InReplyToDetails, + modifier: Modifier = Modifier, +) { + when (inReplyTo) { + is InReplyToDetails.Ready -> { + ReplyToReadyContent( + senderId = inReplyTo.senderId, + senderProfile = inReplyTo.senderProfile, + metadata = inReplyTo.metadata(), + modifier = modifier + ) + } + is InReplyToDetails.Error -> + ReplyToErrorContent(data = inReplyTo, modifier = modifier) + is InReplyToDetails.Loading -> + ReplyToLoadingContent(modifier = modifier) + } +} + +@Composable +private fun ReplyToReadyContent( + senderId: UserId, + senderProfile: ProfileTimelineDetails, + metadata: InReplyToMetadata?, + modifier: Modifier = Modifier, +) { + val paddings = if (metadata is InReplyToMetadata.Thumbnail) { + PaddingValues(start = 4.dp, end = 12.dp, top = 4.dp, bottom = 4.dp) + } else { + PaddingValues(horizontal = 12.dp, vertical = 4.dp) + } + Row( + modifier + .background(MaterialTheme.colorScheme.surface) + .padding(paddings) + ) { + if (metadata is InReplyToMetadata.Thumbnail) { + AttachmentThumbnail( + info = metadata.attachmentThumbnailInfo, + backgroundColor = MaterialTheme.colorScheme.surfaceVariant, + modifier = Modifier + .size(36.dp) + .clip(RoundedCornerShape(4.dp)) + ) + Spacer(modifier = Modifier.width(8.dp)) + } + val a11InReplyToText = stringResource(CommonStrings.common_in_reply_to, senderProfile.getDisambiguatedDisplayName(senderId)) + Column(verticalArrangement = Arrangement.SpaceBetween) { + SenderName( + senderId = senderId, + senderProfile = senderProfile, + senderNameMode = SenderNameMode.Reply, + modifier = Modifier.semantics { + contentDescription = a11InReplyToText + }, + ) + ReplyToContentText(metadata) + } + } +} + +@Composable +private fun ReplyToLoadingContent( + modifier: Modifier = Modifier, +) { + val paddings = PaddingValues(horizontal = 12.dp, vertical = 4.dp) + Row( + modifier + .background(MaterialTheme.colorScheme.surface) + .padding(paddings) + ) { + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + PlaceholderAtom(width = 80.dp, height = 12.dp) + PlaceholderAtom(width = 140.dp, height = 14.dp) + } + } +} + +@Composable +private fun ReplyToErrorContent( + data: InReplyToDetails.Error, + modifier: Modifier = Modifier, +) { + val paddings = PaddingValues(horizontal = 12.dp, vertical = 4.dp) + Row( + modifier + .background(MaterialTheme.colorScheme.surface) + .padding(paddings) + ) { + Text( + text = data.message, + style = ElementTheme.typography.fontBodyMdRegular, + color = MaterialTheme.colorScheme.error, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + } +} + +@Composable +private fun ReplyToContentText(metadata: InReplyToMetadata?) { + val text = when (metadata) { + InReplyToMetadata.Redacted -> stringResource(id = CommonStrings.common_message_removed) + InReplyToMetadata.UnableToDecrypt -> stringResource(id = CommonStrings.common_waiting_for_decryption_key) + is InReplyToMetadata.Text -> metadata.text + is InReplyToMetadata.Thumbnail -> metadata.text + null -> "" + } + val iconResourceId = when (metadata) { + InReplyToMetadata.Redacted -> CompoundDrawables.ic_compound_delete + InReplyToMetadata.UnableToDecrypt -> CompoundDrawables.ic_compound_time + else -> null + } + val fontStyle = when (metadata) { + is InReplyToMetadata.Informative -> FontStyle.Italic + else -> FontStyle.Normal + } + Row( + verticalAlignment = Alignment.CenterVertically, + ) { + if (iconResourceId != null) { + Icon( + resourceId = iconResourceId, + tint = MaterialTheme.colorScheme.secondary, + contentDescription = null, + modifier = Modifier.size(16.dp) + ) + Spacer(modifier = Modifier.width(4.dp)) + } + Text( + text = text, + style = ElementTheme.typography.fontBodyMdRegular, + fontStyle = fontStyle, + textAlign = TextAlign.Start, + color = MaterialTheme.colorScheme.secondary, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + } +} + +@PreviewsDayNight +@Composable +internal fun InReplyToViewPreview(@PreviewParameter(provider = InReplyToDetailsProvider::class) inReplyTo: InReplyToDetails) = ElementPreview { + InReplyToView(inReplyTo) +} diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderName.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderName.kt new file mode 100644 index 0000000000..5ff84ff292 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderName.kt @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages.sender + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clipToBounds +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.unit.dp +import io.element.android.compound.theme.ElementTheme +import io.element.android.libraries.designsystem.preview.ElementPreview +import io.element.android.libraries.designsystem.preview.PreviewsDayNight +import io.element.android.libraries.designsystem.theme.components.Text +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails + +// https://www.figma.com/file/Ni6Ii8YKtmXCKYNE90cC67/Timeline-(new)?type=design&node-id=917-80169&mode=design&t=A0CJCBbMqR8NOwUQ-0 +@Composable +fun SenderName( + senderId: UserId, + senderProfile: ProfileTimelineDetails, + senderNameMode: SenderNameMode, + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier, + horizontalArrangement = Arrangement.spacedBy(4.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + when (senderProfile) { + is ProfileTimelineDetails.Error, + ProfileTimelineDetails.Pending, + ProfileTimelineDetails.Unavailable -> { + MainText(text = senderId.value, mode = senderNameMode) + } + is ProfileTimelineDetails.Ready -> { + val displayName = senderProfile.displayName + if (displayName.isNullOrEmpty()) { + MainText(text = senderId.value, mode = senderNameMode) + } else { + MainText(text = displayName, mode = senderNameMode) + if (senderProfile.displayNameAmbiguous) { + SecondaryText(text = senderId.value, mode = senderNameMode) + } + } + } + } + } +} + +@Composable +private fun RowScope.MainText( + text: String, + mode: SenderNameMode, +) { + val style = when (mode) { + is SenderNameMode.Timeline -> ElementTheme.typography.fontBodyMdMedium + SenderNameMode.ActionList, + SenderNameMode.Reply -> ElementTheme.typography.fontBodySmMedium + } + val modifier = when (mode) { + is SenderNameMode.Timeline -> Modifier.alignByBaseline() + SenderNameMode.ActionList, + SenderNameMode.Reply -> Modifier + } + val color = when (mode) { + is SenderNameMode.Timeline -> mode.mainColor + SenderNameMode.ActionList, + SenderNameMode.Reply -> MaterialTheme.colorScheme.primary + } + Text( + modifier = modifier.clipToBounds(), + text = text, + style = style, + color = color, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) +} + +@Composable +private fun RowScope.SecondaryText( + text: String, + mode: SenderNameMode, +) { + val style = when (mode) { + is SenderNameMode.Timeline -> ElementTheme.typography.fontBodySmRegular + SenderNameMode.ActionList, + SenderNameMode.Reply -> ElementTheme.typography.fontBodyXsRegular + } + val modifier = when (mode) { + is SenderNameMode.Timeline -> Modifier.alignByBaseline() + SenderNameMode.ActionList, + SenderNameMode.Reply -> Modifier + } + Text( + modifier = modifier.clipToBounds(), + text = text, + style = style, + color = MaterialTheme.colorScheme.secondary, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) +} + +@PreviewsDayNight +@Composable +internal fun SenderNamePreview( + @PreviewParameter(SenderNameDataProvider::class) senderNameData: SenderNameData, +) = ElementPreview { + SenderName( + senderId = senderNameData.userId, + senderProfile = senderNameData.profileTimelineDetails, + senderNameMode = senderNameData.senderNameMode, + ) +} diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameDataProvider.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameDataProvider.kt new file mode 100644 index 0000000000..1f5caefcf0 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameDataProvider.kt @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages.sender + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails + +data class SenderNameData( + val userId: UserId, + val profileTimelineDetails: ProfileTimelineDetails, + val senderNameMode: SenderNameMode, +) + +open class SenderNameDataProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + SenderNameMode.Timeline(mainColor = Color.Red), + SenderNameMode.Reply, + SenderNameMode.ActionList, + ) + .flatMap { senderNameMode -> + sequenceOf( + aSenderNameData( + senderNameMode = senderNameMode, + ), + aSenderNameData( + senderNameMode = senderNameMode, + displayNameAmbiguous = true, + ), + SenderNameData( + senderNameMode = senderNameMode, + userId = UserId("@alice:${senderNameMode.javaClass.simpleName.lowercase()}"), + profileTimelineDetails = ProfileTimelineDetails.Unavailable, + ), + ) + } +} + +private fun aSenderNameData( + senderNameMode: SenderNameMode, + displayNameAmbiguous: Boolean = false, +) = SenderNameData( + userId = UserId("@alice:${senderNameMode.javaClass.simpleName.lowercase()}"), + profileTimelineDetails = ProfileTimelineDetails.Ready( + displayName = "Alice ${senderNameMode.javaClass.simpleName}", + displayNameAmbiguous = displayNameAmbiguous, + avatarUrl = null + ), + senderNameMode = senderNameMode, +) diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameMode.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameMode.kt new file mode 100644 index 0000000000..99190d17b9 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameMode.kt @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages.sender + +import androidx.compose.runtime.Immutable +import androidx.compose.ui.graphics.Color + +@Immutable +sealed interface SenderNameMode { + data class Timeline(val mainColor: Color) : SenderNameMode + data object Reply : SenderNameMode + data object ActionList : SenderNameMode +} diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/InviteSender.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/InviteSender.kt index 410fb7edbd..dcc8e6e327 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/InviteSender.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/InviteSender.kt @@ -60,10 +60,5 @@ data class InviteSender( fun RoomMember.toInviteSender() = InviteSender( userId = userId, displayName = displayName ?: "", - avatarData = AvatarData( - id = userId.value, - name = displayName, - url = avatarUrl, - size = AvatarSize.InviteSender, - ), + avatarData = getAvatarData(size = AvatarSize.InviteSender), ) diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/RoomMemberExtension.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/RoomMemberExtension.kt new file mode 100644 index 0000000000..95ec1cc230 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/RoomMemberExtension.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.model + +import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.matrix.api.room.RoomMember + +fun RoomMember.getAvatarData(size: AvatarSize) = AvatarData( + id = userId.value, + name = displayName, + url = avatarUrl, + size = size, +) diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/RoomSummaryExtension.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/RoomSummaryExtension.kt new file mode 100644 index 0000000000..dd86d375f3 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/RoomSummaryExtension.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.model + +import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails + +fun RoomSummaryDetails.getAvatarData(size: AvatarSize) = AvatarData( + id = roomId.value, + name = name, + url = avatarUrl, + size = size, +) diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/room/MatrixRoomMembers.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/room/MatrixRoomMembers.kt index 668b963bf1..38fed2a60c 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/room/MatrixRoomMembers.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/room/MatrixRoomMembers.kt @@ -63,3 +63,14 @@ fun MatrixRoom.getDirectRoomMember(roomMembersState: MatrixRoomMembersState): St } } } + +@Composable +fun MatrixRoom.getCurrentRoomMember(roomMembersState: MatrixRoomMembersState): State { + val roomMembers = roomMembersState.roomMembers() + return remember(roomMembersState) { + derivedStateOf { + roomMembers + ?.find { it.userId == sessionId } + } + } +} diff --git a/libraries/matrixui/src/main/res/values-el/translations.xml b/libraries/matrixui/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..089c4d49c3 --- /dev/null +++ b/libraries/matrixui/src/main/res/values-el/translations.xml @@ -0,0 +1,4 @@ + + + "%1$s (%2$s) σέ προσκάλεσε" + diff --git a/libraries/matrixui/src/main/res/values-et/translations.xml b/libraries/matrixui/src/main/res/values-et/translations.xml new file mode 100644 index 0000000000..5e36d57d33 --- /dev/null +++ b/libraries/matrixui/src/main/res/values-et/translations.xml @@ -0,0 +1,4 @@ + + + "%1$s (%2$s) saatis sulle kutse" + diff --git a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/media/DefaultImageLoaderHolderTest.kt b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/media/DefaultImageLoaderHolderTest.kt new file mode 100644 index 0000000000..46a29840b3 --- /dev/null +++ b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/media/DefaultImageLoaderHolderTest.kt @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.media + +import androidx.test.platform.app.InstrumentationRegistry +import coil.ImageLoader +import com.google.common.truth.Truth.assertThat +import io.element.android.libraries.matrix.api.MatrixClient +import io.element.android.libraries.matrix.test.A_SESSION_ID +import io.element.android.libraries.matrix.test.FakeMatrixClient +import io.element.android.libraries.sessionstorage.test.observer.FakeSessionObserver +import io.element.android.libraries.sessionstorage.test.observer.NoOpSessionObserver +import io.element.android.tests.testutils.lambda.lambdaRecorder +import io.element.android.tests.testutils.lambda.value +import kotlinx.coroutines.test.runTest +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +@RunWith(RobolectricTestRunner::class) +class DefaultImageLoaderHolderTest { + @Test + fun `get - returns the same ImageLoader for the same client`() { + val context = InstrumentationRegistry.getInstrumentation().context + val lambda = lambdaRecorder { ImageLoader.Builder(context).build() } + + val holder = DefaultImageLoaderHolder( + loggedInImageLoaderFactory = FakeLoggedInImageLoaderFactory(lambda), + sessionObserver = NoOpSessionObserver() + ) + val client = FakeMatrixClient() + val imageLoader1 = holder.get(client) + val imageLoader2 = holder.get(client) + assert(imageLoader1 === imageLoader2) + lambda.assertions() + .isCalledOnce() + .with(value(client)) + } + + @Test + fun `when session is deleted, the image loader is deleted`() = runTest { + val context = InstrumentationRegistry.getInstrumentation().context + val lambda = + lambdaRecorder { ImageLoader.Builder(context).build() } + val sessionObserver = FakeSessionObserver() + val holder = DefaultImageLoaderHolder( + loggedInImageLoaderFactory = FakeLoggedInImageLoaderFactory(lambda), + sessionObserver = sessionObserver + ) + assertThat(sessionObserver.listeners.size).isEqualTo(1) + val client = FakeMatrixClient() + holder.get(client) + sessionObserver.onSessionDeleted(client.sessionId.value) + holder.get(client) + lambda.assertions() + .isCalledExactly(2) + } + + @Test + fun `when session is created, nothing happen`() = runTest { + val context = InstrumentationRegistry.getInstrumentation().context + val lambda = + lambdaRecorder { ImageLoader.Builder(context).build() } + val sessionObserver = FakeSessionObserver() + DefaultImageLoaderHolder( + loggedInImageLoaderFactory = FakeLoggedInImageLoaderFactory(lambda), + sessionObserver = sessionObserver + ) + assertThat(sessionObserver.listeners.size).isEqualTo(1) + sessionObserver.onSessionCreated(A_SESSION_ID.value) + } +} diff --git a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/media/FakeLoggedInImageLoaderFactory.kt b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/media/FakeLoggedInImageLoaderFactory.kt new file mode 100644 index 0000000000..76ba75c5b9 --- /dev/null +++ b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/media/FakeLoggedInImageLoaderFactory.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.media + +import coil.ImageLoader +import io.element.android.libraries.matrix.api.MatrixClient + +class FakeLoggedInImageLoaderFactory( + private val newImageLoaderLambda: (MatrixClient) -> ImageLoader +) : LoggedInImageLoaderFactory { + override fun newImageLoader(matrixClient: MatrixClient): ImageLoader { + return newImageLoaderLambda(matrixClient) + } +} diff --git a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/ToHtmlDocumentTest.kt b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/ToHtmlDocumentTest.kt new file mode 100644 index 0000000000..dc41b03239 --- /dev/null +++ b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/ToHtmlDocumentTest.kt @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages + +import android.net.Uri +import com.google.common.truth.Truth.assertThat +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.permalink.PermalinkData +import io.element.android.libraries.matrix.api.permalink.PermalinkParser +import io.element.android.libraries.matrix.api.timeline.item.event.FormattedBody +import io.element.android.libraries.matrix.api.timeline.item.event.MessageFormat +import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +@RunWith(RobolectricTestRunner::class) +class ToHtmlDocumentTest { + @Test + fun `toHtmlDocument - returns null if format is not HTML`() { + val body = FormattedBody( + format = MessageFormat.UNKNOWN, + body = "Hello world" + ) + + val document = body.toHtmlDocument(permalinkParser = FakePermalinkParser()) + + assertThat(document).isNull() + } + + @Test + fun `toHtmlDocument - returns a Document if the format is HTML`() { + val body = FormattedBody( + format = MessageFormat.HTML, + body = "

Hello world

" + ) + + val document = body.toHtmlDocument(permalinkParser = FakePermalinkParser()) + assertThat(document).isNotNull() + assertThat(document?.text()).isEqualTo("Hello world") + } + + @Test + fun `toHtmlDocument - returns a Document with a prefix if provided`() { + val body = FormattedBody( + format = MessageFormat.HTML, + body = "

Hello world

" + ) + + val document = body.toHtmlDocument( + permalinkParser = FakePermalinkParser(), + prefix = "@Jorge:" + ) + assertThat(document).isNotNull() + assertThat(document?.text()).isEqualTo("@Jorge: Hello world") + } + + @Test + fun `toHtmlDocument - if a mention is found without an '@' prefix, it will be added`() { + val body = FormattedBody( + format = MessageFormat.HTML, + body = "Hey Alice!" + ) + + val document = body.toHtmlDocument(permalinkParser = object : PermalinkParser { + override fun parse(uriString: String): PermalinkData { + return PermalinkData.UserLink(UserId("@alice:matrix.org")) + } + }) + assertThat(document?.text()).isEqualTo("Hey @Alice!") + } + + @Test + fun `toHtmlDocument - if a mention is found with an '@' prefix, nothing will be done`() { + val body = FormattedBody( + format = MessageFormat.HTML, + body = "Hey @Alice!" + ) + + val document = body.toHtmlDocument(permalinkParser = object : PermalinkParser { + override fun parse(uriString: String): PermalinkData { + return PermalinkData.UserLink(UserId("@alice:matrix.org")) + } + }) + assertThat(document?.text()).isEqualTo("Hey @Alice!") + } + + @Test + fun `toHtmlDocument - if a link is not a mention, nothing will be done for it`() { + val body = FormattedBody( + format = MessageFormat.HTML, + body = "Hey Alice!" + ) + + val document = body.toHtmlDocument(permalinkParser = object : PermalinkParser { + override fun parse(uriString: String): PermalinkData { + return PermalinkData.FallbackLink(uri = Uri.parse("https://matrix.org")) + } + }) + assertThat(document?.text()).isEqualTo("Hey Alice!") + } +} diff --git a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/ToPlainTextTest.kt b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/ToPlainTextTest.kt new file mode 100644 index 0000000000..2146f951c0 --- /dev/null +++ b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/ToPlainTextTest.kt @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages + +import com.google.common.truth.Truth.assertThat +import io.element.android.libraries.matrix.api.timeline.item.event.FormattedBody +import io.element.android.libraries.matrix.api.timeline.item.event.MessageFormat +import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType +import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser +import org.jsoup.Jsoup +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +@RunWith(RobolectricTestRunner::class) +class ToPlainTextTest { + @Test + fun `Document toPlainText - returns a plain text version of the document`() { + val document = Jsoup.parse( + """ + Hello world +
  • This is an unordered list.
+
  1. This is an ordered list.
+
+ """.trimIndent() + ) + + assertThat(document.toPlainText()).isEqualTo( + """ + Hello world + • This is an unordered list. + 1. This is an ordered list. + """.trimIndent() + ) + } + + @Test + fun `FormattedBody toPlainText - returns a plain text version of the HTML body`() { + val formattedBody = FormattedBody( + format = MessageFormat.HTML, + body = """ + Hello world +
  • This is an unordered list.
+
  1. This is an ordered list.
+
+ """.trimIndent() + ) + assertThat(formattedBody.toPlainText(permalinkParser = FakePermalinkParser())).isEqualTo( + """ + Hello world + • This is an unordered list. + 1. This is an ordered list. + """.trimIndent() + ) + } + + @Test + fun `FormattedBody toPlainText - returns null if the format is not HTML`() { + val formattedBody = FormattedBody( + format = MessageFormat.UNKNOWN, + body = """ + Hello world +
  • This is an unordered list.
+
  1. This is an ordered list.
+
+ """.trimIndent() + ) + assertThat(formattedBody.toPlainText(permalinkParser = FakePermalinkParser())).isNull() + } + + @Test + fun `TextMessageType toPlainText - returns a plain text version of the HTML body`() { + val messageType = TextMessageType( + body = "Hello world\n- This in an unordered list.\n1. This is an ordered list.\n", + formatted = FormattedBody( + format = MessageFormat.HTML, + body = """ + Hello world +
  • This is an unordered list.
+
  1. This is an ordered list.
+
+ """.trimIndent() + ) + ) + assertThat(messageType.toPlainText(permalinkParser = FakePermalinkParser())).isEqualTo( + """ + Hello world + • This is an unordered list. + 1. This is an ordered list. + """.trimIndent() + ) + } + + @Test + fun `TextMessageType toPlainText - returns the markdown body if the formatted one cannot be parsed`() { + val messageType = TextMessageType( + body = "This is the fallback text", + formatted = FormattedBody( + format = MessageFormat.UNKNOWN, + body = """ + Hello world +
  • This is an unordered list.
+
  1. This is an ordered list.
+
+ """.trimIndent() + ) + ) + assertThat(messageType.toPlainText(permalinkParser = FakePermalinkParser())).isEqualTo("This is the fallback text") + } +} diff --git a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToDetailTest.kt b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToDetailTest.kt new file mode 100644 index 0000000000..2bcba69258 --- /dev/null +++ b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToDetailTest.kt @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages.reply + +import com.google.common.truth.Truth.assertThat +import io.element.android.libraries.matrix.api.timeline.item.event.FormattedBody +import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo +import io.element.android.libraries.matrix.api.timeline.item.event.MembershipChange +import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent +import io.element.android.libraries.matrix.api.timeline.item.event.MessageFormat +import io.element.android.libraries.matrix.api.timeline.item.event.RoomMembershipContent +import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType +import io.element.android.libraries.matrix.test.AN_EVENT_ID +import io.element.android.libraries.matrix.test.A_USER_ID +import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser +import io.element.android.libraries.matrix.test.timeline.aProfileTimelineDetails +import org.junit.Test + +class InReplyToDetailTest { + @Test + fun `map - with a not ready InReplyTo return expected object`() { + assertThat( + InReplyTo.Pending(AN_EVENT_ID).map( + permalinkParser = FakePermalinkParser() + ) + ).isEqualTo(InReplyToDetails.Loading(AN_EVENT_ID)) + assertThat( + InReplyTo.NotLoaded(AN_EVENT_ID).map( + permalinkParser = FakePermalinkParser() + ) + ).isEqualTo(InReplyToDetails.Loading(AN_EVENT_ID)) + assertThat( + InReplyTo.Error(AN_EVENT_ID, "a message").map( + permalinkParser = FakePermalinkParser() + ) + ).isEqualTo(InReplyToDetails.Error(AN_EVENT_ID, "a message")) + } + + @Test + fun `map - with something other than a MessageContent has no textContent`() { + val inReplyTo = InReplyTo.Ready( + eventId = AN_EVENT_ID, + senderId = A_USER_ID, + senderProfile = aProfileTimelineDetails(), + content = RoomMembershipContent( + userId = A_USER_ID, + userDisplayName = null, + change = MembershipChange.INVITED, + ) + ) + val inReplyToDetails = inReplyTo.map( + permalinkParser = FakePermalinkParser() + ) + assertThat(inReplyToDetails).isNotNull() + assertThat((inReplyToDetails as InReplyToDetails.Ready).textContent).isNull() + } + + @Test + fun `map - with a message content tries to use the formatted text if exists for its textContent`() { + val inReplyTo = InReplyTo.Ready( + eventId = AN_EVENT_ID, + senderId = A_USER_ID, + senderProfile = aProfileTimelineDetails(), + content = MessageContent( + body = "**Hello!**", + inReplyTo = null, + isEdited = false, + isThreaded = false, + type = TextMessageType( + body = "**Hello!**", + formatted = FormattedBody( + format = MessageFormat.HTML, + body = "

Hello!

" + ) + ) + ) + ) + assertThat( + (inReplyTo.map(permalinkParser = FakePermalinkParser()) as InReplyToDetails.Ready).textContent + ).isEqualTo("Hello!") + } + + @Test + fun `map - with a message content and no formatted body uses body as fallback for textContent`() { + val inReplyTo = InReplyTo.Ready( + eventId = AN_EVENT_ID, + senderId = A_USER_ID, + senderProfile = aProfileTimelineDetails(), + content = MessageContent( + body = "**Hello!**", + inReplyTo = null, + isEdited = false, + isThreaded = false, + type = TextMessageType( + body = "**Hello!**", + formatted = null, + ) + ) + ) + assertThat( + (inReplyTo.map(permalinkParser = FakePermalinkParser()) as InReplyToDetails.Ready).textContent + ).isEqualTo("**Hello!**") + } +} diff --git a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToMetadataKtTest.kt b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToMetadataKtTest.kt new file mode 100644 index 0000000000..c58901d665 --- /dev/null +++ b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToMetadataKtTest.kt @@ -0,0 +1,483 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.messages.reply + +import android.content.res.Configuration +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.platform.LocalConfiguration +import androidx.compose.ui.platform.LocalContext +import androidx.test.core.app.ApplicationProvider +import androidx.test.ext.junit.runners.AndroidJUnit4 +import app.cash.molecule.RecompositionMode +import app.cash.molecule.moleculeFlow +import app.cash.turbine.test +import com.google.common.truth.Truth.assertThat +import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.media.AudioInfo +import io.element.android.libraries.matrix.api.media.FileInfo +import io.element.android.libraries.matrix.api.media.ImageInfo +import io.element.android.libraries.matrix.api.media.VideoInfo +import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.EventContent +import io.element.android.libraries.matrix.api.timeline.item.event.FailedToParseMessageLikeContent +import io.element.android.libraries.matrix.api.timeline.item.event.FailedToParseStateContent +import io.element.android.libraries.matrix.api.timeline.item.event.FileMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.ImageMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.LocationMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.OtherState +import io.element.android.libraries.matrix.api.timeline.item.event.ProfileChangeContent +import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails +import io.element.android.libraries.matrix.api.timeline.item.event.RedactedContent +import io.element.android.libraries.matrix.api.timeline.item.event.RoomMembershipContent +import io.element.android.libraries.matrix.api.timeline.item.event.StateContent +import io.element.android.libraries.matrix.api.timeline.item.event.StickerContent +import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecryptContent +import io.element.android.libraries.matrix.api.timeline.item.event.UnknownContent +import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType +import io.element.android.libraries.matrix.api.timeline.item.event.VoiceMessageType +import io.element.android.libraries.matrix.test.AN_EVENT_ID +import io.element.android.libraries.matrix.test.A_USER_ID +import io.element.android.libraries.matrix.test.media.aMediaSource +import io.element.android.libraries.matrix.test.timeline.aMessageContent +import io.element.android.libraries.matrix.test.timeline.aPollContent +import io.element.android.libraries.matrix.test.timeline.aProfileTimelineDetails +import io.element.android.libraries.matrix.ui.components.A_BLUR_HASH +import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo +import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType +import kotlinx.coroutines.test.runTest +import org.junit.Test +import org.junit.runner.RunWith +import kotlin.time.Duration.Companion.minutes + +@RunWith(AndroidJUnit4::class) +class InReplyToMetadataKtTest { + @Test + fun `any message content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady(eventContent = aMessageContent()).metadata() + }.test { + awaitItem().let { + assertThat(it).isEqualTo(InReplyToMetadata.Text("textContent")) + } + } + } + + @Test + fun `an image message content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = aMessageContent( + messageType = ImageMessageType( + body = "body", + formatted = null, + filename = null, + source = aMediaSource(), + info = anImageInfo(), + ) + ) + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isEqualTo( + InReplyToMetadata.Thumbnail( + attachmentThumbnailInfo = AttachmentThumbnailInfo( + thumbnailSource = aMediaSource(), + textContent = "body", + type = AttachmentThumbnailType.Image, + blurHash = A_BLUR_HASH, + ) + ) + ) + } + } + } + + @Test + fun `a sticker message content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = StickerContent( + body = "body", + info = anImageInfo(), + source = aMediaSource(url = "url") + ) + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isEqualTo( + InReplyToMetadata.Thumbnail( + attachmentThumbnailInfo = AttachmentThumbnailInfo( + thumbnailSource = aMediaSource(url = "url"), + textContent = "body", + type = AttachmentThumbnailType.Image, + blurHash = A_BLUR_HASH, + ) + ) + ) + } + } + } + + @Test + fun `a video message content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = aMessageContent( + messageType = VideoMessageType( + body = "body", + formatted = null, + filename = null, + source = aMediaSource(), + info = aVideoInfo(), + ) + ) + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isEqualTo( + InReplyToMetadata.Thumbnail( + attachmentThumbnailInfo = AttachmentThumbnailInfo( + thumbnailSource = aMediaSource(), + textContent = "body", + type = AttachmentThumbnailType.Video, + blurHash = A_BLUR_HASH, + ) + ) + ) + } + } + } + + @Test + fun `a file message content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = aMessageContent( + messageType = FileMessageType( + body = "body", + source = aMediaSource(), + info = FileInfo( + mimetype = null, + size = null, + thumbnailInfo = null, + thumbnailSource = aMediaSource(), + ), + ) + ) + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isEqualTo( + InReplyToMetadata.Thumbnail( + attachmentThumbnailInfo = AttachmentThumbnailInfo( + thumbnailSource = aMediaSource(), + textContent = "body", + type = AttachmentThumbnailType.File, + blurHash = null, + ) + ) + ) + } + } + } + + @Test + fun `a audio message content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = aMessageContent( + messageType = AudioMessageType( + body = "body", + source = aMediaSource(), + info = AudioInfo( + duration = null, + size = null, + mimetype = null + ), + ) + ) + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isEqualTo( + InReplyToMetadata.Thumbnail( + attachmentThumbnailInfo = AttachmentThumbnailInfo( + textContent = "body", + type = AttachmentThumbnailType.Audio, + blurHash = null, + ) + ) + ) + } + } + } + + @Test + fun `a location message content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + testEnv { + anInReplyToDetailsReady( + eventContent = aMessageContent( + messageType = LocationMessageType( + body = "body", + geoUri = "geo:3.0,4.0;u=5.0", + description = null, + ) + ) + ).metadata() + } + }.test { + awaitItem().let { + assertThat(it).isEqualTo( + InReplyToMetadata.Thumbnail( + attachmentThumbnailInfo = AttachmentThumbnailInfo( + thumbnailSource = null, + textContent = "Shared location", + type = AttachmentThumbnailType.Location, + blurHash = null, + ) + ) + ) + } + } + } + + @Test + fun `a voice message content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + testEnv { + anInReplyToDetailsReady( + eventContent = aMessageContent( + messageType = VoiceMessageType( + body = "body", + source = aMediaSource(), + info = null, + details = null, + ) + ) + ).metadata() + } + }.test { + awaitItem().let { + assertThat(it).isEqualTo( + InReplyToMetadata.Thumbnail( + attachmentThumbnailInfo = AttachmentThumbnailInfo( + thumbnailSource = null, + textContent = "Voice message", + type = AttachmentThumbnailType.Voice, + blurHash = null, + ) + ) + ) + } + } + } + + @Test + fun `a poll content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = aPollContent() + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isEqualTo( + InReplyToMetadata.Thumbnail( + attachmentThumbnailInfo = AttachmentThumbnailInfo( + thumbnailSource = null, + textContent = "Do you like polls?", + type = AttachmentThumbnailType.Poll, + blurHash = null, + ) + ) + ) + } + } + } + + @Test + fun `redacted content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = RedactedContent + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isEqualTo(InReplyToMetadata.Redacted) + } + } + } + + @Test + fun `unable to decrypt content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = UnableToDecryptContent(UnableToDecryptContent.Data.Unknown) + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isEqualTo(InReplyToMetadata.UnableToDecrypt) + } + } + } + + @Test + fun `failed to parse message content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = FailedToParseMessageLikeContent("", "") + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isNull() + } + } + } + + @Test + fun `failed to parse state content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = FailedToParseStateContent("", "", "") + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isNull() + } + } + } + + @Test + fun `profile change content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = ProfileChangeContent("", "", "", "") + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isNull() + } + } + } + + @Test + fun `room membership content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = RoomMembershipContent(A_USER_ID, null, null) + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isNull() + } + } + } + + @Test + fun `state content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = StateContent("", OtherState.RoomJoinRules) + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isNull() + } + } + } + + @Test + fun `unknown content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = UnknownContent + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isNull() + } + } + } + + @Test + fun `null content`() = runTest { + moleculeFlow(RecompositionMode.Immediate) { + anInReplyToDetailsReady( + eventContent = null + ).metadata() + }.test { + awaitItem().let { + assertThat(it).isNull() + } + } + } +} + +private fun anInReplyToDetailsReady( + eventId: EventId = AN_EVENT_ID, + senderId: UserId = A_USER_ID, + senderProfile: ProfileTimelineDetails = aProfileTimelineDetails(), + eventContent: EventContent? = aMessageContent(), + textContent: String? = "textContent", +) = InReplyToDetails.Ready( + eventId = eventId, + senderId = senderId, + senderProfile = senderProfile, + eventContent = eventContent, + textContent = textContent, +) + +fun aVideoInfo(): VideoInfo { + return VideoInfo( + duration = 1.minutes, + height = 100, + width = 100, + mimetype = "video/mp4", + size = 1000, + thumbnailInfo = null, + thumbnailSource = aMediaSource(), + blurhash = A_BLUR_HASH, + ) +} + +fun anImageInfo(): ImageInfo { + return ImageInfo( + height = 100, + width = 100, + mimetype = "image/jpeg", + size = 1000, + thumbnailInfo = null, + thumbnailSource = aMediaSource(), + blurhash = A_BLUR_HASH, + ) +} + +@Composable +private fun testEnv(content: @Composable () -> Any?): Any? { + var result: Any? = null + CompositionLocalProvider( + LocalConfiguration provides Configuration(), + LocalContext provides ApplicationProvider.getApplicationContext(), + ) { + content().apply { + result = this + } + } + return result +} diff --git a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrixui/messages/ToHtmlDocumentTest.kt b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrixui/messages/ToHtmlDocumentTest.kt deleted file mode 100644 index 9dee206339..0000000000 --- a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrixui/messages/ToHtmlDocumentTest.kt +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.libraries.matrixui.messages - -import android.net.Uri -import com.google.common.truth.Truth.assertThat -import io.element.android.libraries.matrix.api.core.UserId -import io.element.android.libraries.matrix.api.permalink.PermalinkData -import io.element.android.libraries.matrix.api.permalink.PermalinkParser -import io.element.android.libraries.matrix.api.timeline.item.event.FormattedBody -import io.element.android.libraries.matrix.api.timeline.item.event.MessageFormat -import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser -import io.element.android.libraries.matrix.ui.messages.toHtmlDocument -import org.junit.Test -import org.junit.runner.RunWith -import org.robolectric.RobolectricTestRunner - -@RunWith(RobolectricTestRunner::class) -class ToHtmlDocumentTest { - @Test - fun `toHtmlDocument - returns null if format is not HTML`() { - val body = FormattedBody( - format = MessageFormat.UNKNOWN, - body = "Hello world" - ) - - val document = body.toHtmlDocument(permalinkParser = FakePermalinkParser()) - - assertThat(document).isNull() - } - - @Test - fun `toHtmlDocument - returns a Document if the format is HTML`() { - val body = FormattedBody( - format = MessageFormat.HTML, - body = "

Hello world

" - ) - - val document = body.toHtmlDocument(permalinkParser = FakePermalinkParser()) - assertThat(document).isNotNull() - assertThat(document?.text()).isEqualTo("Hello world") - } - - @Test - fun `toHtmlDocument - returns a Document with a prefix if provided`() { - val body = FormattedBody( - format = MessageFormat.HTML, - body = "

Hello world

" - ) - - val document = body.toHtmlDocument( - permalinkParser = FakePermalinkParser(), - prefix = "@Jorge:" - ) - assertThat(document).isNotNull() - assertThat(document?.text()).isEqualTo("@Jorge: Hello world") - } - - @Test - fun `toHtmlDocument - if a mention is found without an '@' prefix, it will be added`() { - val body = FormattedBody( - format = MessageFormat.HTML, - body = "Hey Alice!" - ) - - val document = body.toHtmlDocument(permalinkParser = object : PermalinkParser { - override fun parse(uriString: String): PermalinkData { - return PermalinkData.UserLink(UserId("@alice:matrix.org")) - } - }) - assertThat(document?.text()).isEqualTo("Hey @Alice!") - } - - @Test - fun `toHtmlDocument - if a mention is found with an '@' prefix, nothing will be done`() { - val body = FormattedBody( - format = MessageFormat.HTML, - body = "Hey @Alice!" - ) - - val document = body.toHtmlDocument(permalinkParser = object : PermalinkParser { - override fun parse(uriString: String): PermalinkData { - return PermalinkData.UserLink(UserId("@alice:matrix.org")) - } - }) - assertThat(document?.text()).isEqualTo("Hey @Alice!") - } - - @Test - fun `toHtmlDocument - if a link is not a mention, nothing will be done for it`() { - val body = FormattedBody( - format = MessageFormat.HTML, - body = "Hey Alice!" - ) - - val document = body.toHtmlDocument(permalinkParser = object : PermalinkParser { - override fun parse(uriString: String): PermalinkData { - return PermalinkData.FallbackLink(uri = Uri.parse("https://matrix.org")) - } - }) - assertThat(document?.text()).isEqualTo("Hey Alice!") - } -} diff --git a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrixui/messages/ToPlainTextTest.kt b/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrixui/messages/ToPlainTextTest.kt deleted file mode 100644 index 74e43a9e39..0000000000 --- a/libraries/matrixui/src/test/kotlin/io/element/android/libraries/matrixui/messages/ToPlainTextTest.kt +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.libraries.matrixui.messages - -import com.google.common.truth.Truth.assertThat -import io.element.android.libraries.matrix.api.timeline.item.event.FormattedBody -import io.element.android.libraries.matrix.api.timeline.item.event.MessageFormat -import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType -import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser -import io.element.android.libraries.matrix.ui.messages.toPlainText -import org.jsoup.Jsoup -import org.junit.Test -import org.junit.runner.RunWith -import org.robolectric.RobolectricTestRunner - -@RunWith(RobolectricTestRunner::class) -class ToPlainTextTest { - @Test - fun `Document toPlainText - returns a plain text version of the document`() { - val document = Jsoup.parse( - """ - Hello world -
  • This is an unordered list.
-
  1. This is an ordered list.
-
- """.trimIndent() - ) - - assertThat(document.toPlainText()).isEqualTo( - """ - Hello world - • This is an unordered list. - 1. This is an ordered list. - """.trimIndent() - ) - } - - @Test - fun `FormattedBody toPlainText - returns a plain text version of the HTML body`() { - val formattedBody = FormattedBody( - format = MessageFormat.HTML, - body = """ - Hello world -
  • This is an unordered list.
-
  1. This is an ordered list.
-
- """.trimIndent() - ) - assertThat(formattedBody.toPlainText(permalinkParser = FakePermalinkParser())).isEqualTo( - """ - Hello world - • This is an unordered list. - 1. This is an ordered list. - """.trimIndent() - ) - } - - @Test - fun `FormattedBody toPlainText - returns null if the format is not HTML`() { - val formattedBody = FormattedBody( - format = MessageFormat.UNKNOWN, - body = """ - Hello world -
  • This is an unordered list.
-
  1. This is an ordered list.
-
- """.trimIndent() - ) - assertThat(formattedBody.toPlainText(permalinkParser = FakePermalinkParser())).isNull() - } - - @Test - fun `TextMessageType toPlainText - returns a plain text version of the HTML body`() { - val messageType = TextMessageType( - body = "Hello world\n- This in an unordered list.\n1. This is an ordered list.\n", - formatted = FormattedBody( - format = MessageFormat.HTML, - body = """ - Hello world -
  • This is an unordered list.
-
  1. This is an ordered list.
-
- """.trimIndent() - ) - ) - assertThat(messageType.toPlainText(permalinkParser = FakePermalinkParser())).isEqualTo( - """ - Hello world - • This is an unordered list. - 1. This is an ordered list. - """.trimIndent() - ) - } - - @Test - fun `TextMessageType toPlainText - returns the markdown body if the formatted one cannot be parsed`() { - val messageType = TextMessageType( - body = "This is the fallback text", - formatted = FormattedBody( - format = MessageFormat.UNKNOWN, - body = """ - Hello world -
  • This is an unordered list.
-
  1. This is an ordered list.
-
- """.trimIndent() - ) - ) - assertThat(messageType.toPlainText(permalinkParser = FakePermalinkParser())).isEqualTo("This is the fallback text") - } -} diff --git a/libraries/mediaupload/api/build.gradle.kts b/libraries/mediaupload/api/build.gradle.kts index c1e501d02a..eed11265c1 100644 --- a/libraries/mediaupload/api/build.gradle.kts +++ b/libraries/mediaupload/api/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) } android { diff --git a/libraries/mediaupload/impl/build.gradle.kts b/libraries/mediaupload/impl/build.gradle.kts index c65b6b01a6..6e9eb2e7a2 100644 --- a/libraries/mediaupload/impl/build.gradle.kts +++ b/libraries/mediaupload/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) } android { diff --git a/libraries/mediaviewer/api/build.gradle.kts b/libraries/mediaviewer/api/build.gradle.kts index 28590bfcfc..d215267866 100644 --- a/libraries/mediaviewer/api/build.gradle.kts +++ b/libraries/mediaviewer/api/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -67,6 +66,4 @@ dependencies { testImplementation(libs.coroutines.test) testImplementation(libs.androidx.compose.ui.test.junit) testReleaseImplementation(libs.androidx.compose.ui.test.manifest) - - ksp(libs.showkase.processor) } diff --git a/libraries/permissions/api/build.gradle.kts b/libraries/permissions/api/build.gradle.kts index cb60c6c0a7..d8b2ef5969 100644 --- a/libraries/permissions/api/build.gradle.kts +++ b/libraries/permissions/api/build.gradle.kts @@ -15,7 +15,6 @@ */ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) } android { @@ -26,6 +25,4 @@ dependencies { implementation(projects.libraries.architecture) implementation(projects.libraries.designsystem) implementation(projects.libraries.uiStrings) - - ksp(libs.showkase.processor) } diff --git a/libraries/permissions/api/src/main/res/values-el/translations.xml b/libraries/permissions/api/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..61f8eb60bc --- /dev/null +++ b/libraries/permissions/api/src/main/res/values-el/translations.xml @@ -0,0 +1,7 @@ + + + "Για να επιτρέψεις στην εφαρμογή να χρησιμοποιεί την κάμερα, παραχώρησε την άδεια στις ρυθμίσεις συστήματος." + "Παρακαλώ παραχώρησε την άδεια στις ρυθμίσεις συστήματος." + "Για να επιτρέψεις στην εφαρμογή να χρησιμοποιεί το μικρόφωνο, παραχώρησε την άδεια στις ρυθμίσεις συστήματος." + "Για να επιτρέψεις στην εφαρμογή να εμφανίζει ειδοποιήσεις, παραχώρησε την άδεια στις ρυθμίσεις συστήματος." + diff --git a/libraries/permissions/impl/build.gradle.kts b/libraries/permissions/impl/build.gradle.kts index 7b80ef0d4f..4766760005 100644 --- a/libraries/permissions/impl/build.gradle.kts +++ b/libraries/permissions/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) } android { @@ -61,6 +60,4 @@ dependencies { testImplementation(projects.libraries.permissions.test) testImplementation(projects.services.toolbox.test) testImplementation(projects.tests.testutils) - - ksp(libs.showkase.processor) } diff --git a/libraries/permissions/impl/src/main/res/values-el/translations.xml b/libraries/permissions/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..53ea95040f --- /dev/null +++ b/libraries/permissions/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,5 @@ + + + "Έλεγξε ότι η εφαρμογή μπορεί να εμφανίζει ειδοποιήσεις." + "Έλεγχος δικαιωμάτων" + diff --git a/libraries/permissions/impl/src/main/res/values-et/translations.xml b/libraries/permissions/impl/src/main/res/values-et/translations.xml index 688a592323..178b782e92 100644 --- a/libraries/permissions/impl/src/main/res/values-et/translations.xml +++ b/libraries/permissions/impl/src/main/res/values-et/translations.xml @@ -1,4 +1,5 @@ + "Kontrolli, kas rakendus võib kuvada teavitusi." "Täpsusta õigusi" diff --git a/libraries/permissions/impl/src/main/res/values-sv/translations.xml b/libraries/permissions/impl/src/main/res/values-sv/translations.xml new file mode 100644 index 0000000000..ab326464fe --- /dev/null +++ b/libraries/permissions/impl/src/main/res/values-sv/translations.xml @@ -0,0 +1,5 @@ + + + "Kontrollera att applikationen kan visa aviseringar." + "Kontrollera behörigheter" + diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/channels/NotificationChannels.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/channels/NotificationChannels.kt index a40871be4c..3835e9c0a6 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/channels/NotificationChannels.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/channels/NotificationChannels.kt @@ -16,8 +16,6 @@ package io.element.android.libraries.push.impl.notifications.channels -import android.app.NotificationChannel -import android.app.NotificationManager import android.content.Context import android.media.AudioAttributes import android.media.AudioManager @@ -26,8 +24,8 @@ import android.os.Build import androidx.annotation.ChecksSdkIntAtLeast import androidx.core.app.NotificationChannelCompat import androidx.core.app.NotificationManagerCompat -import androidx.core.content.ContextCompat import com.squareup.anvil.annotations.ContributesBinding +import io.element.android.appconfig.NotificationConfig import io.element.android.libraries.di.AppScope import io.element.android.libraries.di.ApplicationContext import io.element.android.libraries.di.SingleIn @@ -38,14 +36,9 @@ import javax.inject.Inject /* ========================================================================================== * IDs for channels * ========================================================================================== */ -private const val LISTENING_FOR_EVENTS_NOTIFICATION_CHANNEL_ID = "LISTEN_FOR_EVENTS_NOTIFICATION_CHANNEL_ID" internal const val SILENT_NOTIFICATION_CHANNEL_ID = "DEFAULT_SILENT_NOTIFICATION_CHANNEL_ID_V2" internal const val NOISY_NOTIFICATION_CHANNEL_ID = "DEFAULT_NOISY_NOTIFICATION_CHANNEL_ID" - -// Legacy channel -private const val CALL_NOTIFICATION_CHANNEL_ID_V2 = "CALL_NOTIFICATION_CHANNEL_ID_V2" - -internal const val CALL_NOTIFICATION_CHANNEL_ID_V3 = "CALL_NOTIFICATION_CHANNEL_ID_V3" +internal const val CALL_NOTIFICATION_CHANNEL_ID = "CALL_NOTIFICATION_CHANNEL_ID_V3" internal const val RINGING_CALL_NOTIFICATION_CHANNEL_ID = "RINGING_CALL_NOTIFICATION_CHANNEL_ID" /** @@ -96,7 +89,7 @@ class DefaultNotificationChannels @Inject constructor( return } - val accentColor = ContextCompat.getColor(context, R.color.notification_accent_color) + val accentColor = NotificationConfig.NOTIFICATION_ACCENT_COLOR // Migration - the noisy channel was deleted and recreated when sound preference was changed (id was DEFAULT_NOISY_NOTIFICATION_CHANNEL_ID_BASE // + currentTimeMillis). @@ -110,80 +103,67 @@ class DefaultNotificationChannels @Inject constructor( } } // Migration - Remove deprecated channels - for (channelId in listOf("DEFAULT_SILENT_NOTIFICATION_CHANNEL_ID", "CALL_NOTIFICATION_CHANNEL_ID")) { + for (channelId in listOf( + "DEFAULT_SILENT_NOTIFICATION_CHANNEL_ID", + "CALL_NOTIFICATION_CHANNEL_ID", + "CALL_NOTIFICATION_CHANNEL_ID_V2", + "LISTEN_FOR_EVENTS_NOTIFICATION_CHANNEL_ID", + )) { notificationManager.getNotificationChannel(channelId)?.let { notificationManager.deleteNotificationChannel(channelId) } } - // Migration - Create new call channel - notificationManager.deleteNotificationChannel(CALL_NOTIFICATION_CHANNEL_ID_V2) - /** * Default notification importance: shows everywhere, makes noise, but does not visually * intrude. */ notificationManager.createNotificationChannel( - NotificationChannel( + NotificationChannelCompat.Builder( NOISY_NOTIFICATION_CHANNEL_ID, - stringProvider.getString(R.string.notification_channel_noisy).ifEmpty { "Noisy notifications" }, - NotificationManager.IMPORTANCE_DEFAULT + NotificationManagerCompat.IMPORTANCE_DEFAULT ) - .apply { - description = stringProvider.getString(R.string.notification_channel_noisy) - enableVibration(true) - enableLights(true) - lightColor = accentColor - } + .setName(stringProvider.getString(R.string.notification_channel_noisy).ifEmpty { "Noisy notifications" }) + .setDescription(stringProvider.getString(R.string.notification_channel_noisy)) + .setVibrationEnabled(true) + .setLightsEnabled(true) + .setLightColor(accentColor) + .build() ) /** * Low notification importance: shows everywhere, but is not intrusive. */ notificationManager.createNotificationChannel( - NotificationChannel( + NotificationChannelCompat.Builder( SILENT_NOTIFICATION_CHANNEL_ID, - stringProvider.getString(R.string.notification_channel_silent).ifEmpty { "Silent notifications" }, - NotificationManager.IMPORTANCE_LOW + NotificationManagerCompat.IMPORTANCE_LOW ) - .apply { - description = stringProvider.getString(R.string.notification_channel_silent) - setSound(null, null) - enableLights(true) - lightColor = accentColor - } - ) - - notificationManager.createNotificationChannel( - NotificationChannel( - LISTENING_FOR_EVENTS_NOTIFICATION_CHANNEL_ID, - stringProvider.getString(R.string.notification_channel_listening_for_events).ifEmpty { "Listening for events" }, - NotificationManager.IMPORTANCE_MIN - ) - .apply { - description = stringProvider.getString(R.string.notification_channel_listening_for_events) - setSound(null, null) - setShowBadge(false) - } + .setName(stringProvider.getString(R.string.notification_channel_silent).ifEmpty { "Silent notifications" }) + .setDescription(stringProvider.getString(R.string.notification_channel_silent)) + .setSound(null, null) + .setLightsEnabled(true) + .setLightColor(accentColor) + .build() ) // Register a channel for incoming and in progress call notifications with no ringing notificationManager.createNotificationChannel( - NotificationChannel( - CALL_NOTIFICATION_CHANNEL_ID_V3, - stringProvider.getString(R.string.notification_channel_call).ifEmpty { "Call" }, - NotificationManager.IMPORTANCE_HIGH + NotificationChannelCompat.Builder( + CALL_NOTIFICATION_CHANNEL_ID, + NotificationManagerCompat.IMPORTANCE_HIGH ) - .apply { - description = stringProvider.getString(R.string.notification_channel_call) - enableVibration(true) - enableLights(true) - lightColor = accentColor - } + .setName(stringProvider.getString(R.string.notification_channel_call).ifEmpty { "Call" }) + .setDescription(stringProvider.getString(R.string.notification_channel_call)) + .setVibrationEnabled(true) + .setLightsEnabled(true) + .setLightColor(accentColor) + .build() ) // Register a channel for incoming call notifications which will ring the device when received - val ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE) + // TODO use a fallback ringtone if the default ringtone is not available + val ringtoneUri = runCatching { RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE) }.getOrNull() notificationManager.createNotificationChannel( NotificationChannelCompat.Builder( RINGING_CALL_NOTIFICATION_CHANNEL_ID, @@ -191,14 +171,18 @@ class DefaultNotificationChannels @Inject constructor( ) .setName(stringProvider.getString(R.string.notification_channel_ringing_calls).ifEmpty { "Ringing calls" }) .setVibrationEnabled(true) - .setSound( - ringtoneUri, - AudioAttributes.Builder() - .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) - .setLegacyStreamType(AudioManager.STREAM_RING) - .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE) - .build() - ) + .apply { + if (ringtoneUri != null) { + setSound( + ringtoneUri, + AudioAttributes.Builder() + .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) + .setLegacyStreamType(AudioManager.STREAM_RING) + .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE) + .build() + ) + } + } .setDescription(stringProvider.getString(R.string.notification_channel_ringing_calls)) .setLightsEnabled(true) .setLightColor(accentColor) @@ -207,7 +191,7 @@ class DefaultNotificationChannels @Inject constructor( } override fun getChannelForIncomingCall(ring: Boolean): String { - return if (ring) RINGING_CALL_NOTIFICATION_CHANNEL_ID else CALL_NOTIFICATION_CHANNEL_ID_V3 + return if (ring) RINGING_CALL_NOTIFICATION_CHANNEL_ID else CALL_NOTIFICATION_CHANNEL_ID } override fun getChannelIdForMessage(noisy: Boolean): String { diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/NotificationCreator.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/NotificationCreator.kt index 5c8dd1dc77..67dbda63a4 100755 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/NotificationCreator.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/factories/NotificationCreator.kt @@ -24,7 +24,6 @@ import androidx.annotation.DrawableRes import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat.MessagingStyle import androidx.core.app.Person -import androidx.core.content.ContextCompat import androidx.core.content.res.ResourcesCompat import coil.ImageLoader import com.squareup.anvil.annotations.ContributesBinding @@ -107,6 +106,8 @@ class DefaultNotificationCreator @Inject constructor( private val acceptInvitationActionFactory: AcceptInvitationActionFactory, private val rejectInvitationActionFactory: RejectInvitationActionFactory ) : NotificationCreator { + private val accentColor = NotificationConfig.NOTIFICATION_ACCENT_COLOR + /** * Create a notification for a Room. */ @@ -121,7 +122,6 @@ class DefaultNotificationCreator @Inject constructor( imageLoader: ImageLoader, events: List, ): Notification { - val accentColor = ContextCompat.getColor(context, R.color.notification_accent_color) // Build the pending intent for when the notification is clicked val openIntent = when { threadId != null -> pendingIntentFactory.createOpenThreadPendingIntent(roomInfo, threadId) @@ -228,7 +228,6 @@ class DefaultNotificationCreator @Inject constructor( override fun createRoomInvitationNotification( inviteNotifiableEvent: InviteNotifiableEvent ): Notification { - val accentColor = ContextCompat.getColor(context, R.color.notification_accent_color) val smallIcon = CommonDrawables.ic_notification_small val channelId = notificationChannels.getChannelIdForMessage(inviteNotifiableEvent.noisy) return NotificationCompat.Builder(context, channelId) @@ -273,7 +272,6 @@ class DefaultNotificationCreator @Inject constructor( override fun createSimpleEventNotification( simpleNotifiableEvent: SimpleNotifiableEvent, ): Notification { - val accentColor = ContextCompat.getColor(context, R.color.notification_accent_color) val smallIcon = CommonDrawables.ic_notification_small val channelId = notificationChannels.getChannelIdForMessage(simpleNotifiableEvent.noisy) @@ -307,7 +305,6 @@ class DefaultNotificationCreator @Inject constructor( override fun createFallbackNotification( fallbackNotifiableEvent: FallbackNotifiableEvent, ): Notification { - val accentColor = ContextCompat.getColor(context, R.color.notification_accent_color) val smallIcon = CommonDrawables.ic_notification_small val channelId = notificationChannels.getChannelIdForMessage(false) @@ -344,7 +341,6 @@ class DefaultNotificationCreator @Inject constructor( noisy: Boolean, lastMessageTimestamp: Long ): Notification { - val accentColor = ContextCompat.getColor(context, R.color.notification_accent_color) val smallIcon = CommonDrawables.ic_notification_small val channelId = notificationChannels.getChannelIdForMessage(noisy) return NotificationCompat.Builder(context, channelId) @@ -384,7 +380,7 @@ class DefaultNotificationCreator @Inject constructor( .setContentText(stringProvider.getString(R.string.notification_test_push_notification_content)) .setSmallIcon(CommonDrawables.ic_notification_small) .setLargeIcon(getBitmap(R.drawable.element_logo_green)) - .setColor(ContextCompat.getColor(context, R.color.notification_accent_color)) + .setColor(accentColor) .setPriority(NotificationCompat.PRIORITY_MAX) .setCategory(NotificationCompat.CATEGORY_STATUS) .setAutoCancel(true) diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt index fda14f294f..a553c14952 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt @@ -96,17 +96,19 @@ class DefaultPushHandler @Inject constructor( Timber.w("Unable to get a session") return } - val userPushStore = userPushStoreFactory.getOrCreate(userId) - val areNotificationsEnabled = userPushStore.getNotificationEnabledForDevice().first() - if (areNotificationsEnabled) { - val notifiableEvent = notifiableEventResolver.resolveEvent(userId, pushData.roomId, pushData.eventId) - when (notifiableEvent) { - null -> Timber.tag(loggerTag.value).w("Unable to get a notification data") - is NotifiableRingingCallEvent -> handleRingingCallEvent(notifiableEvent) - else -> onNotifiableEventReceived.onNotifiableEventReceived(notifiableEvent) + val notifiableEvent = notifiableEventResolver.resolveEvent(userId, pushData.roomId, pushData.eventId) + when (notifiableEvent) { + null -> Timber.tag(loggerTag.value).w("Unable to get a notification data") + is NotifiableRingingCallEvent -> handleRingingCallEvent(notifiableEvent) + else -> { + val userPushStore = userPushStoreFactory.getOrCreate(userId) + val areNotificationsEnabled = userPushStore.getNotificationEnabledForDevice().first() + if (areNotificationsEnabled) { + onNotifiableEventReceived.onNotifiableEventReceived(notifiableEvent) + } else { + Timber.tag(loggerTag.value).i("Notification are disabled for this device, ignore push.") + } } - } else { - Timber.tag(loggerTag.value).i("Notification are disabled for this device, ignore push.") } } catch (e: Exception) { Timber.tag(loggerTag.value).e(e, "## handleInternal() failed") diff --git a/libraries/push/impl/src/main/res/values-el/translations.xml b/libraries/push/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..081adb46b8 --- /dev/null +++ b/libraries/push/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,78 @@ + + + "Κλήση" + "Ακρόαση για εκδηλώσεις" + "Θορυβώδεις ειδοποιήσεις" + "Κουδούνισμα κλήσεων" + "Αθόρυβες ειδοποιήσεις" + + "%1$s: %2$d μήνυμα" + "%1$s: %2$d μηνύματα" + + + "%d ειδοποίηση" + "%d ειδοποιήσεις" + + "Γνωστοποίηση" + "Εισερχόμενη κλήση" + "** Αποτυχία αποστολής - παρακαλώ άνοιξε το δωμάτιο" + "Συμμετοχή" + "Απόρριψη" + + "%d πρόσκληση" + "%d προσκλήσεις" + + "Σε προσκάλεσε να συνομιλήσετε" + "Σέ ανέφερε: %1$s" + "Νέα Μηνύματα" + + "%d νέο μήνυμα" + "%d νέα μηνύματα" + + "Αντέδρασε με %1$s" + "Επισήμανση ως αναγνωσμένου" + "Γρήγορη απάντηση" + "Σέ προσκάλεσε να συμμετάσχεις στο δωμάτιο" + "Εγώ" + "Βλέπεις την ειδοποίηση! Κάνε μου κλικ!" + "%1$s: %2$s" + "%1$s: %2$s %3$s" + + "%d μη αναγνωσμένο ειδοποιημένο μήνυμα" + "%d μη αναγνωσμένα ειδοποημένα μηνύματα" + + "%1$s και %2$s" + "%1$s σε %2$s" + "%1$s σε %2$s και %3$s" + + "%d δωμάτιο" + "%d δωμάτια" + + "Συγχρονισμός στο παρασκήνιο" + "Υπηρεσίες Google" + "Δεν βρέθηκαν έγκυρες υπηρεσίες Google Play. Οι ειδοποιήσεις ενδέχεται να μην λειτουργούν σωστά." + "Λάβε το όνομα του τρέχοντος παρόχου." + "Δεν έχουν επιλεγεί πάροχοι push." + "Τρέχων πάροχος push: %1$s." + "Τρέχων πάροχος push" + "Βεβαιώσου ότι η εφαρμογή διαθέτει τουλάχιστον έναν πάροχο push." + "Δεν βρέθηκαν πάροχοι push." + + "Βρέθηκε %1$d πάροχος push: %2$s" + "Βρέθηκαν %1$d πάροχοι push: %2$s" + + "Εντοπισμός παρόχων push" + "Έλεγξε ότι η εφαρμογή μπορεί να εμφανίσει ειδοποίηση." + "Δεν έχει γίνει κλικ στην ειδοποίηση." + "Δεν είναι δυνατή η εμφάνιση της ειδοποίησης." + "Έγινε κλικ στην ειδοποίηση!" + "Εμφάνιση ειδοποίησης" + "Κάνε κλικ στην ειδοποίηση για να συνεχίσεις τη δοκιμή." + "Βεβαιώσου ότι η εφαρμογή λαμβάνει push." + "Σφάλμα: ο pusher απέρριψε το αίτημα." + "Σφάλμα: %1$s." + "Σφάλμα, δεν είναι δυνατή η δοκιμή push." + "Σφάλμα, λήξη χρονικού ορίου αναμένοντας για push." + "Το push loop back χρειάστηκε %1$d ms." + "Δοκιμή push loopback" + diff --git a/libraries/push/impl/src/main/res/values-et/translations.xml b/libraries/push/impl/src/main/res/values-et/translations.xml index a2899757d1..55e591f8d4 100644 --- a/libraries/push/impl/src/main/res/values-et/translations.xml +++ b/libraries/push/impl/src/main/res/values-et/translations.xml @@ -3,6 +3,7 @@ "Kõne" "Kontrollime, kas on uusi sündmusi" "Lärmakad teavitused" + "Kõnehelinad" "Vaiksed teavitused" "%1$s: %2$d sõnum" @@ -13,6 +14,7 @@ "%d teavitust" "Teavitus" + "Sissetulev kõne" "** Saatmine ei õnnestunud - palun ava jututoa täisvaade" "Liitu" "Lükka tagasi" @@ -27,10 +29,14 @@ "%d uus sõnum" "%d uut sõnumit" + "Reageeris nii: %1$s" + "Märgi loetuks" "Kiirvastus" + "Saatis sulle kutse jututuppa" "Mina" "See ongi teavitus! Klõpsi mind!" "%1$s: %2$s" + "%1$s: %2$s %3$s" "%d lugemata sõnum, millele on teavitus saadetud" "%d lugemata sõnumit, millele on teavitus saadetud" @@ -45,5 +51,28 @@ "Sünkroniseerimine taustal" "Google\'i teenused" "Google Play Services taustateenust ei leidu. Teavitused ei pruugi toimida korrektselt." + "Vali hetkel kasutatava tõuketeenuste pakkuja nimi." + "Tõuketeenuste pakkujaid pole valitud." + "Hetkel kasutatav tõuketeenuste pakkuja: %1$s." + "Hetkel kasutatav tõuketeenuste pakkuja" + "Palun taga selle rakenduse jaoks on seadistatud vähemalt üks tõuketeenuste pakkuja." + "Ühtegi tõuketeenuste pakkujat ei leidu." + + "Leidsime %1$d tõuketeenuse pakkuja: %2$s" + "Leidsime %1$d tõuketeenuse pakkujat: %2$s" + + "Tuvasta tõuketeenuste pakkujad" + "Palun kontrolli, et rakendus saaks kuvada teavitusi." + "Sa pole teavitust klõpsinud." + "Teavituse kuvamine ei õnnestu." + "Sa oled teavitust klõpsinud!" + "Kuva teavitust" + "Testiga jätkamiseks palun klõpsi teavitust." + "Palun veendu, et rakendus saab tõuketeavitusi." + "Viga: tõuketeenuse teostaja on päringust keeldunud." "Viga: %1$s." + "Viga: katselist tõuketeavitust pole võimalik teha." + "Viga: tõuketeavituse ootamisel tekkis aegumine." + "Kogu tõuketeavituse ringi tegemiseks kulus %1$d ms." + "Tee tõuketeenuse silmustest"
diff --git a/libraries/push/impl/src/main/res/values-it/translations.xml b/libraries/push/impl/src/main/res/values-it/translations.xml index a15e3daa14..d2a7caa7ce 100644 --- a/libraries/push/impl/src/main/res/values-it/translations.xml +++ b/libraries/push/impl/src/main/res/values-it/translations.xml @@ -3,6 +3,7 @@ "Chiamata" "Eventi in ascolto" "Notifiche con suono" + "Squillo delle chiamate" "Notifiche silenziose" "%1$s: %2$d messaggio" @@ -13,6 +14,7 @@ "%d notifiche" "Notifica" + "Chiamata in arrivo" "** Invio fallito - si prega di aprire la stanza" "Entra" "Rifiuta" diff --git a/libraries/push/impl/src/main/res/values-ro/translations.xml b/libraries/push/impl/src/main/res/values-ro/translations.xml index b9862a69a3..896063b1aa 100644 --- a/libraries/push/impl/src/main/res/values-ro/translations.xml +++ b/libraries/push/impl/src/main/res/values-ro/translations.xml @@ -3,6 +3,7 @@ "Apel" "Ascultare evenimente" "Notificări zgomotoase" + "Apeluri care sună" "Notificări silențioase" "%1$s: %2$d mesaj" @@ -13,6 +14,7 @@ "%d notificări" "Notificare" + "Apel primit" "** Trimiterea eșuată - vă rugăm să deschideți camera" "Alăturați-vă" "Respingeți" diff --git a/libraries/push/impl/src/main/res/values-sv/translations.xml b/libraries/push/impl/src/main/res/values-sv/translations.xml index 8d26670c34..bf4c19111a 100644 --- a/libraries/push/impl/src/main/res/values-sv/translations.xml +++ b/libraries/push/impl/src/main/res/values-sv/translations.xml @@ -48,4 +48,28 @@ "Bakgrundssynkronisering" "Google-tjänster" "Inga giltiga Google Play-tjänster hittades. Aviseringar kanske inte fungerar korrekt." + "Hämta namnet på den nuvarande leverantören." + "Inga push-leverantörer valda." + "Nuvarande push-leverantör: %1$s." + "Nuvarande push-leverantör" + "Se till att applikationen har minst en push-leverantör." + "Inga push-leverantörer hittades." + + "Hittade %1$d push-leverantör: %2$s" + "Hittade %1$d push-leverantörer: %2$s" + + "Upptäck push-leverantörer" + "Kontrollera att applikationen kan visa avisering." + "Aviseringen har inte klickats på." + "Kan inte visa aviseringen." + "Aviseringen har klickats på!" + "Visa avisering" + "Vänligen klicka på aviseringen för att fortsätta testet." + "Kontrollera att applikationen tar emot push." + "Fel: pusher har avvisat begäran." + "Fel: %1$s." + "Fel, kan inte testa push." + "Fel, tidsgräns överskriden vid väntan på push." + "Returnering av push tog %1$d ms." + "Testa returnering av push"
diff --git a/libraries/push/impl/src/main/res/values/colors.xml b/libraries/push/impl/src/main/res/values/colors.xml deleted file mode 100644 index 64a9d928fb..0000000000 --- a/libraries/push/impl/src/main/res/values/colors.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - #368BD6 - - diff --git a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/channels/NotificationChannelsTest.kt b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/channels/NotificationChannelsTest.kt index ec87069cd2..07eadc099e 100644 --- a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/channels/NotificationChannelsTest.kt +++ b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/channels/NotificationChannelsTest.kt @@ -16,7 +16,6 @@ package io.element.android.libraries.push.impl.notifications.channels -import android.app.NotificationChannel import android.os.Build import androidx.core.app.NotificationChannelCompat import androidx.core.app.NotificationManagerCompat @@ -43,7 +42,6 @@ class NotificationChannelsTest { createNotificationChannels(notificationManager = notificationManager) verify { notificationManager.createNotificationChannel(any()) } - verify { notificationManager.createNotificationChannel(any()) } verify { notificationManager.deleteNotificationChannel(any()) } } @@ -55,7 +53,7 @@ class NotificationChannelsTest { assertThat(ringingChannel).isEqualTo(RINGING_CALL_NOTIFICATION_CHANNEL_ID) val normalChannel = notificationChannels.getChannelForIncomingCall(ring = false) - assertThat(normalChannel).isEqualTo(CALL_NOTIFICATION_CHANNEL_ID_V3) + assertThat(normalChannel).isEqualTo(CALL_NOTIFICATION_CHANNEL_ID) } @Test diff --git a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt index 9e37aae29d..4953e4d7b4 100644 --- a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt +++ b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt @@ -118,7 +118,7 @@ class DefaultPushHandlerTest { incrementPushCounterResult.assertions() .isCalledOnce() notifiableEventResult.assertions() - .isNeverCalled() + .isCalledOnce() onNotifiableEventReceived.assertions() .isNeverCalled() } @@ -277,6 +277,34 @@ class DefaultPushHandlerTest { onNotifiableEventReceived.assertions().isCalledOnce() } + @Test + fun `when notify call PushData is received, the incoming call will be treated as a normal notification even if notification are disabled`() = runTest { + val aPushData = PushData( + eventId = AN_EVENT_ID, + roomId = A_ROOM_ID, + unread = 0, + clientSecret = A_SECRET, + ) + val onNotifiableEventReceived = lambdaRecorder {} + val handleIncomingCallLambda = lambdaRecorder { _, _, _, _, _, _, _ -> } + val elementCallEntryPoint = FakeElementCallEntryPoint(handleIncomingCallResult = handleIncomingCallLambda) + val defaultPushHandler = createDefaultPushHandler( + elementCallEntryPoint = elementCallEntryPoint, + onNotifiableEventReceived = onNotifiableEventReceived, + notifiableEventResult = { _, _, _ -> aNotifiableCallEvent() }, + incrementPushCounterResult = {}, + userPushStore = FakeUserPushStore().apply { + setNotificationEnabledForDevice(false) + }, + pushClientSecret = FakePushClientSecret( + getUserIdFromSecretResult = { A_USER_ID } + ), + ) + defaultPushHandler.handle(aPushData) + handleIncomingCallLambda.assertions().isCalledOnce() + onNotifiableEventReceived.assertions().isNeverCalled() + } + @Test fun `when diagnostic PushData is received, the diagnostic push handler is informed `() = runTest { diff --git a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/notifications/FakeImageLoaderHolder.kt b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/notifications/FakeImageLoaderHolder.kt index 57b71007e4..8fc14b2143 100644 --- a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/notifications/FakeImageLoaderHolder.kt +++ b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/notifications/FakeImageLoaderHolder.kt @@ -18,6 +18,7 @@ package io.element.android.libraries.push.test.notifications import coil.ImageLoader import io.element.android.libraries.matrix.api.MatrixClient +import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder class FakeImageLoaderHolder : ImageLoaderHolder { @@ -25,4 +26,8 @@ class FakeImageLoaderHolder : ImageLoaderHolder { override fun get(client: MatrixClient): ImageLoader { return fakeImageLoader.getImageLoader() } + + override fun remove(sessionId: SessionId) { + // No-op + } } diff --git a/libraries/pushproviders/firebase/README.md b/libraries/pushproviders/firebase/README.md index 204ac6dd19..a2a7ad97ed 100644 --- a/libraries/pushproviders/firebase/README.md +++ b/libraries/pushproviders/firebase/README.md @@ -4,4 +4,4 @@ In order to make this module only know about Firebase, the plugin `com.google.gms.google-services` has been disabled from the `app` module. -To be able to change the values in the file `firebase.xml` from this module, you should enable the plugin `com.google.gms.google-services` again, copy the file `google-services.json` to the folder `/app/src/main`, build the project, and check the generated file `app/build/generated/res/google-services//values/values.xml` to import the generated values into the `firebase.xml` files. +To be able to change the values set to `google_app_id` in the file `build.gradle.kts` of this module, you should enable the plugin `com.google.gms.google-services` again, copy the file `google-services.json` to the folder `/app/src/main`, build the project, and check the generated file `app/build/generated/res/google-services//values/values.xml` to import the generated values into the `build.gradle.kts` files. diff --git a/libraries/pushproviders/firebase/build.gradle.kts b/libraries/pushproviders/firebase/build.gradle.kts index d1c9f62ef0..28b58b1faa 100644 --- a/libraries/pushproviders/firebase/build.gradle.kts +++ b/libraries/pushproviders/firebase/build.gradle.kts @@ -13,6 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +@file:Suppress("UnstableApiUsage") + plugins { id("io.element.android-library") alias(libs.plugins.anvil) @@ -22,9 +25,43 @@ android { namespace = "io.element.android.libraries.pushproviders.firebase" buildTypes { - release { + getByName("release") { + isMinifyEnabled = true + consumerProguardFiles("consumer-proguard-rules.pro") + resValue( + type = "string", + name = "google_app_id", + value = if (isEnterpriseBuild) { + "1:912726360885:android:d273c2077ec3291500427c" + } else { + "1:912726360885:android:d097de99a4c23d2700427c" + } + ) + } + getByName("debug") { + resValue( + type = "string", + name = "google_app_id", + value = if (isEnterpriseBuild) { + "1:912726360885:android:f8de9126a94143d300427c" + } else { + "1:912726360885:android:def0a4e454042e9b00427c" + } + ) + } + register("nightly") { isMinifyEnabled = true consumerProguardFiles("consumer-proguard-rules.pro") + matchingFallbacks += listOf("release") + resValue( + type = "string", + name = "google_app_id", + value = if (isEnterpriseBuild) { + "1:912726360885:android:3f7e1fe644d99d5a00427c" + } else { + "1:912726360885:android:e17435e0beb0303000427c" + } + ) } } } diff --git a/libraries/pushproviders/firebase/src/debug/res/values/firebase.xml b/libraries/pushproviders/firebase/src/debug/res/values/firebase.xml deleted file mode 100644 index 540f0e9bbe..0000000000 --- a/libraries/pushproviders/firebase/src/debug/res/values/firebase.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 1:912726360885:android:def0a4e454042e9b00427c - diff --git a/libraries/pushproviders/firebase/src/main/res/values-el/translations.xml b/libraries/pushproviders/firebase/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..9503880ec7 --- /dev/null +++ b/libraries/pushproviders/firebase/src/main/res/values-el/translations.xml @@ -0,0 +1,11 @@ + + + "Βεβαιώσου ότι το Firebase είναι διαθέσιμο." + "Το Firebase δεν είναι διαθέσιμο." + "Το Firebase είναι διαθέσιμο." + "Έλεγχος Firebase" + "Βεβαιώσου ότι το διακριτικό του Firebase είναι διαθέσιμο." + "Το διακριτικό Firebase δεν είναι γνωστό." + "Διακριτικό Firebase: %1$s." + "Έλεγξε το διακριτικό του Firebase" + diff --git a/libraries/pushproviders/firebase/src/main/res/values-et/translations.xml b/libraries/pushproviders/firebase/src/main/res/values-et/translations.xml new file mode 100644 index 0000000000..17170188cf --- /dev/null +++ b/libraries/pushproviders/firebase/src/main/res/values-et/translations.xml @@ -0,0 +1,11 @@ + + + "Palun veendu, et Firebase oleks saadaval." + "Firebase pole saadaval." + "Firebase on saadaval." + "Kontrolli Firebase\'i" + "Palun veendu, et Firebase\'i pääsuluba oleks saadaval." + "Firebase\'i pääsuluba pole teada." + "Firebase\'i pääsuluba: %1$s." + "Kontrolli Firebase\'i pääsuluba" + diff --git a/libraries/pushproviders/firebase/src/main/res/values-sv/translations.xml b/libraries/pushproviders/firebase/src/main/res/values-sv/translations.xml new file mode 100644 index 0000000000..3e338aca08 --- /dev/null +++ b/libraries/pushproviders/firebase/src/main/res/values-sv/translations.xml @@ -0,0 +1,11 @@ + + + "Se till att Firebase är tillgängligt." + "Firebase är inte tillgängligt." + "Firebase är tillgänglig." + "Kontrollera Firebase" + "Se till att Firebase-token är tillgänglig." + "Firebase-token är inte känd." + "Firebase-token: %1$s." + "Kontrollera Firebase-token" + diff --git a/libraries/pushproviders/firebase/src/main/res/values-zh/translations.xml b/libraries/pushproviders/firebase/src/main/res/values-zh/translations.xml index 661d2d13d7..c3b209808f 100644 --- a/libraries/pushproviders/firebase/src/main/res/values-zh/translations.xml +++ b/libraries/pushproviders/firebase/src/main/res/values-zh/translations.xml @@ -5,7 +5,7 @@ "Firebase 可用。" "检查 Firebase" "确保 Firebase 令牌可用。" - "Firebas 令牌未知。" + "Firebase 令牌未知。" "Firebase 令牌:%1$s 。" "检查 Firebase 令牌"
diff --git a/libraries/pushproviders/firebase/src/nightly/res/values/firebase.xml b/libraries/pushproviders/firebase/src/nightly/res/values/firebase.xml deleted file mode 100644 index f793ba93f9..0000000000 --- a/libraries/pushproviders/firebase/src/nightly/res/values/firebase.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 1:912726360885:android:e17435e0beb0303000427c - diff --git a/libraries/pushproviders/firebase/src/release/res/values/firebase.xml b/libraries/pushproviders/firebase/src/release/res/values/firebase.xml deleted file mode 100644 index d563b43d05..0000000000 --- a/libraries/pushproviders/firebase/src/release/res/values/firebase.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 1:912726360885:android:d097de99a4c23d2700427c - diff --git a/libraries/pushproviders/unifiedpush/src/main/res/values-el/translations.xml b/libraries/pushproviders/unifiedpush/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..106a69ebf6 --- /dev/null +++ b/libraries/pushproviders/unifiedpush/src/main/res/values-el/translations.xml @@ -0,0 +1,10 @@ + + + "Βεβαιώσου ότι οι διανομείς UnifiedPush είναι διαθέσιμοι." + "Δεν βρέθηκαν διανομείς push." + + "%Βρέθηκε %1$d διανομέας: %2$s." + "Βρέθηκαν %1$d διανομείς: %2$s." + + "Έλεγχος UnifiedPush" + diff --git a/libraries/pushproviders/unifiedpush/src/main/res/values-et/translations.xml b/libraries/pushproviders/unifiedpush/src/main/res/values-et/translations.xml new file mode 100644 index 0000000000..ce3ca58ca1 --- /dev/null +++ b/libraries/pushproviders/unifiedpush/src/main/res/values-et/translations.xml @@ -0,0 +1,10 @@ + + + "Palun veendu, et UnifiedPushi levitajad on saadaval." + "Tõuketeenuse levitajaid ei leidu." + + "Leidus %1$d tõuketeenuse levitaja: %2$s." + "Leidus %1$d tõuketeenuse levitajat: %2$s." + + "Kontrolli UnifiedPushi" + diff --git a/libraries/pushproviders/unifiedpush/src/main/res/values-sv/translations.xml b/libraries/pushproviders/unifiedpush/src/main/res/values-sv/translations.xml new file mode 100644 index 0000000000..502e05fe9a --- /dev/null +++ b/libraries/pushproviders/unifiedpush/src/main/res/values-sv/translations.xml @@ -0,0 +1,10 @@ + + + "Se till att UnifiedPush-distributörer är tillgängliga." + "Inga push-distributörer hittades." + + "%1$d distributör hittades:%2$s." + "%1$d distributörer hittade:%2$s." + + "Kontrollera UnifiedPush" + diff --git a/libraries/roomselect/impl/build.gradle.kts b/libraries/roomselect/impl/build.gradle.kts index 2eaf5c3db7..595bcd4735 100644 --- a/libraries/roomselect/impl/build.gradle.kts +++ b/libraries/roomselect/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -40,7 +39,6 @@ dependencies { implementation(projects.libraries.designsystem) implementation(projects.libraries.uiStrings) api(projects.libraries.roomselect.api) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.coroutines.test) diff --git a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt index fa8525bdc1..7ade4f759d 100644 --- a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt +++ b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt @@ -41,9 +41,8 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme -import io.element.android.libraries.designsystem.components.avatar.Avatar -import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.designsystem.components.avatar.CompositeAvatar import io.element.android.libraries.designsystem.components.button.BackButton import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight @@ -59,9 +58,11 @@ import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails import io.element.android.libraries.matrix.ui.components.SelectedRoom +import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.roomselect.api.RoomSelectMode import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.toPersistentList @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -221,13 +222,11 @@ private fun RoomSummaryView( .heightIn(56.dp), verticalAlignment = Alignment.CenterVertically ) { - Avatar( - avatarData = AvatarData( - id = summary.roomId.value, - name = summary.name, - url = summary.avatarUrl, - size = AvatarSize.RoomSelectRoomListItem, - ), + CompositeAvatar( + avatarData = summary.getAvatarData(size = AvatarSize.RoomSelectRoomListItem), + heroes = summary.heroes.map { user -> + user.getAvatarData(size = AvatarSize.RoomSelectRoomListItem) + }.toPersistentList() ) Column( modifier = Modifier diff --git a/libraries/session-storage/test/src/main/kotlin/io/element/android/libraries/sessionstorage/test/observer/FakeSessionObserver.kt b/libraries/session-storage/test/src/main/kotlin/io/element/android/libraries/sessionstorage/test/observer/FakeSessionObserver.kt new file mode 100644 index 0000000000..71a5b85494 --- /dev/null +++ b/libraries/session-storage/test/src/main/kotlin/io/element/android/libraries/sessionstorage/test/observer/FakeSessionObserver.kt @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.sessionstorage.test.observer + +import io.element.android.libraries.sessionstorage.api.observer.SessionListener +import io.element.android.libraries.sessionstorage.api.observer.SessionObserver + +class FakeSessionObserver : SessionObserver { + private val _listeners = mutableListOf() + + val listeners: List + get() = _listeners + + override fun addListener(listener: SessionListener) { + _listeners.add(listener) + } + + override fun removeListener(listener: SessionListener) { + _listeners.remove(listener) + } + + suspend fun onSessionCreated(userId: String) { + listeners.forEach { it.onSessionCreated(userId) } + } + + suspend fun onSessionDeleted(userId: String) { + listeners.forEach { it.onSessionDeleted(userId) } + } +} diff --git a/libraries/textcomposer/impl/build.gradle.kts b/libraries/textcomposer/impl/build.gradle.kts index 21fd124765..f6a0e699cb 100644 --- a/libraries/textcomposer/impl/build.gradle.kts +++ b/libraries/textcomposer/impl/build.gradle.kts @@ -16,7 +16,7 @@ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) + alias(libs.plugins.anvil) id("kotlin-parcelize") } @@ -27,7 +27,13 @@ android { } } +anvil { + generateDaggerFactories.set(true) +} + dependencies { + implementation(projects.anvilannotations) + implementation(projects.libraries.architecture) implementation(projects.libraries.uiStrings) implementation(projects.libraries.androidutils) implementation(projects.libraries.core) @@ -47,8 +53,6 @@ dependencies { debugApi(libs.matrix.richtexteditor.compose) } - ksp(libs.showkase.processor) - testImplementation(libs.test.junit) testImplementation(libs.coroutines.test) testImplementation(libs.molecule.runtime) diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/ComposerModeView.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/ComposerModeView.kt index c50c81fb87..95c5a7b79c 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/ComposerModeView.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/ComposerModeView.kt @@ -20,13 +20,10 @@ import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.ripple.rememberRipple import androidx.compose.material3.MaterialTheme @@ -35,17 +32,15 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.draw.clipToBounds import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Text -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnail -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToView import io.element.android.libraries.textcomposer.model.MessageComposerMode import io.element.android.libraries.ui.strings.CommonStrings @@ -61,9 +56,7 @@ internal fun ComposerModeView( is MessageComposerMode.Reply -> { ReplyToModeView( modifier = Modifier.padding(8.dp), - senderName = composerMode.senderName, - text = composerMode.defaultContent, - attachmentThumbnailInfo = composerMode.attachmentThumbnailInfo, + replyToDetails = composerMode.replyToDetails, onResetComposerMode = onResetComposerMode, ) } @@ -118,9 +111,7 @@ private fun EditingModeView( @Composable private fun ReplyToModeView( - senderName: String, - text: String?, - attachmentThumbnailInfo: AttachmentThumbnailInfo?, + replyToDetails: InReplyToDetails, onResetComposerMode: () -> Unit, modifier: Modifier = Modifier, ) { @@ -130,42 +121,7 @@ private fun ReplyToModeView( .background(MaterialTheme.colorScheme.surface) .padding(4.dp) ) { - if (attachmentThumbnailInfo != null) { - AttachmentThumbnail( - info = attachmentThumbnailInfo, - backgroundColor = MaterialTheme.colorScheme.surfaceVariant, - modifier = Modifier - .size(36.dp) - .clip(RoundedCornerShape(9.dp)) - ) - } - Spacer(modifier = Modifier.width(8.dp)) - Column( - modifier = Modifier - .weight(1f) - .align(Alignment.CenterVertically) - ) { - Text( - text = senderName, - modifier = Modifier - .fillMaxWidth() - .clipToBounds(), - maxLines = 1, - overflow = TextOverflow.Ellipsis, - style = ElementTheme.typography.fontBodySmMedium, - textAlign = TextAlign.Start, - color = ElementTheme.materialColors.primary, - ) - Text( - modifier = Modifier.fillMaxWidth(), - text = text.orEmpty(), - style = ElementTheme.typography.fontBodyMdRegular, - textAlign = TextAlign.Start, - color = ElementTheme.materialColors.secondary, - maxLines = if (attachmentThumbnailInfo != null) 1 else 2, - overflow = TextOverflow.Ellipsis, - ) - } + InReplyToView(inReplyTo = replyToDetails, modifier = Modifier.weight(1f)) Icon( imageVector = CompoundIcons.Close(), contentDescription = stringResource(CommonStrings.action_close), diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt index 81a019a43a..136cc6eeae 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt @@ -42,6 +42,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme import io.element.android.libraries.designsystem.components.media.createFakeWaveform @@ -51,13 +52,11 @@ import io.element.android.libraries.designsystem.theme.components.CircularProgre import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.TransactionId -import io.element.android.libraries.matrix.api.core.UserId -import io.element.android.libraries.matrix.api.media.MediaSource import io.element.android.libraries.matrix.api.permalink.PermalinkData import io.element.android.libraries.matrix.api.permalink.PermalinkParser -import io.element.android.libraries.matrix.ui.components.A_BLUR_HASH -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType +import io.element.android.libraries.matrix.ui.messages.LocalRoomMemberProfilesCache +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetailsProvider import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag import io.element.android.libraries.textcomposer.components.ComposerOptionsButton @@ -71,7 +70,7 @@ import io.element.android.libraries.textcomposer.components.VoiceMessageRecordin import io.element.android.libraries.textcomposer.components.markdown.MarkdownTextInput import io.element.android.libraries.textcomposer.components.markdown.aMarkdownTextEditorState import io.element.android.libraries.textcomposer.components.textInputRoundedCornerShape -import io.element.android.libraries.textcomposer.mentions.rememberMentionSpanProvider +import io.element.android.libraries.textcomposer.mentions.LocalMentionSpanProvider import io.element.android.libraries.textcomposer.model.MessageComposerMode import io.element.android.libraries.textcomposer.model.Suggestion import io.element.android.libraries.textcomposer.model.TextEditorState @@ -94,7 +93,6 @@ fun TextComposer( permalinkParser: PermalinkParser, composerMode: MessageComposerMode, enableVoiceMessages: Boolean, - currentUserId: UserId, onRequestFocus: () -> Unit, onSendMessage: () -> Unit, onResetComposerMode: () -> Unit, @@ -133,8 +131,8 @@ fun TextComposer( } val layoutModifier = modifier - .fillMaxSize() - .height(IntrinsicSize.Min) + .fillMaxSize() + .height(IntrinsicSize.Min) val composerOptionsButton: @Composable () -> Unit = remember { @Composable { @@ -146,6 +144,8 @@ fun TextComposer( } } + val userProfileCache = LocalRoomMemberProfilesCache.current + val placeholder = if (composerMode.inThread) { stringResource(id = CommonStrings.action_reply_in_thread) } else { @@ -155,17 +155,22 @@ fun TextComposer( is TextEditorState.Rich -> { remember(state.richTextEditorState, subcomposing, composerMode, onResetComposerMode, onError) { @Composable { - val mentionSpanProvider = rememberMentionSpanProvider( - currentUserId = currentUserId, - permalinkParser = permalinkParser, - ) + val mentionSpanProvider = LocalMentionSpanProvider.current TextInput( state = state.richTextEditorState, subcomposing = subcomposing, placeholder = placeholder, composerMode = composerMode, onResetComposerMode = onResetComposerMode, - resolveMentionDisplay = { text, url -> TextDisplay.Custom(mentionSpanProvider.getMentionSpanFor(text, url)) }, + resolveMentionDisplay = { text, url -> + val permalinkData = permalinkParser.parse(url) + if (permalinkData is PermalinkData.UserLink) { + val displayNameOrId = userProfileCache.getDisplayName(permalinkData.userId) ?: permalinkData.userId.value + TextDisplay.Custom(mentionSpanProvider.getMentionSpanFor(displayNameOrId, url)) + } else { + TextDisplay.Custom(mentionSpanProvider.getMentionSpanFor(text, url)) + } + }, resolveRoomMentionDisplay = { TextDisplay.Custom(mentionSpanProvider.getMentionSpanFor("@room", "#")) }, onError = onError, onTyping = onTyping, @@ -335,8 +340,8 @@ private fun StandardLayout( if (voiceMessageState is VoiceMessageState.Preview || voiceMessageState is VoiceMessageState.Recording) { Box( modifier = Modifier - .padding(bottom = 5.dp, top = 5.dp, end = 3.dp, start = 3.dp) - .size(48.dp), + .padding(bottom = 5.dp, top = 5.dp, end = 3.dp, start = 3.dp) + .size(48.dp), contentAlignment = Alignment.Center, ) { voiceDeleteButton() @@ -346,8 +351,8 @@ private fun StandardLayout( } Box( modifier = Modifier - .padding(bottom = 8.dp, top = 8.dp) - .weight(1f) + .padding(bottom = 8.dp, top = 8.dp) + .weight(1f) ) { voiceRecording() } @@ -360,16 +365,16 @@ private fun StandardLayout( } Box( modifier = Modifier - .padding(bottom = 8.dp, top = 8.dp) - .weight(1f) + .padding(bottom = 8.dp, top = 8.dp) + .weight(1f) ) { textInput() } } Box( - Modifier - .padding(bottom = 5.dp, top = 5.dp, end = 6.dp, start = 6.dp) - .size(48.dp), + Modifier + .padding(bottom = 5.dp, top = 5.dp, end = 6.dp, start = 6.dp) + .size(48.dp), contentAlignment = Alignment.Center, ) { endButton() @@ -391,8 +396,8 @@ private fun TextFormattingLayout( ) { Box( modifier = Modifier - .weight(1f) - .padding(horizontal = 12.dp) + .weight(1f) + .padding(horizontal = 12.dp) ) { textInput() } @@ -436,11 +441,11 @@ private fun TextInputBox( Column( modifier = Modifier - .clip(roundedCorners) - .border(0.5.dp, borderColor, roundedCorners) - .background(color = bgColor) - .requiredHeightIn(min = 42.dp) - .fillMaxSize(), + .clip(roundedCorners) + .border(0.5.dp, borderColor, roundedCorners) + .background(color = bgColor) + .requiredHeightIn(min = 42.dp) + .fillMaxSize(), ) { if (composerMode is MessageComposerMode.Special) { ComposerModeView(composerMode = composerMode, onResetComposerMode = onResetComposerMode) @@ -448,9 +453,9 @@ private fun TextInputBox( val defaultTypography = ElementTheme.typography.fontBodyLgRegular Box( modifier = Modifier - .padding(top = 4.dp, bottom = 4.dp, start = 12.dp, end = 42.dp) - // Apply test tag only once, otherwise 2 nodes will have it (both the normal and subcomposing one) and tests will fail - .then(if (!subcomposing) Modifier.testTag(TestTags.textEditor) else Modifier), + .padding(top = 4.dp, bottom = 4.dp, start = 12.dp, end = 42.dp) + // Apply test tag only once, otherwise 2 nodes will have it (both the normal and subcomposing one) and tests will fail + .then(if (!subcomposing) Modifier.testTag(TestTags.textEditor) else Modifier), contentAlignment = Alignment.CenterStart, ) { // Placeholder @@ -496,8 +501,8 @@ private fun TextInput( // This prevents it gaining focus and mutating the state. registerStateUpdates = !subcomposing, modifier = Modifier - .padding(top = 6.dp, bottom = 6.dp) - .fillMaxWidth(), + .padding(top = 6.dp, bottom = 6.dp) + .fillMaxWidth(), style = ElementRichTextEditorStyle.composerStyle(hasFocus = state.hasFocus), resolveMentionDisplay = resolveMentionDisplay, resolveRoomMentionDisplay = resolveRoomMentionDisplay, @@ -519,7 +524,6 @@ internal fun TextComposerSimplePreview() = ElementPreview { voiceMessageState = VoiceMessageState.Idle, composerMode = MessageComposerMode.Normal, enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost"), ) }, { @@ -528,7 +532,6 @@ internal fun TextComposerSimplePreview() = ElementPreview { voiceMessageState = VoiceMessageState.Idle, composerMode = MessageComposerMode.Normal, enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") ) }, { @@ -542,7 +545,6 @@ internal fun TextComposerSimplePreview() = ElementPreview { voiceMessageState = VoiceMessageState.Idle, composerMode = MessageComposerMode.Normal, enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") ) }, { @@ -551,7 +553,6 @@ internal fun TextComposerSimplePreview() = ElementPreview { voiceMessageState = VoiceMessageState.Idle, composerMode = MessageComposerMode.Normal, enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") ) } ) @@ -568,7 +569,6 @@ internal fun TextComposerFormattingPreview() = ElementPreview { showTextFormatting = true, composerMode = MessageComposerMode.Normal, enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") ) }, { ATextComposer( @@ -577,7 +577,6 @@ internal fun TextComposerFormattingPreview() = ElementPreview { showTextFormatting = true, composerMode = MessageComposerMode.Normal, enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") ) }, { ATextComposer( @@ -590,7 +589,6 @@ internal fun TextComposerFormattingPreview() = ElementPreview { showTextFormatting = true, composerMode = MessageComposerMode.Normal, enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") ) })) } @@ -602,9 +600,8 @@ internal fun TextComposerEditPreview() = ElementPreview { ATextComposer( TextEditorState.Rich(aRichTextEditorState(initialText = "A message", initialFocus = true)), voiceMessageState = VoiceMessageState.Idle, - composerMode = MessageComposerMode.Edit(EventId("$1234"), "Some text", TransactionId("1234")), + composerMode = MessageComposerMode.Edit(EventId("$1234"), TransactionId("1234"), "Some text"), enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") ) })) } @@ -616,133 +613,22 @@ internal fun MarkdownTextComposerEditPreview() = ElementPreview { ATextComposer( TextEditorState.Markdown(aMarkdownTextEditorState(initialText = "A message", initialFocus = true)), voiceMessageState = VoiceMessageState.Idle, - composerMode = MessageComposerMode.Edit(EventId("$1234"), "Some text", TransactionId("1234")), + composerMode = MessageComposerMode.Edit(EventId("$1234"), TransactionId("1234"), "Some text"), enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") ) })) } @PreviewsDayNight @Composable -internal fun TextComposerReplyPreview() = ElementPreview { - PreviewColumn( - items = persistentListOf( - { - ATextComposer( - TextEditorState.Rich(aRichTextEditorState()), - voiceMessageState = VoiceMessageState.Idle, - composerMode = MessageComposerMode.Reply( - isThreaded = false, - senderName = "Alice", - eventId = EventId("$1234"), - attachmentThumbnailInfo = null, - defaultContent = "A message\n" + - "With several lines\n" + - "To preview larger textfields and long lines with overflow" - ), - enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") - ) - }, - { - ATextComposer( - TextEditorState.Rich(aRichTextEditorState()), - voiceMessageState = VoiceMessageState.Idle, - composerMode = MessageComposerMode.Reply( - isThreaded = true, - senderName = "Alice with a very long name to test overflow in the composer", - eventId = EventId("$1234"), - attachmentThumbnailInfo = null, - defaultContent = "A message\n" + - "With several lines\n" + - "To preview larger textfields and long lines with overflow" - ), - enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") - ) - }, - { - ATextComposer( - TextEditorState.Rich(aRichTextEditorState(initialText = "A message")), - voiceMessageState = VoiceMessageState.Idle, - composerMode = MessageComposerMode.Reply( - isThreaded = true, - senderName = "Alice", - eventId = EventId("$1234"), - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = MediaSource("https://domain.com/image.jpg"), - textContent = "image.jpg", - type = AttachmentThumbnailType.Image, - blurHash = A_BLUR_HASH, - ), - defaultContent = "image.jpg" - ), - enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") - ) - }, - { - ATextComposer( - TextEditorState.Rich(aRichTextEditorState(initialText = "A message")), - voiceMessageState = VoiceMessageState.Idle, - composerMode = MessageComposerMode.Reply( - isThreaded = false, - senderName = "Alice", - eventId = EventId("$1234"), - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = MediaSource("https://domain.com/video.mp4"), - textContent = "video.mp4", - type = AttachmentThumbnailType.Video, - blurHash = A_BLUR_HASH, - ), - defaultContent = "video.mp4" - ), - enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") - ) - }, - { - ATextComposer( - TextEditorState.Rich(aRichTextEditorState(initialText = "A message")), - voiceMessageState = VoiceMessageState.Idle, - composerMode = MessageComposerMode.Reply( - isThreaded = false, - senderName = "Alice", - eventId = EventId("$1234"), - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = null, - textContent = "logs.txt", - type = AttachmentThumbnailType.File, - blurHash = null, - ), - defaultContent = "logs.txt" - ), - enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") - ) - }, - { - ATextComposer( - TextEditorState.Rich(aRichTextEditorState(initialText = "A message", initialFocus = true)), - voiceMessageState = VoiceMessageState.Idle, - composerMode = MessageComposerMode.Reply( - isThreaded = false, - senderName = "Alice", - eventId = EventId("$1234"), - attachmentThumbnailInfo = AttachmentThumbnailInfo( - thumbnailSource = null, - textContent = null, - type = AttachmentThumbnailType.Location, - blurHash = null, - ), - defaultContent = "Shared location" - ), - enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") - ) - } - ) +internal fun TextComposerReplyPreview(@PreviewParameter(InReplyToDetailsProvider::class) inReplyToDetails: InReplyToDetails) = ElementPreview { + ATextComposer( + state = TextEditorState.Rich(aRichTextEditorState()), + voiceMessageState = VoiceMessageState.Idle, + composerMode = MessageComposerMode.Reply( + replyToDetails = inReplyToDetails, + ), + enableVoiceMessages = true, ) } @@ -757,7 +643,6 @@ internal fun TextComposerVoicePreview() = ElementPreview { voiceMessageState = voiceMessageState, composerMode = MessageComposerMode.Normal, enableVoiceMessages = true, - currentUserId = UserId("@alice:localhost") ) PreviewColumn(items = persistentListOf({ VoicePreview(voiceMessageState = VoiceMessageState.Recording(61.seconds, createFakeWaveform())) @@ -818,7 +703,6 @@ private fun ATextComposer( voiceMessageState: VoiceMessageState, composerMode: MessageComposerMode, enableVoiceMessages: Boolean, - currentUserId: UserId, showTextFormatting: Boolean = false, ) { TextComposer( @@ -830,7 +714,6 @@ private fun ATextComposer( }, composerMode = composerMode, enableVoiceMessages = enableVoiceMessages, - currentUserId = currentUserId, onRequestFocus = {}, onSendMessage = {}, onResetComposerMode = {}, diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/components/SendButton.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/components/SendButton.kt index 1825e25f6e..ddd2a37535 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/components/SendButton.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/components/SendButton.kt @@ -86,7 +86,7 @@ internal fun SendButton( @Composable internal fun SendButtonPreview() = ElementPreview { val normalMode = MessageComposerMode.Normal - val editMode = MessageComposerMode.Edit(null, "", null) + val editMode = MessageComposerMode.Edit(null, null, "") Row { SendButton(canSendMessage = true, onClick = {}, composerMode = normalMode) SendButton(canSendMessage = false, onClick = {}, composerMode = normalMode) diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpan.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpan.kt index fe1c0c2167..286c45684e 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpan.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpan.kt @@ -21,12 +21,14 @@ import android.graphics.Paint import android.graphics.RectF import android.graphics.Typeface import android.text.style.ReplacementSpan +import androidx.core.text.getSpans import io.element.android.libraries.core.extensions.orEmpty +import io.element.android.wysiwyg.view.spans.CustomMentionSpan import kotlin.math.min import kotlin.math.roundToInt class MentionSpan( - val text: String, + text: String, val rawValue: String, val type: Type, val backgroundColor: Int, @@ -39,23 +41,27 @@ class MentionSpan( private const val MAX_LENGTH = 20 } - private var actualText: CharSequence? = null private var textWidth = 0 private val backgroundPaint = Paint().apply { isAntiAlias = true color = backgroundColor } + var text: String = text + set(value) { + field = value + mentionText = getActualText(text) + } + + private var mentionText: CharSequence = getActualText(text) + override fun getSize(paint: Paint, text: CharSequence?, start: Int, end: Int, fm: Paint.FontMetricsInt?): Int { - val mentionText = getActualText(this.text) paint.typeface = typeface textWidth = paint.measureText(mentionText, 0, mentionText.length).roundToInt() return textWidth + startPadding + endPadding } override fun draw(canvas: Canvas, text: CharSequence?, start: Int, end: Int, x: Float, top: Int, y: Int, bottom: Int, paint: Paint) { - val mentionText = getActualText(this.text) - // Extra vertical space to add below the baseline (y). This helps us center the span vertically val extraVerticalSpace = y + paint.ascent() + paint.descent() - top @@ -68,7 +74,6 @@ class MentionSpan( } private fun getActualText(text: String): CharSequence { - if (actualText != null) return actualText!! return buildString { val mentionText = text.orEmpty() when (type) { @@ -82,17 +87,33 @@ class MentionSpan( append("#") } } + Type.EVERYONE -> Unit } append(mentionText.substring(0, min(mentionText.length, MAX_LENGTH))) if (mentionText.length > MAX_LENGTH) { append("…") } - actualText = this } } enum class Type { USER, ROOM, + EVERYONE, + } +} + +fun CharSequence.getMentionSpans(): List { + return if (this is android.text.Spanned) { + val customMentionSpans = getSpans() + if (customMentionSpans.isNotEmpty()) { + // If we have custom mention spans created by the RTE, we need to extract the provided spans and filter them + customMentionSpans.map { it.providedSpan }.filterIsInstance() + } else { + // Otherwise try to get the spans directly + getSpans().toList() + } + } else { + emptyList() } } diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpanProvider.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpanProvider.kt index e5c9f4793c..4e33a461b8 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpanProvider.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpanProvider.kt @@ -18,6 +18,7 @@ package io.element.android.libraries.textcomposer.mentions import android.graphics.Color import android.graphics.Typeface +import android.net.Uri import android.view.ViewGroup import android.widget.TextView import androidx.compose.foundation.layout.PaddingValues @@ -25,12 +26,16 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.Stable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.core.text.buildSpannedString +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject import io.element.android.compound.theme.ElementTheme import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight @@ -40,7 +45,6 @@ import io.element.android.libraries.designsystem.theme.currentUserMentionPillTex import io.element.android.libraries.designsystem.theme.mentionPillBackground import io.element.android.libraries.designsystem.theme.mentionPillText import io.element.android.libraries.matrix.api.core.RoomAlias -import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.core.toRoomIdOrAlias import io.element.android.libraries.matrix.api.permalink.PermalinkData @@ -48,22 +52,28 @@ import io.element.android.libraries.matrix.api.permalink.PermalinkParser import kotlinx.collections.immutable.persistentListOf @Stable -class MentionSpanProvider( - private val currentSessionId: SessionId, +class MentionSpanProvider @AssistedInject constructor( + @Assisted private val currentSessionId: String, private val permalinkParser: PermalinkParser, - private var currentUserTextColor: Int = 0, - private var currentUserBackgroundColor: Int = Color.WHITE, - private var otherTextColor: Int = 0, - private var otherBackgroundColor: Int = Color.WHITE, ) { + @AssistedFactory + interface Factory { + fun create(currentSessionId: String): MentionSpanProvider + } + private val paddingValues = PaddingValues(start = 4.dp, end = 6.dp) private val paddingValuesPx = mutableStateOf(0 to 0) private val typeface = mutableStateOf(Typeface.DEFAULT) + internal var currentUserTextColor: Int = 0 + internal var currentUserBackgroundColor: Int = Color.WHITE + internal var otherTextColor: Int = 0 + internal var otherBackgroundColor: Int = Color.WHITE + @Suppress("ComposableNaming") @Composable - internal fun setup() { + fun updateStyles() { currentUserTextColor = ElementTheme.colors.currentUserMentionPillText.toArgb() currentUserBackgroundColor = ElementTheme.colors.currentUserMentionPillBackground.toArgb() otherTextColor = ElementTheme.colors.mentionPillText.toArgb() @@ -82,7 +92,7 @@ class MentionSpanProvider( val (startPaddingPx, endPaddingPx) = paddingValuesPx.value return when { permalinkData is PermalinkData.UserLink -> { - val isCurrentUser = permalinkData.userId == currentSessionId + val isCurrentUser = permalinkData.userId.value == currentSessionId MentionSpan( text = text, rawValue = permalinkData.userId.toString(), @@ -98,7 +108,7 @@ class MentionSpanProvider( MentionSpan( text = text, rawValue = "@room", - type = MentionSpan.Type.USER, + type = MentionSpan.Type.EVERYONE, backgroundColor = otherBackgroundColor, textColor = otherTextColor, startPadding = startPaddingPx, @@ -134,43 +144,30 @@ class MentionSpanProvider( } } -@Composable -fun rememberMentionSpanProvider( - currentUserId: SessionId, - permalinkParser: PermalinkParser, -): MentionSpanProvider { - val provider = remember(currentUserId) { - MentionSpanProvider( - currentSessionId = currentUserId, - permalinkParser = permalinkParser, - ) - } - provider.setup() - return provider -} - @PreviewsDayNight @Composable internal fun MentionSpanPreview() { - val provider = rememberMentionSpanProvider( - currentUserId = SessionId("@me:matrix.org"), - permalinkParser = object : PermalinkParser { - override fun parse(uriString: String): PermalinkData { - return when (uriString) { - "https://matrix.to/#/@me:matrix.org" -> PermalinkData.UserLink(UserId("@me:matrix.org")) - "https://matrix.to/#/@other:matrix.org" -> PermalinkData.UserLink(UserId("@other:matrix.org")) - "https://matrix.to/#/#room:matrix.org" -> PermalinkData.RoomLink( - roomIdOrAlias = RoomAlias("#room:matrix.org").toRoomIdOrAlias(), - eventId = null, - viaParameters = persistentListOf(), - ) - else -> throw AssertionError("Unexpected value $uriString") - } - } - }, - ) ElementPreview { - provider.setup() + val provider = remember { + MentionSpanProvider( + currentSessionId = "@me:matrix.org", + permalinkParser = object : PermalinkParser { + override fun parse(uriString: String): PermalinkData { + return when (uriString) { + "https://matrix.to/#/@me:matrix.org" -> PermalinkData.UserLink(UserId("@me:matrix.org")) + "https://matrix.to/#/@other:matrix.org" -> PermalinkData.UserLink(UserId("@other:matrix.org")) + "https://matrix.to/#/#room:matrix.org" -> PermalinkData.RoomLink( + roomIdOrAlias = RoomAlias("#room:matrix.org").toRoomIdOrAlias(), + eventId = null, + viaParameters = persistentListOf(), + ) + else -> throw AssertionError("Unexpected value $uriString") + } + } + }, + ) + } + provider.updateStyles() val textColor = ElementTheme.colors.textPrimary.toArgb() fun mentionSpanMe() = provider.getMentionSpanFor("mention", "https://matrix.to/#/@me:matrix.org") @@ -199,3 +196,14 @@ internal fun MentionSpanPreview() { }) } } + +val LocalMentionSpanProvider = staticCompositionLocalOf { + MentionSpanProvider( + currentSessionId = "@dummy:value.org", + permalinkParser = object : PermalinkParser { + override fun parse(uriString: String): PermalinkData { + return PermalinkData.FallbackLink(Uri.EMPTY) + } + }, + ) +} diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/MarkdownTextEditorState.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/MarkdownTextEditorState.kt index 273aefa57b..0d3bb5fdda 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/MarkdownTextEditorState.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/MarkdownTextEditorState.kt @@ -93,13 +93,16 @@ class MarkdownTextEditorState( for (mention in mentions.reversed()) { val start = charSequence.getSpanStart(mention) val end = charSequence.getSpanEnd(mention) - if (mention.type == MentionSpan.Type.USER) { - if (mention.rawValue == "@room") { - replace(start, end, "@room") - } else { + when (mention.type) { + MentionSpan.Type.USER -> { val link = permalinkBuilder.permalinkForUser(UserId(mention.rawValue)).getOrNull() ?: continue - replace(start, end, "[${mention.text}]($link)") + replace(start, end, "[${mention.rawValue}]($link)") + } + MentionSpan.Type.EVERYONE -> { + replace(start, end, "@room") } + // Nothing to do here yet + MentionSpan.Type.ROOM -> Unit } } } @@ -114,14 +117,9 @@ class MarkdownTextEditorState( val mentionSpans = text.getSpans(0, text.length) return mentionSpans.mapNotNull { mentionSpan -> when (mentionSpan.type) { - MentionSpan.Type.USER -> { - if (mentionSpan.rawValue == "@room") { - Mention.AtRoom - } else { - Mention.User(UserId(mentionSpan.rawValue)) - } - } - else -> null + MentionSpan.Type.USER -> Mention.User(UserId(mentionSpan.rawValue)) + MentionSpan.Type.EVERYONE -> Mention.AtRoom + MentionSpan.Type.ROOM -> null } } } diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/Message.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/Message.kt index 226adc5e57..9467cca627 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/Message.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/Message.kt @@ -16,7 +16,10 @@ package io.element.android.libraries.textcomposer.model +import io.element.android.libraries.matrix.api.room.Mention + data class Message( val html: String?, val markdown: String, + val mentions: List, ) diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/MessageComposerMode.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/MessageComposerMode.kt index 2e2869aec7..ae983f74b6 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/MessageComposerMode.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/MessageComposerMode.kt @@ -16,43 +16,35 @@ package io.element.android.libraries.textcomposer.model -import android.os.Parcelable import androidx.compose.runtime.Immutable import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.TransactionId -import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo -import kotlinx.parcelize.Parcelize +import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent +import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails +import io.element.android.libraries.matrix.ui.messages.reply.eventId @Immutable -sealed interface MessageComposerMode : Parcelable { - @Parcelize +sealed interface MessageComposerMode { data object Normal : MessageComposerMode - sealed class Special(open val eventId: EventId?, open val defaultContent: String) : - MessageComposerMode + sealed interface Special : MessageComposerMode - @Parcelize - data class Edit(override val eventId: EventId?, override val defaultContent: String, val transactionId: TransactionId?) : - Special(eventId, defaultContent) + data class Edit( + val eventId: EventId?, + val transactionId: TransactionId?, + val content: String + ) : Special - @Parcelize - class Quote(override val eventId: EventId, override val defaultContent: String) : - Special(eventId, defaultContent) - - @Parcelize - class Reply( - val senderName: String, - val attachmentThumbnailInfo: AttachmentThumbnailInfo?, - val isThreaded: Boolean, - override val eventId: EventId, - override val defaultContent: String - ) : Special(eventId, defaultContent) + data class Reply( + val replyToDetails: InReplyToDetails + ) : Special { + val eventId: EventId = replyToDetails.eventId() + } val relatedEventId: EventId? get() = when (this) { is Normal -> null is Edit -> eventId - is Quote -> eventId is Reply -> eventId } @@ -63,5 +55,8 @@ sealed interface MessageComposerMode : Parcelable { get() = this is Reply val inThread: Boolean - get() = this is Reply && isThreaded + get() = this is Reply && + replyToDetails is InReplyToDetails.Ready && + replyToDetails.eventContent is MessageContent && + (replyToDetails.eventContent as MessageContent).isThreaded } diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/TextEditorState.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/TextEditorState.kt index ae7a15fb65..df7adc34dd 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/TextEditorState.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/model/TextEditorState.kt @@ -45,6 +45,20 @@ sealed interface TextEditorState { is Rich -> richTextEditorState.hasFocus } + suspend fun setHtml(html: String) { + when (this) { + is Markdown -> Unit + is Rich -> richTextEditorState.setHtml(html) + } + } + + suspend fun setMarkdown(text: String) { + when (this) { + is Markdown -> state.text.update(text, true) + is Rich -> richTextEditorState.setMarkdown(text) + } + } + suspend fun reset() { when (this) { is Markdown -> { diff --git a/libraries/textcomposer/impl/src/main/res/values-el/translations.xml b/libraries/textcomposer/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..7c17c5f6e4 --- /dev/null +++ b/libraries/textcomposer/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,25 @@ + + + "Προσθήκη συνημμένου" + "Διακόπτης λίστας κουκκίδων" + "Κλείσε τις επιλογές μορφοποίησης" + "Διακόπτης μπλοκ κώδικα" + "Μήνυμα…" + "Δημιούργησε έναν σύνδεσμο" + "Επεξεργασία συνδέσμου" + "Εφαρμογή έντονης μορφής" + "Εφαρμογή πλάγιας μορφής" + "Εφαρμογή μορφής διαγραφής" + "Εφαρμογή μορφής υπογράμμισης" + "Εναλλαγή λειτουργίας πλήρους οθόνης" + "Εσοχή" + "Εφαρμογή ενσωματωμένης μορφής κώδικα" + "Ορισμός συνδέσμου" + "Διακόπτης αριθμημένης λίστας" + "Άνοιξε τις επιλογές σύνθεσης" + "Διακόπτης παράθεσης" + "Κατάργηση συνδέσμου" + "Χωρίς εσοχή" + "Σύνδεσμος" + "Κράτα για εγγραφή" + diff --git a/libraries/textcomposer/impl/src/main/res/values-et/translations.xml b/libraries/textcomposer/impl/src/main/res/values-et/translations.xml index ae4ac16f03..902177bd7e 100644 --- a/libraries/textcomposer/impl/src/main/res/values-et/translations.xml +++ b/libraries/textcomposer/impl/src/main/res/values-et/translations.xml @@ -21,4 +21,5 @@ "Eemalda link" "Eemalda taandrida" "Link" + "Salvestamiseks hoia nuppu all"
diff --git a/libraries/textcomposer/impl/src/main/res/values-zh-rTW/translations.xml b/libraries/textcomposer/impl/src/main/res/values-zh-rTW/translations.xml index 18eda58300..28382ecc1b 100644 --- a/libraries/textcomposer/impl/src/main/res/values-zh-rTW/translations.xml +++ b/libraries/textcomposer/impl/src/main/res/values-zh-rTW/translations.xml @@ -2,6 +2,7 @@ "新增附件" "切換項目編號" + "關閉格式化選項" "切換程式碼區塊" "訊息" "建立連結" @@ -12,6 +13,7 @@ "套用底線" "切換全螢幕模式" "增加縮排" + "套用行內程式碼" "設定連結" "切換數字編號" "切換引用" diff --git a/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/components/markdown/MarkdownTextInputTest.kt b/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/components/markdown/MarkdownTextInputTest.kt index bedd3c9c1e..7147235603 100644 --- a/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/components/markdown/MarkdownTextInputTest.kt +++ b/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/components/markdown/MarkdownTextInputTest.kt @@ -164,7 +164,7 @@ class MarkdownTextInputTest { editor = it.findEditor() state.insertMention( ResolvedMentionSuggestion.Member(roomMember = aRoomMember()), - MentionSpanProvider(currentSessionId = A_SESSION_ID, permalinkParser = permalinkParser), + MentionSpanProvider(currentSessionId = A_SESSION_ID.value, permalinkParser = permalinkParser), permalinkBuilder, ) } diff --git a/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/mentions/MentionSpanProviderTest.kt b/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/mentions/MentionSpanProviderTest.kt index 7245da04c6..bb53f0a79d 100644 --- a/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/mentions/MentionSpanProviderTest.kt +++ b/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/mentions/MentionSpanProviderTest.kt @@ -43,13 +43,14 @@ class MentionSpanProviderTest { private val permalinkParser = FakePermalinkParser() private val mentionSpanProvider = MentionSpanProvider( - currentSessionId = currentUserId, + currentSessionId = currentUserId.value, permalinkParser = permalinkParser, - currentUserBackgroundColor = myUserColor, - currentUserTextColor = myUserColor, - otherBackgroundColor = otherColor, - otherTextColor = otherColor, - ) + ).apply { + currentUserBackgroundColor = myUserColor + currentUserTextColor = myUserColor + otherBackgroundColor = otherColor + otherTextColor = otherColor + } @Test fun `getting mention span for current user should return a MentionSpan with custom colors`() { diff --git a/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/model/MarkdownTextEditorStateTest.kt b/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/model/MarkdownTextEditorStateTest.kt index bd2b6785ed..02c98da423 100644 --- a/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/model/MarkdownTextEditorStateTest.kt +++ b/libraries/textcomposer/impl/src/test/kotlin/io/element/android/libraries/textcomposer/impl/model/MarkdownTextEditorStateTest.kt @@ -124,7 +124,7 @@ class MarkdownTextEditorStateTest { val markdown = state.getMessageMarkdown(permalinkBuilder = permalinkBuilder) assertThat(markdown).isEqualTo( - "Hello [@Alice](https://matrix.to/#/@alice:matrix.org) and everyone in @room" + "Hello [@alice:matrix.org](https://matrix.to/#/@alice:matrix.org) and everyone in @room" ) } @@ -151,12 +151,12 @@ class MarkdownTextEditorStateTest { currentSessionId: SessionId = A_SESSION_ID, permalinkParser: FakePermalinkParser = FakePermalinkParser(), ): MentionSpanProvider { - return MentionSpanProvider(currentSessionId, permalinkParser) + return MentionSpanProvider(currentSessionId.value, permalinkParser) } private fun aMarkdownTextWithMentions(): CharSequence { val userMentionSpan = MentionSpan("@Alice", "@alice:matrix.org", MentionSpan.Type.USER, 0, 0, 0, 0) - val atRoomMentionSpan = MentionSpan("@room", "@room", MentionSpan.Type.USER, 0, 0, 0, 0) + val atRoomMentionSpan = MentionSpan("@room", "@room", MentionSpan.Type.EVERYONE, 0, 0, 0, 0) return buildSpannedString { append("Hello ") inSpans(userMentionSpan) { diff --git a/libraries/troubleshoot/impl/build.gradle.kts b/libraries/troubleshoot/impl/build.gradle.kts index 4967a34cf3..b5a0a9012d 100644 --- a/libraries/troubleshoot/impl/build.gradle.kts +++ b/libraries/troubleshoot/impl/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) alias(libs.plugins.kotlin.serialization) } @@ -44,7 +43,6 @@ dependencies { api(projects.libraries.troubleshoot.api) api(projects.libraries.push.api) implementation(projects.services.analytics.api) - ksp(libs.showkase.processor) testImplementation(libs.test.junit) testImplementation(libs.test.robolectric) diff --git a/libraries/troubleshoot/impl/src/main/res/values-el/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..115d526e2d --- /dev/null +++ b/libraries/troubleshoot/impl/src/main/res/values-el/translations.xml @@ -0,0 +1,11 @@ + + + "Εκτέλεση δοκιμών" + "Επανεκτέλεση δοκιμών" + "Ορισμένες δοκιμές απέτυχαν. Παρακαλώ έλεγξε τις λεπτομέρειες." + "Εκτέλεσε τις δοκιμές για να εντοπίσεις οποιοδήποτε πρόβλημα στη διαμόρφωσή σου που ενδέχεται να κάνει τις ειδοποιήσεις να μην συμπεριφέρονται όπως αναμένεται." + "Προσπάθεια διόρθωσης" + "Όλες οι δοκιμές έγιναν με επιτυχία." + "Αντιμετώπιση προβλημάτων ειδοποιήσεων" + "Ορισμένες δοκιμές απαιτούν την προσοχή σου. Έλεγξε τις λεπτομέρειες." + diff --git a/libraries/troubleshoot/impl/src/main/res/values-et/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-et/translations.xml new file mode 100644 index 0000000000..b5e3e8bff7 --- /dev/null +++ b/libraries/troubleshoot/impl/src/main/res/values-et/translations.xml @@ -0,0 +1,11 @@ + + + "Käivita testid" + "Käivita testid uuesti" + "Mõned testid tuvastasid vigu. Palun vaata üksikasjalikku teavet." + "Tuvastamaks kas teavituste toimimiseks on vigu, palun käivita mõned asjakohased testid." + "Proovi seda lahendada" + "Testid ei tuvastanud vigu." + "Teavituste veaotsing" + "Palun pööra tähelepanu mõnede testide tulemustele. Palun vaata üksikasjalikku teavet." + diff --git a/libraries/troubleshoot/impl/src/main/res/values-pt/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-pt/translations.xml index 33f54d0712..d6972ebc6a 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-pt/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-pt/translations.xml @@ -6,6 +6,6 @@ "Corre os testes para detetar problemas com a tua configuração que possam levar a comportamentos inesperados das notificações." "Tentar corrigir" "Todos os testes realizados sem problemas." - "Resolver problemas com as notificações" + "Corrigir notificações" "Alguns testes necessitam a tua atenção. Por favor, verifica os detalhes." diff --git a/libraries/troubleshoot/impl/src/main/res/values-sv/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-sv/translations.xml new file mode 100644 index 0000000000..77f07c48f4 --- /dev/null +++ b/libraries/troubleshoot/impl/src/main/res/values-sv/translations.xml @@ -0,0 +1,11 @@ + + + "Kör tester" + "Kör tester igen" + "Vissa tester misslyckades. Kontrollera detaljerna." + "Kör testerna för att upptäcka eventuella problem i din konfiguration som kan göra att aviseringar inte fungerar som förväntat." + "Försök att fixa" + "Alla tester godkändes." + "Felsök aviseringar" + "Vissa tester kräver din uppmärksamhet. Kontrollera detaljerna." + diff --git a/libraries/ui-strings/src/main/res/values-be/translations.xml b/libraries/ui-strings/src/main/res/values-be/translations.xml index 23a2360b75..623ffc8363 100644 --- a/libraries/ui-strings/src/main/res/values-be/translations.xml +++ b/libraries/ui-strings/src/main/res/values-be/translations.xml @@ -131,12 +131,16 @@ "Памылка расшыфроўкі" "Параметры распрацоўшчыка" "Прамы чат" + "Не паказваць гэта зноў" "(Адрэдагавана)" "Рэдагаванне" "* %1$s %2$s" "Шыфраванне ўключана" "Увядзіце свой PIN-код" "Памылка" + "Адбылася памылка, вы можаце не атрымліваць апавяшчэнні аб новых паведамленнях. Ліквідуйце непаладкі з апавяшчэннямі ў наладах. + +Прычына: %1$s." "Усе" "Памылка" "Абраць" @@ -254,9 +258,7 @@ "У %1$s няма дазволу на доступ да вашага месцазнаходжання. Дазвольце доступ ніжэй." "%1$s не мае дазволу на доступ да вашага мікрафона. Дазвольце доступ да запісу галасавога паведамлення." "Некаторыя паведамленні не былі адпраўлены" - "На жаль, адбылася памылка" - "Каб не прапусціць важны званок, зменіце налады, каб дазволіць поўнаэкранныя апавяшчэнні, калі тэлефон заблакіраваны." - "Палепшыце якасць званкоў" + "Выбачце, адбылася памылка" "🔐️ Далучайцеся да мяне %1$s" "Гэй, пагавары са мной у %1$s: %2$s" "%1$s Android" diff --git a/libraries/ui-strings/src/main/res/values-cs/translations.xml b/libraries/ui-strings/src/main/res/values-cs/translations.xml index 0742dd7a4b..871e62207d 100644 --- a/libraries/ui-strings/src/main/res/values-cs/translations.xml +++ b/libraries/ui-strings/src/main/res/values-cs/translations.xml @@ -131,12 +131,16 @@ "Chyba dešifrování" "Možnosti pro vývojáře" "Přímý chat" + "Znovu nezobrazovat" "(upraveno)" "Úpravy" "* %1$s %2$s" "Šifrování povoleno" "Zadejte svůj PIN" "Chyba" + "Došlo k chybě, nemusíte dostávat oznámení o nových zprávách. Vyřešte prosím problémy s oznámeními z nastavení. + +Důvod: %1$s." "Všichni" "Selhalo" "Oblíbené" @@ -255,8 +259,6 @@ "%1$s nemá oprávnění k přístupu k mikrofonu. Povolte přístup k nahrávání hlasové zprávy." "Některé zprávy nebyly odeslány" "Omlouváme se, došlo k chybě" - "Abyste nikdy nezmeškali důležitý hovor, změňte nastavení tak, abyste povolili oznámení na celé obrazovce, když je telefon uzamčen." - "Vylepšete si zážitek z volání" "🔐️ Připojte se ke mně na %1$s" "Ahoj, ozvi se mi na %1$s: %2$s" "%1$s Android" diff --git a/libraries/ui-strings/src/main/res/values-el/translations.xml b/libraries/ui-strings/src/main/res/values-el/translations.xml new file mode 100644 index 0000000000..4b86c08ec0 --- /dev/null +++ b/libraries/ui-strings/src/main/res/values-el/translations.xml @@ -0,0 +1,283 @@ + + + "Διαγραφή" + + "%1$d ψηφίο εισήχθη" + "%1$d ψηφία εισήχθησαν" + + "Απόκρυψη κωδικού πρόσβασης" + "Άλμα προς τα κάτω" + "Αναφορές μόνο" + "Σε σίγαση" + "Σελίδα %1$d" + "Παύση" + "Πεδίο PIN" + "Αναπαραγωγή" + "Δημοσκόπηση" + "Ολοκληρωμένη δημοσκόπηση" + "Αντέδρασε με %1$s" + "Αντέδρασε με άλλα emoji" + "Διαβάστηκε από%1$s και %2$s" + + "Διαβάστηκε από %1$s και %2$d ακόμη" + "Διαβάστηκε από %1$s και %2$d ακόμη" + + "Διαβάστηκε από %1$s" + "Πάτα για εμφάνιση όλων" + "Αφαίρεση αντίδρασης με %1$s" + "Αποστολή αρχείων" + "Εμφάνιση κωδικού πρόσβασης" + "Ξεκίνησε μια κλήση" + "Μενού χρήστη" + "Εγγραφή φωνητικού μηνύματος." + "Διακοπή καταγραφής" + "Αποδοχή" + "Προσθήκη στο χρονοδιάγραμμα" + "Πίσω" + "Κάλεσε" + "Άκυρο" + "Επιλογή φωτογραφίας" + "Εκκαθάριση" + "Κλείσιμο" + "Ολοκλήρωση επαλήθευσης" + "Επιβεβαίωση" + "Συνέχεια" + "Αντιγραφή" + "Αντιγραφή συνδέσμου" + "Αντιγραφή συνδέσμου στο μήνυμα" + "Δημιουργία" + "Δημιούργησε ένα δωμάτιο" + "Απόρριψη" + "Διαγραφή Δημοσκόπησης" + "Απενεργοποίηση" + "Απόρριψη" + "Έγινε" + "Επεξεργασία" + "Επεξεργασία δημοσκόπησης" + "Ενεργοποίηση" + "Λήξη δημοσκόπησης" + "Εισαγωγή PIN" + "Ξέχασες τον κωδικό πρόσβασης;" + "Προώθηση" + "Πήγαινε πίσω" + "Πρόσκληση" + "Πρόσκληση ατόμων" + "Πρόσκληση ατόμων στο %1$s" + "Προσκάλεσε χρήστες στο %1$s" + "Προσκλήσεις" + "Συμμετοχή" + "Μάθε περισσότερα" + "Αποχώρηση" + "Αποχώρηση από τη συζήτηση" + "Αποχώρηση από το δωμάτιο" + "Φόρτωσε περισσότερα" + "Διαχείριση λογαριασμού" + "Διαχείριση συσκευών" + "Στείλε" + "Επόμενο" + "Όχι" + "Όχι τώρα" + "OK" + "Ρυθμίσεις" + "Άνοιγμα με" + "Γρήγορη απάντηση" + "Παράθεση" + "Αντέδρασε" + "Απόρριψη" + "Αφαίρεση" + "Απάντηση" + "Απάντηση στο θέμα" + "Αναφορά σφάλματος" + "Αναφορά περιεχομένου" + "Επαναφορά" + "Επανάληψη" + "Επανάληψη αποκρυπτογράφησης" + "Αποθήκευση" + "Αναζήτηση" + "Αποστολή" + "Αποστολή μηνύματος" + "Κοινή χρήση" + "Κοινή χρήση συνδέσμου" + "Συνδέσου ξανά" + "Αποσύνδεση" + "Αποσύνδεση ούτως ή άλλως" + "Παράλειψη" + "Εκκίνηση" + "Έναρξη συνομιλίας" + "Έναρξη επαλήθευσης" + "Πάτα για φόρτωση χάρτη" + "Τράβηξε φωτογραφία" + "Πάτα για επιλογές" + "Προσπάθησε ξανά" + "Προβολή πηγής" + "Ναι" + "Σχετικά" + "Πολιτική αποδεκτής χρήσης" + "Ρυθμίσεις για προχωρημένους" + "Στατιστικά στοιχεία" + "Εμφάνιση" + "Ήχος" + "Φυσαλίδες" + "Κλήση σε εξέλιξη (δεν υποστηρίζεται)" + "Η κλήση ξεκίνησε" + "Αντίγραφο ασφαλείας συνομιλίας" + "Πνευματικά δικαιώματα" + "Δημιουργία δωματίου…" + "Αποχώρησε από το δωμάτιο" + "Σκοτεινό" + "Σφάλμα αποκρυπτογράφησης" + "Επιλογές προγραμματιστή" + "Άμεση συνομιλία" + "Να μην εμφανιστεί ξανά" + "(επεξεργάστηκε)" + "Επεξεργάζεται" + "* %1$s %2$s" + "Η κρυπτογράφηση ενεργοποιήθηκε" + "Εισήγαγε το PIN σου" + "Σφάλμα" + "Παρουσιάστηκε σφάλμα, ενδέχεται να μην λαμβάνεις ειδοποιήσεις για νέα μηνύματα. Αντιμετώπισε το πρόβλημα με τις ειδοποιήσεις από τις ρυθμίσεις. + +Αιτία:%1$s." + "Όλοι" + "Απέτυχε" + "Αγαπημένο" + "Είναι αγαπημένο" + "Αρχείο" + "Αρχείο αποθηκευμένο σε Λήψεις" + "Προώθηση μηνύματος" + "GIF" + "Εικόνα" + "Σε απάντηση στον χρήστη %1$s" + "Εγκατάσταση APK" + "Αυτό το Matrix ID δεν μπορεί να βρεθεί, επομένως η πρόσκληση ενδέχεται να μην ληφθεί." + "Αποχώρηση από το δωμάτιο" + "Φωτεινό" + "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο" + "Φόρτωση…" + + "%1$d μέλος" + "%1$d μέλη" + + "Μήνυμα" + "Ενέργειες μηνυμάτων" + "Διάταξη μηνύματος" + "Το μήνυμα αφαιρέθηκε" + "Σύγχρονη" + "Σίγαση" + "Κανένα αποτέλεσμα" + "Χωρίς όνομα δωματίου" + "Εκτός σύνδεσης" + "ή" + "Κωδικός πρόσβασης" + "Άτομα" + "Μόνιμος σύνδεσμος" + "Αδεια" + "Παρακαλώ περίμενε…" + "Θες σίγουρα να τερματίσεις αυτή τη δημοσκόπηση;" + "Δημοσκόπηση: %1$s" + "Σύνολο ψήφων: %1$s" + "Τα αποτελέσματα θα εμφανιστούν μετά τη λήξη της ψηφοφορίας" + + "%d ψήφος" + "%d ψήφοι" + + "Πολιτική απορρήτου" + "Αντίδραση" + "Αντιδράσεις" + "Κλειδί ανάκτησης" + "Ανανέωση…" + "Απάντηση σε %1$s" + "Αναφορά σφάλματος" + "Αναφορά προβλήματος" + "Η αναφορά υποβλήθηκε" + "Επεξεργαστής εμπλουτισμένου κειμένου" + "Δωμάτιο" + "Όνομα δωματίου" + "πχ. το όνομα του έργου σου" + "Αποθηκευμένες αλλαγές" + "Αποθηκεύεται" + "Κλείδωμα οθόνης" + "Αναζήτησε κάποιον" + "Αποτελέσματα αναζήτησης" + "Ασφάλεια" + "Προβλήθηκε από" + "Αποστολή σε" + "Αποστολή…" + "Αποτυχία αποστολής" + "Εστάλη" + "Ο διακομιστής δεν υποστηρίζεται" + "URL διακομιστή" + "Ρυθμίσεις" + "Κοινόχρηστη τοποθεσία" + "Αποσύνδεση" + "Κάτι πήγε στραβά" + "Έναρξη συνομιλίας…" + "Αυτοκόλλητο" + "Επιτυχία" + "Προτάσεις" + "Συγχρονισμός" + "Σύστημα" + "Κείμενο" + "Ειδοποιήσεις τρίτων" + "Νήμα" + "Θέμα" + "Τί αφορά το δωμάτιο;" + "Δεν είναι δυνατή η αποκρυπτογράφηση" + "Δεν έχεις πρόσβαση σε αυτό το μήνυμα" + "Δεν ήταν δυνατή η αποστολή προσκλήσεων σε έναν ή περισσότερους χρήστες." + "Δεν είναι δυνατή η αποστολή προσκλήσεων" + "Ξεκλείδωμα" + "Άρση σίγασης" + "Μη υποστηριζόμενο συμβάν" + "Όνομα χρήστη" + "Η επαλήθευση ακυρώθηκε" + "Η επαλήθευση ολοκληρώθηκε" + "Επαλήθευση συσκευής" + "Βίντεο" + "Φωνητικό μήνυμα" + "Αναμονή…" + "Αναμονή για αυτό το μήνυμα" + "Επιβεβαίωση" + "Σφάλμα" + "Επιτυχία" + "Προειδοποίηση" + "Οι αλλαγές σου δεν έχουν αποθηκευτεί. Σίγουρα θες να πας πίσω;" + "Αποθήκευση αλλαγών;" + "Αποτυχία δημιουργίας του μόνιμου συνδέσμου" + "%1$s δεν ήταν δυνατή η φόρτωση του χάρτη. Παρακαλώ δοκίμασε ξανά αργότερα." + "Αποτυχία φόρτωσης μηνυμάτων" + "Το %1$s δεν μπόρεσε να αποκτήσει πρόσβαση στην τοποθεσία σου. Προσπάθησε ξανά αργότερα." + "Αποτυχία μεταφόρτωσης του φωνητικού σου μηνύματος." + "Το μήνυμα δεν βρέθηκε" + "Το %1$s δεν έχει άδεια πρόσβασης στην τοποθεσία σου. Μπορείς να ενεργοποιήσεις την πρόσβαση στις Ρυθμίσεις." + "Ο χρήστης %1$s δεν έχει άδεια πρόσβασης στην τοποθεσία σου. Ενεργοποίησε την πρόσβαση παρακάτω." + "Το %1$s δεν έχει άδεια πρόσβασης στο μικρόφωνό σου. Ενεργοποίησε την πρόσβαση για εγγραφή φωνητικού μηνύματος." + "Ορισμένα μηνύματα δεν έχουν σταλεί" + "Λυπούμαστε, παρουσιάστηκε σφάλμα" + "🔐️ Έλα μαζί μου στο %1$s" + "Γεια, μίλα μου στην εφαρμογή %1$s :%2$s" + "%1$s Android" + "Κούνησε δυνατά τη συσκευή σου για να αναφέρεις κάποιο σφάλμα" + "Αποτυχία επιλογής πολυμέσου, δοκίμασε ξανά." + "Αποτυχία μεταφόρτωσης μέσου, δοκίμασε ξανά." + "Αποτυχία μεταφόρτωσης πολυμέσων, δοκίμασε ξανά." + "Αποτυχία μεταφόρτωσης μέσου, δοκίμασε ξανά." + "Δεν ήταν δυνατή η ανάκτηση στοιχείων χρήστη" + "Αποκλεισμός" + "Οι αποκλεισμένοι χρήστες δεν θα μπορούν να σου στέλνουν μηνύματα και όλα τα μηνύματά τους θα είναι κρυμμένα. Μπορείς να τα ξεμπλοκάρεις ανά πάσα στιγμή." + "Αποκλεισμός χρήστη" + "Προφίλ" + "Άρση αποκλεισμού" + "Θα μπορείς να δεις ξανά όλα τα μηνύματα του." + "Κατάργηση αποκλεισμού χρήστη" + "Συνομιλία" + "Κοινή χρήση τοποθεσίας" + "Κοινή χρήση της τοποθεσίας μου" + "Άνοιγμα στο Apple Maps" + "Άνοιγμα στο Google Maps" + "Άνοιγμα στο OpenStreetMap" + "Κοινή χρήση αυτής της τοποθεσίας" + "Τοποθεσία" + "Έκδοση: %1$s (%2$s)" + "el" + diff --git a/libraries/ui-strings/src/main/res/values-et/translations.xml b/libraries/ui-strings/src/main/res/values-et/translations.xml index a3f580eb19..96ff21c1e3 100644 --- a/libraries/ui-strings/src/main/res/values-et/translations.xml +++ b/libraries/ui-strings/src/main/res/values-et/translations.xml @@ -62,6 +62,7 @@ "Tagasi eelmisesse vaatesse" "Kutsu" "Kutsu osalejaid" + "Kutsu huvilisi kasutama rakendust %1$s" "Kutsu huvilisi kasutama rakendust %1$s" "Kutsed" "Liitu" @@ -82,6 +83,7 @@ "Kiirvastus" "Tsiteeri" "Reageeri" + "Lükka tagasi" "Eemalda" "Vasta" "Vasta jutulõngas" @@ -127,12 +129,16 @@ "Dekrüptimisviga" "Arendaja valikud" "Otsevestlus" + "Ära enam näita seda uuesti" "(muudetud)" "Muutmine" "* %1$s %2$s" "Krüptimine on kasutusel" "Sisesta oma PIN-kood" "Viga" + "Tekkis viga ja sa ei pruugi enam saada uute sõnumite kohta teavitusi. Palun kontrolli teavituste seadistusi ja proovi viga tuvastada. + +Põhjus: %1$s." "Kõik" "Ei õnnestunud" "Lemmik" @@ -158,7 +164,7 @@ "Sõnumi paigutus" "Sõnum on eemaldatud" "Kaasaegne" - "Summuta" + "Summutamine" "Otsingul pole tulemusi" "Jututoal puudub nimi" "Võrgust väljas" @@ -196,6 +202,7 @@ "Otsingutulemused" "Turvalisus" "Seda nägi" + "Saada kasutajale" "Saadame…" "Saatmine ei õnnestunud" "Saadetud" @@ -209,6 +216,9 @@ "Kleeps" "Õnnestus" "Soovitused" + "Sünkroniseerime" + "Süsteem" + "Tekst" "Kolmandate osapoolte teatised" "Jutulõng" "Teema" @@ -253,8 +263,20 @@ "Meediafaili töötlemine enne üleslaadimist ei õnnestunud. Palun proovi uuesti." "Meediafaili üleslaadimine ei õnnestunud. Palun proovi uuesti." "Meediafaili töötlemine enne üleslaadimist ei õnnestunud. Palun proovi uuesti." + "Kasutaja andmete laadimine ei õnnestunud" + "Blokeeri" + "Blokeeritud kasutajad ei saa sulle kirjutada ja kõik nende sõnumid on sinu eest peidetud. Sa saad alati blokeeringu eemaldada." + "Blokeeri kasutaja" + "Profiil" + "Eemalda blokeering" + "Nüüd näed sa jälle kõiki tema sõnumeid" + "Eemalda kasutajalt blokeering" + "Vestlus" "Jaga asukohta" "Jaga minu asukohta" + "Ava Apple Mapsis" + "Ava Google Mapsis" + "Ava OpenStreetMapis" "Jaga seda asukohta" "Asukoht" "Versioon: %1$s (%2$s)" diff --git a/libraries/ui-strings/src/main/res/values-fr/translations.xml b/libraries/ui-strings/src/main/res/values-fr/translations.xml index 3d62afc21d..a62f307a6f 100644 --- a/libraries/ui-strings/src/main/res/values-fr/translations.xml +++ b/libraries/ui-strings/src/main/res/values-fr/translations.xml @@ -129,12 +129,16 @@ "Erreur de déchiffrement" "Options pour les développeurs" "Discussion à deux" + "Ne plus afficher" "(modifié)" "Édition" "* %1$s %2$s" "Chiffrement activé" "Saisissez votre code PIN" "Erreur" + "Une erreur s’est produite, il est possible que vous ne receviez pas de notifications pour les nouveaux messages. Veuillez résoudre les problèmes liés aux notifications depuis les paramètres. + +Raison: %1$s." "Tout le monde" "Échec" "Favori" @@ -224,7 +228,7 @@ "Les invitations n’ont pas pu être envoyées à un ou plusieurs utilisateurs." "Impossible d’envoyer une ou plusieurs invitations" "Déverrouillage" - "Annuler la sourdine" + "Retirer la sourdine" "Événement non pris en charge" "Nom d’utilisateur" "Vérification annulée" @@ -248,11 +252,9 @@ "Message introuvable" "%1$s n’est pas autorisé à accéder à votre position. Vous pouvez activer l’accès dans les Paramètres." "%1$s n’est pas autorisé à accéder à votre position. Activez l’accès ci-dessous." - "%1$s n’a pas l’autorisation d’accéder au microphone. Autorisez l’accès pour enregistrer un message." + "%1$s n’a pas l’autorisation d’utiliser le microphone. Autorisez l’utilisation pour enregistrer un message vocal." "Certains messages n’ont pas été envoyés" "Désolé, une erreur s’est produite" - "Afin de ne jamais manquer un appel important, veuillez modifier vos paramètres pour autoriser les notifications en plein écran lorsque votre appareil est verrouillé." - "Améliorez votre expérience d’appel" "🔐️ Rejoignez-moi sur %1$s" "Salut, parle-moi sur %1$s : %2$s" "%1$s Android" diff --git a/libraries/ui-strings/src/main/res/values-hu/translations.xml b/libraries/ui-strings/src/main/res/values-hu/translations.xml index 5994998a54..9f973e7ef5 100644 --- a/libraries/ui-strings/src/main/res/values-hu/translations.xml +++ b/libraries/ui-strings/src/main/res/values-hu/translations.xml @@ -129,12 +129,16 @@ "Visszafejtési hiba" "Fejlesztői beállítások" "Közvetlen csevegés" + "Ne jelenjen meg többé" "(szerkesztve)" "Szerkesztés" "* %1$s %2$s" "Titkosítás engedélyezve" "Adja meg a PIN-kódját" "Hiba" + "Hiba történt, előfordulhat, hogy nem kap értesítést az új üzenetekről. Az értesítések hibaelhárítása a beállításokban található. + +Ok: %1$s." "Mindenki" "Sikertelen" "Kedvenc" diff --git a/libraries/ui-strings/src/main/res/values-in/translations.xml b/libraries/ui-strings/src/main/res/values-in/translations.xml index 33ebd44391..b18cd28116 100644 --- a/libraries/ui-strings/src/main/res/values-in/translations.xml +++ b/libraries/ui-strings/src/main/res/values-in/translations.xml @@ -127,12 +127,16 @@ "Kesalahan dekripsi" "Opsi pengembang" "Obrolan langsung" + "Jangan tampilkan ini lagi" "(disunting)" "Penyuntingan" "* %1$s %2$s" "Enkripsi diaktifkan" "Masukkan PIN Anda" "Eror" + "Terjadi kesalahan, Anda mungkin tidak menerima notifikasi pesan baru. Silakan memecahkan masalah notifikasi dari pengaturan. + +Alasan: %1$s." "Semua orang" "Gagal" "Favorit" diff --git a/libraries/ui-strings/src/main/res/values-it/translations.xml b/libraries/ui-strings/src/main/res/values-it/translations.xml index fd216e1e0b..b727d3bac4 100644 --- a/libraries/ui-strings/src/main/res/values-it/translations.xml +++ b/libraries/ui-strings/src/main/res/values-it/translations.xml @@ -34,6 +34,7 @@ "Accetta" "Aggiungi alla conversazione" "Indietro" + "Chiama" "Annulla" "Scegli foto" "Cancella" @@ -72,6 +73,7 @@ "Carica altro" "Gestisci account" "Gestisci dispositivi" + "Invia messaggio" "Avanti" "No" "Non ora" @@ -81,6 +83,7 @@ "Risposta rapida" "Citazione" "Reagisci" + "Rifiuta" "Rimuovi" "Rispondi" "Rispondi nella discussione" @@ -117,6 +120,7 @@ "Utenti bloccati" "Fumetti" "Chiamata in corso (non supportata)" + "Chiamata avviata" "Backup della chat" "Copyright" "Creazione stanza…" @@ -125,12 +129,16 @@ "Errore di decrittazione" "Opzioni sviluppatore" "Conversazione diretta" + "Non mostrarlo più" "(modificato)" "Modifica in corso" "* %1$s %2$s" "Crittografia abilitata" "Inserisci il PIN" "Errore" + "Si è verificato un errore, potresti non ricevere notifiche per nuovi messaggi. Risolvi i problemi relativi alle notifiche dalle impostazioni. + +Motivo:. %1$s" "Tutti" "Fallito" "Preferiti" @@ -194,6 +202,7 @@ "Risultati di ricerca" "Sicurezza" "Visto da" + "Invia a" "Invio in corso…" "Invio fallito" "Inviato" @@ -262,6 +271,7 @@ "Sblocca" "Potrai vedere di nuovo tutti i suoi messaggi." "Sblocca utente" + "Conversazione" "Condividi posizione" "Condividi la mia posizione" "Apri in Apple Maps" diff --git a/libraries/ui-strings/src/main/res/values-pt/translations.xml b/libraries/ui-strings/src/main/res/values-pt/translations.xml index 0eba725f88..005082f743 100644 --- a/libraries/ui-strings/src/main/res/values-pt/translations.xml +++ b/libraries/ui-strings/src/main/res/values-pt/translations.xml @@ -23,7 +23,7 @@ "Lida por %1$s e %2$d outros" "Lida por %1$s" - "Toque para mostrar tudo" + "Toca para mostrar tudo" "Remover reação com %1$s" "Enviar ficheiros" "Mostrar senha" @@ -98,14 +98,14 @@ "Enviar mensagem" "Partilhar" "Partilhar ligação" - "Inicia sessão novamente" + "Iniciar sessão novamente" "Terminar sessão" "Terminar mesmo assim" "Saltar" "Iniciar" "Iniciar conversa" "Iniciar verificação" - "Toque para carregar o mapa" + "Toca para carregar o mapa" "Tirar foto" "Toca para ver as opções" "Tentar novamente" @@ -129,12 +129,16 @@ "Erro de decifragem" "Opções de programador" "Conversa direta" + "Não mostrar novamente" "(editada)" "A editar" "* %1$s %2$s" "Cifragem ativada" "Introduz o teu PIN" "Erro" + "Ocorreu um erro, podes não estar a receber notificações de novas mensagens. Resolve o problema nas configurações. + +Razão: %1$s." "Toda a gente" "Falha" "Marcar como favorita" @@ -247,7 +251,7 @@ "Falha ao carregar mensagem de voz." "Mensagem não encontrada" "A %1$s não tem permissão para aceder à tua localização. Podes ativar o acesso nas Definições." - "A %1$s não tem permissão para aceder à tua localização. Ativa o acesso abaixo." + "A %1$s não tem permissão para aceder à tua localização. Continua para ativares o acesso." "A %1$s não tem permissão para aceder ao teu microfone. Permite o acesso para gravar uma mensagem de voz." "Algumas mensagens não foram enviadas" "Ocorreu um erro, desculpa" diff --git a/libraries/ui-strings/src/main/res/values-ro/translations.xml b/libraries/ui-strings/src/main/res/values-ro/translations.xml index a4c0eb8bfe..53cc7c3416 100644 --- a/libraries/ui-strings/src/main/res/values-ro/translations.xml +++ b/libraries/ui-strings/src/main/res/values-ro/translations.xml @@ -85,6 +85,7 @@ "Raspuns rapid" "Citat" "Reacționați" + "Respinge" "Ștergeți" "Răspundeți" "Răspundeți în fir" @@ -121,6 +122,7 @@ "Utilizatori blocați" "Baloane" "Apel în curs (nesuportat)" + "A început un apel" "Backup conversații" "Drepturi de autor" "Se creează camera…" @@ -200,6 +202,7 @@ "Rezultatele căutării" "Securitate" "Văzut de" + "Trimiteți către" "Se trimite…" "Trimiterea a eșuat" "Trimis" diff --git a/libraries/ui-strings/src/main/res/values-ru/translations.xml b/libraries/ui-strings/src/main/res/values-ru/translations.xml index b629f1dcd1..12067cbeaa 100644 --- a/libraries/ui-strings/src/main/res/values-ru/translations.xml +++ b/libraries/ui-strings/src/main/res/values-ru/translations.xml @@ -131,12 +131,16 @@ "Ошибка расшифровки" "Для разработчика" "Личный чат" + "Не показывать больше" "(изменено)" "Редактирование" "%1$s%2$s" "Шифрование включено" "Введите свой PIN-код" "Ошибка" + "Произошла ошибка, возможно, вы не будете получать уведомления о новых сообщениях. Устраните неполадки с уведомлениями в настройках. + +Причина:%1$s." "Для всех" "Ошибка" "Избранное" @@ -257,8 +261,6 @@ "%1$s не имеет разрешения на доступ к вашему микрофону. Разрешите доступ к записи голосового сообщения." "Некоторые сообщения не были отправлены" "Извините, произошла ошибка" - "Чтобы никогда не пропустить важный звонок, измените настройки, чтобы разрешить полноэкранные уведомления, когда ваш телефон заблокирован." - "Улучшите качество звонков" "🔐️ Присоединяйтесь ко мне в %1$s" "Привет, поговори со мной по %1$s: %2$s" "%1$s Android" diff --git a/libraries/ui-strings/src/main/res/values-sk/translations.xml b/libraries/ui-strings/src/main/res/values-sk/translations.xml index 2cf0852a8b..e1da839870 100644 --- a/libraries/ui-strings/src/main/res/values-sk/translations.xml +++ b/libraries/ui-strings/src/main/res/values-sk/translations.xml @@ -131,12 +131,16 @@ "Chyba dešifrovania" "Možnosti pre vývojárov" "Priama konverzácia" + "Nezobrazovať toto znova" "(upravené)" "Upravuje sa" "* %1$s %2$s" "Šifrovanie zapnuté" "Zadajte svoj PIN" "Chyba" + "Vyskytla sa chyba, nemusíte dostávať upozornenia na nové správy. Prosím, vyriešte problémy s upozorneniami v nastaveniach. + +Dôvod: %1$s." "Všetci" "Zlyhalo" "Obľúbené" @@ -255,8 +259,6 @@ "%1$s nemá povolenie na prístup k vášmu mikrofónu. Povoľte prístup na nahrávanie hlasovej správy." "Niektoré správy neboli odoslané" "Prepáčte, vyskytla sa chyba" - "Aby ste už nikdy nezmeškali dôležitý hovor, zmeňte svoje nastavenia a povoľte upozornenia na celú obrazovku, keď je váš telefón uzamknutý." - "Vylepšite svoj zážitok z hovoru" "🔐️ Pripojte sa ku mne na %1$s" "Ahoj, porozprávajte sa so mnou na %1$s: %2$s" "%1$s Android" diff --git a/libraries/ui-strings/src/main/res/values-sv/translations.xml b/libraries/ui-strings/src/main/res/values-sv/translations.xml index 41b5d717e4..144e6bda05 100644 --- a/libraries/ui-strings/src/main/res/values-sv/translations.xml +++ b/libraries/ui-strings/src/main/res/values-sv/translations.xml @@ -49,6 +49,7 @@ "Neka" "Radera omröstning" "Inaktivera" + "Kassera" "Klar" "Redigera" "Redigera omröstning" @@ -57,6 +58,7 @@ "Ange PIN-kod" "Glömt lösenordet?" "Vidarebefordra" + "Gå tillbaka" "Bjud in" "Bjud in personer" "Bjud in personer till %1$s" @@ -84,6 +86,7 @@ "Svara i tråd" "Rapportera bugg" "Rapportera innehåll" + "Återställ" "Försök igen" "Försök att avkryptera igen" "Spara" @@ -113,6 +116,7 @@ "Ljud" "Blockerade användare" "Bubblor" + "Samtal pågår (stöds inte)" "Chattsäkerhetskopia" "Upphovsrätt" "Skapar rum …" @@ -181,6 +185,7 @@ "Rum" "Rumsnamn" "t.ex. ditt projektnamn" + "Sparade ändringar" "Sparar" "Skärmlås" "Sök efter någon" @@ -224,6 +229,8 @@ "Fel" "Lyckades" "Varning" + "Dina ändringar har inte sparats. Är du säker på att du vill gå tillbaka?" + "Spara ändringar?" "Misslyckades att skapa permalänken" "%1$s kunde inte ladda kartan. Vänligen försök igen senare." "Misslyckades att ladda meddelanden" @@ -246,6 +253,7 @@ "Blockera" "Blockerade användare kommer inte att kunna skicka meddelanden till dig och alla deras meddelanden kommer att döljas. Du kan avblockera dem när som helst." "Blockera användare" + "Profil" "Avblockera" "Du kommer att kunna se alla meddelanden från dem igen." "Avblockera användare" diff --git a/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml b/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml index c15efbab40..4480fa1153 100644 --- a/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml +++ b/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml @@ -31,6 +31,7 @@ "接受" "新增至時間軸" "返回" + "通話" "取消" "選擇照片" "清除" @@ -69,6 +70,7 @@ "載入更多" "管理帳號" "管理裝置" + "聊天" "下一步" "否" "以後再說" @@ -78,6 +80,7 @@ "快速回覆" "引用" "回應" + "拒絕" "移除" "回覆" "在討論串中回覆" @@ -101,6 +104,7 @@ "開始驗證" "點擊以載入地圖" "拍照" + "點擊以查看選項" "再試一次" "檢視原始碼" "是" @@ -120,6 +124,7 @@ "解密錯誤" "開發者選項" "私訊" + "不再顯示" "(已編輯)" "編輯中" "* %1$s %2$s" @@ -151,12 +156,14 @@ "現代" "關閉通知" "查無結果" + "無聊天室名稱" "離線" "或" "密碼" "夥伴" "永久連結" "權限" + "請稍等…" "您確定要結束這項投票嗎?" "投票:%1$s" "總票數:%1$s" @@ -176,19 +183,24 @@ "聊天室" "聊天室名稱" "範例:您的計畫名稱" + "變更已儲存" "儲存中" "螢幕鎖定" "搜尋使用者" "搜尋結果" "安全性" "已讀" + "傳送給" "傳送中…" "傳送失敗" "已傳送" "伺服器不支援" "伺服器 URL" "設定" + "位置分享" "正在登出" + "有錯誤發生" + "開始聊天…" "貼圖" "成功" "建議" @@ -198,6 +210,7 @@ "討論串" "主題" "無法解密" + "您無法存取此則訊息" "無法發送邀請給一或多個使用者。" "無法發送邀請" "解鎖" @@ -230,8 +243,11 @@ "%1$s Android" "無法上傳媒體檔案,請稍後再試。" "封鎖" + "被封鎖的使用者無法傳訊息給您,他們的訊息會被隱藏。您可以在任何時候解除封鎖。" "封鎖使用者" + "個人檔案" "解除封鎖" + "您將無法看到任何來自他們的訊息。" "解除封鎖使用者" "分享位置" "分享我的位置" diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml index 7c7b23cfa6..1b706457c7 100644 --- a/libraries/ui-strings/src/main/res/values/localazy.xml +++ b/libraries/ui-strings/src/main/res/values/localazy.xml @@ -255,8 +255,6 @@ Reason: %1$s." "%1$s does not have permission to access your microphone. Enable access to record a voice message." "Some messages have not been sent" "Sorry, an error occurred" - "To ensure you never miss an important call, please change your settings to allow full-screen notifications when your phone is locked." - "Enhance your call experience" "🔐️ Join me on %1$s" "Hey, talk to me on %1$s: %2$s" "%1$s Android" diff --git a/plugins/src/main/kotlin/Enterprise.kt b/plugins/src/main/kotlin/Enterprise.kt new file mode 100644 index 0000000000..65762c05d6 --- /dev/null +++ b/plugins/src/main/kotlin/Enterprise.kt @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.io.File + +/** + * Are we building with the enterprise sources? + */ +val isEnterpriseBuild = File("enterprise/README.md").exists() diff --git a/plugins/src/main/kotlin/Logger.kt b/plugins/src/main/kotlin/Logger.kt new file mode 100644 index 0000000000..fa608e7df4 --- /dev/null +++ b/plugins/src/main/kotlin/Logger.kt @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import org.gradle.api.logging.Logger +import kotlin.math.max + +fun Logger.warnInBox( + text: String, + minBoxWidth: Int = 80, + padding: Int = 4, +) { + val textLength = text.length + val boxWidth = max(textLength + 2, minBoxWidth) + val textPadding = max((boxWidth - textLength) / 2, 1) + warn( + buildString { + append(" ".repeat(padding)) + append("┌") + append("─".repeat(boxWidth)) + append("┐") + } + ) + warn( + buildString { + append(" ".repeat(padding)) + append("│") + append(" ".repeat(textPadding)) + append(text) + append(" ".repeat(textPadding)) + if (textLength % 2 == 1 && boxWidth == minBoxWidth) append(" ") + append("│") + } + ) + warn( + buildString { + append(" ".repeat(padding)) + append("└") + append("─".repeat(boxWidth)) + append("┘") + } + ) +} diff --git a/plugins/src/main/kotlin/Versions.kt b/plugins/src/main/kotlin/Versions.kt index 249f469d30..97ac5aeaf5 100644 --- a/plugins/src/main/kotlin/Versions.kt +++ b/plugins/src/main/kotlin/Versions.kt @@ -56,14 +56,15 @@ private const val versionMinor = 4 // Note: even values are reserved for regular release, odd values for hotfix release. // When creating a hotfix, you should decrease the value, since the current value // is the value for the next regular release. -private const val versionPatch = 15 +private const val versionPatch = 16 object Versions { val versionCode = 4_000_000 + versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch val versionName = "$versionMajor.$versionMinor.$versionPatch" const val compileSdk = 34 const val targetSdk = 33 - const val minSdk = 24 + // When updating the `minSdk`, make sure to update the value of `minSdkVersion` in the file `tools/release/release.sh` + val minSdk = if (isEnterpriseBuild) 26 else 24 val javaCompileVersion = JavaVersion.VERSION_17 val javaLanguageVersion: JavaLanguageVersion = JavaLanguageVersion.of(11) } diff --git a/plugins/src/main/kotlin/extension/CommonExtension.kt b/plugins/src/main/kotlin/extension/CommonExtension.kt index 271b1565f5..bc063d5921 100644 --- a/plugins/src/main/kotlin/extension/CommonExtension.kt +++ b/plugins/src/main/kotlin/extension/CommonExtension.kt @@ -18,6 +18,7 @@ package extension import Versions import com.android.build.api.dsl.CommonExtension +import isEnterpriseBuild import org.gradle.accessors.dm.LibrariesForLibs import org.gradle.api.JavaVersion import org.gradle.api.Project @@ -46,6 +47,11 @@ fun CommonExtension<*, *, *, *, *, *>.androidConfig(project: Project) { lint { lintConfig = File("${project.rootDir}/tools/lint/lint.xml") + if (isEnterpriseBuild) { + // Disable check on ObsoleteSdkInt for Enterprise builds + // since the min sdk is higher for Enterprise builds + disable.add("ObsoleteSdkInt") + } checkDependencies = false abortOnError = true ignoreTestFixturesSources = true diff --git a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt index 4aa635b489..9fd82af4ae 100644 --- a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt +++ b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt @@ -130,6 +130,11 @@ fun DependencyHandlerScope.allServicesImpl() { implementation(project(":services:toolbox:impl")) } +fun DependencyHandlerScope.allEnterpriseImpl(rootDir: File, logger: Logger) { + val enterpriseDir = File(rootDir, "enterprise") + addImplementationProjects(enterpriseDir, ":enterprise", "impl", logger) +} + fun DependencyHandlerScope.allFeaturesApi(rootDir: File, logger: Logger) { val featuresDir = File(rootDir, "features") addImplementationProjects(featuresDir, ":features", "api", logger) diff --git a/plugins/src/main/kotlin/extension/locales.kt b/plugins/src/main/kotlin/extension/locales.kt index 78509ab59f..af0f685e62 100644 --- a/plugins/src/main/kotlin/extension/locales.kt +++ b/plugins/src/main/kotlin/extension/locales.kt @@ -7,6 +7,7 @@ val locales = setOf( "bg", "cs", "de", + "el", "en", "es", "et", diff --git a/samples/minimal/build.gradle.kts b/samples/minimal/build.gradle.kts index 794761bdb4..91cc4bd110 100644 --- a/samples/minimal/build.gradle.kts +++ b/samples/minimal/build.gradle.kts @@ -30,6 +30,10 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } + buildFeatures { + buildConfig = true + } + buildTypes { release { isMinifyEnabled = false diff --git a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/MainActivity.kt b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/MainActivity.kt index 45321a6eb3..d13cc429dc 100644 --- a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/MainActivity.kt +++ b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/MainActivity.kt @@ -51,7 +51,6 @@ class MainActivity : ComponentActivity() { baseDirectory = baseDirectory, coroutineDispatchers = Singleton.coroutineDispatchers, sessionStore = sessionStore, - userAgentProvider = userAgentProvider, rustMatrixClientFactory = RustMatrixClientFactory( baseDirectory = baseDirectory, cacheDirectory = applicationContext.cacheDir, @@ -65,8 +64,6 @@ class MainActivity : ComponentActivity() { utdTracker = UtdTracker(NoopAnalyticsService()), ), passphraseGenerator = NullPassphraseGenerator(), - userCertificatesProvider = userCertificatesProvider, - proxyProvider = proxyProvider, oidcConfigurationProvider = OidcConfigurationProvider(baseDirectory), ) } diff --git a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt index 494d5b1ee8..fa19762800 100644 --- a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt +++ b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt @@ -35,6 +35,8 @@ import io.element.android.features.roomlist.impl.migration.SharedPreferencesMigr import io.element.android.features.roomlist.impl.search.RoomListSearchDataSource import io.element.android.features.roomlist.impl.search.RoomListSearchPresenter import io.element.android.libraries.core.coroutine.CoroutineDispatchers +import io.element.android.libraries.core.meta.BuildMeta +import io.element.android.libraries.core.meta.BuildType import io.element.android.libraries.dateformatter.impl.DateFormatters import io.element.android.libraries.dateformatter.impl.DefaultLastMessageTimestampFormatter import io.element.android.libraries.dateformatter.impl.LocalDateTimeProvider @@ -44,7 +46,7 @@ import io.element.android.libraries.eventformatter.impl.ProfileChangeContentForm import io.element.android.libraries.eventformatter.impl.RoomMembershipContentFormatter import io.element.android.libraries.eventformatter.impl.StateContentFormatter import io.element.android.libraries.featureflag.impl.DefaultFeatureFlagService -import io.element.android.libraries.featureflag.impl.StaticFeatureFlagProvider +import io.element.android.libraries.featureflag.impl.PreferencesFeatureFlagProvider import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsPresenter import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState import io.element.android.libraries.indicator.impl.DefaultIndicatorService @@ -78,8 +80,12 @@ class RoomListScreen( private val sessionVerificationService = matrixClient.sessionVerificationService() private val encryptionService = matrixClient.encryptionService() private val stringProvider = AndroidStringProvider(context.resources) + private val buildMeta = getBuildMeta(context) private val featureFlagService = DefaultFeatureFlagService( - providers = setOf(StaticFeatureFlagProvider()) + providers = setOf( + PreferencesFeatureFlagProvider(context = context, buildMeta = buildMeta) + ), + buildMeta = buildMeta, ) private val roomListRoomSummaryFactory = RoomListRoomSummaryFactory( lastMessageTimestampFormatter = DefaultLastMessageTimestampFormatter( @@ -195,4 +201,25 @@ class RoomListScreen( } } } + + private fun getBuildMeta(context: Context): BuildMeta { + val buildType = BuildType.valueOf(BuildConfig.BUILD_TYPE.uppercase()) + val name = context.getString(R.string.app_name) + return BuildMeta( + isDebuggable = BuildConfig.DEBUG, + buildType = buildType, + applicationName = name, + productionApplicationName = name, + desktopApplicationName = name, + applicationId = BuildConfig.APPLICATION_ID, + lowPrivacyLoggingEnabled = false, + versionName = BuildConfig.VERSION_NAME, + versionCode = BuildConfig.VERSION_CODE.toLong(), + gitRevision = "", + gitBranchName = "", + flavorDescription = "", + flavorShortDescription = "", + isEnterpriseBuild = false, + ) + } } diff --git a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/Singleton.kt b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/Singleton.kt index 9c09d0bc98..22cfd643a1 100644 --- a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/Singleton.kt +++ b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/Singleton.kt @@ -36,6 +36,7 @@ object Singleton { productionApplicationName = "EAX-Minimal", desktopApplicationName = "EAX-Minimal-Desktop", applicationId = "io.element.android.samples.minimal", + isEnterpriseBuild = false, lowPrivacyLoggingEnabled = false, versionName = "0.1.0", versionCode = 1, diff --git a/screenshots/de/ui_T_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_1,NEXUS_5,1.0,de].png b/screenshots/de/appnav.loggedin_LoggedInView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/appnav.loggedin_LoggedInView_Day_1_de.png diff --git a/screenshots/de/appnav.loggedin_LoggedInView_Day_2_de.png b/screenshots/de/appnav.loggedin_LoggedInView_Day_2_de.png new file mode 100644 index 0000000000..5f2d01c7d1 --- /dev/null +++ b/screenshots/de/appnav.loggedin_LoggedInView_Day_2_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5864001f072e7dd159c5e4deab0196959299079306db6d4e3d5e8da3a0854ffc +size 37443 diff --git a/screenshots/de/ui_T_t[appnav.loggedin_SyncStateView_null_SyncStateView-Day-1_1_null,NEXUS_5,1.0,de].png b/screenshots/de/appnav.loggedin_SyncStateView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[appnav.loggedin_SyncStateView_null_SyncStateView-Day-1_1_null,NEXUS_5,1.0,de].png rename to screenshots/de/appnav.loggedin_SyncStateView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Day-2_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/appnav.room.joined_LoadingRoomNodeView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Day-2_2_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/appnav.room.joined_LoadingRoomNodeView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[appnav.root_RootView_null_RootView-Day-3_3_null_0,NEXUS_5,1.0,de].png b/screenshots/de/appnav.root_RootView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[appnav.root_RootView_null_RootView-Day-3_3_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/appnav.root_RootView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[appnav.root_RootView_null_RootView-Day-3_3_null_1,NEXUS_5,1.0,de].png b/screenshots/de/appnav.root_RootView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[appnav.root_RootView_null_RootView-Day-3_3_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/appnav.root_RootView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[appnav.root_RootView_null_RootView-Day-3_3_null_2,NEXUS_5,1.0,de].png b/screenshots/de/appnav.root_RootView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[appnav.root_RootView_null_RootView-Day-3_3_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/appnav.root_RootView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.analytics.api.preferences_AnalyticsPreferencesView_null_AnalyticsPreferencesView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.analytics.api.preferences_AnalyticsPreferencesView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.analytics.api.preferences_AnalyticsPreferencesView_null_AnalyticsPreferencesView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.analytics.api.preferences_AnalyticsPreferencesView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.analytics.impl_AnalyticsOptInView_null_AnalyticsOptInView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.analytics.impl_AnalyticsOptInView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.analytics.impl_AnalyticsOptInView_null_AnalyticsOptInView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.analytics.impl_AnalyticsOptInView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.call.impl.ui_CallScreenView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.call.impl.ui_CallScreenView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.call.impl.ui_IncomingCallScreen_null_IncomingCallScreen-Day-1_2_null,NEXUS_5,1.0,de].png b/screenshots/de/features.call.impl.ui_IncomingCallScreen_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.call.impl.ui_IncomingCallScreen_null_IncomingCallScreen-Day-1_2_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.call.impl.ui_IncomingCallScreen_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.components_RoomPrivacyOption_null_RoomPrivacyOption-Day-1_2_null,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.components_RoomPrivacyOption_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.components_RoomPrivacyOption_null_RoomPrivacyOption-Day-1_2_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.components_RoomPrivacyOption_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.components_SearchMultipleUsersResultItem_null_SearchMultipleUsersResultItem_0_null,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.components_SearchMultipleUsersResultItem_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.components_SearchMultipleUsersResultItem_null_SearchMultipleUsersResultItem_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.components_SearchMultipleUsersResultItem_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.components_SearchSingleUserResultItem_null_SearchSingleUserResultItem_0_null,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.components_SearchSingleUserResultItem_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.components_SearchSingleUserResultItem_null_SearchSingleUserResultItem_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.components_SearchSingleUserResultItem_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.components_UserListView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.components_UserListView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.components_UserListView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.components_UserListView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.components_UserListView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.components_UserListView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.components_UserListView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.components_UserListView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_9,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.components_UserListView_Day_9_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_9,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.components_UserListView_Day_9_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.configureroom_ConfigureRoomView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.configureroom_ConfigureRoomView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.ftue.impl.notifications_NotificationsOptInView_null_NotificationsOptInView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.ftue.impl.notifications_NotificationsOptInView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.ftue.impl.notifications_NotificationsOptInView_null_NotificationsOptInView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.ftue.impl.notifications_NotificationsOptInView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.ftue.impl.welcome_WelcomeView_null_WelcomeView-Day-1_2_null,NEXUS_5,1.0,de].png b/screenshots/de/features.ftue.impl.welcome_WelcomeView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.ftue.impl.welcome_WelcomeView_null_WelcomeView-Day-1_2_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.ftue.impl.welcome_WelcomeView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.invite.impl.response_AcceptDeclineInviteView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.invite.impl.response_AcceptDeclineInviteView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.invite.impl.response_AcceptDeclineInviteView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.invite.impl.response_AcceptDeclineInviteView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.invite.impl.response_AcceptDeclineInviteView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.invite.impl.response_AcceptDeclineInviteView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.invite.impl.response_AcceptDeclineInviteView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.invite.impl.response_AcceptDeclineInviteView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.joinroom.impl_JoinRoomView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.joinroom.impl_JoinRoomView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.joinroom.impl_JoinRoomView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.joinroom.impl_JoinRoomView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.joinroom.impl_JoinRoomView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.joinroom.impl_JoinRoomView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.joinroom.impl_JoinRoomView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_8,NEXUS_5,1.0,de].png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_8_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_8,NEXUS_5,1.0,de].png rename to screenshots/de/features.joinroom.impl_JoinRoomView_Day_8_de.png diff --git a/screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_9,NEXUS_5,1.0,de].png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_9_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_9,NEXUS_5,1.0,de].png rename to screenshots/de/features.joinroom.impl_JoinRoomView_Day_9_de.png diff --git a/screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.leaveroom.api_LeaveRoomView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.leaveroom.api_LeaveRoomView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.leaveroom.api_LeaveRoomView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.leaveroom.api_LeaveRoomView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.leaveroom.api_LeaveRoomView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.leaveroom.api_LeaveRoomView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.leaveroom.api_LeaveRoomView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.leaveroom.api_LeaveRoomView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.leaveroom.api_LeaveRoomView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.leaveroom.api_LeaveRoomView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.leaveroom.api_LeaveRoomView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.leaveroom.api_LeaveRoomView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Day-1_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.location.api.internal_StaticMapPlaceholder_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Day-1_2_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.api.internal_StaticMapPlaceholder_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.send_SendLocationView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.send_SendLocationView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.send_SendLocationView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.send_SendLocationView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.send_SendLocationView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.send_SendLocationView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.send_SendLocationView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.send_SendLocationView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.send_SendLocationView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.send_SendLocationView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.show_ShowLocationView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.show_ShowLocationView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.show_ShowLocationView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.show_ShowLocationView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.show_ShowLocationView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.show_ShowLocationView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.show_ShowLocationView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.show_ShowLocationView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.show_ShowLocationView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.show_ShowLocationView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.show_ShowLocationView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.show_ShowLocationView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.show_ShowLocationView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.show_ShowLocationView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.location.impl.show_ShowLocationView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.location.impl.show_ShowLocationView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.settings_LockScreenSettingsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.settings_LockScreenSettingsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.settings_LockScreenSettingsView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.settings_LockScreenSettingsView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.settings_LockScreenSettingsView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.settings_LockScreenSettingsView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.setup.biometric_SetupBiometricView_null_SetupBiometricView-Day-2_3_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.setup.biometric_SetupBiometricView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.setup.biometric_SetupBiometricView_null_SetupBiometricView-Day-2_3_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.setup.biometric_SetupBiometricView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.setup.pin_SetupPinView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.lockscreen.impl.unlock_PinUnlockView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.changeserver_ChangeServerView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.changeserver_ChangeServerView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.dialogs_SlidingSyncNotSupportedDialog_null_SlidingSyncNotSupportedDialog-Day-2_3_null,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.changeserver_ChangeServerView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.dialogs_SlidingSyncNotSupportedDialog_null_SlidingSyncNotSupportedDialog-Day-2_3_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.changeserver_ChangeServerView_Day_2_de.png diff --git a/screenshots/de/features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Day_0_de.png b/screenshots/de/features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Day_0_de.png new file mode 100644 index 0000000000..10a8ce13d3 --- /dev/null +++ b/screenshots/de/features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0eb21db13e79007249c1a8440fdb643748c05cc1406471c8a7ed22fe6a06c214 +size 20460 diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_null_ChangeAccountProviderView-Day-4_5_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_null_ChangeAccountProviderView-Day-4_5_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_null_ConfirmAccountProviderView-Day-5_6_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_null_ConfirmAccountProviderView-Day-5_6_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.loginpassword_LoginPasswordView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.loginpassword_LoginPasswordView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.loginpassword_LoginPasswordView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.loginpassword_LoginPasswordView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.loginpassword_LoginPasswordView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.loginpassword_LoginPasswordView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.login.impl.screens.waitlistscreen_WaitListView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl.direct_DefaultDirectLogoutView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl.direct_DefaultDirectLogoutView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl.direct_DefaultDirectLogoutView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl.direct_DefaultDirectLogoutView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl.direct_DefaultDirectLogoutView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl.direct_DefaultDirectLogoutView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_8,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_8_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_8,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_8_de.png diff --git a/screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_9,NEXUS_5,1.0,de].png b/screenshots/de/features.logout.impl_LogoutView_Day_9_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_9,NEXUS_5,1.0,de].png rename to screenshots/de/features.logout.impl_LogoutView_Day_9_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_10,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.actionlist_SheetContent_Day_10_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_10,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.actionlist_SheetContent_Day_10_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.actionlist_SheetContent_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.actionlist_SheetContent_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.actionlist_SheetContent_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.actionlist_SheetContent_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.actionlist_SheetContent_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.actionlist_SheetContent_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.actionlist_SheetContent_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.actionlist_SheetContent_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.actionlist_SheetContent_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.actionlist_SheetContent_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.actionlist_SheetContent_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.actionlist_SheetContent_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_8,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.actionlist_SheetContent_Day_8_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_8,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.actionlist_SheetContent_Day_8_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_9,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.actionlist_SheetContent_Day_9_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_9,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.actionlist_SheetContent_Day_9_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.attachments.preview_AttachmentsView_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.attachments.preview_AttachmentsView_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.attachments.preview_AttachmentsView_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.attachments.preview_AttachmentsView_1_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.attachments.preview_AttachmentsView_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.attachments.preview_AttachmentsView_2_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.attachments.preview_AttachmentsView_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.attachments.preview_AttachmentsView_3_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.forward_ForwardMessagesView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.forward_ForwardMessagesView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.mentions_MentionSuggestionsPickerView_null_MentionSuggestionsPickerView-Day-3_3_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.mentions_MentionSuggestionsPickerView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.mentions_MentionSuggestionsPickerView_null_MentionSuggestionsPickerView-Day-3_3_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.mentions_MentionSuggestionsPickerView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.messagecomposer_AttachmentSourcePickerMenu_null_AttachmentSourcePickerMenu-Day-4_4_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.messagecomposer_AttachmentSourcePickerMenu_null_AttachmentSourcePickerMenu-Day-4_4_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.messagecomposer_MessageComposerView_null_MessageComposerView-Day-5_5_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.messagecomposer_MessageComposerView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.messagecomposer_MessageComposerView_null_MessageComposerView-Day-5_5_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.messagecomposer_MessageComposerView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.report_ReportMessageView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.report_ReportMessageView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.report_ReportMessageView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.report_ReportMessageView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.report_ReportMessageView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.report_ReportMessageView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.report_ReportMessageView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.report_ReportMessageView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.report_ReportMessageView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.report_ReportMessageView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.report_ReportMessageView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.report_ReportMessageView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_null_TimelineItemLegacyCallInviteView-Day-43_43_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_null_TimelineItemLegacyCallInviteView-Day-43_43_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemRedactedView_null_TimelineItemRedactedView-Day-46_46_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemRedactedView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemRedactedView_null_TimelineItemRedactedView-Day-46_46_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemRedactedView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemUnknownView_null_TimelineItemUnknownView-Day-50_50_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.event_TimelineItemUnknownView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.event_TimelineItemUnknownView_null_TimelineItemUnknownView-Day-50_50_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.event_TimelineItemUnknownView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_null_EncryptedHistoryBannerView-Day-60_60_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_null_EncryptedHistoryBannerView-Day-60_60_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_null_TimelineItemReadMarkerView-Day-62_62_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_null_TimelineItemReadMarkerView-Day-62_62_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_null_TimelineItemRoomBeginningView-Day-63_63_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_null_TimelineItemRoomBeginningView-Day-63_63_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_3_de.png diff --git a/screenshots/de/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_de.png b/screenshots/de/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_de.png new file mode 100644 index 0000000000..f3e5b478a9 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aca35422649b289a139eeb34ec00fd1ac984115439827932bcfa7039c7de671c +size 6714 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemCallNotifyView_null_TimelineItemCallNotifyView-Day-17_17_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemCallNotifyView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemCallNotifyView_null_TimelineItemCallNotifyView-Day-17_17_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components_TimelineItemCallNotifyView_Day_0_de.png diff --git a/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_de.png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_de.png new file mode 100644 index 0000000000..edb94b01d3 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08a2467da7375b57f9009d72b2db1cdc447fb7bff6e3155cf782595ef899865b +size 34241 diff --git a/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_de.png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_de.png new file mode 100644 index 0000000000..b2c99c1995 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78312e22db651e94b1bbd9f5cc968ea6cf046e6a50def078e32c300a2c32f2d0 +size 35658 diff --git a/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_de.png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_de.png new file mode 100644 index 0000000000..8f55177084 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a88c9b1cea48f61e745931422c431c526c152ce9838d04d009111f6c637bc068 +size 79276 diff --git a/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_de.png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_de.png new file mode 100644 index 0000000000..d8e8cc1426 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c9630d3e6e081b1c33c0197eb07085cf9ed95e69fdf4d416361edeb6e65752b +size 146148 diff --git a/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_de.png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_de.png new file mode 100644 index 0000000000..bb0a488718 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e69e26857bad97a7f651dff1383080f5649fc4c0b6e76d7459cccd9bc45e124 +size 151644 diff --git a/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_de.png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_de.png new file mode 100644 index 0000000000..83442c1645 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1196f8896b6269011c5d93b9740b16ca1b2905499119a7f556644831e6bf33cc +size 145456 diff --git a/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_de.png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_de.png new file mode 100644 index 0000000000..7471f53c38 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e74fb881d7338d8f3b450574ffa92ea552377b93bd8bbc728949f58537cfe50b +size 147186 diff --git a/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_de.png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_de.png new file mode 100644 index 0000000000..cee7ec8f86 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39781775794d571c06fffe5dbd3b33e54525dffa0ec639c9a8869577bdc51c61 +size 54561 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_null_TimelineItemGroupedEventsRowContentCollapse-Day-28_28_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_null_TimelineItemGroupedEventsRowContentCollapse-Day-28_28_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_null_TimelineItemGroupedEventsRowContentExpanded-Day-27_27_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_null_TimelineItemGroupedEventsRowContentExpanded-Day-27_27_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemReactionsLayout_null_TimelineItemReactionsLayout-Day-29_29_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemReactionsLayout_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemReactionsLayout_null_TimelineItemReactionsLayout-Day-29_29_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components_TimelineItemReactionsLayout_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_null_TimelineItemReactionsViewIncoming-Day-32_32_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_null_TimelineItemReactionsViewIncoming-Day-32_32_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_null_TimelineItemReactionsViewOutgoing-Day-33_33_null,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_null_TimelineItemReactionsViewOutgoing-Day-33_33_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.focus_FocusRequestStateView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.focus_FocusRequestStateView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.timeline.focus_FocusRequestStateView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.timeline.focus_FocusRequestStateView_Day_2_de.png diff --git a/screenshots/de/features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_de.png b/screenshots/de/features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_de.png new file mode 100644 index 0000000000..6fdf346563 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a253fd2165b178a44d1959e28673c9bc2f5261a9a357d233c9ef71bf1f97e186 +size 14871 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_0_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_0_de.png new file mode 100644 index 0000000000..fe6295122d --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c747ef3a38aef7210557d883bcc8b425608488636f3b176a01ef42b131cac346 +size 50138 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_11_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_11_de.png new file mode 100644 index 0000000000..29befe4670 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_11_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b996f997a29b013ac3f6805bd7a1ada223154fb72b1376a9b68458404bef8d8 +size 84498 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_12_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_12_de.png new file mode 100644 index 0000000000..526ac5131a --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_12_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1184077016d9b733f4be5113b45166350140fb011172a47f214964cb319110f +size 51591 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_13_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_13_de.png new file mode 100644 index 0000000000..48b2f7b0ed --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_13_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ca9fc8b7990e4d1023d7ca10fcd883d1f4a2fcdc6451259b61cbc4c8d1a94c0 +size 63224 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_14_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_14_de.png new file mode 100644 index 0000000000..9411023a5c --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_14_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:209377aa112075e8b8b11103d2d68dc3cb9ad1d7b89d1c0db1cf5f3baeb597ab +size 47874 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_15_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_15_de.png new file mode 100644 index 0000000000..c6c89be1f5 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_15_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:770e4852431ab95e554ced59b0abf6ec1dd166969e3d9ef096617cf5789d636d +size 71735 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_16_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_16_de.png new file mode 100644 index 0000000000..7b1b2f861a --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_16_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:deec1d4c43dd7e1f29f892cf42e7012a57930b3948210937fcebcf3a6536905b +size 57698 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_1_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_1_de.png new file mode 100644 index 0000000000..0c61e1ce35 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e49afc6f81d7e255ccf2dd5b70c0f7c29c94a68f30a75f214f67ac9a9b59ebd1 +size 71619 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_4_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_4_de.png new file mode 100644 index 0000000000..ab9d6c3fb0 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54e480f74688823dcc3d8a530f39bde1f398c2f579bf5dc7990fc9e69df62892 +size 70188 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_6_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_6_de.png new file mode 100644 index 0000000000..3552a93d63 --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_6_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24fe6bee2dee8aed5e5c6f00bde21b55c9a541f849ca4955b066e75bd8b0e9c0 +size 72710 diff --git a/screenshots/de/features.messages.impl.timeline_TimelineView_Day_8_de.png b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_8_de.png new file mode 100644 index 0000000000..edfdb752ca --- /dev/null +++ b/screenshots/de/features.messages.impl.timeline_TimelineView_Day_8_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83ae9dd5fc455efd037ab4514f5e33c51092032063f84786fbcf4e869ccf54da +size 53151 diff --git a/screenshots/de/features.messages.impl.typing_MessagesViewWithTyping_Day_0_de.png b/screenshots/de/features.messages.impl.typing_MessagesViewWithTyping_Day_0_de.png new file mode 100644 index 0000000000..b680ac5200 --- /dev/null +++ b/screenshots/de/features.messages.impl.typing_MessagesViewWithTyping_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82cb8a36f3d7dc08104f341c9231b645a1908f902e4badf507581989377159ca +size 53573 diff --git a/screenshots/de/features.messages.impl.typing_MessagesViewWithTyping_Day_1_de.png b/screenshots/de/features.messages.impl.typing_MessagesViewWithTyping_Day_1_de.png new file mode 100644 index 0000000000..d36ff169e1 --- /dev/null +++ b/screenshots/de/features.messages.impl.typing_MessagesViewWithTyping_Day_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c031ab911290c1ba76faaf449ef9ff75b2a84ec10164ad7be8d6a6036369bcc7 +size 54561 diff --git a/screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl.typing_TypingNotificationView_Day_6_de.png diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_0_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_0_de.png new file mode 100644 index 0000000000..049e5856f0 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fe0f0f74ddcfb738c2b9e713df22db6ef6cba28ac0f885899b83f2b9fde5620 +size 55515 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_10_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_10_de.png new file mode 100644 index 0000000000..119ce31df4 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_10_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:534fafc31674c6ef6f2b8cd36de9d7e6c2b241c8bd1ce96b89b610049e828177 +size 58047 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_11_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_11_de.png new file mode 100644 index 0000000000..8eb6aa0fb2 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_11_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81e572a32a20e8c261e9d42a36dc3bcb70d5aa04ef743e8a03a337f1b082a3eb +size 45887 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_12_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_12_de.png new file mode 100644 index 0000000000..e61b55b743 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_12_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a580cba9e5b9c210196b961e47733b213fdcb9dff7c2198c86689a0213e76494 +size 55553 diff --git a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.messages.impl_MessagesView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.messages.impl_MessagesView_Day_2_de.png diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_3_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_3_de.png new file mode 100644 index 0000000000..e1534ddfb9 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a38ed5dfdf050c8084c8982ff068e1330ac2f3c4f4790678e1508c78214c45bb +size 56773 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_4_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_4_de.png new file mode 100644 index 0000000000..a3c82d2c02 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb47deea5a5883aba4428915b00d523e80315bbf1fcecc727f1568b6b925cdde +size 53538 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_5_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_5_de.png new file mode 100644 index 0000000000..0ffa2e4668 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_5_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c38243f29dc052b0378ce79c97167e34ed33a74830d1da54f60fa826ae7d889f +size 53358 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_6_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_6_de.png new file mode 100644 index 0000000000..3ae9773013 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_6_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b76d6e2b03d78d7fe4a863cc8c086f7f09a93b574ee8308a00a92af4f7665e2c +size 53187 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_7_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_7_de.png new file mode 100644 index 0000000000..5ae9252218 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_7_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16cc141367a4631a5b5aa17f7373e52b330f87f74b936e58befc0aef79f0468d +size 57582 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_8_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_8_de.png new file mode 100644 index 0000000000..f057d78f19 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_8_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:587551bf2aa184b10f9ccd3c8a4cb2e1173c7d2e18021caa6e23329d8db078ac +size 40331 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_9_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_9_de.png new file mode 100644 index 0000000000..c7d3b5b1d7 --- /dev/null +++ b/screenshots/de/features.messages.impl_MessagesView_Day_9_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9db9c664487feca9f1a9e7a3a2ae2cd19129a9aa4b7fc85f8ea534af21f3adc +size 39591 diff --git a/screenshots/de/ui_T_t[f.migration.impl_MigrationView_null_MigrationView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.migration.impl_MigrationView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.migration.impl_MigrationView_null_MigrationView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.migration.impl_MigrationView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.onboarding.impl_OnBoardingView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.onboarding.impl_OnBoardingView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.onboarding.impl_OnBoardingView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.onboarding.impl_OnBoardingView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.onboarding.impl_OnBoardingView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.onboarding.impl_OnBoardingView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.onboarding.impl_OnBoardingView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.onboarding.impl_OnBoardingView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.onboarding.impl_OnBoardingView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.onboarding.impl_OnBoardingView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_null_PollAnswerViewDisclosedNotSelected-Day-0_1_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_null_PollAnswerViewDisclosedNotSelected-Day-0_1_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewDisclosedSelected_null_PollAnswerViewDisclosedSelected-Day-1_2_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewDisclosedSelected_null_PollAnswerViewDisclosedSelected-Day-1_2_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewEndedSelected_null_PollAnswerViewEndedSelected-Day-6_7_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewEndedSelected_null_PollAnswerViewEndedSelected-Day-6_7_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_null_PollAnswerViewEndedWinnerNotSelected-Day-4_5_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_null_PollAnswerViewEndedWinnerNotSelected-Day-4_5_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_null_PollAnswerViewEndedWinnerSelected-Day-5_6_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_null_PollAnswerViewEndedWinnerSelected-Day-5_6_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewCreatorEditable_null_PollContentViewCreatorEditable-Day-10_11_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollContentViewCreatorEditable_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewCreatorEditable_null_PollContentViewCreatorEditable-Day-10_11_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollContentViewCreatorEditable_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewCreatorEnded_null_PollContentViewCreatorEnded-Day-12_13_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewCreatorEnded_null_PollContentViewCreatorEnded-Day-12_13_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewCreator_null_PollContentViewCreator-Day-11_12_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollContentViewCreator_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewCreator_null_PollContentViewCreator-Day-11_12_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollContentViewCreator_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewDisclosed_null_PollContentViewDisclosed-Day-8_9_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollContentViewDisclosed_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewDisclosed_null_PollContentViewDisclosed-Day-8_9_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollContentViewDisclosed_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewEnded_null_PollContentViewEnded-Day-9_10_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollContentViewEnded_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewEnded_null_PollContentViewEnded-Day-9_10_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollContentViewEnded_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewUndisclosed_null_PollContentViewUndisclosed-Day-7_8_null,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.api.pollcontent_PollContentViewUndisclosed_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.api.pollcontent_PollContentViewUndisclosed_null_PollContentViewUndisclosed-Day-7_8_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.api.pollcontent_PollContentViewUndisclosed_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.create_CreatePollView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.create_CreatePollView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.create_CreatePollView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.create_CreatePollView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.create_CreatePollView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.create_CreatePollView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.create_CreatePollView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.create_CreatePollView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.create_CreatePollView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.create_CreatePollView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.create_CreatePollView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.create_CreatePollView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.create_CreatePollView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.create_CreatePollView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.create_CreatePollView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.create_CreatePollView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.history_PollHistoryView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.history_PollHistoryView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.history_PollHistoryView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.history_PollHistoryView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.poll.impl.history_PollHistoryView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.about_AboutView_null_AboutView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.about_AboutView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.about_AboutView_null_AboutView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.about_AboutView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.analytics_AnalyticsSettingsView_null_AnalyticsSettingsView-Day-2_3_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.analytics_AnalyticsSettingsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.analytics_AnalyticsSettingsView_null_AnalyticsSettingsView-Day-2_3_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.analytics_AnalyticsSettingsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.blockedusers_BlockedUsersView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_DefaultNotificationSettingOption_null_DefaultNotificationSettingOption-Day-7_8_null,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_DefaultNotificationSettingOption_null_DefaultNotificationSettingOption-Day-7_8_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_10,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_10_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_10,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_10_de.png diff --git a/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_11_de.png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_11_de.png new file mode 100644 index 0000000000..51b9f1c370 --- /dev/null +++ b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_11_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d9b2118ed6fa3940feab3c1645dca5517417dbd4672624f0264a63acae2c9a3 +size 68179 diff --git a/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_12_de.png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_12_de.png new file mode 100644 index 0000000000..51104dba5f --- /dev/null +++ b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_12_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e32d69b41a03c6ce47e58a5e94c61025bbd2e421ad17e4bd0ed13c7f1a3639e +size 19490 diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_8,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_8_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_8,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_8_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_9,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_9_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_9,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.notifications_NotificationSettingsView_Day_9_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.root_PreferencesRootViewDark_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.root_PreferencesRootViewDark_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.root_PreferencesRootViewDark_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.root_PreferencesRootViewDark_1_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.root_PreferencesRootViewLight_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.root_PreferencesRootViewLight_0_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.root_PreferencesRootViewLight_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.root_PreferencesRootViewLight_1_de.png diff --git a/screenshots/de/ui_T_t[f.preferences.impl.user.editprofile_EditUserProfileView_null_EditUserProfileView-Day-10_11_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.preferences.impl.user.editprofile_EditUserProfileView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.preferences.impl.user.editprofile_EditUserProfileView_null_EditUserProfileView-Day-10_11_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.preferences.impl.user.editprofile_EditUserProfileView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.rageshake.api.crash_CrashDetectionView_null_CrashDetectionView-Day-0_1_null,NEXUS_5,1.0,de].png b/screenshots/de/features.rageshake.api.crash_CrashDetectionView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.rageshake.api.crash_CrashDetectionView_null_CrashDetectionView-Day-0_1_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.rageshake.api.crash_CrashDetectionView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.rageshake.api.detection_RageshakeDialogContent_null_RageshakeDialogContent-Day-1_2_null,NEXUS_5,1.0,de].png b/screenshots/de/features.rageshake.api.detection_RageshakeDialogContent_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.rageshake.api.detection_RageshakeDialogContent_null_RageshakeDialogContent-Day-1_2_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.rageshake.api.detection_RageshakeDialogContent_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Day-2_3_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.rageshake.api.preferences_RageshakePreferencesView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Day-2_3_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.rageshake.api.preferences_RageshakePreferencesView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.edit_RoomDetailsEditView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_8,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_8_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_8,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_8_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_null_RoomNotificationSettingsOption-Day-8_8_null,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_null_RoomNotificationSettingsOption-Day-8_8_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_null_UserDefinedRoomNotificationSettingsView-Day-10_10_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_null_UserDefinedRoomNotificationSettingsView-Day-10_10_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_10,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_10,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_8,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_8,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_9,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_9,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_null_PendingMemberRowWithLongName-Day-13_13_null,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_null_PendingMemberRowWithLongName-Day-13_13_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_de.png diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_0_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_0_de.png new file mode 100644 index 0000000000..cba86543a7 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e92d40466804770e33c961c23d749606709bb7252f6dedfd334eebf60e61b566 +size 49159 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_10_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_10_de.png new file mode 100644 index 0000000000..f99cf139c9 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_10_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e327207ac7abebc13c33053c41c77d8271a76cd1a2ec440759497d2b884e0835 +size 48728 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_11_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_11_de.png new file mode 100644 index 0000000000..d091ca10bf --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_11_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec02cf389448cfdea770933d0b00fc0138efe6b31a16d87a92efca363b19007d +size 47142 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_12_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_12_de.png new file mode 100644 index 0000000000..6b8654fd58 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_12_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab7e53965831e084561f91457fca8a3888defaa5f8b1342843d0da076815e662 +size 50759 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_1_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_1_de.png new file mode 100644 index 0000000000..275a963c05 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e432b81e9f88ce614c5db07a93d06297619368566ac9b143f6cb95bf4606b657 +size 40216 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_2_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_2_de.png new file mode 100644 index 0000000000..fe13ba2282 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_2_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61e726e8927104a3c86b87332ff4caae0116285b9aa00ad0552fe4cce6db3e27 +size 42789 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_3_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_3_de.png new file mode 100644 index 0000000000..0145a8be58 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16ecb1ed76b6dc0690d0739c578150eb4d9972d301c39b3734204f4a7f9ec7ba +size 39257 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_4_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_4_de.png new file mode 100644 index 0000000000..3561161c62 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d210b9f06cfeac009631949452348ee5d0ade0c15b9777945ba0022b8f051dd5 +size 47157 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_5_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_5_de.png new file mode 100644 index 0000000000..190b60de55 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_5_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:667a579782f09bd6671a490cfa79c73a812e3ada1af25bc7ad837b84fb92644b +size 45840 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_6_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_6_de.png new file mode 100644 index 0000000000..190b60de55 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_6_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:667a579782f09bd6671a490cfa79c73a812e3ada1af25bc7ad837b84fb92644b +size 45840 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_7_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_7_de.png new file mode 100644 index 0000000000..8e80da183f --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_7_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b79dbac297a485c296519db1e5e031e3c66020404de2083152071374d89e577 +size 45732 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_8_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_8_de.png new file mode 100644 index 0000000000..7b5db59790 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_8_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a821a33d6d0dfb07e8674c3faea1140bd2eb75515472dcb99811e842b4458347 +size 48962 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_9_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_9_de.png new file mode 100644 index 0000000000..a4d7d54afb --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_9_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d649971d1dc6ba6588a22a33e27f83b6f4794507c8fe9c650af04f88f1b44a8b +size 48180 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_0_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_0_de.png new file mode 100644 index 0000000000..be2333b78c --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f37146e153a53b14fd26dff34ec2a62159faec2d0e6fe678e6125426019ae89 +size 50339 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_10_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_10_de.png new file mode 100644 index 0000000000..f770cabd13 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_10_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32c7c32a0a724ca1384c6348128fa802e25902b13e7d8c90c2b6f7e4d9823bc0 +size 49726 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_11_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_11_de.png new file mode 100644 index 0000000000..2b18eda2f9 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_11_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ee78629b97ac29eff2d7063964159f4fc0dd7c0c5d6c5d638e9dc674bc84513 +size 48224 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_12_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_12_de.png new file mode 100644 index 0000000000..9ebdeab0b8 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_12_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a10950ab07924371690d3f3be4fcdbe95f46c0e397aabd5b860dd8e9a4f007fe +size 51731 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_1_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_1_de.png new file mode 100644 index 0000000000..a1fc2fd766 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcb0e7526d70968db55534795ae1bd49d510dcc03d0dc798c3dd577b451de268 +size 41330 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_2_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_2_de.png new file mode 100644 index 0000000000..f520901774 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_2_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4737bc923610d0e1dea0c117b7a24581bc51c44ddfdccd22328526f5b5b34e22 +size 43994 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_3_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_3_de.png new file mode 100644 index 0000000000..fa2821ed2c --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:974a13d25e55c5a49a967d841fb5ec9a47a5389836482cc74690cc0138631d7a +size 40059 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_4_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_4_de.png new file mode 100644 index 0000000000..e83896b19f --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37ed17c872b3c8c9226b9c4b94eaf635a2f50481e16f9697f09ee8738a6847ee +size 48196 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_5_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_5_de.png new file mode 100644 index 0000000000..ef5e33b916 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_5_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d58304b8964e081ffebe09fd1e8517499290c9998d93236a101e0644917a458b +size 46695 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_6_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_6_de.png new file mode 100644 index 0000000000..ef5e33b916 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_6_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d58304b8964e081ffebe09fd1e8517499290c9998d93236a101e0644917a458b +size 46695 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_7_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_7_de.png new file mode 100644 index 0000000000..20c5194060 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_7_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf1c5453366e54885eb3f7e2e06e4e0970f875d65b3130c4a33cb5712a6e19b9 +size 46806 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_8_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_8_de.png new file mode 100644 index 0000000000..a40070f58a --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_8_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd10955671a04c607f485a0abbd608bcc5061020f51f8d8b81e1d534f30de7a1 +size 50097 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_9_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_9_de.png new file mode 100644 index 0000000000..a96678c8d1 --- /dev/null +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_9_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c93cd2fd727c335867563761832985b08d83a3c4f1d0dc4b71f70c321a18336b +size 49205 diff --git a/screenshots/de/ui_T_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdirectory.impl.root_RoomDirectoryView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdirectory.impl.root_RoomDirectoryView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdirectory.impl.root_RoomDirectoryView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdirectory.impl.root_RoomDirectoryView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomdirectory.impl.root_RoomDirectoryView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomdirectory.impl.root_RoomDirectoryView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_ConfirmRecoveryKeyBanner_null_ConfirmRecoveryKeyBanner-Day-2_3_null,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_ConfirmRecoveryKeyBanner_null_ConfirmRecoveryKeyBanner-Day-2_3_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_null_DefaultRoomListTopBarWithIndicator-Day-5_6_null,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_null_DefaultRoomListTopBarWithIndicator-Day-5_6_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_DefaultRoomListTopBar_null_DefaultRoomListTopBar-Day-4_5_null,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_DefaultRoomListTopBar_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_DefaultRoomListTopBar_null_DefaultRoomListTopBar-Day-4_5_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_DefaultRoomListTopBar_Day_0_de.png diff --git a/screenshots/de/features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_de.png b/screenshots/de/features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_de.png new file mode 100644 index 0000000000..78f6b04165 --- /dev/null +++ b/screenshots/de/features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee3736842947f6cc60a432b6e116c281cace42c5c1cf8daed471f951884af89a +size 29424 diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_RoomListContentView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_RoomListContentView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_RoomListContentView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_RoomListContentView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_RoomListContentView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_RoomListContentView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_RoomListContentView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_RoomListContentView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_29,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_RoomSummaryRow_Day_29_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_29,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_RoomSummaryRow_Day_29_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_RoomSummaryRow_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_RoomSummaryRow_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_30,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_RoomSummaryRow_Day_30_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_30,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_RoomSummaryRow_Day_30_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_31,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.components_RoomSummaryRow_Day_31_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_31,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.components_RoomSummaryRow_Day_31_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-8_9_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.filters_RoomListFiltersView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-8_9_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.filters_RoomListFiltersView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-8_9_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.filters_RoomListFiltersView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-8_9_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.filters_RoomListFiltersView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.migration_MigrationScreenView_null_MigrationScreenView-Day-9_10_null,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.migration_MigrationScreenView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.migration_MigrationScreenView_null_MigrationScreenView-Day-9_10_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.migration_MigrationScreenView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-10_11_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.search_RoomListSearchContent_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-10_11_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.search_RoomListSearchContent_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-10_11_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl.search_RoomListSearchContent_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-10_11_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl.search_RoomListSearchContent_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListModalBottomSheetContent_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListModalBottomSheetContent_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListModalBottomSheetContent_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListModalBottomSheetContent_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListModalBottomSheetContent_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListModalBottomSheetContent_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_9,NEXUS_5,1.0,de].png b/screenshots/de/features.roomlist.impl_RoomListView_Day_9_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_9,NEXUS_5,1.0,de].png rename to screenshots/de/features.roomlist.impl_RoomListView_Day_9_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.createkey_CreateNewRecoveryKeyView_null_CreateNewRecoveryKeyView-Day-0_1_null,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.createkey_CreateNewRecoveryKeyView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.createkey_CreateNewRecoveryKeyView_null_CreateNewRecoveryKeyView-Day-0_1_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.createkey_CreateNewRecoveryKeyView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.disable_SecureBackupDisableView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.disable_SecureBackupDisableView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.disable_SecureBackupDisableView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.disable_SecureBackupDisableView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.disable_SecureBackupDisableView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.disable_SecureBackupDisableView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.disable_SecureBackupDisableView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.disable_SecureBackupDisableView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.enable_SecureBackupEnableView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.enable_SecureBackupEnableView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.enable_SecureBackupEnableView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.enable_SecureBackupEnableView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.enable_SecureBackupEnableView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.enable_SecureBackupEnableView_Day_2_de.png diff --git a/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_de.png b/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_de.png new file mode 100644 index 0000000000..9ba1120d21 --- /dev/null +++ b/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28f16b0570ec6fba30a39d1f830a0cd6a934e2ac3c92e29a4b8f4daa3fb5c0af +size 46317 diff --git a/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_de.png b/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_de.png new file mode 100644 index 0000000000..75c008cf9e --- /dev/null +++ b/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d0b141555cc03e41f168dd4230d8c107d08f31e56e117776d0466ce8145ba15 +size 56993 diff --git a/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_de.png b/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_de.png new file mode 100644 index 0000000000..f7fe775b1d --- /dev/null +++ b/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ca7c0e175e1a1463c6c5dab08085c8b5f1a479dbbd1514e78962e03432a5e32 +size 55448 diff --git a/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_de.png b/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_de.png new file mode 100644 index 0000000000..f3b19f85ce --- /dev/null +++ b/screenshots/de/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d44d341217f60e13a49775483025bbe18f39ea1d5dd6ce2cbfc62758847acbbd +size 45656 diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_8,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_8_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_8,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.root_SecureBackupRootView_Day_8_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_10,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_10_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_10,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_10_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_11,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_11_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_11,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_11_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_8,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_8_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_8,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_8_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_9,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_9_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_9,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup.views_RecoveryKeyView_Day_9_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.securebackup.impl.setup_SecureBackupSetupView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.share.impl_ShareView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.share.impl_ShareView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.signedout.impl_SignedOutView_null_SignedOutView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.signedout.impl_SignedOutView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.signedout.impl_SignedOutView_null_SignedOutView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.signedout.impl_SignedOutView_Day_0_de.png diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_0_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_0_de.png new file mode 100644 index 0000000000..03fe84cdc1 --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0514fe5e119340252693d43cad99aaec3df872f05bf488e3e9e35e509b5d6ce0 +size 22051 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_1_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_1_de.png new file mode 100644 index 0000000000..81ec190291 --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eda5714ef4ef483e6f59af3a0f705fdd3e8423413728c0d38d2fd35679311ac0 +size 19771 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_2_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_2_de.png new file mode 100644 index 0000000000..53dc865afa --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_2_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7583b7c9a9221b3687fd38cb050f0051066583aa95fe40e57a30918fa49f6d56 +size 22428 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_3_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_3_de.png new file mode 100644 index 0000000000..b1537a1f54 --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df7d6d3c849a9246115a32d91b38e98802ede42c7fb0639c665f7c30cace2a29 +size 40767 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_4_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_4_de.png new file mode 100644 index 0000000000..b7790a8efd --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b47823b7d25c223d07b814d75ecc27abc9fe86b4165cb8e5c9286b91a09b27d0 +size 34922 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_5_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_5_de.png new file mode 100644 index 0000000000..5671164c6e --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_5_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3d0957ca5bd3e41616c3a559f3e0df6dc4c3d09eaf10a82a9452e453a46e6e1 +size 22941 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_6_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_6_de.png new file mode 100644 index 0000000000..56a0a438ca --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_6_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5f2e969681cb64272bdc7d75617274d7faf58bbb5e1e50709e070dbccf36fbe +size 22240 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_7_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_7_de.png new file mode 100644 index 0000000000..c3ab1d9ad9 --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_7_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61f85634bfdd266220e65e9d78f0d187ad4cf70bdfc5b47e7d4aba797bf07cb2 +size 23090 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_8_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_8_de.png new file mode 100644 index 0000000000..03fe84cdc1 --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_8_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0514fe5e119340252693d43cad99aaec3df872f05bf488e3e9e35e509b5d6ce0 +size 22051 diff --git a/screenshots/de/ui_T_t[f.verifysession.impl.emoji_SasEmojis_null_SasEmojis-Day-1_2_null,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl.emoji_SasEmojis_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl.emoji_SasEmojis_null_SasEmojis-Day-1_2_null,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl.emoji_SasEmojis_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_5,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_6,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_7,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_8,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_8_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_8,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_8_de.png diff --git a/screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_9,NEXUS_5,1.0,de].png b/screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_9_de.png similarity index 100% rename from screenshots/de/ui_T_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_9,NEXUS_5,1.0,de].png rename to screenshots/de/features.verifysession.impl_VerifySelfSessionView_Day_9_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.atomic.molecules_DialogLikeBannerMolecule_null_DialogLikeBannerMolecule-Day_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.atomic.molecules_DialogLikeBannerMolecule_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.atomic.molecules_DialogLikeBannerMolecule_null_DialogLikeBannerMolecule-Day_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.atomic.molecules_DialogLikeBannerMolecule_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_1,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.components.async_AsyncActionView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.components.async_AsyncActionView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_3,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.components.async_AsyncActionView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.components.async_AsyncActionView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.components.async_AsyncFailure_null_AsyncFailure-Day_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.components.async_AsyncFailure_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.components.async_AsyncFailure_null_AsyncFailure-Day_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.components.async_AsyncFailure_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.components.dialogs_ErrorDialogContent_null_Dialogs_ErrorDialogContent_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.components.dialogs_ErrorDialogContent_Dialogs_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.components.dialogs_ErrorDialogContent_null_Dialogs_ErrorDialogContent_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.components.dialogs_ErrorDialogContent_Dialogs_de.png diff --git a/screenshots/de/libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_de.png b/screenshots/de/libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_de.png new file mode 100644 index 0000000000..7842028999 --- /dev/null +++ b/screenshots/de/libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27b5de4266b4c718ddb7a9bc735cb3de8220a34d18d139407fe43008892cbb48 +size 13897 diff --git a/screenshots/de/ui_T_t[l.designsystem.components.dialogs_ErrorDialog_null_ErrorDialog-Day_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.components.dialogs_ErrorDialog_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.components.dialogs_ErrorDialog_null_ErrorDialog-Day_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.components.dialogs_ErrorDialog_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.components.dialogs_RetryDialogContent_null_Dialogs_RetryDialogContent_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.components.dialogs_RetryDialogContent_Dialogs_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.components.dialogs_RetryDialogContent_null_Dialogs_RetryDialogContent_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.components.dialogs_RetryDialogContent_Dialogs_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.components.dialogs_RetryDialog_null_RetryDialog-Day_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.components.dialogs_RetryDialog_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.components.dialogs_RetryDialog_null_RetryDialog-Day_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.components.dialogs_RetryDialog_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.components_ProgressDialogContent_null_Dialogs_ProgressDialogContent_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.components_ProgressDialogContent_Dialogs_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.components_ProgressDialogContent_null_Dialogs_ProgressDialogContent_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.components_ProgressDialogContent_Dialogs_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.components_ProgressDialog_null_ProgressDialog-Day_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.components_ProgressDialog_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.components_ProgressDialog_null_ProgressDialog-Day_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.components_ProgressDialog_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.theme.components.previews_DatePickerDark_null_DateTimepickers_DatePickerDark_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.theme.components.previews_DatePickerDark_DateTime pickers_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.theme.components.previews_DatePickerDark_null_DateTimepickers_DatePickerDark_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.theme.components.previews_DatePickerDark_DateTime pickers_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.theme.components.previews_DatePickerLight_null_DateTimepickers_DatePickerLight_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.theme.components.previews_DatePickerLight_DateTime pickers_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.theme.components.previews_DatePickerLight_null_DateTimepickers_DatePickerLight_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.theme.components.previews_DatePickerLight_DateTime pickers_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.theme.components.previews_TimePickerHorizontal_null_DateTimepickers_TimePickerHorizontal_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.theme.components.previews_TimePickerHorizontal_DateTime pickers_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.theme.components.previews_TimePickerHorizontal_null_DateTimepickers_TimePickerHorizontal_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.theme.components.previews_TimePickerHorizontal_DateTime pickers_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.theme.components.previews_TimePickerVerticalDark_null_DateTimepickers_TimePickerVerticalDark_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.theme.components.previews_TimePickerVerticalDark_DateTime pickers_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.theme.components.previews_TimePickerVerticalDark_null_DateTimepickers_TimePickerVerticalDark_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.theme.components.previews_TimePickerVerticalDark_DateTime pickers_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.theme.components.previews_TimePickerVerticalLight_null_DateTimepickers_TimePickerVerticalLight_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.theme.components.previews_TimePickerVerticalLight_DateTime pickers_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.theme.components.previews_TimePickerVerticalLight_null_DateTimepickers_TimePickerVerticalLight_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.theme.components.previews_TimePickerVerticalLight_DateTime pickers_de.png diff --git a/screenshots/de/ui_T_t[l.designsystem.theme.components_SearchBarActiveWithNoResults_null_Searchviews_SearchBarActiveWithNoResults_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.designsystem.theme.components_SearchBarActiveWithNoResults_Search views_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.designsystem.theme.components_SearchBarActiveWithNoResults_null_Searchviews_SearchBarActiveWithNoResults_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.designsystem.theme.components_SearchBarActiveWithNoResults_Search views_de.png diff --git a/screenshots/de/ui_T_t[l.matrix.ui.components_AvatarActionBottomSheet_null_AvatarActionBottomSheet-Day-1_2_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.matrix.ui.components_AvatarActionBottomSheet_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.matrix.ui.components_AvatarActionBottomSheet_null_AvatarActionBottomSheet-Day-1_2_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.matrix.ui.components_AvatarActionBottomSheet_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.matrix.ui.components_CheckableUnresolvedUserRow_null_CheckableUnresolvedUserRow_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.matrix.ui.components_CheckableUnresolvedUserRow_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.matrix.ui.components_CheckableUnresolvedUserRow_null_CheckableUnresolvedUserRow_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.matrix.ui.components_CheckableUnresolvedUserRow_de.png diff --git a/screenshots/de/ui_T_t[l.matrix.ui.components_InviteSenderView_null_InviteSenderView-Day-3_4_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.matrix.ui.components_InviteSenderView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.matrix.ui.components_InviteSenderView_null_InviteSenderView-Day-3_4_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.matrix.ui.components_InviteSenderView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.matrix.ui.components_UnresolvedUserRow_null_UnresolvedUserRow_0_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.matrix.ui.components_UnresolvedUserRow_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.matrix.ui.components_UnresolvedUserRow_null_UnresolvedUserRow_0_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.matrix.ui.components_UnresolvedUserRow_de.png diff --git a/screenshots/de/libraries.matrix.ui.messages.reply_InReplyToView_Day_4_de.png b/screenshots/de/libraries.matrix.ui.messages.reply_InReplyToView_Day_4_de.png new file mode 100644 index 0000000000..eed45a560c --- /dev/null +++ b/screenshots/de/libraries.matrix.ui.messages.reply_InReplyToView_Day_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bacb2124d3ab428fbaeb72318508868219fceeaa34277f74e034f73f4adcba0a +size 8694 diff --git a/screenshots/de/libraries.matrix.ui.messages.reply_InReplyToView_Day_8_de.png b/screenshots/de/libraries.matrix.ui.messages.reply_InReplyToView_Day_8_de.png new file mode 100644 index 0000000000..3113a7932a --- /dev/null +++ b/screenshots/de/libraries.matrix.ui.messages.reply_InReplyToView_Day_8_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ae046a0491b19e60ef1fac693003db8e8105e65a304063dd80b07713030578b +size 9245 diff --git a/screenshots/de/ui_T_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_2,NEXUS_5,1.0,de].png b/screenshots/de/libraries.mediaviewer.api.viewer_MediaViewerView_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.mediaviewer.api.viewer_MediaViewerView_2_de.png diff --git a/screenshots/de/ui_T_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/libraries.permissions.api_PermissionsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.permissions.api_PermissionsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/libraries.permissions.api_PermissionsView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.permissions.api_PermissionsView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/libraries.permissions.api_PermissionsView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.permissions.api_PermissionsView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/libraries.permissions.api_PermissionsView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.permissions.api_PermissionsView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_5,NEXUS_5,1.0,de].png b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[l.textcomposer_MarkdownTextComposerEdit_null_MarkdownTextComposerEdit-Day-3_4_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.textcomposer_MarkdownTextComposerEdit_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.textcomposer_MarkdownTextComposerEdit_null_MarkdownTextComposerEdit-Day-3_4_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.textcomposer_MarkdownTextComposerEdit_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.textcomposer_TextComposerEdit_null_TextComposerEdit-Day-2_3_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.textcomposer_TextComposerEdit_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.textcomposer_TextComposerEdit_null_TextComposerEdit-Day-2_3_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.textcomposer_TextComposerEdit_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.textcomposer_TextComposerFormatting_null_TextComposerFormatting-Day-1_2_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.textcomposer_TextComposerFormatting_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.textcomposer_TextComposerFormatting_null_TextComposerFormatting-Day-1_2_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.textcomposer_TextComposerFormatting_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_null_TextComposerLinkDialogCreateLinkWithoutText-Day-7_8_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_null_TextComposerLinkDialogCreateLinkWithoutText-Day-7_8_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.textcomposer_TextComposerLinkDialogCreateLink_null_TextComposerLinkDialogCreateLink-Day-6_7_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.textcomposer_TextComposerLinkDialogCreateLink_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.textcomposer_TextComposerLinkDialogCreateLink_null_TextComposerLinkDialogCreateLink-Day-6_7_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.textcomposer_TextComposerLinkDialogCreateLink_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.textcomposer_TextComposerLinkDialogEditLink_null_TextComposerLinkDialogEditLink-Day-8_9_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.textcomposer_TextComposerLinkDialogEditLink_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.textcomposer_TextComposerLinkDialogEditLink_null_TextComposerLinkDialogEditLink-Day-8_9_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.textcomposer_TextComposerLinkDialogEditLink_Day_0_de.png diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_0_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_0_de.png new file mode 100644 index 0000000000..a62149072c --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3d1ba80e07a7b575055565bc003b61fecf71e0b77d674ffbe82798c53cb2e2d +size 19475 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_10_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_10_de.png new file mode 100644 index 0000000000..401f566cfa --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_10_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4df060e018febc240d72aa3370b020b43d85bb50d7c652874cab2714263acb8 +size 14947 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_11_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_11_de.png new file mode 100644 index 0000000000..a7146ae26e --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_11_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2df79923fb5ffe8e31c9926c3e7b8fc138dd28b282ea01c51b2b46856b075275 +size 18883 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_1_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_1_de.png new file mode 100644 index 0000000000..4f8c751556 --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f85a09751dfdc38bb8a7bdaea8c8272743ce1e7adc52f003303ced96b4750cd8 +size 21781 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_2_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_2_de.png new file mode 100644 index 0000000000..c8b88b599d --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_2_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74144c27f19aabfdb4cd4066678a2b471b9064c4cdd3ff119e053428e6c4936e +size 15772 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_3_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_3_de.png new file mode 100644 index 0000000000..b8704f2e1d --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca4bf6b0c4949b59754f4cd8085a5d9fce635e270d8d7d12126a7e2e3aff6c4a +size 15346 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_4_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_4_de.png new file mode 100644 index 0000000000..bc8ba42475 --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94471b0c80c21c983963e59bbceda3c017608f0c68dbb8f0c02fbf8a21b2c904 +size 17554 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_5_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_5_de.png new file mode 100644 index 0000000000..e5b1ce5577 --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_5_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aef08a107ee1be46c9f1cc24be0c825c247d3f57efe8057cfd1009716ba8513a +size 15067 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_6_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_6_de.png new file mode 100644 index 0000000000..17ec85b220 --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_6_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:705c20277eb5578f0f656ca8daf6652171fa2b8b2af37848db0163e805d05889 +size 15278 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_7_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_7_de.png new file mode 100644 index 0000000000..d1db0eea09 --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_7_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d8abccc9cd15fb9d6f508110c5b66a8184402f9865691b9ea10289729320f8a +size 15801 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_8_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_8_de.png new file mode 100644 index 0000000000..c32e876b3b --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_8_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d271a75c5581f68950c6d697a597c35b04184e9aab72a59401475f097583bbf +size 18160 diff --git a/screenshots/de/libraries.textcomposer_TextComposerReply_Day_9_de.png b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_9_de.png new file mode 100644 index 0000000000..3da149125a --- /dev/null +++ b/screenshots/de/libraries.textcomposer_TextComposerReply_Day_9_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13717aaaa5fbb7b160446febdfb9cb1b08afaa36bb23050b629d5119894b18d6 +size 15151 diff --git a/screenshots/de/ui_T_t[l.textcomposer_TextComposerSimple_null_TextComposerSimple-Day-0_1_null,NEXUS_5,1.0,de].png b/screenshots/de/libraries.textcomposer_TextComposerSimple_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.textcomposer_TextComposerSimple_null_TextComposerSimple-Day-0_1_null,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.textcomposer_TextComposerSimple_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_0,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_1_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_1,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_1_de.png diff --git a/screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_2_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_2,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_2_de.png diff --git a/screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_3_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_3,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_3_de.png diff --git a/screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_4_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_4,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_4_de.png diff --git a/screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_5,NEXUS_5,1.0,de].png b/screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_5_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_5,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_5_de.png diff --git a/screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_6,NEXUS_5,1.0,de].png b/screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_6_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_6,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_6_de.png diff --git a/screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_7,NEXUS_5,1.0,de].png b/screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_7_de.png similarity index 100% rename from screenshots/de/ui_T_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_7,NEXUS_5,1.0,de].png rename to screenshots/de/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_7_de.png diff --git a/screenshots/de/ui_T_t[services.apperror.impl_AppErrorView_null_AppErrorView-Day-0_1_null,NEXUS_5,1.0,de].png b/screenshots/de/services.apperror.impl_AppErrorView_Day_0_de.png similarity index 100% rename from screenshots/de/ui_T_t[services.apperror.impl_AppErrorView_null_AppErrorView-Day-0_1_null,NEXUS_5,1.0,de].png rename to screenshots/de/services.apperror.impl_AppErrorView_Day_0_de.png diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_3,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_3,NEXUS_5,1.0,de].png deleted file mode 100644 index 910d7ae982..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_3,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:32b998cea2b45d557a27027e75dda192f06022a8ede6a2407245b884ed62ab04 -size 6157 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_2,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_2,NEXUS_5,1.0,de].png deleted file mode 100644 index 441c18c1b2..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_2,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cf8a168e95192546be7fb16bf5b327ae6dd6056429d6e13330909f47546352a4 -size 34237 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_3,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_3,NEXUS_5,1.0,de].png deleted file mode 100644 index 13541dc97a..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_3,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f5cae44d01aa4341808f4f540fbdea64b50440e68113937fc23192186a9ffc7 -size 36654 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Day-22_22_null,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Day-22_22_null,NEXUS_5,1.0,de].png deleted file mode 100644 index 3efe74870b..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Day-22_22_null,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e849d6dc4cf11cae34a9c008ebef848049d30d818bc15893fe890038219903f -size 79278 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_0,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_0,NEXUS_5,1.0,de].png deleted file mode 100644 index 4ad3d0f2ff..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_0,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f38739620747364048ff556fa83550f1de742e5d3c04747ce5b8e4218e0ef146 -size 145988 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_1,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_1,NEXUS_5,1.0,de].png deleted file mode 100644 index 098ddb9bce..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_1,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c3cb63a5e1d8ec765eed4b506a3d52c0acd67d10575c3cad091fe13bab92c98 -size 151572 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_4,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_4,NEXUS_5,1.0,de].png deleted file mode 100644 index 0118fb97e6..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_4,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fbc7ba7dc6ffe22031bef7b9223f4615dc4872fcec75508c0ae2a0bdcf249d5b -size 145306 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_8,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_8,NEXUS_5,1.0,de].png deleted file mode 100644 index e69b52823c..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_8,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:59e97eadf82bfc439303479a281aafe0a9f1a8d36518b43978bf41916ff674b3 -size 147090 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventTimestampBelow_null_TimelineItemEventTimestampBelow_0_null,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventTimestampBelow_null_TimelineItemEventTimestampBelow_0_null,NEXUS_5,1.0,de].png deleted file mode 100644 index 3ef5385375..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline.components_TimelineItemEventTimestampBelow_null_TimelineItemEventTimestampBelow_0_null,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ef6d223b91d402a90366152be605e8778f9197318adcd237174ffdf8262bffb -size 54553 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_0,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_0,NEXUS_5,1.0,de].png deleted file mode 100644 index 999bc1079c..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_0,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77b2146439ae84901d9a852c3aed5b1428f17c9d1b68167ec5946a55e5d1c879 -size 50769 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_1,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_1,NEXUS_5,1.0,de].png deleted file mode 100644 index d86a6a32d0..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_1,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:535fbd805e875bc9756ab8e997764f2553a8a626c423607dfe77d3c77acb2f7e -size 71854 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_11,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_11,NEXUS_5,1.0,de].png deleted file mode 100644 index 773680bf96..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_11,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8cf1a5beeb9c51b6763545c2e288265a6cfc200eeaec0404cc44891e96ad169c -size 80591 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_12,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_12,NEXUS_5,1.0,de].png deleted file mode 100644 index e111e292c4..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_12,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:faea439bbc0ba9ad7a2a603006b13c9960a5832eaab5e42189ac8c055f145842 -size 52208 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_13,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_13,NEXUS_5,1.0,de].png deleted file mode 100644 index bcd3b20fc3..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_13,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f4af0f94d9caee091ba26f17ed430d667a4de5a139be62d8419a312d948fb4b7 -size 63516 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_14,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_14,NEXUS_5,1.0,de].png deleted file mode 100644 index df6c2a7cd9..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_14,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:530497e9be6724d603b7f9eaa6d03c10c466489069874d6c0034e3ab5f6cdb87 -size 48365 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_15,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_15,NEXUS_5,1.0,de].png deleted file mode 100644 index 42c64e4bdd..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_15,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f174969ef26a8968eb4a0f0b506037ae02015460a7d820eb9e6f7fa1139c3107 -size 72307 diff --git a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_16,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_16,NEXUS_5,1.0,de].png deleted file mode 100644 index 4256dcc736..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_16,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d8d6eca939c8ad5d9bfce3a3e50f25e35b5a6e05f9959a8619f4a7a3c1692f5 -size 58182 diff --git a/screenshots/de/ui_T_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_0,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_0,NEXUS_5,1.0,de].png deleted file mode 100644 index 1530bd6806..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_0,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bfb8d5a46332d0f4becef5b153b47f2efee100f06b5159eb110f1ca87e31ec02 -size 52178 diff --git a/screenshots/de/ui_T_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_1,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_1,NEXUS_5,1.0,de].png deleted file mode 100644 index 8ca874148c..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_1,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f265cdfc243f650a26b4eb44dc1677cd1d4a0335ac78c01cda53c7e7e2282ddb -size 53103 diff --git a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_10,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_10,NEXUS_5,1.0,de].png deleted file mode 100644 index ef0ed9697a..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_10,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:045ee18a10d04d9b94991983b9ab4e260ccf4e721f89600ca8df72550736d682 -size 55249 diff --git a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_11,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_11,NEXUS_5,1.0,de].png deleted file mode 100644 index 9ccf89ba5c..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_11,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:686993ee244a23c5bd5dd87d8cae12c6750502fccf4b1f9d741dd54aa94bde4d -size 42807 diff --git a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_3,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_3,NEXUS_5,1.0,de].png deleted file mode 100644 index 1f04ca1870..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_3,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dbafbc059266cfc32de0c180f56fc1164c81d17f7bbc1446e187f4b992ad1479 -size 55331 diff --git a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_4,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_4,NEXUS_5,1.0,de].png deleted file mode 100644 index cce5c7f7c8..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_4,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:088b15c5cd0c34f639a8b0cc624effe53fa1413ac10e1802f5a00ea8db5577a2 -size 50708 diff --git a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_6,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_6,NEXUS_5,1.0,de].png deleted file mode 100644 index 48f55925f5..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_6,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2b412b90ebb0eef0b0debc13c664b76b29cafc32c4b05a7bd81e795107431a5c -size 49588 diff --git a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_7,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_7,NEXUS_5,1.0,de].png deleted file mode 100644 index 01c3a1ca00..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_7,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0482e9234c80766cdb9ba64e8f7d939bae83871f96330b638c2960c88d258607 -size 54653 diff --git a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_8,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_8,NEXUS_5,1.0,de].png deleted file mode 100644 index 2e128ac2c4..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_8,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5c06f157a91a7fe16997ad51df6f5fe9ecc366fb913e2c645d616d1c6a1dcc4d -size 38981 diff --git a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_9,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_9,NEXUS_5,1.0,de].png deleted file mode 100644 index 47f2dc626e..0000000000 --- a/screenshots/de/ui_T_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_9,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ece30f77a0e4fea5213f2daa7423b0d8c62375733483bea3c1a2fd492ed02ad0 -size 38214 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_0,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_0,NEXUS_5,1.0,de].png deleted file mode 100644 index 2ffd493f01..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_0,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7aadb18fd43f75461b876d3eb7385dbbd5da8b13d5980c608620434846d99fc -size 51108 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_1,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_1,NEXUS_5,1.0,de].png deleted file mode 100644 index 2d4a9a8dc4..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_1,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:85e4d9fb017ebb6c6268e5f285158d5adebd0aa725a341f79960ca5b3f0e969a -size 39886 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_10,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_10,NEXUS_5,1.0,de].png deleted file mode 100644 index f078d4afd6..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_10,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1cd4603ae2df6c938dd73e63ddfdcf61981294fe51e8bcbca5fc1b1b156ffd52 -size 48528 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_11,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_11,NEXUS_5,1.0,de].png deleted file mode 100644 index e28b48897a..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_11,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:627b12c307907170d9dbbc8230d8e8db7b14763a5480a566a760217ef6372ed8 -size 46952 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_2,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_2,NEXUS_5,1.0,de].png deleted file mode 100644 index d7273ad278..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_2,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30a19d05564102a9846e579063fcab96cd155b97c2ad127efdd66915936ec6f3 -size 42458 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_3,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_3,NEXUS_5,1.0,de].png deleted file mode 100644 index a31dd1cebd..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_3,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bf4405fa233c001792c3ca76e2e357711c629ca711780f3e8de7f90df2f0d1ac -size 39169 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_4,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_4,NEXUS_5,1.0,de].png deleted file mode 100644 index 31058be23c..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_4,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea52e07b3e70eb889615a23df8a9eb075b412ec4f80da6260e9592b595976ffb -size 48071 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_5,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_5,NEXUS_5,1.0,de].png deleted file mode 100644 index 380c62f56b..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_5,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9930484b639e58ce989158af8c3c6223d35bb7faf5aa3fb70a462f32093c8827 -size 46399 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_6,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_6,NEXUS_5,1.0,de].png deleted file mode 100644 index 380c62f56b..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_6,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9930484b639e58ce989158af8c3c6223d35bb7faf5aa3fb70a462f32093c8827 -size 46399 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_7,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_7,NEXUS_5,1.0,de].png deleted file mode 100644 index f8d796dc0e..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_7,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c09968ed580d0b956e018348a983ec20f1c6da7672ae89ee5885013ac256f78f -size 47965 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_8,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_8,NEXUS_5,1.0,de].png deleted file mode 100644 index 8821e24f69..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_8,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce440c0418335ed9d90a65554c78b61a8b4fadab040a604e9cf49c0f70feca97 -size 48779 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_9,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_9,NEXUS_5,1.0,de].png deleted file mode 100644 index d340b40c56..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_9,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e8fc39dd5eb1ef0d01147f023a98c9a0ed364c962d463f784ab40b2a0a74f084 -size 47987 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_0,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_0,NEXUS_5,1.0,de].png deleted file mode 100644 index 3753c21a7f..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_0,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6e9ecfcfef8cea771d52e93fee087157e3828b63b6cdd25aaf2697ed744cc793 -size 52237 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_1,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_1,NEXUS_5,1.0,de].png deleted file mode 100644 index 5d297e4366..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_1,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4eeb5825a0616799677c8aa255783b6ed4a5789bdd1290ed15180fcfa399cc6 -size 41081 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_10,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_10,NEXUS_5,1.0,de].png deleted file mode 100644 index 6ed8700f7d..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_10,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb0589f894ad13dc3fd5525e0d1d777923fb27182ff9afb1592d17af77baf1aa -size 49677 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_11,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_11,NEXUS_5,1.0,de].png deleted file mode 100644 index 06f11f46d3..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_11,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ce4c2f394a4054da7db7e7d080593944d25e935339198c67d83e0969e68b679 -size 48151 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_2,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_2,NEXUS_5,1.0,de].png deleted file mode 100644 index 0ca617e293..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_2,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39bd6ad932881d90e1a8d8044ff2a501375486d368e7551ed24c65f7b5ec614b -size 43769 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_3,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_3,NEXUS_5,1.0,de].png deleted file mode 100644 index ebe794a4ce..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_3,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8847fbd90157263457d84029fdcc908e4f4c8c1a3187dc943c865a3cc648c28f -size 40092 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_4,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_4,NEXUS_5,1.0,de].png deleted file mode 100644 index a1f6c1338d..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_4,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:434ce90145c5b712f4136f84b7c998fd2e02ec510490d48608241297bfb3fac2 -size 49277 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_5,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_5,NEXUS_5,1.0,de].png deleted file mode 100644 index 6d7a1f37fd..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_5,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:64fd07720c2fc193038fe5e1ff894624e3f6cd57dd483f5048eb6671e34fb33c -size 47538 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_6,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_6,NEXUS_5,1.0,de].png deleted file mode 100644 index 6d7a1f37fd..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_6,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:64fd07720c2fc193038fe5e1ff894624e3f6cd57dd483f5048eb6671e34fb33c -size 47538 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_7,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_7,NEXUS_5,1.0,de].png deleted file mode 100644 index f453897fc5..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_7,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5002180bb322e5b9eec138a31397cbcee1cdff9a5b8153da8ac75629442accbf -size 49239 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_8,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_8,NEXUS_5,1.0,de].png deleted file mode 100644 index 446670166a..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_8,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:84efe9c4d23265cd36769f61d18dcaa062b49d341369e9819166a5f76d0ce116 -size 50024 diff --git a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_9,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_9,NEXUS_5,1.0,de].png deleted file mode 100644 index 9352b46f27..0000000000 --- a/screenshots/de/ui_T_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_9,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd0b598f91b44b21f3e3b2742f3a68c824cda9abc341d79319372139f3c58d45 -size 49119 diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_0,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_0,NEXUS_5,1.0,de].png deleted file mode 100644 index b1feb84a7e..0000000000 --- a/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_0,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ddc6897089fc0f63de9c0067ca5be98b58f9c63665a5c3db3edd7f7dc2dfde8 -size 44298 diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_1,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_1,NEXUS_5,1.0,de].png deleted file mode 100644 index 1defaacc8c..0000000000 --- a/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_1,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb7703a4aa28ea4676b396f629d426d6e625c7c2420c5e3fd989b1ed035f9461 -size 55204 diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_2,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_2,NEXUS_5,1.0,de].png deleted file mode 100644 index 3665ea276d..0000000000 --- a/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_2,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e25b76b31b8eeb42f5076863b6322c6213037a77b6c11c3a18cbd72413493f5 -size 52807 diff --git a/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_3,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_3,NEXUS_5,1.0,de].png deleted file mode 100644 index 7978f9d032..0000000000 --- a/screenshots/de/ui_T_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_3,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:67bcfc35aef96dfacc6ad19f97af9b2a5d66ed39db198d9840761243d6915c42 -size 43852 diff --git a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_0,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_0,NEXUS_5,1.0,de].png deleted file mode 100644 index c922bb72c0..0000000000 --- a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_0,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bf12288057aaee886f8ffd19ab5d331665e84847d38a5faf0012ebcf2e7f5c6c -size 21369 diff --git a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_1,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_1,NEXUS_5,1.0,de].png deleted file mode 100644 index 8079ede452..0000000000 --- a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_1,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:71ff172a68ff3c2b0aa03cbaa832cb22b0ad94342892d591259610677c3ecc96 -size 19326 diff --git a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_2,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_2,NEXUS_5,1.0,de].png deleted file mode 100644 index 6213f74ce1..0000000000 --- a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_2,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b37c0e3ba0ccce3bd9c6e1def36b6d6b9c7a8d194cc3ca30612b05e460ea461 -size 21831 diff --git a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_3,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_3,NEXUS_5,1.0,de].png deleted file mode 100644 index 400cb744ce..0000000000 --- a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_3,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ed73693fce7075acb00d9ec76d637dba1d81060a01226c67f6d6d80a257add3d -size 41947 diff --git a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_4,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_4,NEXUS_5,1.0,de].png deleted file mode 100644 index bd5cbd6caa..0000000000 --- a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_4,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56b785d4a57dca9139b6e61171ea99d1bd8a7ec9f89f54e2a1fb54543c208560 -size 36206 diff --git a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_5,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_5,NEXUS_5,1.0,de].png deleted file mode 100644 index 88b4a8adbe..0000000000 --- a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_5,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ff6b4d17d05cf087fef86dec176f22d9860332ea3131eaa135d3e5ed2e0145e -size 22358 diff --git a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_6,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_6,NEXUS_5,1.0,de].png deleted file mode 100644 index 40c0add445..0000000000 --- a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_6,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ad8db06ffab517076d1479beb50598e61c24606a30b7b3933ea97ad0809208d -size 19801 diff --git a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_7,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_7,NEXUS_5,1.0,de].png deleted file mode 100644 index 62c3651e65..0000000000 --- a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_7,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5f3f04a950b16348d9b1da0bfccffd08a8b256744f402848236220eb8032d1df -size 22398 diff --git a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_8,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_8,NEXUS_5,1.0,de].png deleted file mode 100644 index c922bb72c0..0000000000 --- a/screenshots/de/ui_T_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_8,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bf12288057aaee886f8ffd19ab5d331665e84847d38a5faf0012ebcf2e7f5c6c -size 21369 diff --git a/screenshots/de/ui_T_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Day-4_5_null,NEXUS_5,1.0,de].png b/screenshots/de/ui_T_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Day-4_5_null,NEXUS_5,1.0,de].png deleted file mode 100644 index f61b7e947f..0000000000 --- a/screenshots/de/ui_T_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Day-4_5_null,NEXUS_5,1.0,de].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:97ef3d9c826fd9ac2f4acdf00dc9f2bc1bf3873bf6db97a9d5ab69db61a06385 -size 84047 diff --git a/screenshots/html/data.js b/screenshots/html/data.js index 4b7a9f2b8d..e83f9e3272 100644 --- a/screenshots/html/data.js +++ b/screenshots/html/data.js @@ -1,1090 +1,1125 @@ // Generated file, do not edit export const screenshots = [ ["en","en-dark","de",], -["ui_S_t[f.preferences.impl.about_AboutView_null_AboutView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.about_AboutView_null_AboutView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_2,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_3,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.analytics.impl_AnalyticsOptInView_null_AnalyticsOptInView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.analytics.impl_AnalyticsOptInView_null_AnalyticsOptInView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.analytics.api.preferences_AnalyticsPreferencesView_null_AnalyticsPreferencesView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.analytics.api.preferences_AnalyticsPreferencesView_null_AnalyticsPreferencesView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.analytics_AnalyticsSettingsView_null_AnalyticsSettingsView-Day-2_3_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.analytics_AnalyticsSettingsView_null_AnalyticsSettingsView-Night-2_4_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[services.apperror.impl_AppErrorView_null_AppErrorView-Day-0_1_null,NEXUS_5,1.0,en]","ui_S_t[services.apperror.impl_AppErrorView_null_AppErrorView-Night-0_2_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_0,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_1,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_2,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_3,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_4,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.async_AsyncFailure_null_AsyncFailure-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.async_AsyncFailure_null_AsyncFailure-Night_1_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.async_AsyncIndicatorFailure_null_AsyncIndicatorFailure-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.async_AsyncIndicatorFailure_null_AsyncIndicatorFailure-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.async_AsyncIndicatorLoading_null_AsyncIndicatorLoading-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.async_AsyncIndicatorLoading_null_AsyncIndicatorLoading-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.async_AsyncLoading_null_AsyncLoading-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.async_AsyncLoading_null_AsyncLoading-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.messagecomposer_AttachmentSourcePickerMenu_null_AttachmentSourcePickerMenu-Day-4_4_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.messagecomposer_AttachmentSourcePickerMenu_null_AttachmentSourcePickerMenu-Night-4_5_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_6,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_6,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_7,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_7,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_8,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_8,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_0,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_1,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_2,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_3,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.matrix.ui.components_AvatarActionBottomSheet_null_AvatarActionBottomSheet-Day-1_2_null,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_AvatarActionBottomSheet_null_AvatarActionBottomSheet-Night-1_3_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_0,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_1,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_10,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_11,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_12,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_13,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_14,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_15,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_16,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_17,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_18,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_19,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_2,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_20,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_21,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_22,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_23,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_24,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_25,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_26,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_27,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_28,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_29,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_3,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_30,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_31,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_32,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_33,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_34,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_35,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_36,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_37,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_38,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_39,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_4,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_40,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_41,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_42,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_43,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_44,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_45,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_46,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_47,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_48,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_49,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_5,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_50,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_51,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_52,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_53,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_54,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_55,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_56,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_57,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_58,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_59,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_6,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_60,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_61,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_62,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_63,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_64,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_65,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_7,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_8,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_9,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.button_BackButton_null_Buttons_BackButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_Badge_null_Badge-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_Badge_null_Badge-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_BigCheckmark_null_BigCheckmark-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_BigCheckmark_null_BigCheckmark-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_BigIcon_null_BigIcon-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_BigIcon_null_BigIcon-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_1,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_2,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_3,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_4,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_5,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_6,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_0,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_1,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_2,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_3,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_4,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_5,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_6,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_7,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_Bloom_null_Bloom_Bloom_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_BottomSheetDragHandle_null_BottomSheetDragHandle-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.theme.components_BottomSheetDragHandle_null_BottomSheetDragHandle-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.atomic.molecules_ButtonColumnMolecule_null_ButtonColumnMolecule-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.molecules_ButtonColumnMolecule_null_ButtonColumnMolecule-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.molecules_ButtonRowMolecule_null_ButtonRowMolecule-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.molecules_ButtonRowMolecule_null_ButtonRowMolecule-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Night-0_2_null_1,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_null_ChangeAccountProviderView-Day-4_5_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_null_ChangeAccountProviderView-Night-4_6_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_10,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_10,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_7,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_8,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_9,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Night-1_3_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_CheckableResolvedUserRow_null_CheckableResolvedUserRow_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.matrix.ui.components_CheckableUnresolvedUserRow_null_CheckableUnresolvedUserRow_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.designsystem.theme.components_Checkboxes_null_Toggles_Checkboxes_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_CircularProgressIndicator_null_ProgressIndicators_CircularProgressIndicator_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_ClickableLinkText_null_Text_ClickableLinkText_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme_ColorAliases_null_ColorAliases-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.theme_ColorAliases_null_ColorAliases-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.textcomposer.components_ComposerOptionsButton_null_ComposerOptionsButton-Day-9_10_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_ComposerOptionsButton_null_ComposerOptionsButton-Night-9_11_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[Typo_Compound_M3 Body Large,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Body Medium,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Body Small,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Headline Large,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Headline Medium,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Headline Small,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Label Large,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Label Medium,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Label Small,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Title Large,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Title Medium,NEXUS_5,1.0,en]","",0,], -["ui_S_t[Typo_Compound_M3 Title Small,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_0,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Night-3_5_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_1,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Night-3_5_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.developer.tracing_ConfigureTracingView_null_ConfigureTracingView-Day-5_6_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.developer.tracing_ConfigureTracingView_null_ConfigureTracingView-Night-5_7_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_null_ConfirmAccountProviderView-Day-5_6_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_null_ConfirmAccountProviderView-Night-5_7_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_ConfirmRecoveryKeyBanner_null_ConfirmRecoveryKeyBanner-Day-2_3_null,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_ConfirmRecoveryKeyBanner_null_ConfirmRecoveryKeyBanner-Night-2_4_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.dialogs_ConfirmationDialogContent_null_Dialogs_ConfirmationDialogContent_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.dialogs_ConfirmationDialog_null_ConfirmationDialog-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.dialogs_ConfirmationDialog_null_ConfirmationDialog-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.networkmonitor.api.ui_ConnectivityIndicatorView_null_ConnectivityIndicatorView-Day-0_1_null,NEXUS_5,1.0,en]","ui_S_t[f.networkmonitor.api.ui_ConnectivityIndicatorView_null_ConnectivityIndicatorView-Night-0_2_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.rageshake.api.crash_CrashDetectionView_null_CrashDetectionView-Day-0_1_null,NEXUS_5,1.0,en]","ui_S_t[f.rageshake.api.crash_CrashDetectionView_null_CrashDetectionView-Night-0_2_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.createkey_CreateNewRecoveryKeyView_null_CreateNewRecoveryKeyView-Day-0_1_null,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.createkey_CreateNewRecoveryKeyView_null_CreateNewRecoveryKeyView-Night-0_2_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_6,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_7,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_0,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_1,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_2,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_3,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.theme.components.previews_DatePickerDark_null_DateTimepickers_DatePickerDark_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.designsystem.theme.components.previews_DatePickerLight_null_DateTimepickers_DatePickerLight_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_2,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_3,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_4,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.preferences.impl.notifications.edit_DefaultNotificationSettingOption_null_DefaultNotificationSettingOption-Day-7_8_null,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications.edit_DefaultNotificationSettingOption_null_DefaultNotificationSettingOption-Night-7_9_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_null_DefaultRoomListTopBarWithIndicator-Day-5_6_null,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_null_DefaultRoomListTopBarWithIndicator-Night-5_7_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBar_null_DefaultRoomListTopBar-Day-4_5_null,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBar_null_DefaultRoomListTopBar-Night-4_6_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Night-4_6_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_1,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Night-4_6_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_2,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Night-4_6_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.atomic.molecules_DialogLikeBannerMolecule_null_DialogLikeBannerMolecule-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.molecules_DialogLikeBannerMolecule_null_DialogLikeBannerMolecule-Night_1_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.theme.components_DialogWithDestructiveButton_null_Dialogs_Dialogwithdestructivebutton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_DialogWithOnlyMessageAndOkButton_null_Dialogs_Dialogwithonlymessageandokbutton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_DialogWithThirdButton_null_Dialogs_Dialogwiththirdbutton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_DialogWithTitleAndOkButton_null_Dialogs_Dialogwithtitleandokbutton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_DialogWithTitleIconAndOkButton_null_Dialogs_Dialogwithtitle,iconandokbutton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.textcomposer.components_DismissTextFormattingButton_null_DismissTextFormattingButton-Day-10_11_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_DismissTextFormattingButton_null_DismissTextFormattingButton-Night-10_12_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.text_DpScale_0_75f__null_DpScale_0_75f__0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.text_DpScale_1_0f__null_DpScale_1_0f__0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.text_DpScale_1_5f__null_DpScale_1_5f__0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_DropdownMenuItem_null_Menus_DropdownMenuItem_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_1,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_2,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_3,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_4,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.user.editprofile_EditUserProfileView_null_EditUserProfileView-Day-10_11_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.user.editprofile_EditUserProfileView_null_EditUserProfileView-Night-10_12_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Day-2_3_null_0,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Night-2_4_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Day-2_3_null_1,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Night-2_4_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Day-2_3_null_2,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Night-2_4_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_null_ElementLogoAtomLargeNoBlurShadow-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_null_ElementLogoAtomLargeNoBlurShadow-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLarge_null_ElementLogoAtomLarge-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLarge_null_ElementLogoAtomLarge-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_null_ElementLogoAtomMediumNoBlurShadow-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_null_ElementLogoAtomMediumNoBlurShadow-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMedium_null_ElementLogoAtomMedium-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMedium_null_ElementLogoAtomMedium-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiItem_null_EmojiItem-Day-35_35_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiItem_null_EmojiItem-Night-35_36_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiPicker_null_EmojiPicker-Day-36_36_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiPicker_null_EmojiPicker-Night-36_37_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_null_EncryptedHistoryBannerView-Day-60_60_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_null_EncryptedHistoryBannerView-Night-60_61_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.dialogs_ErrorDialogContent_null_Dialogs_ErrorDialogContent_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.designsystem.components.dialogs_ErrorDialog_null_ErrorDialog-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.dialogs_ErrorDialog_null_ErrorDialog-Night_1_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline.debug_EventDebugInfoView_null_EventDebugInfoView-Day-65_65_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.debug_EventDebugInfoView_null_EventDebugInfoView-Night-65_66_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_FilledButtonLarge_null_Buttons_FilledButtonLarge_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_FilledButtonMedium_null_Buttons_FilledButtonMedium_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_FilledButtonSmall_null_Buttons_FilledButtonSmall_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_FloatingActionButton_null_FloatingActionButtons_FloatingActionButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.atomic.pages_FlowStepPage_null_FlowStepPage-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.pages_FlowStepPage_null_FlowStepPage-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.textcomposer.components_FormattingOption_null_FormattingOption-Day-11_12_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_FormattingOption_null_FormattingOption-Night-11_13_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.button_GradientFloatingActionButtonCircleShape_null_GradientFloatingActionButtonCircleShape-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.button_GradientFloatingActionButtonCircleShape_null_GradientFloatingActionButtonCircleShape-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.button_GradientFloatingActionButton_null_GradientFloatingActionButton-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.button_GradientFloatingActionButton_null_GradientFloatingActionButton-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.group_GroupHeaderView_null_GroupHeaderView-Day-56_56_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.group_GroupHeaderView_null_GroupHeaderView-Night-56_57_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.pages_HeaderFooterPage_null_HeaderFooterPage-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.pages_HeaderFooterPage_null_HeaderFooterPage-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_HorizontalDivider_null_Dividers_HorizontalDivider_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.ruler_HorizontalRuler_null_HorizontalRuler-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.ruler_HorizontalRuler_null_HorizontalRuler-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_IconButton_null_Buttons_IconButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_IconImageVector_null_Icons_IconImageVector_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_null_IconTitlePlaceholdersRowMolecule-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_null_IconTitlePlaceholdersRowMolecule-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_null_IconTitleSubtitleMoleculeWithResIcon-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_null_IconTitleSubtitleMoleculeWithResIcon-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMolecule_null_IconTitleSubtitleMolecule-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMolecule_null_IconTitleSubtitleMolecule-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_IconToggleButton_null_Toggles_IconToggleButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_0,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_1,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_2,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_3,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_4,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.icons_IconsOther_null_IconsOther-Day_0_null_0,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.icons_IconsOther_null_IconsOther-Night_1_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.call.impl.ui_IncomingCallScreen_null_IncomingCallScreen-Day-1_2_null,NEXUS_5,1.0,en]","ui_S_t[f.call.impl.ui_IncomingCallScreen_null_IncomingCallScreen-Night-1_3_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[l.designsystem.atomic.molecules_InfoListItemMolecule_null_InfoListItemMolecule-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.molecules_InfoListItemMolecule_null_InfoListItemMolecule-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.organisms_InfoListOrganism_null_InfoListOrganism-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.organisms_InfoListOrganism_null_InfoListOrganism-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_InviteSenderView_null_InviteSenderView-Day-3_4_null,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_InviteSenderView_null_InviteSenderView-Night-3_5_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_6,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_7,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_8,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_9,NEXUS_5,1.0,en]","ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components_LabelledCheckbox_null_Toggles_LabelledCheckbox_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_LabelledOutlinedTextField_null_LabelledOutlinedTextField-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_LabelledOutlinedTextField_null_LabelledOutlinedTextField-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_LabelledTextField_null_LabelledTextField-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_LabelledTextField_null_LabelledTextField-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_6,NEXUS_5,1.0,en]","ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.background_LightGradientBackground_null_LightGradientBackground-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.background_LightGradientBackground_null_LightGradientBackground-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_LinearProgressIndicator_null_ProgressIndicators_LinearProgressIndicator_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.dialogs_ListDialogContent_null_Dialogs_ListDialogContent_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.dialogs_ListDialog_null_ListDialog-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.dialogs_ListDialog_null_ListDialog-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_ListItemDisabledWithIcon_null_Listitems_Listitem-Disabled&Icon_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemDisabled_null_Listitems_Listitem-Disabled_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemErrorWithIcon_null_Listitems_Listitem-Error&Icon_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemError_null_Listitems_Listitem-Error_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemPrimaryActionWithIcon_null_Listitems_Listitem-Primaryaction&Icon_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineBothIcons_null_Listitems_Listitem(1line)-BothIcons_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingCheckbox_null_Listitems_Listitem(1line)-LeadingCheckbox_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingIcon_null_Listitems_Listitem(1line)-LeadingIcon_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingRadioButton_null_Listitems_Listitem(1line)-LeadingRadioButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingSwitch_null_Listitems_Listitem(1line)-LeadingSwitch_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineSimple_null_Listitems_Listitem(1line)-Simple_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingCheckBox_null_Listitems_Listitem(1line)-TrailingCheckbox_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingIcon_null_Listitems_Listitem(1line)-TrailingIcon_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingRadioButton_null_Listitems_Listitem(1line)-TrailingRadioButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingSwitch_null_Listitems_Listitem(1line)-TrailingSwitch_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesBothIcons_null_Listitems_Listitem(3lines)-BothIcons_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingCheckbox_null_Listitems_Listitem(3lines)-LeadingCheckbox_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingIcon_null_Listitems_Listitem(3lines)-LeadingIcon_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingRadioButton_null_Listitems_Listitem(3lines)-LeadingRadioButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingSwitch_null_Listitems_Listitem(3lines)-LeadingSwitch_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesSimple_null_Listitems_Listitem(3lines)-Simple_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingCheckBox_null_Listitems_Listitem(3lines)-TrailingCheckbox_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingIcon_null_Listitems_Listitem(3lines)-TrailingIcon_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingRadioButton_null_Listitems_Listitem(3lines)-TrailingRadioButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingSwitch_null_Listitems_Listitem(3lines)-TrailingSwitch_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesBothIcons_null_Listitems_Listitem(2lines)-BothIcons_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingCheckbox_null_Listitems_Listitem(2lines)-LeadingCheckbox_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingIcon_null_Listitems_Listitem(2lines)-LeadingIcon_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingRadioButton_null_Listitems_Listitem(2lines)-LeadingRadioButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingSwitch_null_Listitems_Listitem(2lines)-LeadingSwitch_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesSimple_null_Listitems_Listitem(2lines)-Simple_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingCheckBox_null_Listitems_Listitem(2lines)-TrailingCheckbox_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingIcon_null_Listitems_Listitem(2lines)-TrailingIcon_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingRadioButton_null_Listitems_Listitem(2lines)-TrailingRadioButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingSwitch_null_Listitems_Listitem(2lines)-TrailingSwitch_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListSectionHeaderWithDescriptionAndDivider_null_Listsections_Listsectionheaderwithdescriptionanddivider_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListSectionHeaderWithDescription_null_Listsections_Listsectionheaderwithdescription_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListSectionHeaderWithDivider_null_Listsections_Listsectionheaderwithdivider_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListSectionHeader_null_Listsections_Listsectionheader_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListSupportingTextCustomPadding_null_Listsections_Listsupportingtext-custompadding_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListSupportingTextDefaultPadding_null_Listsections_Listsupportingtext-defaultpadding_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListSupportingTextLargePadding_null_Listsections_Listsupportingtext-largepadding_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListSupportingTextNoPadding_null_Listsections_Listsupportingtext-nopadding_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ListSupportingTextSmallPadding_null_Listsections_Listsupportingtext-smallpadding_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.textcomposer.components_LiveWaveformView_null_LiveWaveformView-Day-12_13_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_LiveWaveformView_null_LiveWaveformView-Night-12_14_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Day-2_2_null_0,NEXUS_5,1.0,en]","ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Night-2_3_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Day-2_2_null_1,NEXUS_5,1.0,en]","ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Night-2_3_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Night-1_3_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Night-1_3_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_2,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Night-1_3_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_0,NEXUS_5,1.0,en]","ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Night-0_1_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_1,NEXUS_5,1.0,en]","ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Night-0_1_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Night-6_8_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_1,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Night-6_8_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_2,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Night-6_8_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_6,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_7,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_8,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_9,NEXUS_5,1.0,en]","ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.button_MainActionButton_null_Buttons_MainActionButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.textcomposer_MarkdownTextComposerEdit_null_MarkdownTextComposerEdit-Day-3_4_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer_MarkdownTextComposerEdit_null_MarkdownTextComposerEdit-Night-3_5_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.textcomposer.components.markdown_MarkdownTextInput_null_MarkdownTextInput-Day-19_20_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components.markdown_MarkdownTextInput_null_MarkdownTextInput-Night-19_21_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_MatrixUserHeaderPlaceholder_null_MatrixUserHeaderPlaceholder-Day-5_6_null,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_MatrixUserHeaderPlaceholder_null_MatrixUserHeaderPlaceholder-Night-5_7_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Day-4_5_null_0,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Night-4_6_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Day-4_5_null_1,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Night-4_6_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Day-6_7_null_0,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Night-6_8_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Day-6_7_null_1,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Night-6_8_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_0,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_1,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_10,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_2,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_3,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_4,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_5,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_6,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_7,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_8,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_9,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_MediumTopAppBar_null_AppBars_MediumTopAppBar_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.textcomposer.mentions_MentionSpan_null_MentionSpan-Day-20_21_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.mentions_MentionSpan_null_MentionSpan-Night-20_22_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.mentions_MentionSuggestionsPickerView_null_MentionSuggestionsPickerView-Day-3_3_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.mentions_MentionSuggestionsPickerView_null_MentionSuggestionsPickerView-Night-3_4_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.theme.components.previews_Menu_null_Menus_Menu_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.messages.impl.messagecomposer_MessageComposerViewVoice_null_MessageComposerViewVoice-Day-6_6_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.messagecomposer_MessageComposerViewVoice_null_MessageComposerViewVoice-Night-6_7_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.messagecomposer_MessageComposerView_null_MessageComposerView-Day-5_5_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.messagecomposer_MessageComposerView_null_MessageComposerView-Night-5_6_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_10,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_10,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_11,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_11,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_12,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_12,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_13,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_13,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_14,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_14,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_15,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_15,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_6,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_6,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_7,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_7,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_8,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_8,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_9,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_9,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessageStateEventContainer_null_MessageStateEventContainer-Day-11_11_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessageStateEventContainer_null_MessageStateEventContainer-Night-11_12_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonAdd_null_MessagesReactionButtonAdd-Day-13_13_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonAdd_null_MessagesReactionButtonAdd-Night-13_14_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonExtra_null_MessagesReactionButtonExtra-Day-14_14_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonExtra_null_MessagesReactionButtonExtra-Night-14_15_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_10,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_10,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_11,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_11,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_12,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_12,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_6,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_7,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_8,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_9,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.migration_MigrationScreenView_null_MigrationScreenView-Day-9_10_null,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.migration_MigrationScreenView_null_MigrationScreenView-Night-9_11_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.theme.components_ModalBottomSheetDark_null_BottomSheets_ModalBottomSheetDark_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_ModalBottomSheetLight_null_BottomSheets_ModalBottomSheetLight_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.dialogs_MultipleSelectionDialogContent_null_Dialogs_MultipleSelectionDialogContent_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.dialogs_MultipleSelectionDialog_null_MultipleSelectionDialog-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.dialogs_MultipleSelectionDialog_null_MultipleSelectionDialog-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.list_MutipleSelectionListItemSelectedTrailingContent_null_Listitems_MultipleselectionListitem-selectionintrailingcontent_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.list_MutipleSelectionListItemSelected_null_Listitems_MultipleselectionListitem-selectioninsupportingtext_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.list_MutipleSelectionListItem_null_Listitems_MultipleselectionListitem-noselection_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_1,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_10,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_10,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_2,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_3,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_4,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_5,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_6,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_7,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_8,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_9,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.ftue.impl.notifications_NotificationsOptInView_null_NotificationsOptInView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.ftue.impl.notifications_NotificationsOptInView_null_NotificationsOptInView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Day-3_4_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Night-3_5_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Day-3_4_null_1,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Night-3_5_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.pages_OnBoardingPage_null_OnBoardingPage-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.pages_OnBoardingPage_null_OnBoardingPage-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.background_OnboardingBackground_null_OnboardingBackground-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.background_OnboardingBackground_null_OnboardingBackground-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_OutlinedButtonLarge_null_Buttons_OutlinedButtonLarge_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_OutlinedButtonMedium_null_Buttons_OutlinedButtonMedium_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_OutlinedButtonSmall_null_Buttons_OutlinedButtonSmall_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_OutlinedTextFieldsDark_null_TextFields_OutlinedTextFieldsDark_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_OutlinedTextFields_null_TextFields_OutlinedTextFields_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_0,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_1,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_2,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_3,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_4,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_PageTitleWithIconMinimal_null_PageTitleWithIconMinimal-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_PageTitleWithIconMinimal_null_PageTitleWithIconMinimal-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_null_PendingMemberRowWithLongName-Day-13_13_null,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_null_PendingMemberRowWithLongName-Night-13_14_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.components_PinEntryTextField_null_PinEntryTextField-Day-0_1_null,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.components_PinEntryTextField_null_PinEntryTextField-Night-0_2_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_PinIcon_null_PinIcon-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_PinIcon_null_PinIcon-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.lockscreen.impl.unlock.keypad_PinKeypad_null_PinKeypad-Day-6_7_null,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock.keypad_PinKeypad_null_PinKeypad-Night-6_8_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_0,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_1,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_2,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_3,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_4,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_5,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_6,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_0,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_1,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_2,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_3,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_4,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_5,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_6,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.atomic.atoms_PlaceholderAtom_null_PlaceholderAtom-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.atoms_PlaceholderAtom_null_PlaceholderAtom-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_null_PollAnswerViewDisclosedNotSelected-Day-0_1_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_null_PollAnswerViewDisclosedNotSelected-Night-0_2_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedSelected_null_PollAnswerViewDisclosedSelected-Day-1_2_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedSelected_null_PollAnswerViewDisclosedSelected-Night-1_3_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedSelected_null_PollAnswerViewEndedSelected-Day-6_7_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedSelected_null_PollAnswerViewEndedSelected-Night-6_8_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_null_PollAnswerViewEndedWinnerNotSelected-Day-4_5_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_null_PollAnswerViewEndedWinnerNotSelected-Night-4_6_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_null_PollAnswerViewEndedWinnerSelected-Day-5_6_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_null_PollAnswerViewEndedWinnerSelected-Night-5_7_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_null_PollAnswerViewUndisclosedNotSelected-Day-2_3_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_null_PollAnswerViewUndisclosedNotSelected-Night-2_4_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_null_PollAnswerViewUndisclosedSelected-Day-3_4_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_null_PollAnswerViewUndisclosedSelected-Night-3_5_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEditable_null_PollContentViewCreatorEditable-Day-10_11_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEditable_null_PollContentViewCreatorEditable-Night-10_12_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEnded_null_PollContentViewCreatorEnded-Day-12_13_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEnded_null_PollContentViewCreatorEnded-Night-12_14_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollContentViewCreator_null_PollContentViewCreator-Day-11_12_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollContentViewCreator_null_PollContentViewCreator-Night-11_13_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollContentViewDisclosed_null_PollContentViewDisclosed-Day-8_9_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollContentViewDisclosed_null_PollContentViewDisclosed-Night-8_10_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollContentViewEnded_null_PollContentViewEnded-Day-9_10_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollContentViewEnded_null_PollContentViewEnded-Night-9_11_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.api.pollcontent_PollContentViewUndisclosed_null_PollContentViewUndisclosed-Day-7_8_null,NEXUS_5,1.0,en]","ui_S_t[f.poll.api.pollcontent_PollContentViewUndisclosed_null_PollContentViewUndisclosed-Night-7_9_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_2,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_3,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_4,NEXUS_5,1.0,en]","ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.preferences_PreferenceCategory_null_Preferences_PreferenceCategory_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences_PreferenceCheckbox_null_Preferences_PreferenceCheckbox_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences_PreferenceDivider_null_Preferences_PreferenceDivider_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences.components_PreferenceIconWithBadge_null_Preferences_PreferenceIconWithBadge_0_null_0,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences.components_PreferenceIconWithBadge_null_Preferences_PreferenceIconWithBadge_0_null_1,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences.components_PreferenceIcon_null_Preferences_PreferenceIcon_0_null_0,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences.components_PreferenceIcon_null_Preferences_PreferenceIcon_0_null_1,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences_PreferencePage_null_PreferencePage-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.preferences_PreferencePage_null_PreferencePage-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.preferences_PreferenceRow_null_Preferences_PreferenceRow_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences_PreferenceSlide_null_Preferences_PreferenceSlide_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences_PreferenceSwitch_null_Preferences_PreferenceSwitch_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences_PreferenceTextDark_null_Preferences_PreferenceTextDark_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences_PreferenceTextLight_null_Preferences_PreferenceTextLight_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences_PreferenceTextWithEndBadgeDark_null_Preferences_PreferenceTextWithEndBadgeDark_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.preferences_PreferenceTextWithEndBadgeLight_null_Preferences_PreferenceTextWithEndBadgeLight_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_0,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_1,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_0,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_1,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.messages.impl.timeline.components.event_ProgressButton_null_ProgressButton-Day-55_55_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_ProgressButton_null_ProgressButton-Night-55_56_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components_ProgressDialogContent_null_Dialogs_ProgressDialogContent_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.designsystem.components_ProgressDialog_null_ProgressDialog-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components_ProgressDialog_null_ProgressDialog-Night_1_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Night-7_9_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_1,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Night-7_9_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_2,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Night-7_9_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_1,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_2,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_3,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_4,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_5,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_6,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Night-9_11_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_1,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Night-9_11_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_1,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_2,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_3,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.theme.components_RadioButton_null_Toggles_RadioButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.rageshake.api.detection_RageshakeDialogContent_null_RageshakeDialogContent-Day-1_2_null,NEXUS_5,1.0,en]","ui_S_t[f.rageshake.api.detection_RageshakeDialogContent_null_RageshakeDialogContent-Night-1_3_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Day-2_3_null_0,NEXUS_5,1.0,en]","ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Night-2_4_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Day-2_3_null_1,NEXUS_5,1.0,en]","ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Night-2_4_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_0,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_1,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_2,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_3,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_4,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_5,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_0,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_1,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_10,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_10,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_11,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_11,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_2,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_3,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_4,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_5,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_6,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_7,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_8,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_9,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.atomic.atoms_RedIndicatorAtom_null_RedIndicatorAtom-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.atoms_RedIndicatorAtom_null_RedIndicatorAtom-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_ReplySwipeIndicator_null_ReplySwipeIndicator-Day-15_15_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_ReplySwipeIndicator_null_ReplySwipeIndicator-Night-15_16_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.dialogs_RetryDialogContent_null_Dialogs_RetryDialogContent_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.designsystem.components.dialogs_RetryDialog_null_RetryDialog-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.dialogs_RetryDialog_null_RetryDialog-Night_1_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_7,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Night-0_2_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.components_RoomBadgeNegative_null_RoomBadgeNegative-Day-2_2_null,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.components_RoomBadgeNegative_null_RoomBadgeNegative-Night-2_3_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomdetails.impl.components_RoomBadgeNeutral_null_RoomBadgeNeutral-Day-1_1_null,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.components_RoomBadgeNeutral_null_RoomBadgeNeutral-Night-1_2_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomdetails.impl.components_RoomBadgePositive_null_RoomBadgePositive-Day-0_0_null,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.components_RoomBadgePositive_null_RoomBadgePositive-Night-0_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_0,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_1,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_10,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_11,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_2,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_3,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_4,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_5,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_6,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_7,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_8,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_9,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_7,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_0,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_1,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_10,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_11,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_2,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_3,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_4,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_5,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_6,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_7,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_8,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_9,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_7,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-3_5_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-3_5_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-3_5_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-3_5_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-3_4_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-3_5_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-8_9_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Night-8_10_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-8_9_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Night-8_10_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-10_11_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Night-10_12_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-10_11_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Night-10_12_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-10_11_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Night-10_12_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_10,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_10,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_7,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_8,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_8,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_9,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Night-6_7_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Night-6_7_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Night-6_7_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_7,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_7,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_8,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_9,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_9,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_null_RoomNotificationSettingsOption-Day-8_8_null,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_null_RoomNotificationSettingsOption-Night-8_9_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.atomic.molecules_RoomPreviewMembersCountMolecule_null_RoomPreviewMembersCountMolecule-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.molecules_RoomPreviewMembersCountMolecule_null_RoomPreviewMembersCountMolecule-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.createroom.impl.components_RoomPrivacyOption_null_RoomPrivacyOption-Day-1_2_null,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_RoomPrivacyOption_null_RoomPrivacyOption-Night-1_3_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_5,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryPlaceholderRow_null_RoomSummaryPlaceholderRow-Day-6_7_null,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryPlaceholderRow_null_RoomSummaryPlaceholderRow-Night-6_8_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_1,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_10,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_10,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_11,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_11,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_12,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_12,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_13,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_13,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_14,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_14,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_15,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_15,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_16,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_16,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_17,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_17,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_18,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_18,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_19,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_19,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_2,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_20,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_20,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_21,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_21,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_22,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_22,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_23,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_23,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_24,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_24,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_25,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_25,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_26,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_26,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_27,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_27,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_28,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_28,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_29,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_29,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_3,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_30,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_30,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_31,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_31,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_4,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_5,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_6,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_6,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_7,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_7,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_8,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_8,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-7_8_null_9,NEXUS_5,1.0,en]","ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-7_9_null_9,NEXUS_5,1.0,en]",0,], -["ui_S_t[appnav.root_RootView_null_RootView-Day-3_3_null_0,NEXUS_5,1.0,en]","ui_S_t[appnav.root_RootView_null_RootView-Night-3_4_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[appnav.root_RootView_null_RootView-Day-3_3_null_1,NEXUS_5,1.0,en]","ui_S_t[appnav.root_RootView_null_RootView-Night-3_4_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[appnav.root_RootView_null_RootView-Day-3_3_null_2,NEXUS_5,1.0,en]","ui_S_t[appnav.root_RootView_null_RootView-Night-3_4_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.atomic.atoms_RoundedIconAtom_null_RoundedIconAtom-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.atoms_RoundedIconAtom_null_RoundedIconAtom-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.verifysession.impl.emoji_SasEmojis_null_SasEmojis-Day-1_2_null,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl.emoji_SasEmojis_null_SasEmojis-Night-1_3_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Night-11_13_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_1,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Night-11_13_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.theme.components_SearchBarActiveNoneQuery_null_Searchviews_SearchBarActiveNoneQuery_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_SearchBarActiveWithContent_null_Searchviews_SearchBarActiveWithContent_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_SearchBarActiveWithNoResults_null_Searchviews_SearchBarActiveWithNoResults_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.designsystem.theme.components_SearchBarActiveWithQueryNoBackButton_null_Searchviews_SearchBarActiveWithQueryNoBackButton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_SearchBarActiveWithQuery_null_Searchviews_SearchBarActiveWithQuery_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_SearchBarInactive_null_Searchviews_SearchBarInactive_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.createroom.impl.components_SearchMultipleUsersResultItem_null_SearchMultipleUsersResultItem_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.createroom.impl.components_SearchSingleUserResultItem_null_SearchSingleUserResultItem_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_2,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_3,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_0,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Night-2_4_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_1,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Night-2_4_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_2,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Night-2_4_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_0,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_1,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_2,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_3,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_0,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_1,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_2,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_3,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_4,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_5,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_6,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_7,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_8,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_0,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_1,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_2,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_3,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_4,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_0,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_1,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_2,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_3,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_4,NEXUS_5,1.0,en]","ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Day-7_8_null_0,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Night-7_9_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Day-7_8_null_1,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Night-7_9_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_SelectedUserCannotRemove_null_SelectedUserCannotRemove-Day-9_10_null,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_SelectedUserCannotRemove_null_SelectedUserCannotRemove-Night-9_11_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_SelectedUser_null_SelectedUser-Day-8_9_null,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_SelectedUser_null_SelectedUser-Night-8_10_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_SelectedUsersRowList_null_SelectedUsersRowList-Day-10_11_null,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_SelectedUsersRowList_null_SelectedUsersRowList-Night-10_12_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.textcomposer.components_SendButton_null_SendButton-Day-13_14_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_SendButton_null_SendButton-Night-13_15_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_6,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_6,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_7,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_7,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_8,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_8,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.lockscreen.impl.setup.biometric_SetupBiometricView_null_SetupBiometricView-Day-2_3_null_0,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.setup.biometric_SetupBiometricView_null_SetupBiometricView-Night-2_4_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_0,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_1,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_2,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_3,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_4,NEXUS_5,1.0,en]","ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_3,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_10,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_10,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_6,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_7,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_8,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_9,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline.components.reactionsummary_SheetContent_null_SheetContent-Day-57_57_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.reactionsummary_SheetContent_null_SheetContent-Night-57_58_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_2,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_3,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_4,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_5,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_6,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_7,NEXUS_5,1.0,en]","ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.signedout.impl_SignedOutView_null_SignedOutView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.signedout.impl_SignedOutView_null_SignedOutView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.dialogs_SingleSelectionDialogContent_null_Dialogs_SingleSelectionDialogContent_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.dialogs_SingleSelectionDialog_null_SingleSelectionDialog-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.dialogs_SingleSelectionDialog_null_SingleSelectionDialog-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.list_SingleSelectionListItemCustomFormattert_null_Listitems_SingleselectionListitem-customformatter_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.list_SingleSelectionListItemSelectedInSupportingText_null_Listitems_SingleselectionListitem-selectioninsupportingtext_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.list_SingleSelectionListItemSelectedInTrailingContent_null_Listitems_SingleselectionListitem-selectionintrailingcontent_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.list_SingleSelectionListItemUnselectedWithSupportingText_null_Listitems_SingleselectionListitem-noselection,supportingtext_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.list_SingleSelectionListItem_null_Listitems_SingleselectionListitem-noselection_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_Sliders_null_Sliders_Sliders_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.login.impl.dialogs_SlidingSyncNotSupportedDialog_null_SlidingSyncNotSupportedDialog-Day-2_3_null,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.dialogs_SlidingSyncNotSupportedDialog_null_SlidingSyncNotSupportedDialog-Night-2_4_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.theme.components_SnackbarWithActionAndCloseButton_null_Snackbars_Snackbarwithactionandclosebutton_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_SnackbarWithActionOnNewLineAndCloseButton_null_Snackbars_Snackbarwithactionandclosebuttononnewline_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_SnackbarWithActionOnNewLine_null_Snackbars_Snackbarwithactiononnewline_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_SnackbarWithAction_null_Snackbars_Snackbarwithaction_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_Snackbar_null_Snackbars_Snackbar_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.modifiers_SquareSizeModifierInsideSquare_null_SquareSizeModifierInsideSquare_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.modifiers_SquareSizeModifierLargeHeight_null_SquareSizeModifierLargeHeight_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.modifiers_SquareSizeModifierLargeWidth_null_SquareSizeModifierLargeWidth_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Night-1_3_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Day-1_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Night-1_3_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.location.api_StaticMapView_null_StaticMapView-Day-0_1_null,NEXUS_5,1.0,en]","ui_S_t[f.location.api_StaticMapView_null_StaticMapView-Night-0_2_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.pages_SunsetPage_null_SunsetPage-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.pages_SunsetPage_null_SunsetPage-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.button_SuperButton_null_SuperButton-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.button_SuperButton_null_SuperButton-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_Surface_null_Surface_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_Switch_null_Toggles_Switch_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[appnav.loggedin_SyncStateView_null_SyncStateView-Day-1_1_null,NEXUS_5,1.0,en]","ui_S_t[appnav.loggedin_SyncStateView_null_SyncStateView-Night-1_2_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.theme.components_TextButtonLarge_null_Buttons_TextButtonLarge_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_TextButtonMedium_null_Buttons_TextButtonMedium_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_TextButtonSmall_null_Buttons_TextButtonSmall_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.textcomposer_TextComposerEdit_null_TextComposerEdit-Day-2_3_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer_TextComposerEdit_null_TextComposerEdit-Night-2_4_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.textcomposer_TextComposerFormatting_null_TextComposerFormatting-Day-1_2_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer_TextComposerFormatting_null_TextComposerFormatting-Night-1_3_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_null_TextComposerLinkDialogCreateLinkWithoutText-Day-7_8_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_null_TextComposerLinkDialogCreateLinkWithoutText-Night-7_9_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLink_null_TextComposerLinkDialogCreateLink-Day-6_7_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLink_null_TextComposerLinkDialogCreateLink-Night-6_8_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.textcomposer_TextComposerLinkDialogEditLink_null_TextComposerLinkDialogEditLink-Day-8_9_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer_TextComposerLinkDialogEditLink_null_TextComposerLinkDialogEditLink-Night-8_10_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Day-4_5_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Night-4_6_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.textcomposer_TextComposerSimple_null_TextComposerSimple-Day-0_1_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer_TextComposerSimple_null_TextComposerSimple-Night-0_2_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.textcomposer_TextComposerVoice_null_TextComposerVoice-Day-5_6_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer_TextComposerVoice_null_TextComposerVoice-Night-5_7_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_TextDark_null_Text_TextDark_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_TextFieldDark_null_TextFields_TextFieldDark_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_TextFieldLight_null_TextFields_TextFieldLight_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.list_TextFieldListItemEmpty_null_Listitems_TextfieldListitem-empty_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.list_TextFieldListItemTextFieldValue_null_Listitems_TextfieldListitem-textfieldvalue_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.components.list_TextFieldListItem_null_Listitems_TextfieldListitem-text_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_TextFieldValueLight_null_TextFields_TextFieldValueLight_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components_TextFieldValueTextFieldDark_null_TextFields_TextFieldValueTextFieldDark_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.textcomposer.components_TextFormatting_null_TextFormatting-Day-14_15_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_TextFormatting_null_TextFormatting-Night-14_16_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_TextLight_null_Text_TextLight_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.designsystem.theme.components.previews_TimePickerHorizontal_null_DateTimepickers_TimePickerHorizontal_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.designsystem.theme.components.previews_TimePickerVerticalDark_null_DateTimepickers_TimePickerVerticalDark_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.designsystem.theme.components.previews_TimePickerVerticalLight_null_DateTimepickers_TimePickerVerticalLight_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_null_TimelineImageWithCaptionRow-Day-41_41_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_null_TimelineImageWithCaptionRow-Night-41_42_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Day-37_37_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Night-37_38_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Day-37_37_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Night-37_38_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Day-37_37_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Night-37_38_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemCallNotifyView_null_TimelineItemCallNotifyView-Day-17_17_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemCallNotifyView_null_TimelineItemCallNotifyView-Night-17_18_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Day-61_61_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Night-61_62_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Day-61_61_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Night-61_62_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Night-38_39_null_0,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Night-38_39_null_1,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Night-38_39_null_2,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_null_TimelineItemEventRowDisambiguated-Day-19_19_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_null_TimelineItemEventRowDisambiguated-Night-19_20_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_null_TimelineItemEventRowForDirectRoom-Day-20_20_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_null_TimelineItemEventRowForDirectRoom-Night-20_21_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowLongSenderName_null_TimelineItemEventRowLongSenderName_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_2,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_3,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Day-22_22_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Night-22_23_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Night-24_25_null_0,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Night-24_25_null_1,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Day-25_25_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Night-25_26_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Day-25_25_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Night-25_26_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_10,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_10,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_11,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_11,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_4,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_6,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_6,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_7,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_7,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_8,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_8,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_9,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_9,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRow_null_TimelineItemEventRow-Day-18_18_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRow_null_TimelineItemEventRow-Night-18_19_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemEventTimestampBelow_null_TimelineItemEventTimestampBelow_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Day-39_39_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Night-39_40_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Day-39_39_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Night-39_40_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Day-39_39_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Night-39_40_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_null_TimelineItemGroupedEventsRowContentCollapse-Day-28_28_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_null_TimelineItemGroupedEventsRowContentCollapse-Night-28_29_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_null_TimelineItemGroupedEventsRowContentExpanded-Day-27_27_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_null_TimelineItemGroupedEventsRowContentExpanded-Night-27_28_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Day-40_40_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Night-40_41_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Day-40_40_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Night-40_41_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Day-40_40_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Night-40_41_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemInformativeView_null_TimelineItemInformativeView-Day-42_42_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemInformativeView_null_TimelineItemInformativeView-Night-42_43_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_null_TimelineItemLegacyCallInviteView-Day-43_43_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_null_TimelineItemLegacyCallInviteView-Night-43_44_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Day-44_44_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Night-44_45_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Day-44_44_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Night-44_45_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_0,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_1,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_2,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_3,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsLayout_null_TimelineItemReactionsLayout-Day-29_29_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsLayout_null_TimelineItemReactionsLayout-Night-29_30_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewFew_null_TimelineItemReactionsViewFew-Day-31_31_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewFew_null_TimelineItemReactionsViewFew-Night-31_32_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_null_TimelineItemReactionsViewIncoming-Day-32_32_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_null_TimelineItemReactionsViewIncoming-Night-32_33_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_null_TimelineItemReactionsViewOutgoing-Day-33_33_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_null_TimelineItemReactionsViewOutgoing-Night-33_34_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsView_null_TimelineItemReactionsView-Day-30_30_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsView_null_TimelineItemReactionsView-Night-30_31_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_null_TimelineItemReadMarkerView-Day-62_62_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_null_TimelineItemReadMarkerView-Night-62_63_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_6,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_6,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_7,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_7,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemRedactedView_null_TimelineItemRedactedView-Day-46_46_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemRedactedView_null_TimelineItemRedactedView-Night-46_47_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_null_TimelineItemRoomBeginningView-Day-63_63_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_null_TimelineItemRoomBeginningView-Night-63_64_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline.components_TimelineItemStateEventRow_null_TimelineItemStateEventRow-Day-34_34_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components_TimelineItemStateEventRow_null_TimelineItemStateEventRow-Night-34_35_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStateView_null_TimelineItemStateView-Day-47_47_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStateView_null_TimelineItemStateView-Night-47_48_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Day-48_48_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Night-48_49_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Day-48_48_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Night-48_49_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Day-48_48_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Night-48_49_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemUnknownView_null_TimelineItemUnknownView-Day-50_50_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemUnknownView_null_TimelineItemUnknownView-Night-50_51_null,NEXUS_5,1.0,en]",19891,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Day-51_51_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Night-51_52_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Day-51_51_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Night-51_52_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Day-51_51_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Night-51_52_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_null_TimelineItemVoiceViewUnified-Day-54_54_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_null_TimelineItemVoiceViewUnified-Night-54_55_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_10,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_10,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_11,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_11,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_12,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_12,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_13,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_13,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_14,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_14,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_6,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_6,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_7,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_7,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_8,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_8,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_9,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_9,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_null_TimelineLoadingMoreIndicator-Day-64_64_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_null_TimelineLoadingMoreIndicator-Night-64_65_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_null_TimelineVideoWithCaptionRow-Day-52_52_null,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_null_TimelineVideoWithCaptionRow-Night-52_53_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_10,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_10,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_11,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_11,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_12,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_12,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_13,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_13,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_14,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_14,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_15,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_15,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_16,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_16,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_6,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_6,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_7,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_7,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_8,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_8,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_9,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_9,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.theme.components_TopAppBar_null_AppBars_TopAppBar_0_null,NEXUS_5,1.0,en]","",0,], -["ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_6,NEXUS_5,1.0,en]","ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_7,NEXUS_5,1.0,en]","ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_0,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_1,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_2,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_3,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_4,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_5,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_6,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_7,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_7,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_8,NEXUS_5,1.0,en]","ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_8,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.atomic.atoms_UnreadIndicatorAtom_null_UnreadIndicatorAtom-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.atomic.atoms_UnreadIndicatorAtom_null_UnreadIndicatorAtom-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.matrix.ui.components_UnresolvedUserRow_null_UnresolvedUserRow_0_null,NEXUS_5,1.0,en]","",19888,], -["ui_S_t[l.matrix.ui.components_UnsavedAvatar_null_UnsavedAvatar-Day-11_12_null,NEXUS_5,1.0,en]","ui_S_t[l.matrix.ui.components_UnsavedAvatar_null_UnsavedAvatar-Night-11_13_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.designsystem.components.avatar_UserAvatarColors_null_UserAvatarColors-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.avatar_UserAvatarColors_null_UserAvatarColors-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_null_UserDefinedRoomNotificationSettingsView-Day-10_10_null_0,NEXUS_5,1.0,en]","ui_S_t[f.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_null_UserDefinedRoomNotificationSettingsView-Night-10_11_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_0,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_1,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_2,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_3,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_4,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_5,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_6,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_6,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_7,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_8,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_8,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_9,NEXUS_5,1.0,en]","ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Day-9_10_null_0,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Night-9_11_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Day-9_10_null_1,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Night-9_11_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Day-9_10_null_2,NEXUS_5,1.0,en]","ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Night-9_11_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_6,NEXUS_5,1.0,en]","ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_7,NEXUS_5,1.0,en]","ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_8,NEXUS_5,1.0,en]","ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_5,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_6,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_6,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_7,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_7,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_8,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_8,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_9,NEXUS_5,1.0,en]","ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_9,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.ruler_VerticalRuler_null_VerticalRuler-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.ruler_VerticalRuler_null_VerticalRuler-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_0,NEXUS_5,1.0,en]","ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_1,NEXUS_5,1.0,en]","ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_2,NEXUS_5,1.0,en]","ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_2,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_3,NEXUS_5,1.0,en]","ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_3,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_4,NEXUS_5,1.0,en]","ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_4,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_5,NEXUS_5,1.0,en]","ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_5,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Day-1_2_null_0,NEXUS_5,1.0,en]","ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Night-1_3_null_0,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Day-1_2_null_1,NEXUS_5,1.0,en]","ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Night-1_3_null_1,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.textcomposer.components_VoiceMessageDeleteButton_null_VoiceMessageDeleteButton-Day-15_16_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_VoiceMessageDeleteButton_null_VoiceMessageDeleteButton-Night-15_17_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.textcomposer.components_VoiceMessagePreview_null_VoiceMessagePreview-Day-16_17_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_VoiceMessagePreview_null_VoiceMessagePreview-Night-16_18_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.textcomposer.components_VoiceMessageRecorderButton_null_VoiceMessageRecorderButton-Day-17_18_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_VoiceMessageRecorderButton_null_VoiceMessageRecorderButton-Night-17_19_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[l.textcomposer.components_VoiceMessageRecording_null_VoiceMessageRecording-Day-18_19_null,NEXUS_5,1.0,en]","ui_S_t[l.textcomposer.components_VoiceMessageRecording_null_VoiceMessageRecording-Night-18_20_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_0,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_0,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_1,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_1,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_2,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_2,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_3,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_3,NEXUS_5,1.0,en]",19888,], -["ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_4,NEXUS_5,1.0,en]","ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_4,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.components.media_WaveformPlaybackView_null_WaveformPlaybackView-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.components.media_WaveformPlaybackView_null_WaveformPlaybackView-Night_1_null,NEXUS_5,1.0,en]",0,], -["ui_S_t[f.ftue.impl.welcome_WelcomeView_null_WelcomeView-Day-1_2_null,NEXUS_5,1.0,en]","ui_S_t[f.ftue.impl.welcome_WelcomeView_null_WelcomeView-Night-1_3_null,NEXUS_5,1.0,en]",19888,], -["ui_S_t[l.designsystem.ruler_WithRulers_null_WithRulers-Day_0_null,NEXUS_5,1.0,en]","ui_S_t[l.designsystem.ruler_WithRulers_null_WithRulers-Night_1_null,NEXUS_5,1.0,en]",0,], +["features.preferences.impl.about_AboutView_Day_0_en","features.preferences.impl.about_AboutView_Night_0_en",19907,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_0_en","features.invite.impl.response_AcceptDeclineInviteView_Night_0_en",0,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_1_en","features.invite.impl.response_AcceptDeclineInviteView_Night_1_en",19907,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_2_en","features.invite.impl.response_AcceptDeclineInviteView_Night_2_en",19907,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_3_en","features.invite.impl.response_AcceptDeclineInviteView_Night_3_en",19907,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_4_en","features.invite.impl.response_AcceptDeclineInviteView_Night_4_en",19907,], +["features.login.impl.accountprovider_AccountProviderView_Day_0_en","features.login.impl.accountprovider_AccountProviderView_Night_0_en",0,], +["features.login.impl.accountprovider_AccountProviderView_Day_1_en","features.login.impl.accountprovider_AccountProviderView_Night_1_en",0,], +["features.login.impl.accountprovider_AccountProviderView_Day_2_en","features.login.impl.accountprovider_AccountProviderView_Night_2_en",0,], +["features.login.impl.accountprovider_AccountProviderView_Day_3_en","features.login.impl.accountprovider_AccountProviderView_Night_3_en",0,], +["features.login.impl.accountprovider_AccountProviderView_Day_4_en","features.login.impl.accountprovider_AccountProviderView_Night_4_en",0,], +["features.createroom.impl.addpeople_AddPeopleView_Day_0_en","features.createroom.impl.addpeople_AddPeopleView_Night_0_en",19907,], +["features.createroom.impl.addpeople_AddPeopleView_Day_1_en","features.createroom.impl.addpeople_AddPeopleView_Night_1_en",19907,], +["features.createroom.impl.addpeople_AddPeopleView_Day_2_en","features.createroom.impl.addpeople_AddPeopleView_Night_2_en",19907,], +["features.createroom.impl.addpeople_AddPeopleView_Day_3_en","features.createroom.impl.addpeople_AddPeopleView_Night_3_en",19907,], +["features.preferences.impl.advanced_AdvancedSettingsView_Day_0_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_0_en",19907,], +["features.preferences.impl.advanced_AdvancedSettingsView_Day_1_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_1_en",19907,], +["features.preferences.impl.advanced_AdvancedSettingsView_Day_2_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_2_en",19907,], +["features.preferences.impl.advanced_AdvancedSettingsView_Day_3_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_3_en",19907,], +["features.analytics.impl_AnalyticsOptInView_Day_0_en","features.analytics.impl_AnalyticsOptInView_Night_0_en",19907,], +["features.analytics.api.preferences_AnalyticsPreferencesView_Day_0_en","features.analytics.api.preferences_AnalyticsPreferencesView_Night_0_en",19907,], +["features.preferences.impl.analytics_AnalyticsSettingsView_Day_0_en","features.preferences.impl.analytics_AnalyticsSettingsView_Night_0_en",19907,], +["services.apperror.impl_AppErrorView_Day_0_en","services.apperror.impl_AppErrorView_Night_0_en",19907,], +["libraries.designsystem.components.async_AsyncActionView_Day_0_en","libraries.designsystem.components.async_AsyncActionView_Night_0_en",0,], +["libraries.designsystem.components.async_AsyncActionView_Day_1_en","libraries.designsystem.components.async_AsyncActionView_Night_1_en",19907,], +["libraries.designsystem.components.async_AsyncActionView_Day_2_en","libraries.designsystem.components.async_AsyncActionView_Night_2_en",0,], +["libraries.designsystem.components.async_AsyncActionView_Day_3_en","libraries.designsystem.components.async_AsyncActionView_Night_3_en",19907,], +["libraries.designsystem.components.async_AsyncActionView_Day_4_en","libraries.designsystem.components.async_AsyncActionView_Night_4_en",0,], +["libraries.designsystem.components.async_AsyncFailure_Day_0_en","libraries.designsystem.components.async_AsyncFailure_Night_0_en",19907,], +["libraries.designsystem.components.async_AsyncIndicatorFailure_Day_0_en","libraries.designsystem.components.async_AsyncIndicatorFailure_Night_0_en",0,], +["libraries.designsystem.components.async_AsyncIndicatorLoading_Day_0_en","libraries.designsystem.components.async_AsyncIndicatorLoading_Night_0_en",0,], +["libraries.designsystem.components.async_AsyncLoading_Day_0_en","libraries.designsystem.components.async_AsyncLoading_Night_0_en",0,], +["features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Day_0_en","features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Night_0_en",19907,], +["libraries.matrix.ui.components_AttachmentThumbnail_Day_0_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_0_en",0,], +["libraries.matrix.ui.components_AttachmentThumbnail_Day_1_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_1_en",0,], +["libraries.matrix.ui.components_AttachmentThumbnail_Day_2_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_2_en",0,], +["libraries.matrix.ui.components_AttachmentThumbnail_Day_3_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_3_en",0,], +["libraries.matrix.ui.components_AttachmentThumbnail_Day_4_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_4_en",0,], +["libraries.matrix.ui.components_AttachmentThumbnail_Day_5_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_5_en",0,], +["libraries.matrix.ui.components_AttachmentThumbnail_Day_6_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_6_en",0,], +["libraries.matrix.ui.components_AttachmentThumbnail_Day_7_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_7_en",0,], +["libraries.matrix.ui.components_AttachmentThumbnail_Day_8_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_8_en",0,], +["features.messages.impl.attachments.preview_AttachmentsView_0_en","",19907,], +["features.messages.impl.attachments.preview_AttachmentsView_1_en","",19907,], +["features.messages.impl.attachments.preview_AttachmentsView_2_en","",19907,], +["features.messages.impl.attachments.preview_AttachmentsView_3_en","",19907,], +["libraries.matrix.ui.components_AvatarActionBottomSheet_Day_0_en","libraries.matrix.ui.components_AvatarActionBottomSheet_Night_0_en",19907,], +["libraries.designsystem.components.avatar_Avatar_Avatars_0_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_10_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_11_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_12_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_13_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_14_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_15_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_16_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_17_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_18_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_19_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_1_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_20_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_21_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_22_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_23_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_24_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_25_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_26_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_27_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_28_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_29_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_2_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_30_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_31_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_32_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_33_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_34_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_35_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_36_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_37_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_38_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_39_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_3_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_40_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_41_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_42_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_43_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_44_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_45_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_46_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_47_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_48_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_49_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_4_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_50_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_51_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_52_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_53_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_54_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_55_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_56_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_57_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_58_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_59_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_5_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_60_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_61_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_62_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_63_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_64_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_65_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_66_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_67_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_68_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_69_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_6_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_70_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_71_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_72_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_73_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_74_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_7_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_8_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_9_en","",0,], +["libraries.designsystem.components.button_BackButton_Buttons_en","",0,], +["libraries.designsystem.components_Badge_Day_0_en","libraries.designsystem.components_Badge_Night_0_en",0,], +["libraries.designsystem.components_BigCheckmark_Day_0_en","libraries.designsystem.components_BigCheckmark_Night_0_en",0,], +["libraries.designsystem.components_BigIcon_Day_0_en","libraries.designsystem.components_BigIcon_Night_0_en",0,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_0_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_0_en",19907,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_1_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_1_en",19907,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_2_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_2_en",19907,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_3_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_3_en",19907,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_4_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_4_en",19907,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_5_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_5_en",19907,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_6_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_6_en",19907,], +["libraries.designsystem.components_BloomInitials_Day_0_en","libraries.designsystem.components_BloomInitials_Night_0_en",0,], +["libraries.designsystem.components_BloomInitials_Day_1_en","libraries.designsystem.components_BloomInitials_Night_1_en",0,], +["libraries.designsystem.components_BloomInitials_Day_2_en","libraries.designsystem.components_BloomInitials_Night_2_en",0,], +["libraries.designsystem.components_BloomInitials_Day_3_en","libraries.designsystem.components_BloomInitials_Night_3_en",0,], +["libraries.designsystem.components_BloomInitials_Day_4_en","libraries.designsystem.components_BloomInitials_Night_4_en",0,], +["libraries.designsystem.components_BloomInitials_Day_5_en","libraries.designsystem.components_BloomInitials_Night_5_en",0,], +["libraries.designsystem.components_BloomInitials_Day_6_en","libraries.designsystem.components_BloomInitials_Night_6_en",0,], +["libraries.designsystem.components_BloomInitials_Day_7_en","libraries.designsystem.components_BloomInitials_Night_7_en",0,], +["libraries.designsystem.components_Bloom_Day_0_en","libraries.designsystem.components_Bloom_Night_0_en",0,], +["libraries.designsystem.theme.components_BottomSheetDragHandle_Day_0_en","libraries.designsystem.theme.components_BottomSheetDragHandle_Night_0_en",0,], +["features.rageshake.impl.bugreport_BugReportView_Day_0_en","features.rageshake.impl.bugreport_BugReportView_Night_0_en",19907,], +["features.rageshake.impl.bugreport_BugReportView_Day_1_en","features.rageshake.impl.bugreport_BugReportView_Night_1_en",19907,], +["features.rageshake.impl.bugreport_BugReportView_Day_2_en","features.rageshake.impl.bugreport_BugReportView_Night_2_en",19907,], +["features.rageshake.impl.bugreport_BugReportView_Day_3_en","features.rageshake.impl.bugreport_BugReportView_Night_3_en",19907,], +["features.rageshake.impl.bugreport_BugReportView_Day_4_en","features.rageshake.impl.bugreport_BugReportView_Night_4_en",19907,], +["libraries.designsystem.atomic.molecules_ButtonColumnMolecule_Day_0_en","libraries.designsystem.atomic.molecules_ButtonColumnMolecule_Night_0_en",0,], +["libraries.designsystem.atomic.molecules_ButtonRowMolecule_Day_0_en","libraries.designsystem.atomic.molecules_ButtonRowMolecule_Night_0_en",0,], +["features.call.impl.ui_CallScreenView_Day_0_en","features.call.impl.ui_CallScreenView_Night_0_en",0,], +["features.call.impl.ui_CallScreenView_Day_1_en","features.call.impl.ui_CallScreenView_Night_1_en",19907,], +["features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Day_0_en","features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Night_0_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_0_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_10_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_1_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_2_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_3_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_4_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_5_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_5_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_6_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_7_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_8_en",19907,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_9_en",19907,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en",19907,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en",19907,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en",19907,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en",19907,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en",19907,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en",19907,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en",19907,], +["features.login.impl.changeserver_ChangeServerView_Day_0_en","features.login.impl.changeserver_ChangeServerView_Night_0_en",0,], +["features.login.impl.changeserver_ChangeServerView_Day_1_en","features.login.impl.changeserver_ChangeServerView_Night_1_en",19907,], +["features.login.impl.changeserver_ChangeServerView_Day_2_en","features.login.impl.changeserver_ChangeServerView_Night_2_en",19907,], +["libraries.matrix.ui.components_CheckableResolvedUserRow_en","",0,], +["libraries.matrix.ui.components_CheckableUnresolvedUserRow_en","",19907,], +["libraries.designsystem.theme.components_Checkboxes_Toggles_en","",0,], +["libraries.designsystem.theme.components_CircularProgressIndicator_Progress Indicators_en","",0,], +["libraries.designsystem.components_ClickableLinkText_Text_en","",0,], +["libraries.designsystem.theme_ColorAliases_Day_0_en","libraries.designsystem.theme_ColorAliases_Night_0_en",0,], +["libraries.textcomposer.components_ComposerOptionsButton_Day_0_en","libraries.textcomposer.components_ComposerOptionsButton_Night_0_en",0,], +["libraries.designsystem.components.avatar_CompositeAvatar_Avatars_en","",0,], +["features.createroom.impl.configureroom_ConfigureRoomView_Day_0_en","features.createroom.impl.configureroom_ConfigureRoomView_Night_0_en",19907,], +["features.createroom.impl.configureroom_ConfigureRoomView_Day_1_en","features.createroom.impl.configureroom_ConfigureRoomView_Night_1_en",19907,], +["features.preferences.impl.developer.tracing_ConfigureTracingView_Day_0_en","features.preferences.impl.developer.tracing_ConfigureTracingView_Night_0_en",0,], +["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_0_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_0_en",19907,], +["features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Day_0_en","features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Night_0_en",19907,], +["libraries.designsystem.components.dialogs_ConfirmationDialogContent_Dialogs_en","",0,], +["libraries.designsystem.components.dialogs_ConfirmationDialog_Day_0_en","libraries.designsystem.components.dialogs_ConfirmationDialog_Night_0_en",0,], +["features.networkmonitor.api.ui_ConnectivityIndicatorView_Day_0_en","features.networkmonitor.api.ui_ConnectivityIndicatorView_Night_0_en",0,], +["features.rageshake.api.crash_CrashDetectionView_Day_0_en","features.rageshake.api.crash_CrashDetectionView_Night_0_en",19907,], +["features.securebackup.impl.createkey_CreateNewRecoveryKeyView_Day_0_en","features.securebackup.impl.createkey_CreateNewRecoveryKeyView_Night_0_en",19907,], +["features.poll.impl.create_CreatePollView_Day_0_en","features.poll.impl.create_CreatePollView_Night_0_en",19907,], +["features.poll.impl.create_CreatePollView_Day_1_en","features.poll.impl.create_CreatePollView_Night_1_en",19907,], +["features.poll.impl.create_CreatePollView_Day_2_en","features.poll.impl.create_CreatePollView_Night_2_en",19907,], +["features.poll.impl.create_CreatePollView_Day_3_en","features.poll.impl.create_CreatePollView_Night_3_en",19907,], +["features.poll.impl.create_CreatePollView_Day_4_en","features.poll.impl.create_CreatePollView_Night_4_en",19907,], +["features.poll.impl.create_CreatePollView_Day_5_en","features.poll.impl.create_CreatePollView_Night_5_en",19907,], +["features.poll.impl.create_CreatePollView_Day_6_en","features.poll.impl.create_CreatePollView_Night_6_en",19907,], +["features.poll.impl.create_CreatePollView_Day_7_en","features.poll.impl.create_CreatePollView_Night_7_en",19907,], +["features.createroom.impl.root_CreateRoomRootView_Day_0_en","features.createroom.impl.root_CreateRoomRootView_Night_0_en",19907,], +["features.createroom.impl.root_CreateRoomRootView_Day_1_en","features.createroom.impl.root_CreateRoomRootView_Night_1_en",19907,], +["features.createroom.impl.root_CreateRoomRootView_Day_2_en","features.createroom.impl.root_CreateRoomRootView_Night_2_en",19907,], +["features.createroom.impl.root_CreateRoomRootView_Day_3_en","features.createroom.impl.root_CreateRoomRootView_Night_3_en",19907,], +["libraries.designsystem.theme.components.previews_DatePickerDark_DateTime pickers_en","",19907,], +["libraries.designsystem.theme.components.previews_DatePickerLight_DateTime pickers_en","",19907,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_0_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_0_en",0,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_1_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_1_en",19907,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_2_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_2_en",19907,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_3_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_3_en",19907,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_4_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_4_en",0,], +["features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Day_0_en","features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Night_0_en",19907,], +["features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Night_0_en",19907,], +["features.roomlist.impl.components_DefaultRoomListTopBar_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBar_Night_0_en",19907,], +["features.preferences.impl.developer_DeveloperSettingsView_Day_0_en","features.preferences.impl.developer_DeveloperSettingsView_Night_0_en",19907,], +["features.preferences.impl.developer_DeveloperSettingsView_Day_1_en","features.preferences.impl.developer_DeveloperSettingsView_Night_1_en",19907,], +["features.preferences.impl.developer_DeveloperSettingsView_Day_2_en","features.preferences.impl.developer_DeveloperSettingsView_Night_2_en",19907,], +["libraries.designsystem.atomic.molecules_DialogLikeBannerMolecule_Day_0_en","libraries.designsystem.atomic.molecules_DialogLikeBannerMolecule_Night_0_en",19907,], +["libraries.designsystem.theme.components_DialogWithDestructiveButton_Dialog with destructive button_Dialogs_en","",0,], +["libraries.designsystem.theme.components_DialogWithOnlyMessageAndOkButton_Dialog with only message and ok button_Dialogs_en","",0,], +["libraries.designsystem.theme.components_DialogWithThirdButton_Dialog with third button_Dialogs_en","",0,], +["libraries.designsystem.theme.components_DialogWithTitleAndOkButton_Dialog with title and ok button_Dialogs_en","",0,], +["libraries.designsystem.theme.components_DialogWithTitleIconAndOkButton_Dialog with title, icon and ok button_Dialogs_en","",0,], +["libraries.textcomposer.components_DismissTextFormattingButton_Day_0_en","libraries.textcomposer.components_DismissTextFormattingButton_Night_0_en",0,], +["libraries.designsystem.components.avatar_DmAvatars_Avatars_en","",0,], +["libraries.designsystem.text_DpScale_0_75f__en","",0,], +["libraries.designsystem.text_DpScale_1_0f__en","",0,], +["libraries.designsystem.text_DpScale_1_5f__en","",0,], +["libraries.designsystem.theme.components_DropdownMenuItem_Menus_en","",0,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_0_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_0_en",19907,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_1_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_1_en",19907,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_2_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_2_en",19907,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_3_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_3_en",19907,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_4_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_4_en",19907,], +["features.preferences.impl.user.editprofile_EditUserProfileView_Day_0_en","features.preferences.impl.user.editprofile_EditUserProfileView_Night_0_en",19907,], +["libraries.matrix.ui.components_EditableAvatarView_Day_0_en","libraries.matrix.ui.components_EditableAvatarView_Night_0_en",0,], +["libraries.matrix.ui.components_EditableAvatarView_Day_1_en","libraries.matrix.ui.components_EditableAvatarView_Night_1_en",0,], +["libraries.matrix.ui.components_EditableAvatarView_Day_2_en","libraries.matrix.ui.components_EditableAvatarView_Night_2_en",0,], +["libraries.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_Day_0_en","libraries.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_Night_0_en",0,], +["libraries.designsystem.atomic.atoms_ElementLogoAtomLarge_Day_0_en","libraries.designsystem.atomic.atoms_ElementLogoAtomLarge_Night_0_en",0,], +["libraries.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_Day_0_en","libraries.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_Night_0_en",0,], +["libraries.designsystem.atomic.atoms_ElementLogoAtomMedium_Day_0_en","libraries.designsystem.atomic.atoms_ElementLogoAtomMedium_Night_0_en",0,], +["features.messages.impl.timeline.components.customreaction_EmojiItem_Day_0_en","features.messages.impl.timeline.components.customreaction_EmojiItem_Night_0_en",0,], +["features.messages.impl.timeline.components.customreaction_EmojiPicker_Day_0_en","features.messages.impl.timeline.components.customreaction_EmojiPicker_Night_0_en",0,], +["features.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_Day_0_en","features.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_Night_0_en",19907,], +["libraries.designsystem.components.dialogs_ErrorDialogContent_Dialogs_en","",19907,], +["libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Night_0_en",19907,], +["libraries.designsystem.components.dialogs_ErrorDialog_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialog_Night_0_en",19907,], +["features.messages.impl.timeline.debug_EventDebugInfoView_Day_0_en","features.messages.impl.timeline.debug_EventDebugInfoView_Night_0_en",0,], +["libraries.featureflag.ui_FeatureListView_Day_0_en","libraries.featureflag.ui_FeatureListView_Night_0_en",0,], +["libraries.designsystem.theme.components_FilledButtonLarge_Buttons_en","",0,], +["libraries.designsystem.theme.components_FilledButtonMedium_Buttons_en","",0,], +["libraries.designsystem.theme.components_FilledButtonSmall_Buttons_en","",0,], +["libraries.designsystem.theme.components_FloatingActionButton_Floating Action Buttons_en","",0,], +["libraries.designsystem.atomic.pages_FlowStepPage_Day_0_en","libraries.designsystem.atomic.pages_FlowStepPage_Night_0_en",0,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_0_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_0_en",0,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_1_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_1_en",19907,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_2_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_2_en",19907,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_3_en",19907,], +["libraries.textcomposer.components_FormattingOption_Day_0_en","libraries.textcomposer.components_FormattingOption_Night_0_en",0,], +["features.messages.impl.forward_ForwardMessagesView_Day_0_en","features.messages.impl.forward_ForwardMessagesView_Night_0_en",0,], +["features.messages.impl.forward_ForwardMessagesView_Day_1_en","features.messages.impl.forward_ForwardMessagesView_Night_1_en",0,], +["features.messages.impl.forward_ForwardMessagesView_Day_2_en","features.messages.impl.forward_ForwardMessagesView_Night_2_en",0,], +["features.messages.impl.forward_ForwardMessagesView_Day_3_en","features.messages.impl.forward_ForwardMessagesView_Night_3_en",19907,], +["features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_en","features.roomlist.impl.components_FullScreenIntentPermissionBanner_Night_0_en",19907,], +["libraries.designsystem.components.button_GradientFloatingActionButtonCircleShape_Day_0_en","libraries.designsystem.components.button_GradientFloatingActionButtonCircleShape_Night_0_en",0,], +["libraries.designsystem.components.button_GradientFloatingActionButton_Day_0_en","libraries.designsystem.components.button_GradientFloatingActionButton_Night_0_en",0,], +["features.messages.impl.timeline.components.group_GroupHeaderView_Day_0_en","features.messages.impl.timeline.components.group_GroupHeaderView_Night_0_en",0,], +["libraries.designsystem.atomic.pages_HeaderFooterPage_Day_0_en","libraries.designsystem.atomic.pages_HeaderFooterPage_Night_0_en",0,], +["libraries.designsystem.theme.components_HorizontalDivider_Dividers_en","",0,], +["libraries.designsystem.ruler_HorizontalRuler_Day_0_en","libraries.designsystem.ruler_HorizontalRuler_Night_0_en",0,], +["libraries.designsystem.theme.components_IconButton_Buttons_en","",0,], +["libraries.designsystem.theme.components_IconImageVector_Icons_en","",0,], +["libraries.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_Day_0_en","libraries.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_Night_0_en",0,], +["libraries.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_Day_0_en","libraries.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_Night_0_en",0,], +["libraries.designsystem.atomic.molecules_IconTitleSubtitleMolecule_Day_0_en","libraries.designsystem.atomic.molecules_IconTitleSubtitleMolecule_Night_0_en",0,], +["libraries.designsystem.theme.components_IconToggleButton_Toggles_en","",0,], +["libraries.designsystem.icons_IconsCompound_Day_0_en","libraries.designsystem.icons_IconsCompound_Night_0_en",0,], +["libraries.designsystem.icons_IconsCompound_Day_1_en","libraries.designsystem.icons_IconsCompound_Night_1_en",0,], +["libraries.designsystem.icons_IconsCompound_Day_2_en","libraries.designsystem.icons_IconsCompound_Night_2_en",0,], +["libraries.designsystem.icons_IconsCompound_Day_3_en","libraries.designsystem.icons_IconsCompound_Night_3_en",0,], +["libraries.designsystem.icons_IconsCompound_Day_4_en","libraries.designsystem.icons_IconsCompound_Night_4_en",0,], +["libraries.designsystem.icons_IconsOther_Day_0_en","libraries.designsystem.icons_IconsOther_Night_0_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_0_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_0_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_10_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_10_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_11_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_11_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_1_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_1_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_2_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_2_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_3_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_3_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_4_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_4_en",19907,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_5_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_5_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_6_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_6_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_7_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_7_en",0,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_8_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_8_en",19907,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_9_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_9_en",0,], +["features.call.impl.ui_IncomingCallScreen_Day_0_en","features.call.impl.ui_IncomingCallScreen_Night_0_en",19907,], +["libraries.designsystem.atomic.molecules_InfoListItemMolecule_Day_0_en","libraries.designsystem.atomic.molecules_InfoListItemMolecule_Night_0_en",0,], +["libraries.designsystem.atomic.organisms_InfoListOrganism_Day_0_en","libraries.designsystem.atomic.organisms_InfoListOrganism_Night_0_en",0,], +["libraries.matrix.ui.components_InviteSenderView_Day_0_en","libraries.matrix.ui.components_InviteSenderView_Night_0_en",19907,], +["features.joinroom.impl_JoinRoomView_Day_0_en","features.joinroom.impl_JoinRoomView_Night_0_en",0,], +["features.joinroom.impl_JoinRoomView_Day_1_en","features.joinroom.impl_JoinRoomView_Night_1_en",19907,], +["features.joinroom.impl_JoinRoomView_Day_2_en","features.joinroom.impl_JoinRoomView_Night_2_en",19907,], +["features.joinroom.impl_JoinRoomView_Day_3_en","features.joinroom.impl_JoinRoomView_Night_3_en",19907,], +["features.joinroom.impl_JoinRoomView_Day_4_en","features.joinroom.impl_JoinRoomView_Night_4_en",19907,], +["features.joinroom.impl_JoinRoomView_Day_5_en","features.joinroom.impl_JoinRoomView_Night_5_en",19907,], +["features.joinroom.impl_JoinRoomView_Day_6_en","features.joinroom.impl_JoinRoomView_Night_6_en",19907,], +["features.joinroom.impl_JoinRoomView_Day_7_en","features.joinroom.impl_JoinRoomView_Night_7_en",19907,], +["features.joinroom.impl_JoinRoomView_Day_8_en","features.joinroom.impl_JoinRoomView_Night_8_en",19907,], +["features.joinroom.impl_JoinRoomView_Day_9_en","features.joinroom.impl_JoinRoomView_Night_9_en",19907,], +["libraries.designsystem.components_LabelledCheckbox_Toggles_en","",0,], +["libraries.designsystem.components_LabelledOutlinedTextField_Day_0_en","libraries.designsystem.components_LabelledOutlinedTextField_Night_0_en",0,], +["libraries.designsystem.components_LabelledTextField_Day_0_en","libraries.designsystem.components_LabelledTextField_Night_0_en",0,], +["features.leaveroom.api_LeaveRoomView_Day_0_en","features.leaveroom.api_LeaveRoomView_Night_0_en",0,], +["features.leaveroom.api_LeaveRoomView_Day_1_en","features.leaveroom.api_LeaveRoomView_Night_1_en",19907,], +["features.leaveroom.api_LeaveRoomView_Day_2_en","features.leaveroom.api_LeaveRoomView_Night_2_en",19907,], +["features.leaveroom.api_LeaveRoomView_Day_3_en","features.leaveroom.api_LeaveRoomView_Night_3_en",19907,], +["features.leaveroom.api_LeaveRoomView_Day_4_en","features.leaveroom.api_LeaveRoomView_Night_4_en",19907,], +["features.leaveroom.api_LeaveRoomView_Day_5_en","features.leaveroom.api_LeaveRoomView_Night_5_en",19907,], +["features.leaveroom.api_LeaveRoomView_Day_6_en","features.leaveroom.api_LeaveRoomView_Night_6_en",19907,], +["libraries.designsystem.background_LightGradientBackground_Day_0_en","libraries.designsystem.background_LightGradientBackground_Night_0_en",0,], +["libraries.designsystem.theme.components_LinearProgressIndicator_Progress Indicators_en","",0,], +["libraries.designsystem.components.dialogs_ListDialogContent_Dialogs_en","",0,], +["libraries.designsystem.components.dialogs_ListDialog_Day_0_en","libraries.designsystem.components.dialogs_ListDialog_Night_0_en",0,], +["libraries.designsystem.theme.components_ListItemDisabledWithIcon_List item - Disabled & Icon_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemDisabled_List item - Disabled_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemErrorWithIcon_List item - Error & Icon_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemError_List item - Error_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemPrimaryActionWithIcon_List item - Primary action & Icon_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineBothIcons_List item (1 line) - Both Icons_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineLeadingCheckbox_List item (1 line) - Leading Checkbox_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineLeadingIcon_List item (1 line) - Leading Icon_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineLeadingRadioButton_List item (1 line) - Leading RadioButton_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineLeadingSwitch_List item (1 line) - Leading Switch_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineSimple_List item (1 line) - Simple_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineTrailingCheckBox_List item (1 line) - Trailing Checkbox_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineTrailingIcon_List item (1 line) - Trailing Icon_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineTrailingRadioButton_List item (1 line) - Trailing RadioButton_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemSingleLineTrailingSwitch_List item (1 line) - Trailing Switch_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesBothIcons_List item (3 lines) - Both Icons_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesLeadingCheckbox_List item (3 lines) - Leading Checkbox_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesLeadingIcon_List item (3 lines) - Leading Icon_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesLeadingRadioButton_List item (3 lines) - Leading RadioButton_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesLeadingSwitch_List item (3 lines) - Leading Switch_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesSimple_List item (3 lines) - Simple_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesTrailingCheckBox_List item (3 lines) - Trailing Checkbox_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesTrailingIcon_List item (3 lines) - Trailing Icon_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesTrailingRadioButton_List item (3 lines) - Trailing RadioButton_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemThreeLinesTrailingSwitch_List item (3 lines) - Trailing Switch_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesBothIcons_List item (2 lines) - Both Icons_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesLeadingCheckbox_List item (2 lines) - Leading Checkbox_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesLeadingIcon_List item (2 lines) - Leading Icon_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesLeadingRadioButton_List item (2 lines) - Leading RadioButton_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesLeadingSwitch_List item (2 lines) - Leading Switch_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesSimple_List item (2 lines) - Simple_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesTrailingCheckBox_List item (2 lines) - Trailing Checkbox_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesTrailingIcon_List item (2 lines) - Trailing Icon_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesTrailingRadioButton_List item (2 lines) - Trailing RadioButton_List items_en","",0,], +["libraries.designsystem.theme.components_ListItemTwoLinesTrailingSwitch_List item (2 lines) - Trailing Switch_List items_en","",0,], +["libraries.designsystem.theme.components_ListSectionHeaderWithDescriptionAndDivider_List section header with description and divider_List sections_en","",0,], +["libraries.designsystem.theme.components_ListSectionHeaderWithDescription_List section header with description_List sections_en","",0,], +["libraries.designsystem.theme.components_ListSectionHeaderWithDivider_List section header with divider_List sections_en","",0,], +["libraries.designsystem.theme.components_ListSectionHeader_List section header_List sections_en","",0,], +["libraries.designsystem.theme.components_ListSupportingTextCustomPadding_List supporting text - custom padding_List sections_en","",0,], +["libraries.designsystem.theme.components_ListSupportingTextDefaultPadding_List supporting text - default padding_List sections_en","",0,], +["libraries.designsystem.theme.components_ListSupportingTextLargePadding_List supporting text - large padding_List sections_en","",0,], +["libraries.designsystem.theme.components_ListSupportingTextNoPadding_List supporting text - no padding_List sections_en","",0,], +["libraries.designsystem.theme.components_ListSupportingTextSmallPadding_List supporting text - small padding_List sections_en","",0,], +["libraries.textcomposer.components_LiveWaveformView_Day_0_en","libraries.textcomposer.components_LiveWaveformView_Night_0_en",0,], +["appnav.room.joined_LoadingRoomNodeView_Day_0_en","appnav.room.joined_LoadingRoomNodeView_Night_0_en",0,], +["appnav.room.joined_LoadingRoomNodeView_Day_1_en","appnav.room.joined_LoadingRoomNodeView_Night_1_en",19907,], +["features.lockscreen.impl.settings_LockScreenSettingsView_Day_0_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_0_en",19907,], +["features.lockscreen.impl.settings_LockScreenSettingsView_Day_1_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_1_en",19907,], +["features.lockscreen.impl.settings_LockScreenSettingsView_Day_2_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_2_en",19907,], +["appnav.loggedin_LoggedInView_Day_0_en","appnav.loggedin_LoggedInView_Night_0_en",0,], +["appnav.loggedin_LoggedInView_Day_1_en","appnav.loggedin_LoggedInView_Night_1_en",19907,], +["appnav.loggedin_LoggedInView_Day_2_en","appnav.loggedin_LoggedInView_Night_2_en",19907,], +["features.login.impl.screens.loginpassword_LoginPasswordView_Day_0_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_0_en",19907,], +["features.login.impl.screens.loginpassword_LoginPasswordView_Day_1_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_1_en",19907,], +["features.login.impl.screens.loginpassword_LoginPasswordView_Day_2_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_2_en",19907,], +["features.logout.impl_LogoutView_Day_0_en","features.logout.impl_LogoutView_Night_0_en",19907,], +["features.logout.impl_LogoutView_Day_1_en","features.logout.impl_LogoutView_Night_1_en",19907,], +["features.logout.impl_LogoutView_Day_2_en","features.logout.impl_LogoutView_Night_2_en",19907,], +["features.logout.impl_LogoutView_Day_3_en","features.logout.impl_LogoutView_Night_3_en",19907,], +["features.logout.impl_LogoutView_Day_4_en","features.logout.impl_LogoutView_Night_4_en",19907,], +["features.logout.impl_LogoutView_Day_5_en","features.logout.impl_LogoutView_Night_5_en",19907,], +["features.logout.impl_LogoutView_Day_6_en","features.logout.impl_LogoutView_Night_6_en",19907,], +["features.logout.impl_LogoutView_Day_7_en","features.logout.impl_LogoutView_Night_7_en",19907,], +["features.logout.impl_LogoutView_Day_8_en","features.logout.impl_LogoutView_Night_8_en",19907,], +["features.logout.impl_LogoutView_Day_9_en","features.logout.impl_LogoutView_Night_9_en",19907,], +["libraries.designsystem.components.button_MainActionButton_Buttons_en","",0,], +["libraries.textcomposer_MarkdownTextComposerEdit_Day_0_en","libraries.textcomposer_MarkdownTextComposerEdit_Night_0_en",19907,], +["libraries.textcomposer.components.markdown_MarkdownTextInput_Day_0_en","libraries.textcomposer.components.markdown_MarkdownTextInput_Night_0_en",0,], +["libraries.matrix.ui.components_MatrixUserHeaderPlaceholder_Day_0_en","libraries.matrix.ui.components_MatrixUserHeaderPlaceholder_Night_0_en",0,], +["libraries.matrix.ui.components_MatrixUserHeader_Day_0_en","libraries.matrix.ui.components_MatrixUserHeader_Night_0_en",0,], +["libraries.matrix.ui.components_MatrixUserHeader_Day_1_en","libraries.matrix.ui.components_MatrixUserHeader_Night_1_en",0,], +["libraries.matrix.ui.components_MatrixUserRow_Day_0_en","libraries.matrix.ui.components_MatrixUserRow_Night_0_en",0,], +["libraries.matrix.ui.components_MatrixUserRow_Day_1_en","libraries.matrix.ui.components_MatrixUserRow_Night_1_en",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_0_en","",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_10_en","",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_1_en","",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_2_en","",19907,], +["libraries.mediaviewer.api.viewer_MediaViewerView_3_en","",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_4_en","",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_5_en","",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_6_en","",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_7_en","",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_8_en","",0,], +["libraries.mediaviewer.api.viewer_MediaViewerView_9_en","",0,], +["libraries.designsystem.theme.components_MediumTopAppBar_App Bars_en","",0,], +["libraries.textcomposer.mentions_MentionSpan_Day_0_en","libraries.textcomposer.mentions_MentionSpan_Night_0_en",0,], +["features.messages.impl.mentions_MentionSuggestionsPickerView_Day_0_en","features.messages.impl.mentions_MentionSuggestionsPickerView_Night_0_en",19907,], +["libraries.designsystem.theme.components.previews_Menu_Menus_en","",0,], +["features.messages.impl.messagecomposer_MessageComposerViewVoice_Day_0_en","features.messages.impl.messagecomposer_MessageComposerViewVoice_Night_0_en",0,], +["features.messages.impl.messagecomposer_MessageComposerView_Day_0_en","features.messages.impl.messagecomposer_MessageComposerView_Night_0_en",19907,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_0_en","features.messages.impl.timeline.components_MessageEventBubble_Night_0_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_10_en","features.messages.impl.timeline.components_MessageEventBubble_Night_10_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_11_en","features.messages.impl.timeline.components_MessageEventBubble_Night_11_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_12_en","features.messages.impl.timeline.components_MessageEventBubble_Night_12_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_13_en","features.messages.impl.timeline.components_MessageEventBubble_Night_13_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_14_en","features.messages.impl.timeline.components_MessageEventBubble_Night_14_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_15_en","features.messages.impl.timeline.components_MessageEventBubble_Night_15_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_1_en","features.messages.impl.timeline.components_MessageEventBubble_Night_1_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_2_en","features.messages.impl.timeline.components_MessageEventBubble_Night_2_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_3_en","features.messages.impl.timeline.components_MessageEventBubble_Night_3_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_4_en","features.messages.impl.timeline.components_MessageEventBubble_Night_4_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_5_en","features.messages.impl.timeline.components_MessageEventBubble_Night_5_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_6_en","features.messages.impl.timeline.components_MessageEventBubble_Night_6_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_7_en","features.messages.impl.timeline.components_MessageEventBubble_Night_7_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_8_en","features.messages.impl.timeline.components_MessageEventBubble_Night_8_en",0,], +["features.messages.impl.timeline.components_MessageEventBubble_Day_9_en","features.messages.impl.timeline.components_MessageEventBubble_Night_9_en",0,], +["features.messages.impl.timeline.components_MessageStateEventContainer_Day_0_en","features.messages.impl.timeline.components_MessageStateEventContainer_Night_0_en",0,], +["features.messages.impl.timeline.components_MessagesReactionButtonAdd_Day_0_en","features.messages.impl.timeline.components_MessagesReactionButtonAdd_Night_0_en",0,], +["features.messages.impl.timeline.components_MessagesReactionButtonExtra_Day_0_en","features.messages.impl.timeline.components_MessagesReactionButtonExtra_Night_0_en",0,], +["features.messages.impl.timeline.components_MessagesReactionButton_Day_0_en","features.messages.impl.timeline.components_MessagesReactionButton_Night_0_en",0,], +["features.messages.impl.timeline.components_MessagesReactionButton_Day_1_en","features.messages.impl.timeline.components_MessagesReactionButton_Night_1_en",0,], +["features.messages.impl.timeline.components_MessagesReactionButton_Day_2_en","features.messages.impl.timeline.components_MessagesReactionButton_Night_2_en",0,], +["features.messages.impl.timeline.components_MessagesReactionButton_Day_3_en","features.messages.impl.timeline.components_MessagesReactionButton_Night_3_en",0,], +["features.messages.impl.typing_MessagesViewWithTyping_Day_0_en","features.messages.impl.typing_MessagesViewWithTyping_Night_0_en",19907,], +["features.messages.impl.typing_MessagesViewWithTyping_Day_1_en","features.messages.impl.typing_MessagesViewWithTyping_Night_1_en",19907,], +["features.messages.impl.typing_MessagesViewWithTyping_Day_2_en","features.messages.impl.typing_MessagesViewWithTyping_Night_2_en",0,], +["features.messages.impl_MessagesView_Day_0_en","features.messages.impl_MessagesView_Night_0_en",19907,], +["features.messages.impl_MessagesView_Day_10_en","features.messages.impl_MessagesView_Night_10_en",19907,], +["features.messages.impl_MessagesView_Day_11_en","features.messages.impl_MessagesView_Night_11_en",19907,], +["features.messages.impl_MessagesView_Day_12_en","features.messages.impl_MessagesView_Night_12_en",19907,], +["features.messages.impl_MessagesView_Day_1_en","features.messages.impl_MessagesView_Night_1_en",0,], +["features.messages.impl_MessagesView_Day_2_en","features.messages.impl_MessagesView_Night_2_en",19907,], +["features.messages.impl_MessagesView_Day_3_en","features.messages.impl_MessagesView_Night_3_en",19907,], +["features.messages.impl_MessagesView_Day_4_en","features.messages.impl_MessagesView_Night_4_en",19907,], +["features.messages.impl_MessagesView_Day_5_en","features.messages.impl_MessagesView_Night_5_en",19907,], +["features.messages.impl_MessagesView_Day_6_en","features.messages.impl_MessagesView_Night_6_en",19907,], +["features.messages.impl_MessagesView_Day_7_en","features.messages.impl_MessagesView_Night_7_en",19907,], +["features.messages.impl_MessagesView_Day_8_en","features.messages.impl_MessagesView_Night_8_en",19907,], +["features.messages.impl_MessagesView_Day_9_en","features.messages.impl_MessagesView_Night_9_en",19907,], +["features.roomlist.impl.migration_MigrationScreenView_Day_0_en","features.roomlist.impl.migration_MigrationScreenView_Night_0_en",19907,], +["features.migration.impl_MigrationView_Day_0_en","features.migration.impl_MigrationView_Night_0_en",0,], +["features.migration.impl_MigrationView_Day_1_en","features.migration.impl_MigrationView_Night_1_en",19907,], +["libraries.designsystem.theme.components_ModalBottomSheetDark_Bottom Sheets_en","",0,], +["libraries.designsystem.theme.components_ModalBottomSheetLight_Bottom Sheets_en","",0,], +["libraries.designsystem.components.dialogs_MultipleSelectionDialogContent_Dialogs_en","",0,], +["libraries.designsystem.components.dialogs_MultipleSelectionDialog_Day_0_en","libraries.designsystem.components.dialogs_MultipleSelectionDialog_Night_0_en",0,], +["libraries.designsystem.components.list_MutipleSelectionListItemSelectedTrailingContent_Multiple selection List item - selection in trailing content_List items_en","",0,], +["libraries.designsystem.components.list_MutipleSelectionListItemSelected_Multiple selection List item - selection in supporting text_List items_en","",0,], +["libraries.designsystem.components.list_MutipleSelectionListItem_Multiple selection List item - no selection_List items_en","",0,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_0_en","features.preferences.impl.notifications_NotificationSettingsView_Night_0_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_10_en","features.preferences.impl.notifications_NotificationSettingsView_Night_10_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_11_en","features.preferences.impl.notifications_NotificationSettingsView_Night_11_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_12_en","features.preferences.impl.notifications_NotificationSettingsView_Night_12_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_1_en","features.preferences.impl.notifications_NotificationSettingsView_Night_1_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_2_en","features.preferences.impl.notifications_NotificationSettingsView_Night_2_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_3_en","features.preferences.impl.notifications_NotificationSettingsView_Night_3_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_4_en","features.preferences.impl.notifications_NotificationSettingsView_Night_4_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_5_en","features.preferences.impl.notifications_NotificationSettingsView_Night_5_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_6_en","features.preferences.impl.notifications_NotificationSettingsView_Night_6_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_7_en","features.preferences.impl.notifications_NotificationSettingsView_Night_7_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_8_en","features.preferences.impl.notifications_NotificationSettingsView_Night_8_en",19907,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_9_en","features.preferences.impl.notifications_NotificationSettingsView_Night_9_en",19907,], +["features.ftue.impl.notifications_NotificationsOptInView_Day_0_en","features.ftue.impl.notifications_NotificationsOptInView_Night_0_en",19907,], +["features.login.impl.oidc.webview_OidcView_Day_0_en","features.login.impl.oidc.webview_OidcView_Night_0_en",0,], +["features.login.impl.oidc.webview_OidcView_Day_1_en","features.login.impl.oidc.webview_OidcView_Night_1_en",0,], +["libraries.designsystem.atomic.pages_OnBoardingPage_Day_0_en","libraries.designsystem.atomic.pages_OnBoardingPage_Night_0_en",0,], +["features.onboarding.impl_OnBoardingView_Day_0_en","features.onboarding.impl_OnBoardingView_Night_0_en",19907,], +["features.onboarding.impl_OnBoardingView_Day_1_en","features.onboarding.impl_OnBoardingView_Night_1_en",19907,], +["features.onboarding.impl_OnBoardingView_Day_2_en","features.onboarding.impl_OnBoardingView_Night_2_en",19907,], +["features.onboarding.impl_OnBoardingView_Day_3_en","features.onboarding.impl_OnBoardingView_Night_3_en",19907,], +["features.onboarding.impl_OnBoardingView_Day_4_en","features.onboarding.impl_OnBoardingView_Night_4_en",19907,], +["libraries.designsystem.background_OnboardingBackground_Day_0_en","libraries.designsystem.background_OnboardingBackground_Night_0_en",0,], +["libraries.designsystem.theme.components_OutlinedButtonLarge_Buttons_en","",0,], +["libraries.designsystem.theme.components_OutlinedButtonMedium_Buttons_en","",0,], +["libraries.designsystem.theme.components_OutlinedButtonSmall_Buttons_en","",0,], +["libraries.designsystem.theme.components_OutlinedTextFieldsDark_TextFields_en","",0,], +["libraries.designsystem.theme.components_OutlinedTextFields_TextFields_en","",0,], +["libraries.designsystem.components_PageTitleWithIconFull_Day_0_en","libraries.designsystem.components_PageTitleWithIconFull_Night_0_en",0,], +["libraries.designsystem.components_PageTitleWithIconFull_Day_1_en","libraries.designsystem.components_PageTitleWithIconFull_Night_1_en",0,], +["libraries.designsystem.components_PageTitleWithIconFull_Day_2_en","libraries.designsystem.components_PageTitleWithIconFull_Night_2_en",0,], +["libraries.designsystem.components_PageTitleWithIconFull_Day_3_en","libraries.designsystem.components_PageTitleWithIconFull_Night_3_en",0,], +["libraries.designsystem.components_PageTitleWithIconFull_Day_4_en","libraries.designsystem.components_PageTitleWithIconFull_Night_4_en",0,], +["libraries.designsystem.components_PageTitleWithIconMinimal_Day_0_en","libraries.designsystem.components_PageTitleWithIconMinimal_Night_0_en",0,], +["features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Night_0_en",19907,], +["libraries.permissions.api_PermissionsView_Day_0_en","libraries.permissions.api_PermissionsView_Night_0_en",19907,], +["libraries.permissions.api_PermissionsView_Day_1_en","libraries.permissions.api_PermissionsView_Night_1_en",19907,], +["libraries.permissions.api_PermissionsView_Day_2_en","libraries.permissions.api_PermissionsView_Night_2_en",19907,], +["libraries.permissions.api_PermissionsView_Day_3_en","libraries.permissions.api_PermissionsView_Night_3_en",19907,], +["features.lockscreen.impl.components_PinEntryTextField_Day_0_en","features.lockscreen.impl.components_PinEntryTextField_Night_0_en",0,], +["libraries.designsystem.components_PinIcon_Day_0_en","libraries.designsystem.components_PinIcon_Night_0_en",0,], +["features.lockscreen.impl.unlock.keypad_PinKeypad_Day_0_en","features.lockscreen.impl.unlock.keypad_PinKeypad_Night_0_en",0,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_0_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_0_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_1_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_1_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_2_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_2_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_3_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_3_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_4_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_4_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_5_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_5_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_6_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_6_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_0_en","features.lockscreen.impl.unlock_PinUnlockView_Night_0_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_1_en","features.lockscreen.impl.unlock_PinUnlockView_Night_1_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_2_en","features.lockscreen.impl.unlock_PinUnlockView_Night_2_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_3_en","features.lockscreen.impl.unlock_PinUnlockView_Night_3_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_4_en","features.lockscreen.impl.unlock_PinUnlockView_Night_4_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_5_en","features.lockscreen.impl.unlock_PinUnlockView_Night_5_en",19907,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_6_en","features.lockscreen.impl.unlock_PinUnlockView_Night_6_en",19907,], +["libraries.designsystem.atomic.atoms_PlaceholderAtom_Day_0_en","libraries.designsystem.atomic.atoms_PlaceholderAtom_Night_0_en",0,], +["features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Night_0_en",19907,], +["features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Night_0_en",19907,], +["features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedSelected_Night_0_en",19907,], +["features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Night_0_en",19907,], +["features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Night_0_en",19907,], +["features.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_Night_0_en",0,], +["features.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_Night_0_en",0,], +["features.poll.api.pollcontent_PollContentViewCreatorEditable_Day_0_en","features.poll.api.pollcontent_PollContentViewCreatorEditable_Night_0_en",19907,], +["features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewCreatorEnded_Night_0_en",19907,], +["features.poll.api.pollcontent_PollContentViewCreator_Day_0_en","features.poll.api.pollcontent_PollContentViewCreator_Night_0_en",19907,], +["features.poll.api.pollcontent_PollContentViewDisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewDisclosed_Night_0_en",19907,], +["features.poll.api.pollcontent_PollContentViewEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewEnded_Night_0_en",19907,], +["features.poll.api.pollcontent_PollContentViewUndisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewUndisclosed_Night_0_en",19907,], +["features.poll.impl.history_PollHistoryView_Day_0_en","features.poll.impl.history_PollHistoryView_Night_0_en",19907,], +["features.poll.impl.history_PollHistoryView_Day_1_en","features.poll.impl.history_PollHistoryView_Night_1_en",19907,], +["features.poll.impl.history_PollHistoryView_Day_2_en","features.poll.impl.history_PollHistoryView_Night_2_en",19907,], +["features.poll.impl.history_PollHistoryView_Day_3_en","features.poll.impl.history_PollHistoryView_Night_3_en",19907,], +["features.poll.impl.history_PollHistoryView_Day_4_en","features.poll.impl.history_PollHistoryView_Night_4_en",19907,], +["libraries.designsystem.components.preferences_PreferenceCategory_Preferences_en","",0,], +["libraries.designsystem.components.preferences_PreferenceCheckbox_Preferences_en","",0,], +["libraries.designsystem.components.preferences_PreferenceDivider_Preferences_en","",0,], +["libraries.designsystem.components.preferences.components_PreferenceIconWithBadge_Preferences_0_en","",0,], +["libraries.designsystem.components.preferences.components_PreferenceIconWithBadge_Preferences_1_en","",0,], +["libraries.designsystem.components.preferences.components_PreferenceIcon_Preferences_0_en","",0,], +["libraries.designsystem.components.preferences.components_PreferenceIcon_Preferences_1_en","",0,], +["libraries.designsystem.components.preferences_PreferencePage_Day_0_en","libraries.designsystem.components.preferences_PreferencePage_Night_0_en",0,], +["libraries.designsystem.components.preferences_PreferenceRow_Preferences_en","",0,], +["libraries.designsystem.components.preferences_PreferenceSlide_Preferences_en","",0,], +["libraries.designsystem.components.preferences_PreferenceSwitch_Preferences_en","",0,], +["libraries.designsystem.components.preferences_PreferenceTextDark_Preferences_en","",0,], +["libraries.designsystem.components.preferences_PreferenceTextLight_Preferences_en","",0,], +["libraries.designsystem.components.preferences_PreferenceTextWithEndBadgeDark_Preferences_en","",0,], +["libraries.designsystem.components.preferences_PreferenceTextWithEndBadgeLight_Preferences_en","",0,], +["features.preferences.impl.root_PreferencesRootViewDark_0_en","",19907,], +["features.preferences.impl.root_PreferencesRootViewDark_1_en","",19907,], +["features.preferences.impl.root_PreferencesRootViewLight_0_en","",19907,], +["features.preferences.impl.root_PreferencesRootViewLight_1_en","",19907,], +["features.messages.impl.timeline.components.event_ProgressButton_Day_0_en","features.messages.impl.timeline.components.event_ProgressButton_Night_0_en",0,], +["libraries.designsystem.components_ProgressDialogContent_Dialogs_en","",19907,], +["libraries.designsystem.components_ProgressDialog_Day_0_en","libraries.designsystem.components_ProgressDialog_Night_0_en",19907,], +["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_0_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_0_en",19907,], +["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_1_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_1_en",19907,], +["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_2_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_2_en",19907,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_0_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_0_en",19907,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_1_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_1_en",19907,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_2_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_2_en",19907,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_3_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_3_en",19907,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_4_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_4_en",19907,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_5_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_5_en",19907,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_6_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_6_en",19907,], +["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_0_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_0_en",19907,], +["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_1_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_1_en",19907,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_0_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_0_en",19907,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_1_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_1_en",19907,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_2_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_2_en",19907,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_3_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_3_en",19907,], +["libraries.designsystem.theme.components_RadioButton_Toggles_en","",0,], +["features.rageshake.api.detection_RageshakeDialogContent_Day_0_en","features.rageshake.api.detection_RageshakeDialogContent_Night_0_en",19907,], +["features.rageshake.api.preferences_RageshakePreferencesView_Day_0_en","features.rageshake.api.preferences_RageshakePreferencesView_Night_0_en",19907,], +["features.rageshake.api.preferences_RageshakePreferencesView_Day_1_en","features.rageshake.api.preferences_RageshakePreferencesView_Night_1_en",0,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_0_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_0_en",19907,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_1_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_1_en",19907,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_2_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_2_en",19907,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_3_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_3_en",19907,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_4_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_4_en",19907,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_5_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_5_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_0_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_0_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_10_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_10_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_11_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_11_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_1_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_1_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_2_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_2_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_3_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_3_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_4_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_4_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_5_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_5_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_6_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_6_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_7_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_7_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_8_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_8_en",19907,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_9_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_9_en",19907,], +["libraries.designsystem.atomic.atoms_RedIndicatorAtom_Day_0_en","libraries.designsystem.atomic.atoms_RedIndicatorAtom_Night_0_en",0,], +["features.messages.impl.timeline.components_ReplySwipeIndicator_Day_0_en","features.messages.impl.timeline.components_ReplySwipeIndicator_Night_0_en",0,], +["features.messages.impl.report_ReportMessageView_Day_0_en","features.messages.impl.report_ReportMessageView_Night_0_en",19907,], +["features.messages.impl.report_ReportMessageView_Day_1_en","features.messages.impl.report_ReportMessageView_Night_1_en",19907,], +["features.messages.impl.report_ReportMessageView_Day_2_en","features.messages.impl.report_ReportMessageView_Night_2_en",19907,], +["features.messages.impl.report_ReportMessageView_Day_3_en","features.messages.impl.report_ReportMessageView_Night_3_en",19907,], +["features.messages.impl.report_ReportMessageView_Day_4_en","features.messages.impl.report_ReportMessageView_Night_4_en",19907,], +["features.messages.impl.report_ReportMessageView_Day_5_en","features.messages.impl.report_ReportMessageView_Night_5_en",19907,], +["libraries.designsystem.components.dialogs_RetryDialogContent_Dialogs_en","",19907,], +["libraries.designsystem.components.dialogs_RetryDialog_Day_0_en","libraries.designsystem.components.dialogs_RetryDialog_Night_0_en",19907,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en",19907,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en",19907,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en",19907,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en",19907,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en",19907,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en",19907,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en",19907,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en",19907,], +["features.roomaliasresolver.impl_RoomAliasResolverView_Day_0_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_0_en",0,], +["features.roomaliasresolver.impl_RoomAliasResolverView_Day_1_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_1_en",0,], +["features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_2_en",19907,], +["features.roomdetails.impl.components_RoomBadgeNegative_Day_0_en","features.roomdetails.impl.components_RoomBadgeNegative_Night_0_en",0,], +["features.roomdetails.impl.components_RoomBadgeNeutral_Day_0_en","features.roomdetails.impl.components_RoomBadgeNeutral_Night_0_en",0,], +["features.roomdetails.impl.components_RoomBadgePositive_Day_0_en","features.roomdetails.impl.components_RoomBadgePositive_Night_0_en",0,], +["features.roomdetails.impl_RoomDetailsDark_0_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_10_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_11_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_12_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_1_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_2_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_3_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_4_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_5_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_6_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_7_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_8_en","",19907,], +["features.roomdetails.impl_RoomDetailsDark_9_en","",19907,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_0_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_0_en",19907,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_1_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_1_en",19907,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_2_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_2_en",19907,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_3_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_3_en",19907,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_4_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_4_en",19907,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_5_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_5_en",19907,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_6_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_6_en",19907,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_7_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_7_en",19907,], +["features.roomdetails.impl_RoomDetails_0_en","",19907,], +["features.roomdetails.impl_RoomDetails_10_en","",19907,], +["features.roomdetails.impl_RoomDetails_11_en","",19907,], +["features.roomdetails.impl_RoomDetails_12_en","",19907,], +["features.roomdetails.impl_RoomDetails_1_en","",19907,], +["features.roomdetails.impl_RoomDetails_2_en","",19907,], +["features.roomdetails.impl_RoomDetails_3_en","",19907,], +["features.roomdetails.impl_RoomDetails_4_en","",19907,], +["features.roomdetails.impl_RoomDetails_5_en","",19907,], +["features.roomdetails.impl_RoomDetails_6_en","",19907,], +["features.roomdetails.impl_RoomDetails_7_en","",19907,], +["features.roomdetails.impl_RoomDetails_8_en","",19907,], +["features.roomdetails.impl_RoomDetails_9_en","",19907,], +["features.roomdirectory.impl.root_RoomDirectoryView_Day_0_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_0_en",19907,], +["features.roomdirectory.impl.root_RoomDirectoryView_Day_1_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_1_en",19907,], +["features.roomdirectory.impl.root_RoomDirectoryView_Day_2_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_2_en",19907,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_0_en",19907,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_1_en",19907,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_2_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_2_en",19907,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_3_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_3_en",19907,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_4_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_4_en",19907,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_5_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_5_en",19907,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_6_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_6_en",19907,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_7_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_7_en",19907,], +["features.roomlist.impl.components_RoomListContentView_Day_0_en","features.roomlist.impl.components_RoomListContentView_Night_0_en",19907,], +["features.roomlist.impl.components_RoomListContentView_Day_1_en","features.roomlist.impl.components_RoomListContentView_Night_1_en",19907,], +["features.roomlist.impl.components_RoomListContentView_Day_2_en","features.roomlist.impl.components_RoomListContentView_Night_2_en",0,], +["features.roomlist.impl.components_RoomListContentView_Day_3_en","features.roomlist.impl.components_RoomListContentView_Night_3_en",19907,], +["features.roomlist.impl.components_RoomListContentView_Day_4_en","features.roomlist.impl.components_RoomListContentView_Night_4_en",19907,], +["features.roomlist.impl.filters_RoomListFiltersView_Day_0_en","features.roomlist.impl.filters_RoomListFiltersView_Night_0_en",19907,], +["features.roomlist.impl.filters_RoomListFiltersView_Day_1_en","features.roomlist.impl.filters_RoomListFiltersView_Night_1_en",19907,], +["features.roomlist.impl_RoomListModalBottomSheetContent_Day_0_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_0_en",19907,], +["features.roomlist.impl_RoomListModalBottomSheetContent_Day_1_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_1_en",19907,], +["features.roomlist.impl_RoomListModalBottomSheetContent_Day_2_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_2_en",19907,], +["features.roomlist.impl.search_RoomListSearchContent_Day_0_en","features.roomlist.impl.search_RoomListSearchContent_Night_0_en",0,], +["features.roomlist.impl.search_RoomListSearchContent_Day_1_en","features.roomlist.impl.search_RoomListSearchContent_Night_1_en",19907,], +["features.roomlist.impl.search_RoomListSearchContent_Day_2_en","features.roomlist.impl.search_RoomListSearchContent_Night_2_en",19907,], +["features.roomlist.impl_RoomListView_Day_0_en","features.roomlist.impl_RoomListView_Night_0_en",19907,], +["features.roomlist.impl_RoomListView_Day_10_en","features.roomlist.impl_RoomListView_Night_10_en",0,], +["features.roomlist.impl_RoomListView_Day_1_en","features.roomlist.impl_RoomListView_Night_1_en",19907,], +["features.roomlist.impl_RoomListView_Day_2_en","features.roomlist.impl_RoomListView_Night_2_en",19907,], +["features.roomlist.impl_RoomListView_Day_3_en","features.roomlist.impl_RoomListView_Night_3_en",19907,], +["features.roomlist.impl_RoomListView_Day_4_en","features.roomlist.impl_RoomListView_Night_4_en",19907,], +["features.roomlist.impl_RoomListView_Day_5_en","features.roomlist.impl_RoomListView_Night_5_en",19907,], +["features.roomlist.impl_RoomListView_Day_6_en","features.roomlist.impl_RoomListView_Night_6_en",19907,], +["features.roomlist.impl_RoomListView_Day_7_en","features.roomlist.impl_RoomListView_Night_7_en",19907,], +["features.roomlist.impl_RoomListView_Day_8_en","features.roomlist.impl_RoomListView_Night_8_en",0,], +["features.roomlist.impl_RoomListView_Day_9_en","features.roomlist.impl_RoomListView_Night_9_en",19907,], +["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_0_en",19907,], +["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_1_en",19907,], +["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_2_en",19907,], +["features.roomdetails.impl.members_RoomMemberListView_Day_0_en","features.roomdetails.impl.members_RoomMemberListView_Night_0_en",19907,], +["features.roomdetails.impl.members_RoomMemberListView_Day_1_en","features.roomdetails.impl.members_RoomMemberListView_Night_1_en",19907,], +["features.roomdetails.impl.members_RoomMemberListView_Day_2_en","features.roomdetails.impl.members_RoomMemberListView_Night_2_en",19907,], +["features.roomdetails.impl.members_RoomMemberListView_Day_3_en","features.roomdetails.impl.members_RoomMemberListView_Night_3_en",19907,], +["features.roomdetails.impl.members_RoomMemberListView_Day_4_en","features.roomdetails.impl.members_RoomMemberListView_Night_4_en",19907,], +["features.roomdetails.impl.members_RoomMemberListView_Day_5_en","features.roomdetails.impl.members_RoomMemberListView_Night_5_en",0,], +["features.roomdetails.impl.members_RoomMemberListView_Day_6_en","features.roomdetails.impl.members_RoomMemberListView_Night_6_en",19907,], +["features.roomdetails.impl.members_RoomMemberListView_Day_7_en","features.roomdetails.impl.members_RoomMemberListView_Night_7_en",19907,], +["libraries.designsystem.atomic.molecules_RoomMembersCountMolecule_Day_0_en","libraries.designsystem.atomic.molecules_RoomMembersCountMolecule_Night_0_en",0,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_0_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_0_en",19907,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_1_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_1_en",19907,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en",19907,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_3_en",19907,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_4_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_4_en",19907,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_5_en",19907,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_6_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_6_en",19907,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_7_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_7_en",19907,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_8_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_8_en",19907,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_9_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_9_en",0,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Night_0_en",19907,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_0_en",19907,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_1_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_1_en",19907,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_2_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_2_en",19907,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_3_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_3_en",19907,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_4_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_4_en",19907,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_5_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_5_en",19907,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_6_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_6_en",19907,], +["features.createroom.impl.components_RoomPrivacyOption_Day_0_en","features.createroom.impl.components_RoomPrivacyOption_Night_0_en",19907,], +["libraries.roomselect.impl_RoomSelectView_Day_0_en","libraries.roomselect.impl_RoomSelectView_Night_0_en",19907,], +["libraries.roomselect.impl_RoomSelectView_Day_1_en","libraries.roomselect.impl_RoomSelectView_Night_1_en",19907,], +["libraries.roomselect.impl_RoomSelectView_Day_2_en","libraries.roomselect.impl_RoomSelectView_Night_2_en",19907,], +["libraries.roomselect.impl_RoomSelectView_Day_3_en","libraries.roomselect.impl_RoomSelectView_Night_3_en",19907,], +["libraries.roomselect.impl_RoomSelectView_Day_4_en","libraries.roomselect.impl_RoomSelectView_Night_4_en",19907,], +["libraries.roomselect.impl_RoomSelectView_Day_5_en","libraries.roomselect.impl_RoomSelectView_Night_5_en",19907,], +["features.roomlist.impl.components_RoomSummaryPlaceholderRow_Day_0_en","features.roomlist.impl.components_RoomSummaryPlaceholderRow_Night_0_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_0_en","features.roomlist.impl.components_RoomSummaryRow_Night_0_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_10_en","features.roomlist.impl.components_RoomSummaryRow_Night_10_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_11_en","features.roomlist.impl.components_RoomSummaryRow_Night_11_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_12_en","features.roomlist.impl.components_RoomSummaryRow_Night_12_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_13_en","features.roomlist.impl.components_RoomSummaryRow_Night_13_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_14_en","features.roomlist.impl.components_RoomSummaryRow_Night_14_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_15_en","features.roomlist.impl.components_RoomSummaryRow_Night_15_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_16_en","features.roomlist.impl.components_RoomSummaryRow_Night_16_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_17_en","features.roomlist.impl.components_RoomSummaryRow_Night_17_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_18_en","features.roomlist.impl.components_RoomSummaryRow_Night_18_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_19_en","features.roomlist.impl.components_RoomSummaryRow_Night_19_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_1_en","features.roomlist.impl.components_RoomSummaryRow_Night_1_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_20_en","features.roomlist.impl.components_RoomSummaryRow_Night_20_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_21_en","features.roomlist.impl.components_RoomSummaryRow_Night_21_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_22_en","features.roomlist.impl.components_RoomSummaryRow_Night_22_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_23_en","features.roomlist.impl.components_RoomSummaryRow_Night_23_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_24_en","features.roomlist.impl.components_RoomSummaryRow_Night_24_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_25_en","features.roomlist.impl.components_RoomSummaryRow_Night_25_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_26_en","features.roomlist.impl.components_RoomSummaryRow_Night_26_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_27_en","features.roomlist.impl.components_RoomSummaryRow_Night_27_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_28_en","features.roomlist.impl.components_RoomSummaryRow_Night_28_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_29_en","features.roomlist.impl.components_RoomSummaryRow_Night_29_en",19907,], +["features.roomlist.impl.components_RoomSummaryRow_Day_2_en","features.roomlist.impl.components_RoomSummaryRow_Night_2_en",19907,], +["features.roomlist.impl.components_RoomSummaryRow_Day_30_en","features.roomlist.impl.components_RoomSummaryRow_Night_30_en",19907,], +["features.roomlist.impl.components_RoomSummaryRow_Day_31_en","features.roomlist.impl.components_RoomSummaryRow_Night_31_en",19907,], +["features.roomlist.impl.components_RoomSummaryRow_Day_3_en","features.roomlist.impl.components_RoomSummaryRow_Night_3_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_4_en","features.roomlist.impl.components_RoomSummaryRow_Night_4_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_5_en","features.roomlist.impl.components_RoomSummaryRow_Night_5_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_6_en","features.roomlist.impl.components_RoomSummaryRow_Night_6_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_7_en","features.roomlist.impl.components_RoomSummaryRow_Night_7_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_8_en","features.roomlist.impl.components_RoomSummaryRow_Night_8_en",0,], +["features.roomlist.impl.components_RoomSummaryRow_Day_9_en","features.roomlist.impl.components_RoomSummaryRow_Night_9_en",0,], +["appnav.root_RootView_Day_0_en","appnav.root_RootView_Night_0_en",19907,], +["appnav.root_RootView_Day_1_en","appnav.root_RootView_Night_1_en",19907,], +["appnav.root_RootView_Day_2_en","appnav.root_RootView_Night_2_en",19907,], +["libraries.designsystem.atomic.atoms_RoundedIconAtom_Day_0_en","libraries.designsystem.atomic.atoms_RoundedIconAtom_Night_0_en",0,], +["features.verifysession.impl.emoji_SasEmojis_Day_0_en","features.verifysession.impl.emoji_SasEmojis_Night_0_en",19907,], +["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_0_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_0_en",19907,], +["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_1_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_1_en",19907,], +["libraries.designsystem.theme.components_SearchBarActiveNoneQuery_Search views_en","",0,], +["libraries.designsystem.theme.components_SearchBarActiveWithContent_Search views_en","",0,], +["libraries.designsystem.theme.components_SearchBarActiveWithNoResults_Search views_en","",19907,], +["libraries.designsystem.theme.components_SearchBarActiveWithQueryNoBackButton_Search views_en","",0,], +["libraries.designsystem.theme.components_SearchBarActiveWithQuery_Search views_en","",0,], +["libraries.designsystem.theme.components_SearchBarInactive_Search views_en","",0,], +["features.createroom.impl.components_SearchMultipleUsersResultItem_en","",19907,], +["features.createroom.impl.components_SearchSingleUserResultItem_en","",19907,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_0_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_0_en",19907,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_1_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_1_en",19907,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_2_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_2_en",19907,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_3_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_3_en",19907,], +["features.securebackup.impl.enable_SecureBackupEnableView_Day_0_en","features.securebackup.impl.enable_SecureBackupEnableView_Night_0_en",19907,], +["features.securebackup.impl.enable_SecureBackupEnableView_Day_1_en","features.securebackup.impl.enable_SecureBackupEnableView_Night_1_en",19907,], +["features.securebackup.impl.enable_SecureBackupEnableView_Day_2_en","features.securebackup.impl.enable_SecureBackupEnableView_Night_2_en",19907,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_0_en",19907,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_1_en",19907,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_2_en",19907,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_3_en",19907,], +["features.securebackup.impl.root_SecureBackupRootView_Day_0_en","features.securebackup.impl.root_SecureBackupRootView_Night_0_en",19907,], +["features.securebackup.impl.root_SecureBackupRootView_Day_1_en","features.securebackup.impl.root_SecureBackupRootView_Night_1_en",19907,], +["features.securebackup.impl.root_SecureBackupRootView_Day_2_en","features.securebackup.impl.root_SecureBackupRootView_Night_2_en",19907,], +["features.securebackup.impl.root_SecureBackupRootView_Day_3_en","features.securebackup.impl.root_SecureBackupRootView_Night_3_en",19907,], +["features.securebackup.impl.root_SecureBackupRootView_Day_4_en","features.securebackup.impl.root_SecureBackupRootView_Night_4_en",19907,], +["features.securebackup.impl.root_SecureBackupRootView_Day_5_en","features.securebackup.impl.root_SecureBackupRootView_Night_5_en",19907,], +["features.securebackup.impl.root_SecureBackupRootView_Day_6_en","features.securebackup.impl.root_SecureBackupRootView_Night_6_en",19907,], +["features.securebackup.impl.root_SecureBackupRootView_Day_7_en","features.securebackup.impl.root_SecureBackupRootView_Night_7_en",19907,], +["features.securebackup.impl.root_SecureBackupRootView_Day_8_en","features.securebackup.impl.root_SecureBackupRootView_Night_8_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_0_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_1_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_2_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_3_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_4_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_0_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_1_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_2_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_3_en",19907,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_4_en",19907,], +["libraries.matrix.ui.components_SelectedRoom_Day_0_en","libraries.matrix.ui.components_SelectedRoom_Night_0_en",0,], +["libraries.matrix.ui.components_SelectedRoom_Day_1_en","libraries.matrix.ui.components_SelectedRoom_Night_1_en",0,], +["libraries.matrix.ui.components_SelectedUserCannotRemove_Day_0_en","libraries.matrix.ui.components_SelectedUserCannotRemove_Night_0_en",0,], +["libraries.matrix.ui.components_SelectedUser_Day_0_en","libraries.matrix.ui.components_SelectedUser_Night_0_en",0,], +["libraries.matrix.ui.components_SelectedUsersRowList_Day_0_en","libraries.matrix.ui.components_SelectedUsersRowList_Night_0_en",0,], +["libraries.textcomposer.components_SendButton_Day_0_en","libraries.textcomposer.components_SendButton_Night_0_en",0,], +["features.location.impl.send_SendLocationView_Day_0_en","features.location.impl.send_SendLocationView_Night_0_en",19907,], +["features.location.impl.send_SendLocationView_Day_1_en","features.location.impl.send_SendLocationView_Night_1_en",19907,], +["features.location.impl.send_SendLocationView_Day_2_en","features.location.impl.send_SendLocationView_Night_2_en",19907,], +["features.location.impl.send_SendLocationView_Day_3_en","features.location.impl.send_SendLocationView_Night_3_en",19907,], +["features.location.impl.send_SendLocationView_Day_4_en","features.location.impl.send_SendLocationView_Night_4_en",19907,], +["libraries.matrix.ui.messages.sender_SenderName_Day_0_en","libraries.matrix.ui.messages.sender_SenderName_Night_0_en",0,], +["libraries.matrix.ui.messages.sender_SenderName_Day_1_en","libraries.matrix.ui.messages.sender_SenderName_Night_1_en",0,], +["libraries.matrix.ui.messages.sender_SenderName_Day_2_en","libraries.matrix.ui.messages.sender_SenderName_Night_2_en",0,], +["libraries.matrix.ui.messages.sender_SenderName_Day_3_en","libraries.matrix.ui.messages.sender_SenderName_Night_3_en",0,], +["libraries.matrix.ui.messages.sender_SenderName_Day_4_en","libraries.matrix.ui.messages.sender_SenderName_Night_4_en",0,], +["libraries.matrix.ui.messages.sender_SenderName_Day_5_en","libraries.matrix.ui.messages.sender_SenderName_Night_5_en",0,], +["libraries.matrix.ui.messages.sender_SenderName_Day_6_en","libraries.matrix.ui.messages.sender_SenderName_Night_6_en",0,], +["libraries.matrix.ui.messages.sender_SenderName_Day_7_en","libraries.matrix.ui.messages.sender_SenderName_Night_7_en",0,], +["libraries.matrix.ui.messages.sender_SenderName_Day_8_en","libraries.matrix.ui.messages.sender_SenderName_Night_8_en",0,], +["features.lockscreen.impl.setup.biometric_SetupBiometricView_Day_0_en","features.lockscreen.impl.setup.biometric_SetupBiometricView_Night_0_en",19907,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_0_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_0_en",19907,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_1_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_1_en",19907,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_2_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_2_en",19907,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_3_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_3_en",19907,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_4_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_4_en",19907,], +["features.share.impl_ShareView_Day_0_en","features.share.impl_ShareView_Night_0_en",0,], +["features.share.impl_ShareView_Day_1_en","features.share.impl_ShareView_Night_1_en",0,], +["features.share.impl_ShareView_Day_2_en","features.share.impl_ShareView_Night_2_en",0,], +["features.share.impl_ShareView_Day_3_en","features.share.impl_ShareView_Night_3_en",19907,], +["features.messages.impl.actionlist_SheetContent_Day_0_en","features.messages.impl.actionlist_SheetContent_Night_0_en",0,], +["features.messages.impl.timeline.components.reactionsummary_SheetContent_Day_0_en","features.messages.impl.timeline.components.reactionsummary_SheetContent_Night_0_en",0,], +["features.messages.impl.actionlist_SheetContent_Day_10_en","features.messages.impl.actionlist_SheetContent_Night_10_en",19907,], +["features.messages.impl.actionlist_SheetContent_Day_1_en","features.messages.impl.actionlist_SheetContent_Night_1_en",0,], +["features.messages.impl.actionlist_SheetContent_Day_2_en","features.messages.impl.actionlist_SheetContent_Night_2_en",19907,], +["features.messages.impl.actionlist_SheetContent_Day_3_en","features.messages.impl.actionlist_SheetContent_Night_3_en",19907,], +["features.messages.impl.actionlist_SheetContent_Day_4_en","features.messages.impl.actionlist_SheetContent_Night_4_en",19907,], +["features.messages.impl.actionlist_SheetContent_Day_5_en","features.messages.impl.actionlist_SheetContent_Night_5_en",19907,], +["features.messages.impl.actionlist_SheetContent_Day_6_en","features.messages.impl.actionlist_SheetContent_Night_6_en",19907,], +["features.messages.impl.actionlist_SheetContent_Day_7_en","features.messages.impl.actionlist_SheetContent_Night_7_en",19907,], +["features.messages.impl.actionlist_SheetContent_Day_8_en","features.messages.impl.actionlist_SheetContent_Night_8_en",19907,], +["features.messages.impl.actionlist_SheetContent_Day_9_en","features.messages.impl.actionlist_SheetContent_Night_9_en",19907,], +["features.location.impl.show_ShowLocationView_Day_0_en","features.location.impl.show_ShowLocationView_Night_0_en",19907,], +["features.location.impl.show_ShowLocationView_Day_1_en","features.location.impl.show_ShowLocationView_Night_1_en",19907,], +["features.location.impl.show_ShowLocationView_Day_2_en","features.location.impl.show_ShowLocationView_Night_2_en",19907,], +["features.location.impl.show_ShowLocationView_Day_3_en","features.location.impl.show_ShowLocationView_Night_3_en",19907,], +["features.location.impl.show_ShowLocationView_Day_4_en","features.location.impl.show_ShowLocationView_Night_4_en",19907,], +["features.location.impl.show_ShowLocationView_Day_5_en","features.location.impl.show_ShowLocationView_Night_5_en",19907,], +["features.location.impl.show_ShowLocationView_Day_6_en","features.location.impl.show_ShowLocationView_Night_6_en",19907,], +["features.location.impl.show_ShowLocationView_Day_7_en","features.location.impl.show_ShowLocationView_Night_7_en",19907,], +["features.signedout.impl_SignedOutView_Day_0_en","features.signedout.impl_SignedOutView_Night_0_en",19907,], +["libraries.designsystem.components.dialogs_SingleSelectionDialogContent_Dialogs_en","",0,], +["libraries.designsystem.components.dialogs_SingleSelectionDialog_Day_0_en","libraries.designsystem.components.dialogs_SingleSelectionDialog_Night_0_en",0,], +["libraries.designsystem.components.list_SingleSelectionListItemCustomFormattert_Single selection List item - custom formatter_List items_en","",0,], +["libraries.designsystem.components.list_SingleSelectionListItemSelectedInSupportingText_Single selection List item - selection in supporting text_List items_en","",0,], +["libraries.designsystem.components.list_SingleSelectionListItemSelectedInTrailingContent_Single selection List item - selection in trailing content_List items_en","",0,], +["libraries.designsystem.components.list_SingleSelectionListItemUnselectedWithSupportingText_Single selection List item - no selection, supporting text_List items_en","",0,], +["libraries.designsystem.components.list_SingleSelectionListItem_Single selection List item - no selection_List items_en","",0,], +["libraries.designsystem.theme.components_Sliders_Sliders_en","",0,], +["features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Day_0_en","features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Night_0_en",19907,], +["libraries.designsystem.theme.components_SnackbarWithActionAndCloseButton_Snackbar with action and close button_Snackbars_en","",0,], +["libraries.designsystem.theme.components_SnackbarWithActionOnNewLineAndCloseButton_Snackbar with action and close button on new line_Snackbars_en","",0,], +["libraries.designsystem.theme.components_SnackbarWithActionOnNewLine_Snackbar with action on new line_Snackbars_en","",0,], +["libraries.designsystem.theme.components_SnackbarWithAction_Snackbar with action_Snackbars_en","",0,], +["libraries.designsystem.theme.components_Snackbar_Snackbar_Snackbars_en","",0,], +["libraries.designsystem.modifiers_SquareSizeModifierInsideSquare_en","",0,], +["libraries.designsystem.modifiers_SquareSizeModifierLargeHeight_en","",0,], +["libraries.designsystem.modifiers_SquareSizeModifierLargeWidth_en","",0,], +["features.location.api.internal_StaticMapPlaceholder_Day_0_en","features.location.api.internal_StaticMapPlaceholder_Night_0_en",0,], +["features.location.api.internal_StaticMapPlaceholder_Day_1_en","features.location.api.internal_StaticMapPlaceholder_Night_1_en",19907,], +["features.location.api_StaticMapView_Day_0_en","features.location.api_StaticMapView_Night_0_en",0,], +["libraries.designsystem.atomic.pages_SunsetPage_Day_0_en","libraries.designsystem.atomic.pages_SunsetPage_Night_0_en",0,], +["libraries.designsystem.components.button_SuperButton_Day_0_en","libraries.designsystem.components.button_SuperButton_Night_0_en",0,], +["libraries.designsystem.theme.components_Surface_en","",0,], +["libraries.designsystem.theme.components_Switch_Toggles_en","",0,], +["appnav.loggedin_SyncStateView_Day_0_en","appnav.loggedin_SyncStateView_Night_0_en",19907,], +["libraries.designsystem.theme.components_TextButtonLarge_Buttons_en","",0,], +["libraries.designsystem.theme.components_TextButtonMedium_Buttons_en","",0,], +["libraries.designsystem.theme.components_TextButtonSmall_Buttons_en","",0,], +["libraries.textcomposer_TextComposerEdit_Day_0_en","libraries.textcomposer_TextComposerEdit_Night_0_en",19907,], +["libraries.textcomposer_TextComposerFormatting_Day_0_en","libraries.textcomposer_TextComposerFormatting_Night_0_en",19907,], +["libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Night_0_en",19907,], +["libraries.textcomposer_TextComposerLinkDialogCreateLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLink_Night_0_en",19907,], +["libraries.textcomposer_TextComposerLinkDialogEditLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogEditLink_Night_0_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_0_en","libraries.textcomposer_TextComposerReply_Night_0_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_10_en","libraries.textcomposer_TextComposerReply_Night_10_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_11_en","libraries.textcomposer_TextComposerReply_Night_11_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_1_en","libraries.textcomposer_TextComposerReply_Night_1_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_2_en","libraries.textcomposer_TextComposerReply_Night_2_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_3_en","libraries.textcomposer_TextComposerReply_Night_3_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_4_en","libraries.textcomposer_TextComposerReply_Night_4_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_5_en","libraries.textcomposer_TextComposerReply_Night_5_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_6_en","libraries.textcomposer_TextComposerReply_Night_6_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_7_en","libraries.textcomposer_TextComposerReply_Night_7_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_8_en","libraries.textcomposer_TextComposerReply_Night_8_en",19907,], +["libraries.textcomposer_TextComposerReply_Day_9_en","libraries.textcomposer_TextComposerReply_Night_9_en",19907,], +["libraries.textcomposer_TextComposerSimple_Day_0_en","libraries.textcomposer_TextComposerSimple_Night_0_en",19907,], +["libraries.textcomposer_TextComposerVoice_Day_0_en","libraries.textcomposer_TextComposerVoice_Night_0_en",0,], +["libraries.designsystem.theme.components_TextDark_Text_en","",0,], +["libraries.designsystem.theme.components_TextFieldDark_TextFields_en","",0,], +["libraries.designsystem.theme.components_TextFieldLight_TextFields_en","",0,], +["libraries.designsystem.components.list_TextFieldListItemEmpty_Text field List item - empty_List items_en","",0,], +["libraries.designsystem.components.list_TextFieldListItemTextFieldValue_Text field List item - textfieldvalue_List items_en","",0,], +["libraries.designsystem.components.list_TextFieldListItem_Text field List item - text_List items_en","",0,], +["libraries.designsystem.theme.components_TextFieldValueLight_TextFields_en","",0,], +["libraries.designsystem.theme.components_TextFieldValueTextFieldDark_TextFields_en","",0,], +["libraries.textcomposer.components_TextFormatting_Day_0_en","libraries.textcomposer.components_TextFormatting_Night_0_en",0,], +["libraries.designsystem.theme.components_TextLight_Text_en","",0,], +["libraries.designsystem.theme.components.previews_TimePickerHorizontal_DateTime pickers_en","",19907,], +["libraries.designsystem.theme.components.previews_TimePickerVerticalDark_DateTime pickers_en","",19907,], +["libraries.designsystem.theme.components.previews_TimePickerVerticalLight_DateTime pickers_en","",19907,], +["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_0_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_0_en",0,], +["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_1_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_1_en",0,], +["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_2_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_2_en",0,], +["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_3_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_3_en",19907,], +["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_4_en",19907,], +["features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Day_0_en","features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_1_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_2_en",0,], +["features.messages.impl.timeline.components_TimelineItemCallNotifyView_Day_0_en","features.messages.impl.timeline.components_TimelineItemCallNotifyView_Night_0_en",19907,], +["features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Night_0_en",0,], +["features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Day_1_en","features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Night_1_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_0_en",19907,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_1_en",19907,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_2_en",19907,], +["features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Night_0_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Night_0_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowLongSenderName_en","",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_0_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_1_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_2_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_2_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_3_en",19907,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_4_en",19907,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Night_0_en",19907,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_0_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_1_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_2_en","features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_2_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_0_en",19907,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_1_en",19907,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_0_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_1_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_0_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_10_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_10_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_11_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_11_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_1_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_2_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_2_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_3_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_3_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_4_en",19907,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_5_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_5_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_6_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_6_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_7_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_7_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_8_en",19907,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_9_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_9_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventRow_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRow_Night_0_en",0,], +["features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_en","",19907,], +["features.messages.impl.timeline.components.event_TimelineItemFileView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemFileView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemFileView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemFileView_Night_1_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemFileView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemFileView_Night_2_en",0,], +["features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Day_0_en","features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Night_0_en",19907,], +["features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Day_0_en","features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Night_0_en",19907,], +["features.messages.impl.timeline.components.event_TimelineItemImageView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemImageView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemImageView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemImageView_Night_1_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemImageView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemImageView_Night_2_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemInformativeView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemInformativeView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Night_0_en",19907,], +["features.messages.impl.timeline.components.event_TimelineItemLocationView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemLocationView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemLocationView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemLocationView_Night_1_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_0_en",19907,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_1_en",19907,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_2_en",19907,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_3_en",19907,], +["features.messages.impl.timeline.components_TimelineItemReactionsLayout_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsLayout_Night_0_en",19907,], +["features.messages.impl.timeline.components_TimelineItemReactionsViewFew_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewFew_Night_0_en",0,], +["features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Night_0_en",19907,], +["features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Night_0_en",19907,], +["features.messages.impl.timeline.components_TimelineItemReactionsView_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsView_Night_0_en",0,], +["features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Night_0_en",19907,], +["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_0_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_0_en",0,], +["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_1_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_1_en",0,], +["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_2_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_2_en",0,], +["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_3_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_3_en",0,], +["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_4_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_4_en",0,], +["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_5_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_5_en",0,], +["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_6_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_6_en",0,], +["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_7_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_7_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemRedactedView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemRedactedView_Night_0_en",19907,], +["features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Night_0_en",19907,], +["features.messages.impl.timeline.components_TimelineItemStateEventRow_Day_0_en","features.messages.impl.timeline.components_TimelineItemStateEventRow_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemStateView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemStateView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_1_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_2_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemTextView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemTextView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemTextView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemTextView_Night_1_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemTextView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemTextView_Night_2_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemTextView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemTextView_Night_3_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemTextView_Day_4_en","features.messages.impl.timeline.components.event_TimelineItemTextView_Night_4_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemTextView_Day_5_en","features.messages.impl.timeline.components.event_TimelineItemTextView_Night_5_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemUnknownView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemUnknownView_Night_0_en",19907,], +["features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_1_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_2_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_10_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_10_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_11_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_11_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_12_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_12_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_13_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_13_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_14_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_14_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_1_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_2_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_3_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_4_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_4_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_5_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_5_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_6_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_6_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_7_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_7_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_8_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_8_en",0,], +["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_9_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_9_en",0,], +["features.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_Night_0_en",0,], +["features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Day_0_en","features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Night_0_en",0,], +["features.messages.impl.timeline_TimelineView_Day_0_en","features.messages.impl.timeline_TimelineView_Night_0_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_10_en","features.messages.impl.timeline_TimelineView_Night_10_en",0,], +["features.messages.impl.timeline_TimelineView_Day_11_en","features.messages.impl.timeline_TimelineView_Night_11_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_12_en","features.messages.impl.timeline_TimelineView_Night_12_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_13_en","features.messages.impl.timeline_TimelineView_Night_13_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_14_en","features.messages.impl.timeline_TimelineView_Night_14_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_15_en","features.messages.impl.timeline_TimelineView_Night_15_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_16_en","features.messages.impl.timeline_TimelineView_Night_16_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_1_en","features.messages.impl.timeline_TimelineView_Night_1_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_2_en","features.messages.impl.timeline_TimelineView_Night_2_en",0,], +["features.messages.impl.timeline_TimelineView_Day_3_en","features.messages.impl.timeline_TimelineView_Night_3_en",0,], +["features.messages.impl.timeline_TimelineView_Day_4_en","features.messages.impl.timeline_TimelineView_Night_4_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_5_en","features.messages.impl.timeline_TimelineView_Night_5_en",0,], +["features.messages.impl.timeline_TimelineView_Day_6_en","features.messages.impl.timeline_TimelineView_Night_6_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_7_en","features.messages.impl.timeline_TimelineView_Night_7_en",0,], +["features.messages.impl.timeline_TimelineView_Day_8_en","features.messages.impl.timeline_TimelineView_Night_8_en",19907,], +["features.messages.impl.timeline_TimelineView_Day_9_en","features.messages.impl.timeline_TimelineView_Night_9_en",0,], +["libraries.designsystem.theme.components_TopAppBar_App Bars_en","",0,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_0_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_0_en",19907,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_1_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_1_en",19907,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_2_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_2_en",19907,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_3_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_3_en",19907,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_4_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_4_en",19907,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_5_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_5_en",19907,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_6_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_6_en",19907,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_7_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_7_en",19907,], +["features.messages.impl.typing_TypingNotificationView_Day_0_en","features.messages.impl.typing_TypingNotificationView_Night_0_en",0,], +["features.messages.impl.typing_TypingNotificationView_Day_1_en","features.messages.impl.typing_TypingNotificationView_Night_1_en",19907,], +["features.messages.impl.typing_TypingNotificationView_Day_2_en","features.messages.impl.typing_TypingNotificationView_Night_2_en",19907,], +["features.messages.impl.typing_TypingNotificationView_Day_3_en","features.messages.impl.typing_TypingNotificationView_Night_3_en",19907,], +["features.messages.impl.typing_TypingNotificationView_Day_4_en","features.messages.impl.typing_TypingNotificationView_Night_4_en",19907,], +["features.messages.impl.typing_TypingNotificationView_Day_5_en","features.messages.impl.typing_TypingNotificationView_Night_5_en",19907,], +["features.messages.impl.typing_TypingNotificationView_Day_6_en","features.messages.impl.typing_TypingNotificationView_Night_6_en",19907,], +["features.messages.impl.typing_TypingNotificationView_Day_7_en","features.messages.impl.typing_TypingNotificationView_Night_7_en",0,], +["features.messages.impl.typing_TypingNotificationView_Day_8_en","features.messages.impl.typing_TypingNotificationView_Night_8_en",0,], +["libraries.designsystem.atomic.atoms_UnreadIndicatorAtom_Day_0_en","libraries.designsystem.atomic.atoms_UnreadIndicatorAtom_Night_0_en",0,], +["libraries.matrix.ui.components_UnresolvedUserRow_en","",19907,], +["libraries.matrix.ui.components_UnsavedAvatar_Day_0_en","libraries.matrix.ui.components_UnsavedAvatar_Night_0_en",0,], +["libraries.designsystem.components.avatar_UserAvatarColors_Day_0_en","libraries.designsystem.components.avatar_UserAvatarColors_Night_0_en",0,], +["features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Day_0_en","features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Night_0_en",19907,], +["features.createroom.impl.components_UserListView_Day_0_en","features.createroom.impl.components_UserListView_Night_0_en",19907,], +["features.createroom.impl.components_UserListView_Day_1_en","features.createroom.impl.components_UserListView_Night_1_en",19907,], +["features.createroom.impl.components_UserListView_Day_2_en","features.createroom.impl.components_UserListView_Night_2_en",19907,], +["features.createroom.impl.components_UserListView_Day_3_en","features.createroom.impl.components_UserListView_Night_3_en",0,], +["features.createroom.impl.components_UserListView_Day_4_en","features.createroom.impl.components_UserListView_Night_4_en",0,], +["features.createroom.impl.components_UserListView_Day_5_en","features.createroom.impl.components_UserListView_Night_5_en",0,], +["features.createroom.impl.components_UserListView_Day_6_en","features.createroom.impl.components_UserListView_Night_6_en",0,], +["features.createroom.impl.components_UserListView_Day_7_en","features.createroom.impl.components_UserListView_Night_7_en",19907,], +["features.createroom.impl.components_UserListView_Day_8_en","features.createroom.impl.components_UserListView_Night_8_en",0,], +["features.createroom.impl.components_UserListView_Day_9_en","features.createroom.impl.components_UserListView_Night_9_en",19907,], +["features.preferences.impl.user_UserPreferences_Day_0_en","features.preferences.impl.user_UserPreferences_Night_0_en",0,], +["features.preferences.impl.user_UserPreferences_Day_1_en","features.preferences.impl.user_UserPreferences_Night_1_en",0,], +["features.preferences.impl.user_UserPreferences_Day_2_en","features.preferences.impl.user_UserPreferences_Night_2_en",0,], +["features.userprofile.shared_UserProfileHeaderSection_Day_0_en","features.userprofile.shared_UserProfileHeaderSection_Night_0_en",0,], +["features.userprofile.shared_UserProfileView_Day_0_en","features.userprofile.shared_UserProfileView_Night_0_en",19907,], +["features.userprofile.shared_UserProfileView_Day_1_en","features.userprofile.shared_UserProfileView_Night_1_en",19907,], +["features.userprofile.shared_UserProfileView_Day_2_en","features.userprofile.shared_UserProfileView_Night_2_en",19907,], +["features.userprofile.shared_UserProfileView_Day_3_en","features.userprofile.shared_UserProfileView_Night_3_en",19907,], +["features.userprofile.shared_UserProfileView_Day_4_en","features.userprofile.shared_UserProfileView_Night_4_en",19907,], +["features.userprofile.shared_UserProfileView_Day_5_en","features.userprofile.shared_UserProfileView_Night_5_en",19907,], +["features.userprofile.shared_UserProfileView_Day_6_en","features.userprofile.shared_UserProfileView_Night_6_en",19907,], +["features.userprofile.shared_UserProfileView_Day_7_en","features.userprofile.shared_UserProfileView_Night_7_en",19907,], +["features.userprofile.shared_UserProfileView_Day_8_en","features.userprofile.shared_UserProfileView_Night_8_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_0_en","features.verifysession.impl_VerifySelfSessionView_Night_0_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_1_en","features.verifysession.impl_VerifySelfSessionView_Night_1_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_2_en","features.verifysession.impl_VerifySelfSessionView_Night_2_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_3_en","features.verifysession.impl_VerifySelfSessionView_Night_3_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_4_en","features.verifysession.impl_VerifySelfSessionView_Night_4_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_5_en","features.verifysession.impl_VerifySelfSessionView_Night_5_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_6_en","features.verifysession.impl_VerifySelfSessionView_Night_6_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_7_en","features.verifysession.impl_VerifySelfSessionView_Night_7_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_8_en","features.verifysession.impl_VerifySelfSessionView_Night_8_en",19907,], +["features.verifysession.impl_VerifySelfSessionView_Day_9_en","features.verifysession.impl_VerifySelfSessionView_Night_9_en",19907,], +["libraries.designsystem.ruler_VerticalRuler_Day_0_en","libraries.designsystem.ruler_VerticalRuler_Night_0_en",0,], +["features.viewfolder.impl.file_ViewFileView_Day_0_en","features.viewfolder.impl.file_ViewFileView_Night_0_en",0,], +["features.viewfolder.impl.file_ViewFileView_Day_1_en","features.viewfolder.impl.file_ViewFileView_Night_1_en",0,], +["features.viewfolder.impl.file_ViewFileView_Day_2_en","features.viewfolder.impl.file_ViewFileView_Night_2_en",0,], +["features.viewfolder.impl.file_ViewFileView_Day_3_en","features.viewfolder.impl.file_ViewFileView_Night_3_en",0,], +["features.viewfolder.impl.file_ViewFileView_Day_4_en","features.viewfolder.impl.file_ViewFileView_Night_4_en",0,], +["features.viewfolder.impl.file_ViewFileView_Day_5_en","features.viewfolder.impl.file_ViewFileView_Night_5_en",0,], +["features.viewfolder.impl.folder_ViewFolderView_Day_0_en","features.viewfolder.impl.folder_ViewFolderView_Night_0_en",0,], +["features.viewfolder.impl.folder_ViewFolderView_Day_1_en","features.viewfolder.impl.folder_ViewFolderView_Night_1_en",0,], +["libraries.textcomposer.components_VoiceMessageDeleteButton_Day_0_en","libraries.textcomposer.components_VoiceMessageDeleteButton_Night_0_en",0,], +["libraries.textcomposer.components_VoiceMessageRecorderButton_Day_0_en","libraries.textcomposer.components_VoiceMessageRecorderButton_Night_0_en",0,], +["libraries.textcomposer.components_VoiceMessageRecording_Day_0_en","libraries.textcomposer.components_VoiceMessageRecording_Night_0_en",0,], +["libraries.textcomposer.components_VoiceMessage_Day_0_en","libraries.textcomposer.components_VoiceMessage_Night_0_en",0,], +["features.login.impl.screens.waitlistscreen_WaitListView_Day_0_en","features.login.impl.screens.waitlistscreen_WaitListView_Night_0_en",19907,], +["features.login.impl.screens.waitlistscreen_WaitListView_Day_1_en","features.login.impl.screens.waitlistscreen_WaitListView_Night_1_en",19907,], +["features.login.impl.screens.waitlistscreen_WaitListView_Day_2_en","features.login.impl.screens.waitlistscreen_WaitListView_Night_2_en",19907,], +["features.login.impl.screens.waitlistscreen_WaitListView_Day_3_en","features.login.impl.screens.waitlistscreen_WaitListView_Night_3_en",19907,], +["features.login.impl.screens.waitlistscreen_WaitListView_Day_4_en","features.login.impl.screens.waitlistscreen_WaitListView_Night_4_en",19907,], +["libraries.designsystem.components.media_WaveformPlaybackView_Day_0_en","libraries.designsystem.components.media_WaveformPlaybackView_Night_0_en",0,], +["features.ftue.impl.welcome_WelcomeView_Day_0_en","features.ftue.impl.welcome_WelcomeView_Night_0_en",19907,], +["libraries.designsystem.ruler_WithRulers_Day_0_en","libraries.designsystem.ruler_WithRulers_Night_0_en",0,], ]; diff --git a/screenshots/html/script.js b/screenshots/html/script.js index d6b7690532..351e869b75 100644 --- a/screenshots/html/script.js +++ b/screenshots/html/script.js @@ -183,7 +183,7 @@ function getNiceName(name) { for(var i = 0; i < name.length; i++) { if (name[i] === "_") indices.push(i); } - return name.substring(indices[2] + 1, indices[3]); + return name.substring(indices[0] + 1, indices[1]); } function createMissingImageElement() { @@ -276,7 +276,7 @@ function addTable() { } else if(modifiedDayTime >= minModifiedDayTime) { hasTranslatedFiles = true; // Foreign file is the same as the english file, replacing the language - const foreignFile = englishFile.replace("en]", `${dataLanguages[languageIndex]}]`).replace("_S_", "_T_") + const foreignFile = englishFile.substring(0, englishFile.length-2) + dataLanguages[languageIndex]; const fullForeignFile = `${dataLanguages[languageIndex]}/${foreignFile}.png`; td.appendChild(createImageElement(fullForeignFile, modifiedDayTime)); } else { diff --git a/services/analytics/impl/build.gradle.kts b/services/analytics/impl/build.gradle.kts index 4cecbc2c85..a2b3b291e3 100644 --- a/services/analytics/impl/build.gradle.kts +++ b/services/analytics/impl/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } diff --git a/services/apperror/impl/build.gradle.kts b/services/apperror/impl/build.gradle.kts index 285577de9a..b5db8a50c3 100644 --- a/services/apperror/impl/build.gradle.kts +++ b/services/apperror/impl/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) alias(libs.plugins.anvil) } @@ -46,6 +45,4 @@ dependencies { testImplementation(libs.coroutines.test) testImplementation(libs.test.turbine) testImplementation(libs.test.truth) - - ksp(libs.showkase.processor) } diff --git a/services/appnavstate/impl/build.gradle.kts b/services/appnavstate/impl/build.gradle.kts index 4c6973b8da..ccff84f68b 100644 --- a/services/appnavstate/impl/build.gradle.kts +++ b/services/appnavstate/impl/build.gradle.kts @@ -16,7 +16,6 @@ plugins { id("io.element.android-library") - alias(libs.plugins.ksp) alias(libs.plugins.anvil) } diff --git a/settings.gradle.kts b/settings.gradle.kts index b154f4585e..7bb0543c01 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -27,6 +27,13 @@ pluginManagement { dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { + maven { + url = URI("https://jitpack.io") + content { + includeModule("com.github.sergio-sastre.ComposablePreviewScanner", "android") + includeModule("com.github.sergio-sastre.ComposablePreviewScanner", "core") + } + } // Snapshot versions maven { url = URI("https://s01.oss.sonatype.org/content/repositories/snapshots") @@ -64,6 +71,8 @@ rootProject.name = "ElementX" include(":app") include(":appnav") include(":appconfig") +include(":appicon:element") +include(":appicon:enterprise") include(":tests:konsist") include(":tests:uitests") include(":tests:testutils") @@ -87,6 +96,7 @@ fun includeProjects(directory: File, path: String, maxDepth: Int = 1) { } } +includeProjects(File(rootDir, "enterprise"), ":enterprise", maxDepth = 2) includeProjects(File(rootDir, "features"), ":features") includeProjects(File(rootDir, "libraries"), ":libraries") includeProjects(File(rootDir, "services"), ":services") diff --git a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt index f126640149..a34f0282a7 100644 --- a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt @@ -112,6 +112,7 @@ class KonsistClassNameTest { "DBov", "Default", "DataStore", + "Enterprise", "FileExtensionExtractor", "KeyStore", "Matrix", diff --git a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistLicenseTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistLicenseTest.kt new file mode 100644 index 0000000000..e6cbf9ca14 --- /dev/null +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistLicenseTest.kt @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.tests.konsist + +import com.lemonappdev.konsist.api.Konsist +import com.lemonappdev.konsist.api.verify.assertTrue +import org.junit.Test + +class KonsistLicenseTest { + private val publicLicense = """ + /\* + (?:.*\n)* \* Copyright \(c\) 20\d\d New Vector Ltd + (?:.*\n)* \* + \* Licensed under the Apache License, Version 2\.0 \(the "License"\); + \* you may not use this file except in compliance with the License\. + \* You may obtain a copy of the License at + \* + \* {5}https?://www\.apache\.org/licenses/LICENSE-2\.0 + \* + \* Unless required by applicable law or agreed to in writing, software + \* distributed under the License is distributed on an "AS IS" BASIS, + \* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\. + \* See the License for the specific language governing permissions and + \* limitations under the License\. + \*/ + """.trimIndent().toRegex() + + private val enterpriseLicense = """ + /\* + \* © 20\d\d New Vector Limited, Element Software SARL, Element Software Inc\., + \* and Element Software GmbH \(the "Element Group"\) only make this file available + \* under a proprietary license model\. + \* + \* Without a proprietary license with us, you cannot use this file\. The terms of + \* the proprietary license agreement between you and any member of the Element Group + \* shall always apply to your use of this file\. Unauthorised use, copying, distribution, + \* or modification of this file, via any medium, is strictly prohibited\. + \* + \* For details about the licensing terms, you must either visit our website or contact + \* a member of our sales team\. + \*/ + """.trimIndent().toRegex() + + @Test + fun `assert that FOSS files have the correct license header`() { + Konsist + .scopeFromProject() + .files + .filter { + it.path.contains("/enterprise/features").not() && + it.nameWithExtension != "locales.kt" && + it.name.startsWith("Template ").not() + } + .assertTrue { + publicLicense.containsMatchIn(it.text) + } + } + + @Test + fun `assert that Enterprise files have the correct license header`() { + Konsist + .scopeFromProject() + .files + .filter { + it.path.contains("/enterprise/features") + } + .assertTrue { + enterpriseLicense.containsMatchIn(it.text) + } + } +} diff --git a/tests/testutils/build.gradle.kts b/tests/testutils/build.gradle.kts index 36449b1712..fdba80c1b9 100644 --- a/tests/testutils/build.gradle.kts +++ b/tests/testutils/build.gradle.kts @@ -15,7 +15,6 @@ */ plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) } android { diff --git a/tests/uitests/build.gradle.kts b/tests/uitests/build.gradle.kts index b5d0d4607e..e82d27226f 100644 --- a/tests/uitests/build.gradle.kts +++ b/tests/uitests/build.gradle.kts @@ -20,7 +20,6 @@ import extension.allServicesImpl plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) alias(libs.plugins.paparazzi) } @@ -40,10 +39,6 @@ tasks.withType { } dependencies { - testImplementation(libs.test.junit) - testImplementation(libs.test.parameter.injector) - testImplementation(projects.libraries.designsystem) - // Paparazzi 1.3.2 workaround (see https://github.com/cashapp/paparazzi/blob/master/CHANGELOG.md#132---2024-01-13) constraints.add("testImplementation", "com.google.guava:guava") { attributes { @@ -58,9 +53,6 @@ dependencies { ) } - ksp(libs.showkase.processor) - kspTest(libs.showkase.processor) - implementation(libs.showkase) // TODO There is a Resources.NotFoundException maybe due to the mipmap, even if we have @@ -70,4 +62,11 @@ dependencies { allLibrariesImpl() allServicesImpl() allFeaturesImpl(rootDir, logger) + implementation(projects.appicon.element) + implementation(projects.appicon.enterprise) + + testImplementation(libs.test.junit) + testImplementation(libs.test.parameter.injector) + testImplementation(projects.libraries.designsystem) + testImplementation(libs.test.composable.preview.scanner) } diff --git a/tests/uitests/src/main/kotlin/ui/ElementXShowkaseRootModule.kt b/tests/uitests/src/main/kotlin/ui/ElementXShowkaseRootModule.kt deleted file mode 100644 index 6e162a0d37..0000000000 --- a/tests/uitests/src/main/kotlin/ui/ElementXShowkaseRootModule.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2022 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import com.airbnb.android.showkase.annotation.ShowkaseRoot -import com.airbnb.android.showkase.annotation.ShowkaseRootModule - -@ShowkaseRoot -class ElementXShowkaseRootModule : ShowkaseRootModule diff --git a/tests/uitests/src/main/kotlin/ui/ShowkaseNavigation.kt b/tests/uitests/src/main/kotlin/ui/ShowkaseNavigation.kt deleted file mode 100644 index 5fbdfd4895..0000000000 --- a/tests/uitests/src/main/kotlin/ui/ShowkaseNavigation.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2022 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import android.app.Activity -import android.content.Intent -import com.airbnb.android.showkase.ui.ShowkaseBrowserActivity - -fun openShowkase(activity: Activity) { - val intent = Intent(activity, ShowkaseBrowserActivity::class.java) - intent.putExtra( - "SHOWKASE_ROOT_MODULE", - "io.element.android.libraries.designsystem.showkase.DesignSystemShowkaseRootModule" - ) - activity.startActivity(intent) -} diff --git a/tests/uitests/src/test/kotlin/base/BaseDeviceConfig.kt b/tests/uitests/src/test/kotlin/base/BaseDeviceConfig.kt new file mode 100644 index 0000000000..be1e83d172 --- /dev/null +++ b/tests/uitests/src/test/kotlin/base/BaseDeviceConfig.kt @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2022 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package base + +import app.cash.paparazzi.DeviceConfig + +enum class BaseDeviceConfig( + val deviceConfig: DeviceConfig, +) { + NEXUS_5(DeviceConfig.NEXUS_5), + // PIXEL_C(DeviceConfig.PIXEL_C), +} diff --git a/tests/uitests/src/test/kotlin/base/ComposablePreviewProvider.kt b/tests/uitests/src/test/kotlin/base/ComposablePreviewProvider.kt new file mode 100644 index 0000000000..a35d863671 --- /dev/null +++ b/tests/uitests/src/test/kotlin/base/ComposablePreviewProvider.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress("DEPRECATION") + +package base + +import com.google.testing.junit.testparameterinjector.TestParameter +import sergio.sastre.composable.preview.scanner.android.AndroidComposablePreviewScanner +import sergio.sastre.composable.preview.scanner.android.AndroidPreviewInfo +import sergio.sastre.composable.preview.scanner.core.preview.ComposablePreview + +object ComposablePreviewProvider : TestParameter.TestParameterValuesProvider { + private val values: List>> by lazy { + AndroidComposablePreviewScanner() + .scanPackageTrees( + "io.element.android.features", + "io.element.android.libraries", + "io.element.android.services", + "io.element.android.appicon", + "io.element.android.appnav", + "io.element.android.x", + // Make sure we don't import Compound previews by mistake + ) + .getPreviews() + .withIndex() + .toList() + } + + override fun provideValues(): List>> = values +} + +object Shard1ComposablePreviewProvider : TestParameter.TestParameterValuesProvider { + override fun provideValues(): List> = + ComposablePreviewProvider.provideValues().filter { it.index % 4 == 0 }.map { it.value } +} + +object Shard2ComposablePreviewProvider : TestParameter.TestParameterValuesProvider { + override fun provideValues(): List> = + ComposablePreviewProvider.provideValues().filter { it.index % 4 == 1 }.map { it.value } +} + +object Shard3ComposablePreviewProvider : TestParameter.TestParameterValuesProvider { + override fun provideValues(): List> = + ComposablePreviewProvider.provideValues().filter { it.index % 4 == 2 }.map { it.value } +} + +object Shard4ComposablePreviewProvider : TestParameter.TestParameterValuesProvider { + override fun provideValues(): List> = + ComposablePreviewProvider.provideValues().filter { it.index % 4 == 3 }.map { it.value } +} diff --git a/tests/uitests/src/test/kotlin/base/ScreenshotTest.kt b/tests/uitests/src/test/kotlin/base/ScreenshotTest.kt new file mode 100644 index 0000000000..2a844ec84b --- /dev/null +++ b/tests/uitests/src/test/kotlin/base/ScreenshotTest.kt @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package base + +import android.content.res.Configuration +import android.os.LocaleList +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalConfiguration +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.platform.LocalInspectionMode +import androidx.compose.ui.unit.Density +import app.cash.paparazzi.DeviceConfig +import app.cash.paparazzi.Paparazzi +import app.cash.paparazzi.TestName +import com.android.resources.NightMode +import io.element.android.compound.theme.ElementTheme +import sergio.sastre.composable.preview.scanner.android.AndroidPreviewInfo +import sergio.sastre.composable.preview.scanner.core.preview.ComposablePreview +import java.util.Locale + +object ScreenshotTest { + val defaultDeviceConfig = BaseDeviceConfig.NEXUS_5.deviceConfig + + fun runTest( + paparazzi: Paparazzi, + preview: ComposablePreview, + localeStr: String, + ) { + val locale = localeStr.toLocale() + // Needed for regional settings, as first day of week + Locale.setDefault(locale) + + paparazzi.fixScreenshotName(preview, localeStr) + paparazzi.snapshot { + CompositionLocalProvider( + LocalInspectionMode provides true, + LocalDensity provides Density( + density = LocalDensity.current.density, + fontScale = 1.0f, + ), + LocalConfiguration provides Configuration().apply { + setLocales(LocaleList(locale)) + uiMode = preview.previewInfo.uiMode + }, + ) { + ElementTheme { + Box( + modifier = Modifier + .background(MaterialTheme.colorScheme.background) + ) { + preview() + } + } + } + } + } +} + +private val testNameField = Paparazzi::class.java.getDeclaredField("testName").apply { + isAccessible = true +} + +private fun Paparazzi.fixScreenshotName(preview: ComposablePreview, locale: String) { + val id = listOf(createScreenshotIdFor(preview), locale) + .filter { it.isNotEmpty() } + .joinToString("_") + val packageName = preview.declaringClass + // Remove common prefix + .replace("io.element.android.", "") + .split(".") + // Remove class name + .dropLast(1) + .joinToString(".") + val testName = TestName( + packageName = packageName, + className = preview.methodName.replace("Preview", ""), + methodName = id + ) + testNameField.set(this, testName) +} + +private fun String.toLocale(): Locale { + return when (this) { + "en" -> Locale.US + "fr" -> Locale.FRANCE + "de" -> Locale.GERMAN + else -> Locale.Builder().setLanguage(this).build() + } +} + +fun createScreenshotIdFor(preview: ComposablePreview) = buildList { + // `name` here can be `Day`, `Night`, or nothing at all + if (preview.previewInfo.name.isNotEmpty()) { + add(preview.previewInfo.name) + } + if (preview.previewInfo.group.isNotEmpty()) { + add(preview.previewInfo.group) + } + // If it's a day/night preview, we should add an index to be consistent even if there is only version of this composable + val needsIndex = preview.previewInfo.name == "Day" || preview.previewInfo.name == "Night" + if (preview.previewIndex != null || needsIndex) { + add((preview.previewIndex ?: 0).toString()) + } +}.joinToString("_") + +object PaparazziPreviewRule { + fun createFor(preview: ComposablePreview, locale: String, deviceConfig: DeviceConfig = ScreenshotTest.defaultDeviceConfig): Paparazzi { + val densityScale = deviceConfig.density.dpiValue / 160f + val customScreenHeight = preview.previewInfo.heightDp.takeIf { it >= 0 }?.let { it * densityScale }?.toInt() + return Paparazzi( + deviceConfig = deviceConfig.copy( + nightMode = when (preview.previewInfo.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES) { + true -> NightMode.NIGHT + false -> NightMode.NOTNIGHT + }, + locale = locale, + softButtons = false, + screenHeight = customScreenHeight ?: deviceConfig.screenHeight, + ), + maxPercentDifference = 0.01 + ) + } +} diff --git a/tests/uitests/src/test/kotlin/translations/TranslationsScreenshotTest.kt b/tests/uitests/src/test/kotlin/translations/TranslationsScreenshotTest.kt new file mode 100644 index 0000000000..438f1e7226 --- /dev/null +++ b/tests/uitests/src/test/kotlin/translations/TranslationsScreenshotTest.kt @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package translations + +import android.content.res.Configuration +import base.ComposablePreviewProvider +import base.PaparazziPreviewRule +import base.ScreenshotTest +import com.google.testing.junit.testparameterinjector.TestParameter +import com.google.testing.junit.testparameterinjector.TestParameterInjector +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import sergio.sastre.composable.preview.scanner.android.AndroidPreviewInfo +import sergio.sastre.composable.preview.scanner.core.preview.ComposablePreview + +/** + * Test that takes a preview and a locale and runs a screenshot test on it. + */ +@RunWith(TestParameterInjector::class) +class TranslationsScreenshotTest( + @TestParameter(valuesProvider = ComposablePreviewProvider::class) + val indexedPreview: IndexedValue>, + @TestParameter(value = ["de"]) + val localeStr: String, +) { + @get:Rule + val paparazziRule = PaparazziPreviewRule.createFor(indexedPreview.value, locale = localeStr) + + @Test + fun snapshot() { + val (_, preview) = indexedPreview + // Skip for dark mode screenshots + if (preview.previewInfo.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES) { + return + } + // Skip for design system screenshots + if (preview.previewInfo.name.startsWith("io.element.android.libraries.designsystem")) { + return + } + ScreenshotTest.runTest(paparazzi = paparazziRule, preview = preview, localeStr = localeStr) + } +} diff --git a/tests/uitests/src/test/kotlin/ui/BaseDeviceConfig.kt b/tests/uitests/src/test/kotlin/ui/BaseDeviceConfig.kt deleted file mode 100644 index 8e9fd9879e..0000000000 --- a/tests/uitests/src/test/kotlin/ui/BaseDeviceConfig.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2022 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import app.cash.paparazzi.DeviceConfig - -enum class BaseDeviceConfig( - val deviceConfig: DeviceConfig, -) { - NEXUS_5(DeviceConfig.NEXUS_5), - // PIXEL_C(DeviceConfig.PIXEL_C), -} diff --git a/tests/uitests/src/test/kotlin/ui/ColorTestPreview.kt b/tests/uitests/src/test/kotlin/ui/ColorTestPreview.kt deleted file mode 100644 index 31bd79fd31..0000000000 --- a/tests/uitests/src/test/kotlin/ui/ColorTestPreview.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2022 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import com.airbnb.android.showkase.models.ShowkaseBrowserColor - -class ColorTestPreview( - private val showkaseBrowserColor: ShowkaseBrowserColor -) : TestPreview { - @Composable - override fun Content() { - Box( - modifier = Modifier - .fillMaxWidth() - .height(250.dp) - .background(showkaseBrowserColor.color) - ) - } - - override val name: String = showkaseBrowserColor.colorName - - override fun toString(): String = "Color_${showkaseBrowserColor.colorGroup}_${showkaseBrowserColor.colorName}" -} diff --git a/tests/uitests/src/test/kotlin/ui/ComponentTestPreview.kt b/tests/uitests/src/test/kotlin/ui/ComponentTestPreview.kt deleted file mode 100644 index ddb730f2fc..0000000000 --- a/tests/uitests/src/test/kotlin/ui/ComponentTestPreview.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2022 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import androidx.compose.runtime.Composable -import androidx.compose.ui.unit.Dp -import com.airbnb.android.showkase.models.ShowkaseBrowserComponent - -class ComponentTestPreview( - private val showkaseBrowserComponent: ShowkaseBrowserComponent -) : TestPreview { - @Composable - override fun Content() = showkaseBrowserComponent.component() - - override val name: String = showkaseBrowserComponent.componentName - - override fun customHeightDp(): Dp? { - return showkaseBrowserComponent.heightDp?.let { Dp(it.toFloat()) } - } - - override fun toString(): String = showkaseBrowserComponent.componentKey - // Strip common package beginning - .replace("io.element.android.features.", "f.") - .replace("io.element.android.libraries.", "l.") - .replace("io.element.android.", "") - // Reduce default group (if present) - .replace("_DefaultGroup_", "_") - // No need to include `Preview` suffix of function name - .replace("Preview_", "_") - // Also for preview annotated with @ElementPreview - .replace("Preview-", "-") -} diff --git a/tests/uitests/src/test/kotlin/ui/PreviewProvider.kt b/tests/uitests/src/test/kotlin/ui/PreviewProvider.kt deleted file mode 100644 index c316dd8318..0000000000 --- a/tests/uitests/src/test/kotlin/ui/PreviewProvider.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2024 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import com.airbnb.android.showkase.models.Showkase -import com.google.testing.junit.testparameterinjector.TestParameterValuesProvider - -object PreviewProvider : TestParameterValuesProvider() { - override fun provideValues(context: Context): List { - val metadata = Showkase.getMetadata() - val components = metadata.componentList.map(::ComponentTestPreview) - val colors = metadata.colorList.map(::ColorTestPreview) - val typography = metadata.typographyList.map(::TypographyTestPreview) - - return (components + colors + typography).filter { !it.toString().contains("compound") } - } -} diff --git a/tests/uitests/src/test/kotlin/ui/PreviewShard1Test.kt b/tests/uitests/src/test/kotlin/ui/PreviewShard1Test.kt new file mode 100644 index 0000000000..d9d16e5d3e --- /dev/null +++ b/tests/uitests/src/test/kotlin/ui/PreviewShard1Test.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ui + +import base.PaparazziPreviewRule +import base.ScreenshotTest +import base.Shard1ComposablePreviewProvider +import com.google.testing.junit.testparameterinjector.TestParameter +import com.google.testing.junit.testparameterinjector.TestParameterInjector +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import sergio.sastre.composable.preview.scanner.android.AndroidPreviewInfo +import sergio.sastre.composable.preview.scanner.core.preview.ComposablePreview + +/** + * Test that takes a preview and runs a screenshot test on it. + * It uses a sharded preview provider so multiple 'shards' can run in parallel, optimizing CPU and time usage. + */ +@RunWith(TestParameterInjector::class) +class PreviewShard1Test( + @TestParameter(valuesProvider = Shard1ComposablePreviewProvider::class) + val preview: ComposablePreview, +) { + @get:Rule + val paparazziRule = PaparazziPreviewRule.createFor(preview, locale = "en") + + @Test + fun snapshot() { + ScreenshotTest.runTest(paparazzi = paparazziRule, preview = preview, localeStr = "en") + } +} diff --git a/tests/uitests/src/test/kotlin/ui/PreviewShard2Test.kt b/tests/uitests/src/test/kotlin/ui/PreviewShard2Test.kt new file mode 100644 index 0000000000..f49b57bfba --- /dev/null +++ b/tests/uitests/src/test/kotlin/ui/PreviewShard2Test.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ui + +import base.PaparazziPreviewRule +import base.ScreenshotTest +import base.Shard2ComposablePreviewProvider +import com.google.testing.junit.testparameterinjector.TestParameter +import com.google.testing.junit.testparameterinjector.TestParameterInjector +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import sergio.sastre.composable.preview.scanner.android.AndroidPreviewInfo +import sergio.sastre.composable.preview.scanner.core.preview.ComposablePreview + +/** + * Test that takes a preview and runs a screenshot test on it. + * It uses a sharded preview provider so multiple 'shards' can run in parallel, optimizing CPU and time usage. + */ +@RunWith(TestParameterInjector::class) +class PreviewShard2Test( + @TestParameter(valuesProvider = Shard2ComposablePreviewProvider::class) + val preview: ComposablePreview, +) { + @get:Rule + val paparazziRule = PaparazziPreviewRule.createFor(preview, locale = "en") + + @Test + fun snapshot() { + ScreenshotTest.runTest(paparazzi = paparazziRule, preview = preview, localeStr = "en") + } +} diff --git a/tests/uitests/src/test/kotlin/ui/PreviewShard3Test.kt b/tests/uitests/src/test/kotlin/ui/PreviewShard3Test.kt new file mode 100644 index 0000000000..d36b6c6869 --- /dev/null +++ b/tests/uitests/src/test/kotlin/ui/PreviewShard3Test.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ui + +import base.PaparazziPreviewRule +import base.ScreenshotTest +import base.Shard3ComposablePreviewProvider +import com.google.testing.junit.testparameterinjector.TestParameter +import com.google.testing.junit.testparameterinjector.TestParameterInjector +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import sergio.sastre.composable.preview.scanner.android.AndroidPreviewInfo +import sergio.sastre.composable.preview.scanner.core.preview.ComposablePreview + +/** + * Test that takes a preview and runs a screenshot test on it. + * It uses a sharded preview provider so multiple 'shards' can run in parallel, optimizing CPU and time usage. + */ +@RunWith(TestParameterInjector::class) +class PreviewShard3Test( + @TestParameter(valuesProvider = Shard3ComposablePreviewProvider::class) + val preview: ComposablePreview, +) { + @get:Rule + val paparazziRule = PaparazziPreviewRule.createFor(preview, locale = "en") + + @Test + fun snapshot() { + ScreenshotTest.runTest(paparazzi = paparazziRule, preview = preview, localeStr = "en") + } +} diff --git a/tests/uitests/src/test/kotlin/ui/PreviewShard4Test.kt b/tests/uitests/src/test/kotlin/ui/PreviewShard4Test.kt new file mode 100644 index 0000000000..2eb4d41d89 --- /dev/null +++ b/tests/uitests/src/test/kotlin/ui/PreviewShard4Test.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ui + +import base.PaparazziPreviewRule +import base.ScreenshotTest +import base.Shard4ComposablePreviewProvider +import com.google.testing.junit.testparameterinjector.TestParameter +import com.google.testing.junit.testparameterinjector.TestParameterInjector +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import sergio.sastre.composable.preview.scanner.android.AndroidPreviewInfo +import sergio.sastre.composable.preview.scanner.core.preview.ComposablePreview + +/** + * Test that takes a preview and runs a screenshot test on it. + * It uses a sharded preview provider so multiple 'shards' can run in parallel, optimizing CPU and time usage. + */ +@RunWith(TestParameterInjector::class) +class PreviewShard4Test( + @TestParameter(valuesProvider = Shard4ComposablePreviewProvider::class) + val preview: ComposablePreview, +) { + @get:Rule + val paparazziRule = PaparazziPreviewRule.createFor(preview, locale = "en") + + @Test + fun snapshot() { + ScreenshotTest.runTest(paparazzi = paparazziRule, preview = preview, localeStr = "en") + } +} diff --git a/tests/uitests/src/test/kotlin/ui/S.kt b/tests/uitests/src/test/kotlin/ui/S.kt deleted file mode 100644 index a29ac963cd..0000000000 --- a/tests/uitests/src/test/kotlin/ui/S.kt +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * Copyright (c) 2022 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import com.google.testing.junit.testparameterinjector.TestParameter -import com.google.testing.junit.testparameterinjector.TestParameterInjector -import org.junit.Test -import org.junit.runner.RunWith - -/** - * Screenshot test for the English version only. - */ -@RunWith(TestParameterInjector::class) -class S : ScreenshotTest() { - /** - * *Note*: keep the method name as short as possible to get shorter filename for generated screenshot. - * Long name was preview_test. - */ - @Test - fun t( - @TestParameter(valuesProvider = PreviewProvider::class) componentTestPreview: TestPreview, - @TestParameter baseDeviceConfig: BaseDeviceConfig, - @TestParameter(value = ["1.0"]) fontScale: Float, - // Need to keep the TestParameter to have filename including the language. - @TestParameter(value = ["en"]) localeStr: String, - ) { - doTest( - componentTestPreview = componentTestPreview, - baseDeviceConfig = baseDeviceConfig, - fontScale = fontScale, - localeStr = localeStr, - ) - } -} diff --git a/tests/uitests/src/test/kotlin/ui/ScreenshotTest.kt b/tests/uitests/src/test/kotlin/ui/ScreenshotTest.kt deleted file mode 100644 index e079c84e55..0000000000 --- a/tests/uitests/src/test/kotlin/ui/ScreenshotTest.kt +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) 2024 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import android.content.res.Configuration -import android.os.LocaleList -import androidx.activity.OnBackPressedDispatcher -import androidx.activity.OnBackPressedDispatcherOwner -import androidx.activity.compose.LocalOnBackPressedDispatcherOwner -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalConfiguration -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.platform.LocalInspectionMode -import androidx.compose.ui.platform.LocalLifecycleOwner -import androidx.compose.ui.unit.Density -import androidx.lifecycle.Lifecycle -import app.cash.paparazzi.Paparazzi -import app.cash.paparazzi.detectEnvironment -import com.android.ide.common.rendering.api.SessionParams -import com.android.resources.NightMode -import io.element.android.compound.theme.ElementTheme -import org.junit.Rule -import java.util.Locale - -/** - * BMA: Inspired from https://github.com/airbnb/Showkase/blob/master/showkase-screenshot-testing-paparazzi-sample/src/test/java/com/airbnb/android/showkase/screenshot/testing/paparazzi/sample/PaparazziSampleScreenshotTest.kt - * - * Credit to Alex Vanyo for creating this sample in the Now In Android app by Google. - * PR here - https://github.com/android/nowinandroid/pull/101. Modified the test from that PR to - * my own needs for this sample. - * - * *Note*: keep the class name as short as possible to get shorter filename for generated screenshot. - * Long name was ScreenshotTest. - */ -open class ScreenshotTest { - @get:Rule - val paparazzi = Paparazzi( - environment = detectEnvironment(), - maxPercentDifference = 0.01, - renderingMode = SessionParams.RenderingMode.NORMAL, - ) - - protected fun doTest( - componentTestPreview: TestPreview, - baseDeviceConfig: BaseDeviceConfig, - fontScale: Float, - localeStr: String, - ) { - val locale = localeStr.toLocale() - Locale.setDefault(locale) // Needed for regional settings, as first day of week - val densityScale = baseDeviceConfig.deviceConfig.density.dpiValue / 160f - val customScreenHeight = componentTestPreview.customHeightDp()?.value?.let { it * densityScale }?.toInt() - paparazzi.unsafeUpdateConfig( - deviceConfig = baseDeviceConfig.deviceConfig.copy( - softButtons = false, - locale = localeStr, - nightMode = componentTestPreview.isNightMode().let { - when (it) { - true -> NightMode.NIGHT - false -> NightMode.NOTNIGHT - } - }, - screenHeight = customScreenHeight ?: baseDeviceConfig.deviceConfig.screenHeight, - ), - ) - paparazzi.snapshot { - val lifecycleOwner = LocalLifecycleOwner.current - CompositionLocalProvider( - LocalInspectionMode provides true, - LocalDensity provides Density( - density = LocalDensity.current.density, - fontScale = fontScale - ), - LocalConfiguration provides Configuration().apply { - setLocales(LocaleList(locale)) - uiMode = when (componentTestPreview.isNightMode()) { - true -> Configuration.UI_MODE_NIGHT_YES - false -> Configuration.UI_MODE_NIGHT_NO - } - }, - // Needed so that UI that uses it don't crash during screenshot tests - LocalOnBackPressedDispatcherOwner provides object : OnBackPressedDispatcherOwner { - override val lifecycle: Lifecycle get() = lifecycleOwner.lifecycle - override val onBackPressedDispatcher: OnBackPressedDispatcher get() = OnBackPressedDispatcher() - } - ) { - ElementTheme { - Box( - modifier = Modifier - .background(MaterialTheme.colorScheme.background) - ) { - componentTestPreview.Content() - } - } - } - } - } -} - -private fun String.toLocale(): Locale { - return when (this) { - "en" -> Locale.US - "fr" -> Locale.FRANCE - "de" -> Locale.GERMAN - else -> Locale.Builder().setLanguage(this).build() - } -} diff --git a/tests/uitests/src/test/kotlin/ui/T.kt b/tests/uitests/src/test/kotlin/ui/T.kt deleted file mode 100644 index 8f67f99a97..0000000000 --- a/tests/uitests/src/test/kotlin/ui/T.kt +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2024 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import com.google.testing.junit.testparameterinjector.TestParameter -import com.google.testing.junit.testparameterinjector.TestParameterInjector -import org.junit.Test -import org.junit.runner.RunWith - -/** - * Screenshot test for the Locale other then English. - */ -@RunWith(TestParameterInjector::class) -class T : ScreenshotTest() { - /** - * *Note*: keep the method name as short as possible to get shorter filename for generated screenshot. - * Long name was preview_test. - */ - @SuppressWarnings("MemberNameEqualsClassName") - @Test - fun t( - @TestParameter(valuesProvider = PreviewProvider::class) componentTestPreview: TestPreview, - @TestParameter baseDeviceConfig: BaseDeviceConfig, - @TestParameter(value = ["1.0"]) fontScale: Float, - @TestParameter(value = ["de"]) localeStr: String, - ) { - // Only test ComponentTestPreview, and only with the light theme - if (componentTestPreview.isNightMode() || componentTestPreview !is ComponentTestPreview) { - return - } - doTest( - componentTestPreview = componentTestPreview, - baseDeviceConfig = baseDeviceConfig, - fontScale = fontScale, - localeStr = localeStr, - ) - } -} diff --git a/tests/uitests/src/test/kotlin/ui/TestPreview.kt b/tests/uitests/src/test/kotlin/ui/TestPreview.kt deleted file mode 100644 index 9238607dc5..0000000000 --- a/tests/uitests/src/test/kotlin/ui/TestPreview.kt +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2022 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import androidx.compose.runtime.Composable -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.Dp -import com.airbnb.android.showkase.models.ShowkaseElementsMetadata -import io.element.android.libraries.designsystem.preview.NIGHT_MODE_NAME - -interface TestPreview { - @Composable - fun Content() - - val name: String - - fun customHeightDp(): Dp? = null -} - -/** - * Showkase doesn't put the [Preview.uiMode] parameter in its [ShowkaseElementsMetadata] - * so we have to encode the night mode bit in a preview's name. - */ -fun TestPreview.isNightMode(): Boolean { - // Dark mode previews have name "N" so their component name contains "- N" - return this.name.contains("- $NIGHT_MODE_NAME") -} diff --git a/tests/uitests/src/test/kotlin/ui/TypographyTestPreview.kt b/tests/uitests/src/test/kotlin/ui/TypographyTestPreview.kt deleted file mode 100644 index 461e4aeb81..0000000000 --- a/tests/uitests/src/test/kotlin/ui/TypographyTestPreview.kt +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2022 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ui - -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.text.BasicText -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import com.airbnb.android.showkase.models.ShowkaseBrowserTypography -import com.airbnb.android.showkase.ui.padding4x -import java.util.Locale - -class TypographyTestPreview( - private val showkaseBrowserTypography: ShowkaseBrowserTypography -) : TestPreview { - @Composable - override fun Content() { - BasicText( - text = showkaseBrowserTypography.typographyName.replaceFirstChar { - it.titlecase(Locale.getDefault()) - }, - modifier = Modifier - .fillMaxWidth() - .padding(padding4x), - style = showkaseBrowserTypography.textStyle.copy( - color = MaterialTheme.colorScheme.onBackground - ) - ) - } - - override val name: String = showkaseBrowserTypography.typographyName - - override fun toString(): String = "Typo_${showkaseBrowserTypography.typographyGroup}_${showkaseBrowserTypography.typographyName}" -} diff --git a/tests/uitests/src/test/snapshots/images/appicon.element_Icon_en.png b/tests/uitests/src/test/snapshots/images/appicon.element_Icon_en.png new file mode 100644 index 0000000000..97ef3ac651 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/appicon.element_Icon_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f43597d36fd123dc4ec478ed8ddc3160d383881623d613b8ab8045f042b80cb +size 44846 diff --git a/tests/uitests/src/test/snapshots/images/appicon.element_MonochromeIcon_en.png b/tests/uitests/src/test/snapshots/images/appicon.element_MonochromeIcon_en.png new file mode 100644 index 0000000000..6646dc06ba --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/appicon.element_MonochromeIcon_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09a5771a54ac2f2aa538fc86d33608a53f18126484547797bc2932b1a329eb83 +size 7170 diff --git a/tests/uitests/src/test/snapshots/images/appicon.element_RoundIcon_en.png b/tests/uitests/src/test/snapshots/images/appicon.element_RoundIcon_en.png new file mode 100644 index 0000000000..5811dfb607 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/appicon.element_RoundIcon_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74af6c3ed723f027bb38b2fd7c4b0441ff26149abb587058bd2bb5be9adbe63b +size 40692 diff --git a/tests/uitests/src/test/snapshots/images/appicon.enterprise_Icon_en.png b/tests/uitests/src/test/snapshots/images/appicon.enterprise_Icon_en.png new file mode 100644 index 0000000000..1032784bd9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/appicon.enterprise_Icon_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fda6dfc8c57df5456535a8ec33f78830beaab61cc27ba4119e9576c5d641023b +size 47856 diff --git a/tests/uitests/src/test/snapshots/images/appicon.enterprise_RoundIcon_en.png b/tests/uitests/src/test/snapshots/images/appicon.enterprise_RoundIcon_en.png new file mode 100644 index 0000000000..1c729b1ba2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/appicon.enterprise_RoundIcon_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60b169ac392d4b51e8260c595a97dd14f267facd8f428ad69814bd27e502e189 +size 44355 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Day-0_0_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Night-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Night-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Night-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Night-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Night-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_LoggedInView_null_LoggedInView-Night-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_SyncStateView_null_SyncStateView-Day-1_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_SyncStateView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_SyncStateView_null_SyncStateView-Day-1_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.loggedin_SyncStateView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_SyncStateView_null_SyncStateView-Night-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_SyncStateView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.loggedin_SyncStateView_null_SyncStateView-Night-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.loggedin_SyncStateView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Day-2_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.room.joined_LoadingRoomNodeView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Day-2_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.room.joined_LoadingRoomNodeView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Day-2_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.room.joined_LoadingRoomNodeView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Day-2_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.room.joined_LoadingRoomNodeView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Night-2_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.room.joined_LoadingRoomNodeView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Night-2_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.room.joined_LoadingRoomNodeView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Night-2_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.room.joined_LoadingRoomNodeView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.room.joined_LoadingRoomNodeView_null_LoadingRoomNodeView-Night-2_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.room.joined_LoadingRoomNodeView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Day-3_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.root_RootView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Day-3_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.root_RootView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Day-3_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.root_RootView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Day-3_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.root_RootView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Day-3_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.root_RootView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Day-3_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.root_RootView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Night-3_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.root_RootView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Night-3_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.root_RootView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Night-3_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.root_RootView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Night-3_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.root_RootView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Night-3_4_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/appnav.root_RootView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[appnav.root_RootView_null_RootView-Night-3_4_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/appnav.root_RootView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.analytics.api.preferences_AnalyticsPreferencesView_null_AnalyticsPreferencesView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.analytics.api.preferences_AnalyticsPreferencesView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.analytics.api.preferences_AnalyticsPreferencesView_null_AnalyticsPreferencesView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.analytics.api.preferences_AnalyticsPreferencesView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.analytics.api.preferences_AnalyticsPreferencesView_null_AnalyticsPreferencesView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.analytics.api.preferences_AnalyticsPreferencesView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.analytics.api.preferences_AnalyticsPreferencesView_null_AnalyticsPreferencesView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.analytics.api.preferences_AnalyticsPreferencesView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.analytics.impl_AnalyticsOptInView_null_AnalyticsOptInView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.analytics.impl_AnalyticsOptInView_null_AnalyticsOptInView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.analytics.impl_AnalyticsOptInView_null_AnalyticsOptInView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.analytics.impl_AnalyticsOptInView_null_AnalyticsOptInView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.call.impl.ui_CallScreenView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.call.impl.ui_CallScreenView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.call.impl.ui_CallScreenView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.call.impl.ui_CallScreenView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.call.impl.ui_CallScreenView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.call.impl.ui_CallScreenView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.call.impl.ui_CallScreenView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_CallScreenView_null_CallScreenView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.call.impl.ui_CallScreenView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_IncomingCallScreen_null_IncomingCallScreen-Day-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.call.impl.ui_IncomingCallScreen_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_IncomingCallScreen_null_IncomingCallScreen-Day-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.call.impl.ui_IncomingCallScreen_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_IncomingCallScreen_null_IncomingCallScreen-Night-1_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.call.impl.ui_IncomingCallScreen_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.call.impl.ui_IncomingCallScreen_null_IncomingCallScreen-Night-1_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.call.impl.ui_IncomingCallScreen_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.addpeople_AddPeopleView_null_AddPeopleView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.addpeople_AddPeopleView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_RoomPrivacyOption_null_RoomPrivacyOption-Day-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_RoomPrivacyOption_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_RoomPrivacyOption_null_RoomPrivacyOption-Day-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_RoomPrivacyOption_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_RoomPrivacyOption_null_RoomPrivacyOption-Night-1_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_RoomPrivacyOption_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_RoomPrivacyOption_null_RoomPrivacyOption-Night-1_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_RoomPrivacyOption_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_SearchMultipleUsersResultItem_null_SearchMultipleUsersResultItem_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_SearchMultipleUsersResultItem_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_SearchMultipleUsersResultItem_null_SearchMultipleUsersResultItem_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_SearchMultipleUsersResultItem_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_SearchSingleUserResultItem_null_SearchSingleUserResultItem_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_SearchSingleUserResultItem_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_SearchSingleUserResultItem_null_SearchSingleUserResultItem_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_SearchSingleUserResultItem_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Day-2_3_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.components_UserListView_null_UserListView-Night-2_4_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.components_UserListView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.configureroom_ConfigureRoomView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.configureroom_ConfigureRoomView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.configureroom_ConfigureRoomView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Day-3_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.configureroom_ConfigureRoomView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Night-3_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.configureroom_ConfigureRoomView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Night-3_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.configureroom_ConfigureRoomView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Night-3_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.configureroom_ConfigureRoomView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.configureroom_ConfigureRoomView_null_ConfigureRoomView-Night-3_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.configureroom_ConfigureRoomView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Day-4_5_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.createroom.impl.root_CreateRoomRootView_null_CreateRoomRootView-Night-4_6_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.createroom.impl.root_CreateRoomRootView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.ftue.impl.notifications_NotificationsOptInView_null_NotificationsOptInView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.ftue.impl.notifications_NotificationsOptInView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.ftue.impl.notifications_NotificationsOptInView_null_NotificationsOptInView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.ftue.impl.notifications_NotificationsOptInView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.ftue.impl.notifications_NotificationsOptInView_null_NotificationsOptInView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.ftue.impl.notifications_NotificationsOptInView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.ftue.impl.notifications_NotificationsOptInView_null_NotificationsOptInView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.ftue.impl.notifications_NotificationsOptInView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.ftue.impl.welcome_WelcomeView_null_WelcomeView-Day-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.ftue.impl.welcome_WelcomeView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.ftue.impl.welcome_WelcomeView_null_WelcomeView-Day-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.ftue.impl.welcome_WelcomeView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.ftue.impl.welcome_WelcomeView_null_WelcomeView-Night-1_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.ftue.impl.welcome_WelcomeView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.ftue.impl.welcome_WelcomeView_null_WelcomeView-Night-1_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.ftue.impl.welcome_WelcomeView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.invite.impl.response_AcceptDeclineInviteView_null_AcceptDeclineInviteView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.invite.impl.response_AcceptDeclineInviteView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Day-0_1_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.joinroom.impl_JoinRoomView_null_JoinRoomView-Night-0_2_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.joinroom.impl_JoinRoomView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Day-0_1_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.leaveroom.api_LeaveRoomView_null_LeaveRoomView-Night-0_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.leaveroom.api_LeaveRoomView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.api.internal_StaticMapPlaceholder_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.api.internal_StaticMapPlaceholder_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.api.internal_StaticMapPlaceholder_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.api.internal_StaticMapPlaceholder_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.api.internal_StaticMapPlaceholder_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.api.internal_StaticMapPlaceholder_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.api.internal_StaticMapPlaceholder_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api.internal_StaticMapPlaceholder_null_StaticMapPlaceholder-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.api.internal_StaticMapPlaceholder_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api_StaticMapView_null_StaticMapView-Day-0_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.api_StaticMapView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api_StaticMapView_null_StaticMapView-Day-0_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.api_StaticMapView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api_StaticMapView_null_StaticMapView-Night-0_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.api_StaticMapView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.api_StaticMapView_null_StaticMapView-Night-0_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.api_StaticMapView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.send_SendLocationView_null_SendLocationView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.send_SendLocationView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Day-1_2_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.location.impl.show_ShowLocationView_null_ShowLocationView-Night-1_3_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.location.impl.show_ShowLocationView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.components_PinEntryTextField_null_PinEntryTextField-Day-0_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.components_PinEntryTextField_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.components_PinEntryTextField_null_PinEntryTextField-Day-0_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.components_PinEntryTextField_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.components_PinEntryTextField_null_PinEntryTextField-Night-0_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.components_PinEntryTextField_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.components_PinEntryTextField_null_PinEntryTextField-Night-0_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.components_PinEntryTextField_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Day-1_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Night-1_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.settings_LockScreenSettingsView_null_LockScreenSettingsView-Night-1_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.settings_LockScreenSettingsView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.biometric_SetupBiometricView_null_SetupBiometricView-Day-2_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.biometric_SetupBiometricView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.biometric_SetupBiometricView_null_SetupBiometricView-Day-2_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.biometric_SetupBiometricView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.biometric_SetupBiometricView_null_SetupBiometricView-Night-2_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.biometric_SetupBiometricView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.biometric_SetupBiometricView_null_SetupBiometricView-Night-2_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.biometric_SetupBiometricView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Day-3_4_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.setup.pin_SetupPinView_null_SetupPinView-Night-3_5_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.setup.pin_SetupPinView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock.keypad_PinKeypad_null_PinKeypad-Day-6_7_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock.keypad_PinKeypad_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock.keypad_PinKeypad_null_PinKeypad-Day-6_7_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock.keypad_PinKeypad_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock.keypad_PinKeypad_null_PinKeypad-Night-6_8_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock.keypad_PinKeypad_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock.keypad_PinKeypad_null_PinKeypad-Night-6_8_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock.keypad_PinKeypad_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Day-4_5_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockViewInApp_null_PinUnlockViewInApp-Night-4_6_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Day-5_6_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.lockscreen.impl.unlock_PinUnlockView_null_PinUnlockView-Night-5_7_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.lockscreen.impl.unlock_PinUnlockView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.accountprovider_AccountProviderView_null_AccountProviderView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.accountprovider_AccountProviderView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Day-1_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Day-1_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Night-1_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.changeserver_ChangeServerView_null_ChangeServerView-Night-1_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.changeserver_ChangeServerView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.dialogs_SlidingSyncNotSupportedDialog_null_SlidingSyncNotSupportedDialog-Day-2_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.dialogs_SlidingSyncNotSupportedDialog_null_SlidingSyncNotSupportedDialog-Day-2_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.dialogs_SlidingSyncNotSupportedDialog_null_SlidingSyncNotSupportedDialog-Night-2_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.dialogs_SlidingSyncNotSupportedDialog_null_SlidingSyncNotSupportedDialog-Night-2_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Day-3_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.oidc.webview_OidcView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Day-3_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.oidc.webview_OidcView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Day-3_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.oidc.webview_OidcView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Day-3_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.oidc.webview_OidcView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Night-3_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.oidc.webview_OidcView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Night-3_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.oidc.webview_OidcView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Night-3_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.oidc.webview_OidcView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.oidc.webview_OidcView_null_OidcView-Night-3_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.oidc.webview_OidcView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_null_ChangeAccountProviderView-Day-4_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_null_ChangeAccountProviderView-Day-4_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_null_ChangeAccountProviderView-Night-4_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_null_ChangeAccountProviderView-Night-4_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_null_ConfirmAccountProviderView-Day-5_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_null_ConfirmAccountProviderView-Day-5_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_null_ConfirmAccountProviderView-Night-5_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_null_ConfirmAccountProviderView-Night-5_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Day-6_7_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Night-6_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Night-6_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Night-6_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Night-6_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Night-6_8_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.loginpassword_LoginPasswordView_null_LoginPasswordView-Night-6_8_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.loginpassword_LoginPasswordView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Day-7_8_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Night-7_9_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Night-7_9_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Night-7_9_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Night-7_9_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Night-7_9_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_null_QrCodeConfirmationView-Night-7_9_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Day-8_9_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.error_QrCodeErrorView_null_QrCodeErrorView-Night-8_10_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Day-9_10_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Night-9_11_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Night-9_11_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Night-9_11_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.intro_QrCodeIntroView_null_QrCodeIntroView-Night-9_11_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Day-10_11_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.qrcode.scan_QrCodeScanView_null_QrCodeScanView-Night-10_12_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Day-11_12_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Night-11_13_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Night-11_13_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Night-11_13_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.searchaccountprovider_SearchAccountProviderView_null_SearchAccountProviderView-Night-11_13_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Day-12_13_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.login.impl.screens.waitlistscreen_WaitListView_null_WaitListView-Night-12_14_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.login.impl.screens.waitlistscreen_WaitListView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Day-1_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl.direct_DefaultDirectLogoutView_null_DefaultDirectLogoutView-Night-1_3_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl.direct_DefaultDirectLogoutView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Day-0_1_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.logout.impl_LogoutView_null_LogoutView-Night-0_2_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.logout.impl_LogoutView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Day-1_1_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.actionlist_SheetContent_null_SheetContent-Night-1_2_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.actionlist_SheetContent_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.attachments.preview_AttachmentsView_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.attachments.preview_AttachmentsView_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.attachments.preview_AttachmentsView_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.attachments.preview_AttachmentsView_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.attachments.preview_AttachmentsView_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.attachments.preview_AttachmentsView_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.attachments.preview_AttachmentsView_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.attachments.preview_AttachmentsPreviewView_null_AttachmentsPreviewView_0_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.attachments.preview_AttachmentsView_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Day-2_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.forward_ForwardMessagesView_null_ForwardMessagesView-Night-2_3_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.forward_ForwardMessagesView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.mentions_MentionSuggestionsPickerView_null_MentionSuggestionsPickerView-Day-3_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.mentions_MentionSuggestionsPickerView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.mentions_MentionSuggestionsPickerView_null_MentionSuggestionsPickerView-Day-3_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.mentions_MentionSuggestionsPickerView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.mentions_MentionSuggestionsPickerView_null_MentionSuggestionsPickerView-Night-3_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.mentions_MentionSuggestionsPickerView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.mentions_MentionSuggestionsPickerView_null_MentionSuggestionsPickerView-Night-3_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.mentions_MentionSuggestionsPickerView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_AttachmentSourcePickerMenu_null_AttachmentSourcePickerMenu-Day-4_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_AttachmentSourcePickerMenu_null_AttachmentSourcePickerMenu-Day-4_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_AttachmentSourcePickerMenu_null_AttachmentSourcePickerMenu-Night-4_5_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_AttachmentSourcePickerMenu_null_AttachmentSourcePickerMenu-Night-4_5_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_MessageComposerViewVoice_null_MessageComposerViewVoice-Day-6_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerViewVoice_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_MessageComposerViewVoice_null_MessageComposerViewVoice-Day-6_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerViewVoice_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_MessageComposerViewVoice_null_MessageComposerViewVoice-Night-6_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerViewVoice_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_MessageComposerViewVoice_null_MessageComposerViewVoice-Night-6_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerViewVoice_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_MessageComposerView_null_MessageComposerView-Day-5_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_MessageComposerView_null_MessageComposerView-Day-5_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_MessageComposerView_null_MessageComposerView-Night-5_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.messagecomposer_MessageComposerView_null_MessageComposerView-Night-5_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Day-7_7_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.report_ReportMessageView_null_ReportMessageView-Night-7_8_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.report_ReportMessageView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiItem_null_EmojiItem-Day-35_35_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiItem_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiItem_null_EmojiItem-Day-35_35_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiItem_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiItem_null_EmojiItem-Night-35_36_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiItem_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiItem_null_EmojiItem-Night-35_36_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiItem_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiPicker_null_EmojiPicker-Day-36_36_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiPicker_null_EmojiPicker-Day-36_36_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiPicker_null_EmojiPicker-Night-36_37_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.customreaction_EmojiPicker_null_EmojiPicker-Night-36_37_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_ProgressButton_null_ProgressButton-Day-55_55_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_ProgressButton_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_ProgressButton_null_ProgressButton-Day-55_55_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_ProgressButton_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_ProgressButton_null_ProgressButton-Night-55_56_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_ProgressButton_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_ProgressButton_null_ProgressButton-Night-55_56_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_ProgressButton_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Day_0_en.png new file mode 100644 index 0000000000..453a5d6b7d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81ec630f123baee15d92003da495326f153db3fc44e83d400d4ca1d1c173cd8d +size 131043 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Night_0_en.png new file mode 100644 index 0000000000..9e197d17b2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff22f4dd4697c5ee95a705f05bf9894316213895c83e430486f93d0f50d75d5a +size 131143 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Day-37_37_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Day-37_37_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Day-37_37_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Day-37_37_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Day-37_37_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Day-37_37_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Night-37_38_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Night-37_38_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Night-37_38_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Night-37_38_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Night-37_38_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemAudioView_null_TimelineItemAudioView-Night-37_38_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Day-38_38_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Night-38_39_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Night-38_39_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Night-38_39_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Night-38_39_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Night-38_39_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemEncryptedView_null_TimelineItemEncryptedView-Night-38_39_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Day-39_39_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Day-39_39_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Day-39_39_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Day-39_39_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Day-39_39_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Day-39_39_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Night-39_40_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Night-39_40_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Night-39_40_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Night-39_40_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Night-39_40_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemFileView_null_TimelineItemFileView-Night-39_40_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemFileView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Day-40_40_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Day-40_40_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Day-40_40_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Day-40_40_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Day-40_40_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Day-40_40_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Night-40_41_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Night-40_41_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Night-40_41_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Night-40_41_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Night-40_41_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemImageView_null_TimelineItemImageView-Night-40_41_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemImageView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemInformativeView_null_TimelineItemInformativeView-Day-42_42_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemInformativeView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemInformativeView_null_TimelineItemInformativeView-Day-42_42_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemInformativeView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemInformativeView_null_TimelineItemInformativeView-Night-42_43_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemInformativeView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemInformativeView_null_TimelineItemInformativeView-Night-42_43_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemInformativeView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_null_TimelineItemLegacyCallInviteView-Day-43_43_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_null_TimelineItemLegacyCallInviteView-Day-43_43_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_null_TimelineItemLegacyCallInviteView-Night-43_44_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_null_TimelineItemLegacyCallInviteView-Night-43_44_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Day-44_44_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLocationView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Day-44_44_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLocationView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Day-44_44_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLocationView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Day-44_44_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLocationView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Night-44_45_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLocationView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Night-44_45_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLocationView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Night-44_45_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLocationView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemLocationView_null_TimelineItemLocationView-Night-44_45_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemLocationView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Day-45_45_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemPollView_null_TimelineItemPollView-Night-45_46_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemPollView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemRedactedView_null_TimelineItemRedactedView-Day-46_46_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemRedactedView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemRedactedView_null_TimelineItemRedactedView-Day-46_46_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemRedactedView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemRedactedView_null_TimelineItemRedactedView-Night-46_47_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemRedactedView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemRedactedView_null_TimelineItemRedactedView-Night-46_47_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemRedactedView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStateView_null_TimelineItemStateView-Day-47_47_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStateView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStateView_null_TimelineItemStateView-Day-47_47_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStateView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStateView_null_TimelineItemStateView-Night-47_48_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStateView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStateView_null_TimelineItemStateView-Night-47_48_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStateView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Day-48_48_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Day-48_48_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Day-48_48_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Day-48_48_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Day-48_48_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Day-48_48_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Night-48_49_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Night-48_49_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Night-48_49_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Night-48_49_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Night-48_49_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemStickerView_null_TimelineItemStickerView-Night-48_49_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Day-49_49_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemTextView_null_TimelineItemTextView-Night-49_50_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemTextView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemUnknownView_null_TimelineItemUnknownView-Day-50_50_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemUnknownView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemUnknownView_null_TimelineItemUnknownView-Day-50_50_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemUnknownView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemUnknownView_null_TimelineItemUnknownView-Night-50_51_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemUnknownView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemUnknownView_null_TimelineItemUnknownView-Night-50_51_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemUnknownView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Day-51_51_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Day-51_51_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Day-51_51_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Day-51_51_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Day-51_51_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Day-51_51_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Night-51_52_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Night-51_52_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Night-51_52_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Night-51_52_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Night-51_52_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVideoView_null_TimelineItemVideoView-Night-51_52_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_null_TimelineItemVoiceViewUnified-Day-54_54_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_null_TimelineItemVoiceViewUnified-Day-54_54_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_null_TimelineItemVoiceViewUnified-Night-54_55_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_null_TimelineItemVoiceViewUnified-Night-54_55_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceViewUnified_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_12_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_12,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_12_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_13,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_13_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_13,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_13_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_14,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_14_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_14,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_14_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Day-53_53_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_12_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_12,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_12_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_13,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_13_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_13,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_13_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_14,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_14_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_14,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_14_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineItemVoiceView_null_TimelineItemVoiceView-Night-53_54_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Day_0_en.png new file mode 100644 index 0000000000..4816a8aeab --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b2027a291761ae128b8b6204abb0a840ebcaf7d4a7b3ece81430bce5c25e65a +size 129753 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Night_0_en.png new file mode 100644 index 0000000000..20ba8323e9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c43b499224bd5abfee9a6af43086a9c48b0ede656a92bd31707e69fb41f50c23 +size 129830 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.group_GroupHeaderView_null_GroupHeaderView-Day-56_56_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.group_GroupHeaderView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.group_GroupHeaderView_null_GroupHeaderView-Day-56_56_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.group_GroupHeaderView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.group_GroupHeaderView_null_GroupHeaderView-Night-56_57_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.group_GroupHeaderView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.group_GroupHeaderView_null_GroupHeaderView-Night-56_57_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.group_GroupHeaderView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.reactionsummary_SheetContent_null_SheetContent-Day-57_57_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.reactionsummary_SheetContent_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.reactionsummary_SheetContent_null_SheetContent-Day-57_57_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.reactionsummary_SheetContent_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.reactionsummary_SheetContent_null_SheetContent-Night-57_58_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.reactionsummary_SheetContent_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.reactionsummary_SheetContent_null_SheetContent-Night-57_58_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.reactionsummary_SheetContent_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Day-59_59_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_null_ReadReceiptBottomSheet-Night-59_60_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Day-58_58_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_null_TimelineItemReadReceiptView-Night-58_59_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_null_EncryptedHistoryBannerView-Day-60_60_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_null_EncryptedHistoryBannerView-Day-60_60_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_null_EncryptedHistoryBannerView-Night-60_61_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_null_EncryptedHistoryBannerView-Night-60_61_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_EncryptedHistoryBannerView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Day-61_61_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Day-61_61_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Day-61_61_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Day-61_61_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Night-61_62_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Night-61_62_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Night-61_62_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_null_TimelineItemDaySeparatorView-Night-61_62_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_null_TimelineItemReadMarkerView-Day-62_62_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_null_TimelineItemReadMarkerView-Day-62_62_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_null_TimelineItemReadMarkerView-Night-62_63_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_null_TimelineItemReadMarkerView-Night-62_63_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_null_TimelineItemRoomBeginningView-Day-63_63_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_null_TimelineItemRoomBeginningView-Day-63_63_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_null_TimelineItemRoomBeginningView-Night-63_64_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_null_TimelineItemRoomBeginningView-Night-63_64_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_null_TimelineLoadingMoreIndicator-Day-64_64_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_null_TimelineLoadingMoreIndicator-Day-64_64_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_null_TimelineLoadingMoreIndicator-Night-64_65_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_null_TimelineLoadingMoreIndicator-Night-64_65_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_0_en.png new file mode 100644 index 0000000000..3051aaadda --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fbf2d3b6ca7bf1c7524c466851cfe9ec8845eb78d3b9a6c85bd07c039e84959 +size 5522 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_12_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_12_en.png new file mode 100644 index 0000000000..161f519014 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2acfef62f687a704f6e985c7e75cd35d8662d833e982d1e8cb00f23ce4cf398 +size 5840 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_13_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_13_en.png new file mode 100644 index 0000000000..ff41e3890e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_13_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49a9997e330e938e83f5080d784557d1985f9e43dc282dfedcbd134fc6437cb9 +size 5674 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_14,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_14_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_14,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_14_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_15,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_15_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_15,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_15_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_1_en.png new file mode 100644 index 0000000000..559e2c76e6 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:865e1425e7188ac8c8b815f5f6a87829b1d186ce15b6355a86b7c331e5349b27 +size 5356 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_4_en.png new file mode 100644 index 0000000000..d155a37eb8 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbe12a5968cf37bf03a71853c52e25d54759000131ae169e7f0f23d42917c15b +size 5820 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_5_en.png new file mode 100644 index 0000000000..9a2ce46d8c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5c03f39f5de61e58cfca3d7504392adf82df55a49e9d6f0a977d14ba4178852 +size 5678 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_8_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_8_en.png new file mode 100644 index 0000000000..74920f6056 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:344d0bd6f14f5a0a8e314d500e6b940fd9df9a7366f3650b6e3ee71681b35da0 +size 5570 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_9_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_9_en.png new file mode 100644 index 0000000000..57f73ea42e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Day_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb30a856e8c054e260a4a1cf4bde4e36e8196bf1dbaf128e63cd0667f6b90774 +size 5397 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_0_en.png new file mode 100644 index 0000000000..4ac1919a89 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbae673f5904cc3426e777d08b5c8d991b107b0eee383b1ea9c3e366f8bcba5e +size 5640 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_10_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_10_en.png new file mode 100644 index 0000000000..8ba9617eb9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b70b3f6288e9de9c3b766464627ab72c0be9e003d54b8d8ae6e8f86c02a3e17 +size 5618 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_11_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_11_en.png new file mode 100644 index 0000000000..900f319834 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2548126873b45d67f4c3daac72ba8ac26864fad044e9e24aa881aeef8dabb9bd +size 5440 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_12_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_12_en.png new file mode 100644 index 0000000000..7545ef4cb9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b965490eed67ebd0014724fd4bde06e17da6f41c8008fb6650115ec609b6741 +size 5982 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_13_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_13_en.png new file mode 100644 index 0000000000..a4688004ba --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_13_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f27702cd997c486dfbfee1e0c8855c0a608e4832deb8828ba693c043c5d540ed +size 5800 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_14_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_14_en.png new file mode 100644 index 0000000000..55fa10fd51 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_14_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:114c508809c91b55a0fc00c6828541fe1aecedd3b968fad183582699735d4e27 +size 5817 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_15_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_15_en.png new file mode 100644 index 0000000000..4b84abc6bd --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_15_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9460b6b7bf94db4a0bd06016183dbde6aedca7e9fc7d4253ba6ec452f367446 +size 5626 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_1_en.png new file mode 100644 index 0000000000..7ff493b6ba --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8cca9eae69f3a9fec53baa232ed356a9b8dfba23817b8e9e7d332ec75b440ed +size 5474 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_2_en.png new file mode 100644 index 0000000000..c21804ff7f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46aef301a274f20fc8a80d04d42884ef4c5923c36bfd9a8ec02eec40fadbc043 +size 5504 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_3_en.png new file mode 100644 index 0000000000..eee1a9d66f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a8dcda64cf2f1179f1fde8d6770e6b36fbc9ad01cf3e2214cdd0b5c483322b4 +size 5344 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_4_en.png new file mode 100644 index 0000000000..9d07944d63 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d8b6a61092bfd7182abb3182aa3f4d026ee2eaecfa860f0a20c333881efbb83 +size 5959 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_5_en.png new file mode 100644 index 0000000000..cb5e9e0aa8 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1217eeaa91338c5afef963d03451992335006169cfc3e1968cf06553abb9d344 +size 5790 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_6_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_6_en.png new file mode 100644 index 0000000000..980120b3b1 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92f33f89a975c5584e8d4cb6478fd8ce07c80eebe9e4f99eb641078444b3ec1f +size 5849 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_7_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_7_en.png new file mode 100644 index 0000000000..b50520b680 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee15cf1a1f0a0518270b6b84b32800ab4a6102804a950a60a9f1d6c5ca433ae0 +size 5683 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_8_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_8_en.png new file mode 100644 index 0000000000..bf3598488e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f23ff9bfcbeef0afe5a77c62f9ea2e9e4f61c45fa0504a60f2023a127e425705 +size 5726 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_9_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_9_en.png new file mode 100644 index 0000000000..75c84a84c5 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageEventBubble_Night_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:216e3843f644623d3d19f56fc70364a2078853ee282968124fa25c12609bd275 +size 5552 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageStateEventContainer_null_MessageStateEventContainer-Day-11_11_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageStateEventContainer_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageStateEventContainer_null_MessageStateEventContainer-Day-11_11_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageStateEventContainer_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageStateEventContainer_null_MessageStateEventContainer-Night-11_12_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageStateEventContainer_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageStateEventContainer_null_MessageStateEventContainer-Night-11_12_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessageStateEventContainer_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonAdd_null_MessagesReactionButtonAdd-Day-13_13_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButtonAdd_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonAdd_null_MessagesReactionButtonAdd-Day-13_13_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButtonAdd_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonAdd_null_MessagesReactionButtonAdd-Night-13_14_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButtonAdd_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonAdd_null_MessagesReactionButtonAdd-Night-13_14_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButtonAdd_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonExtra_null_MessagesReactionButtonExtra-Day-14_14_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButtonExtra_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonExtra_null_MessagesReactionButtonExtra-Day-14_14_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButtonExtra_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonExtra_null_MessagesReactionButtonExtra-Night-14_15_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButtonExtra_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButtonExtra_null_MessagesReactionButtonExtra-Night-14_15_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButtonExtra_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Day-12_12_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessagesReactionButton_null_MessagesReactionButton-Night-12_13_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_MessagesReactionButton_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_ReplySwipeIndicator_null_ReplySwipeIndicator-Day-15_15_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_ReplySwipeIndicator_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_ReplySwipeIndicator_null_ReplySwipeIndicator-Day-15_15_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_ReplySwipeIndicator_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_ReplySwipeIndicator_null_ReplySwipeIndicator-Night-15_16_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_ReplySwipeIndicator_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_ReplySwipeIndicator_null_ReplySwipeIndicator-Night-15_16_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_ReplySwipeIndicator_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_2_en.png new file mode 100644 index 0000000000..8b2f180453 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e924c2fc2dc6b66146364d999b77874c883fae2abac9390a1a48c90f61ebf3f7 +size 4928 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_en.png new file mode 100644 index 0000000000..2d422864fa --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a4dd7d2d6607135bb9e18f684a34df17e0ef1fd2b48fb85bbc6ba82b82e09c5 +size 6213 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_2_en.png new file mode 100644 index 0000000000..f703f2dd98 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ee2232b7d0feb4c7310a695f3b1e58ddb466970a8cef4051e35f7d83dbb1629 +size 4863 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_4_en.png new file mode 100644 index 0000000000..37f721d4c4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineEventTimestampView_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfa1209e3c4c97dffe0f633643a8e4da3509d57998cb047651a7e18daeddb566 +size 6080 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemCallNotifyView_null_TimelineItemCallNotifyView-Day-17_17_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemCallNotifyView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemCallNotifyView_null_TimelineItemCallNotifyView-Day-17_17_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemCallNotifyView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemCallNotifyView_null_TimelineItemCallNotifyView-Night-17_18_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemCallNotifyView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemCallNotifyView_null_TimelineItemCallNotifyView-Night-17_18_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemCallNotifyView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Day_0_en.png new file mode 100644 index 0000000000..be80ea662b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a97733a1fe5b60e5f1e98cabe804aece93c957c314f604380853be32482ec9e +size 163349 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Night_0_en.png new file mode 100644 index 0000000000..1e66a35710 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44699bb3e025e65a388f40098f40ff047b629fce3baaea2a90ddc7725db7cf8a +size 161869 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Day_0_en.png new file mode 100644 index 0000000000..35f286c9bd --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e18fb9d6a774ce70a8d7d8f24db14a4d2cdfd7eba8c993c47befc527987d4c40 +size 166682 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Night_0_en.png new file mode 100644 index 0000000000..c29c97e784 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f424adece146350ef450cb889c3e48f194128b65fd89babc0517e6e7046db49 +size 164994 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowLongSenderName_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowLongSenderName_en.png new file mode 100644 index 0000000000..e4117c5157 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowLongSenderName_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc20de77140c6e906bd6462beee71489bfc9ef183e9de6d7c44fdebebf181ae8 +size 15947 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_0_en.png new file mode 100644 index 0000000000..5f900326de --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:249eda286320cbed804782d4d8aa2b242a43cde95e0d2c204b9792d42e729f68 +size 29120 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_1_en.png new file mode 100644 index 0000000000..c8e33f0dfb --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2d663081286662bc08de3736be8f1e4d91a2977ab3a7fda2c4af601b4858331 +size 31492 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_2_en.png new file mode 100644 index 0000000000..0f1ef7add4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa3ef00373374940c361c5cba805b504c5e45dc60963e096712b82fe07822521 +size 30481 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_en.png new file mode 100644 index 0000000000..434ee57d0d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:753e5da43eb31af5cd25c363209a322d7d56806397c71a8bd85640cb310b9142 +size 32770 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_en.png new file mode 100644 index 0000000000..2ebb69983f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96bc6e5fc3c1218117e15c40d164fe809cdeb435a82c9be35aa6e34e2ad68729 +size 34188 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_0_en.png new file mode 100644 index 0000000000..8d8c01cc72 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e04a65dfe4890c30fd5b1951b45bf23844e58e02dbeed619470a7dbc257e63e8 +size 29584 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_1_en.png new file mode 100644 index 0000000000..d5556502d3 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a52812c9106cc59321bc2f244dfacc481d3e910f1932ab3e5b588c9bf003083 +size 31825 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_2_en.png new file mode 100644 index 0000000000..40945ac1b9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e26728ecfb72bd2e15cd594092eec10ca5434bcaad8cc5026e82d98d50ba324 +size 30686 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_3_en.png new file mode 100644 index 0000000000..0cbe1a46e9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f37f5a98911964b860e56c61f6d3292b4a76b5eeaad9b2c76deed0fe8b662d9 +size 33030 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_4_en.png new file mode 100644 index 0000000000..0b6348c410 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:019c3777d11928a9185f4171b43927fa99a9394316e5374eaa29d06a427131f5 +size 34061 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_en.png new file mode 100644 index 0000000000..8eac9a8f6f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:586b140f39d58beb905c680304c4f04d6ad4ebbde7d329dfce310efff7e28d4d +size 80133 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Night_0_en.png new file mode 100644 index 0000000000..c93531dcc4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0c5e34b62d2af5f3b69d5fcf9c3cf8f017cc4730dd80e1d5fd189b11e0f4fa7 +size 80470 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_0_en.png new file mode 100644 index 0000000000..db897279c3 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e56a534066762510f8360dfa5632a64666e4d44f67b8f89c306dfdf98b4c6bcb +size 25586 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_1_en.png new file mode 100644 index 0000000000..bce472d0d1 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d8ab6a9122204ad68f9f25c4970d64c599598a9a604fb0b75cb77ee1e76f109 +size 25055 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_2_en.png new file mode 100644 index 0000000000..7392e4557c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:717e3767cb927300d99f7272ae4cd106e77b9cc47e0b47e55fe5c005a8380a59 +size 29165 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_0_en.png new file mode 100644 index 0000000000..9fe943d9bc --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:073a814b1a9469b0ed514d3364a6c45cb9d392e88b185956b5783a867c6429a9 +size 25130 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_1_en.png new file mode 100644 index 0000000000..3c4efb9e25 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:833300637b87527f59bd826bf388d5c18226309db89541b163efbbe09442d693 +size 24585 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_2_en.png new file mode 100644 index 0000000000..2ccc73c3c8 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1aa0d54f4592e92b12c2637bbc351a6cdbc9743e9525ea91eb27912bbdfc9b8e +size 29925 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_en.png new file mode 100644 index 0000000000..53f2ac17d6 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:649a307e4703594603150926dda22e18ea1a600269d3330cec3a8cba66d2261e +size 146166 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_en.png new file mode 100644 index 0000000000..0f04802464 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:688927a33ea485f90683e7da3b38e5fdbeb7fad21c77a934f0ce2f89b6740571 +size 151413 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_0_en.png new file mode 100644 index 0000000000..4a1e2e473d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4b7e39d1a04fab22162e68db0760aa07bc89901756c0e6aae31767bf24508de +size 145415 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_1_en.png new file mode 100644 index 0000000000..7b3883b759 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:177c5d75044125b2d4f8191c135c22d180eb895ef044888d2805f7a82efbb79b +size 150545 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_0_en.png new file mode 100644 index 0000000000..aaebfd3261 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f53bc5c068281dbb52d2d5efcee507c615d9c93a5094c7b8e7f52b464e8ce285 +size 130842 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_1_en.png new file mode 100644 index 0000000000..ac8bbbf6ec --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c0713fa0405b36bca7ca68b0ece5056b3ac070dcebceaee04984e288fafb0a1 +size 139862 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_0_en.png new file mode 100644 index 0000000000..8d39b3a808 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c0c9fee4b8807fbdc47d9a2609b6817dda8901051b28ca4bfe528cbb616ab45 +size 129911 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_1_en.png new file mode 100644 index 0000000000..b35dc6c8ab --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dbe22d574140958e03f95c1b8167d700ed3ac508f750fb7e11d4591de61e21a +size 138427 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_0_en.png new file mode 100644 index 0000000000..9afd62214c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3722d23cacad38ce5c8ceecb0368ec44c4df395058ee42e9838dac13065af30 +size 150932 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_10_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_10_en.png new file mode 100644 index 0000000000..adcd718823 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:917a51f8113cfbd28757a3a0fe0ad8cfefb3a86c19791c3ac0e1d759ee11ed29 +size 137241 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_11_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_11_en.png new file mode 100644 index 0000000000..d3a1256b43 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abcc45f7c26da4d742295f58d011f40aa85bbbe6bd67895b291047447e28c119 +size 148864 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_1_en.png new file mode 100644 index 0000000000..057f1f41ac --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:297c71fbdeac51966f9b0f9b4eeadaf41d05ab24c7cdd2f75a114e0586797d4a +size 157260 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_2_en.png new file mode 100644 index 0000000000..4cb993a35d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63f539c8bcd3f1461e097650e49f93c810850556559a239552d5aa50cd736051 +size 139888 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_3_en.png new file mode 100644 index 0000000000..60b8d4fcfe --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed3dd81fb95e09cc70d1c1c0336af2d2a7ec18ece01581d48bcace6251ad5b5e +size 138359 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_en.png new file mode 100644 index 0000000000..417e273921 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f97fe0437f849c69c925a4db97199053a50b0cbf0337b4718ce7463eef9ff3ca +size 145678 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_5_en.png new file mode 100644 index 0000000000..1e4ac53a3a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e084e0db6c606956b1d5dc0c222a870de953f5b989b3f8e5704fe4f601dd31c0 +size 137518 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_6_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_6_en.png new file mode 100644 index 0000000000..73b69cedf2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a2e0dca1b297855e42144fc86fdd9eb9790e5ce677a8d6cb726481783c22488 +size 138392 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_7_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_7_en.png new file mode 100644 index 0000000000..7a0c6c111c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a288219d8dff69b0580844bfa4bb3dc01ab40ae8f42c036939bbead6d3bc3cc +size 140128 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_en.png new file mode 100644 index 0000000000..a531fa67e3 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a511478397589c4fc7aa37e3e6ac37168925129bff87ddb34401bb0084df9de8 +size 146193 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_9_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_9_en.png new file mode 100644 index 0000000000..a1894b79c4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f019843012a405ba1d9eeb07f3c28cabd75c211dfb3d31577c42b9bf7f47df0f +size 137858 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_0_en.png new file mode 100644 index 0000000000..bcb1e3a88c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:225146c2274f72c55302fc86e45bf7a98e0a75c2429e05c2a6e45d744047b77c +size 149979 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_10_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_10_en.png new file mode 100644 index 0000000000..0c14bce967 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:951eaaecba7ee9ab569e1e596e36998dd078384897005f6d69bba7297b283b69 +size 136313 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_11_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_11_en.png new file mode 100644 index 0000000000..3663ed42e8 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99e38f6b92b1d4d1be321eee8092ae072fadc5617f92bfca8c432de60579e63f +size 148251 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_1_en.png new file mode 100644 index 0000000000..edbcc236c6 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d352e60126cbfa60d4d8236fa5d629e9f08729d85e2516f79b8c97ee2ecf0704 +size 156061 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_2_en.png new file mode 100644 index 0000000000..fb59eb4a44 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f95b780718f3814b24e3b4c2a77b9674979199f8b05e9d41169ca9b0e14d5a56 +size 139027 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_3_en.png new file mode 100644 index 0000000000..3e0287b487 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51ed5d5fe920b238b6bac4025dd6d93324e9ac7913d17580bc5350d1af9de5b3 +size 137496 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_4_en.png new file mode 100644 index 0000000000..b17952ef97 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce61231e4747faf65cc843305afe73f773dce326a8a7cc833965d54b53a36ddc +size 145101 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_5_en.png new file mode 100644 index 0000000000..70732d7e34 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6df336faf65d0f16faa4b4a15e5a54081351b9d3cc5c7228eea3cd3ca1c785e4 +size 136587 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_6_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_6_en.png new file mode 100644 index 0000000000..250ba0ca35 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38df50373985b6fcc69d90972d23ffbdf92367d3c0e86219ff09c6e5d4360324 +size 137436 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_7_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_7_en.png new file mode 100644 index 0000000000..46612c0eb5 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46f477cfc17e46b518dbc15a1cd926437aad572dbe23deda27e6b8fc4d863673 +size 139329 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_8_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_8_en.png new file mode 100644 index 0000000000..7224395ffb --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b457d6d9e8e3df59a353cdca6858063bbbd7b6d2ecb994fe78203c2cd31bddf6 +size 145389 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_9_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_9_en.png new file mode 100644 index 0000000000..5b79e7e4aa --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:340c14de25fc297d3a719b0108e8f22490b8bf22435b953c784e33d4920953a2 +size 136844 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRow_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRow_Day_0_en.png new file mode 100644 index 0000000000..22d9bfa8a6 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRow_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb7db7591a7f9ba5b965934ff05113d9f80f627d46a3062b5e984d81ac339153 +size 180753 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRow_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRow_Night_0_en.png new file mode 100644 index 0000000000..6b30a6b4a8 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventRow_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d344df4fb1f56bc68feeb6a0a4ce0bf2d34cba350ac960d97685d15bc0b9b6d +size 179811 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_en.png new file mode 100644 index 0000000000..508f372359 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7622f68cc97b3c468cc773aac7344c529e788c081711ec3efe99a551906b09b4 +size 52605 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_null_TimelineItemGroupedEventsRowContentCollapse-Day-28_28_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_null_TimelineItemGroupedEventsRowContentCollapse-Day-28_28_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_null_TimelineItemGroupedEventsRowContentCollapse-Night-28_29_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_null_TimelineItemGroupedEventsRowContentCollapse-Night-28_29_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_null_TimelineItemGroupedEventsRowContentExpanded-Day-27_27_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_null_TimelineItemGroupedEventsRowContentExpanded-Day-27_27_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_null_TimelineItemGroupedEventsRowContentExpanded-Night-27_28_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_null_TimelineItemGroupedEventsRowContentExpanded-Night-27_28_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsLayout_null_TimelineItemReactionsLayout-Day-29_29_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsLayout_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsLayout_null_TimelineItemReactionsLayout-Day-29_29_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsLayout_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsLayout_null_TimelineItemReactionsLayout-Night-29_30_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsLayout_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsLayout_null_TimelineItemReactionsLayout-Night-29_30_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsLayout_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewFew_null_TimelineItemReactionsViewFew-Day-31_31_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewFew_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewFew_null_TimelineItemReactionsViewFew-Day-31_31_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewFew_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewFew_null_TimelineItemReactionsViewFew-Night-31_32_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewFew_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewFew_null_TimelineItemReactionsViewFew-Night-31_32_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewFew_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_null_TimelineItemReactionsViewIncoming-Day-32_32_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_null_TimelineItemReactionsViewIncoming-Day-32_32_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_null_TimelineItemReactionsViewIncoming-Night-32_33_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_null_TimelineItemReactionsViewIncoming-Night-32_33_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_null_TimelineItemReactionsViewOutgoing-Day-33_33_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_null_TimelineItemReactionsViewOutgoing-Day-33_33_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_null_TimelineItemReactionsViewOutgoing-Night-33_34_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_null_TimelineItemReactionsViewOutgoing-Night-33_34_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsView_null_TimelineItemReactionsView-Day-30_30_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsView_null_TimelineItemReactionsView-Day-30_30_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsView_null_TimelineItemReactionsView-Night-30_31_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemReactionsView_null_TimelineItemReactionsView-Night-30_31_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemReactionsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemStateEventRow_null_TimelineItemStateEventRow-Day-34_34_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemStateEventRow_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemStateEventRow_null_TimelineItemStateEventRow-Day-34_34_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemStateEventRow_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemStateEventRow_null_TimelineItemStateEventRow-Night-34_35_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemStateEventRow_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemStateEventRow_null_TimelineItemStateEventRow-Night-34_35_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components_TimelineItemStateEventRow_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.debug_EventDebugInfoView_null_EventDebugInfoView-Day-65_65_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.debug_EventDebugInfoView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.debug_EventDebugInfoView_null_EventDebugInfoView-Day-65_65_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.debug_EventDebugInfoView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.debug_EventDebugInfoView_null_EventDebugInfoView-Night-65_66_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.debug_EventDebugInfoView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.debug_EventDebugInfoView_null_EventDebugInfoView-Night-65_66_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.debug_EventDebugInfoView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Day-66_66_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.focus_FocusRequestStateView_null_FocusRequestStateView-Night-66_67_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.focus_FocusRequestStateView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_0_en.png new file mode 100644 index 0000000000..d64c168b40 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c318aa5384264975cf3adae1d322e2b3e4cbf12d1f3298e175a95cf90456fe5b +size 49851 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_10_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_10_en.png new file mode 100644 index 0000000000..e6c7978ccf --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1847e4c0fdc3c0e08071f9a1f7c63b9e0aa091e0fe56b2b3fc44135aa9413ceb +size 328633 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_11_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_11_en.png new file mode 100644 index 0000000000..7072909ec0 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbf8641b96554b57e5fb351d0794ff8bc1677ed9b9b1229fb7a647555c06b880 +size 85714 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_12_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_12_en.png new file mode 100644 index 0000000000..4b8023bb03 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1725ffef861165bc88bd5722c5d524e231662f91b49f7faea879b7f5ffafc8c2 +size 51305 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_13_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_13_en.png new file mode 100644 index 0000000000..88c50f5328 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_13_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:731db9a0ed36a2154114fd42a59d4e2df88c55dbbadc81c2a2c76fbffa9ec4be +size 63052 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_14_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_14_en.png new file mode 100644 index 0000000000..30d233f48f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_14_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8e7a0375b6887fa046ee9cbe7f9ae6a1791349eb686665c9aa565f538ad8db8 +size 47548 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_15_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_15_en.png new file mode 100644 index 0000000000..eb849f99f2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_15_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a6f1c400706008f844d9f7a4968a477fb7c04d8b210b271e5808287e344aef4 +size 64160 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_16_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_16_en.png new file mode 100644 index 0000000000..576b0fdad5 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_16_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4a954c26636c7b002ef0fe00e491c51cd4ae81d94bf9a66228ed539bb62c5c4 +size 54791 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_1_en.png new file mode 100644 index 0000000000..a983c9aa20 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c0b3f528eecb4ecf10e02013f99f3a91c420ec0589b30ec068d5879d195b011 +size 70817 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_2_en.png new file mode 100644 index 0000000000..8b5db9400a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f07f3ef8095505e28219f5b1a35550c89e471be324ceec5d451461814839db80 +size 200585 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_3_en.png new file mode 100644 index 0000000000..e1d42219a2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09c608f6b70cfd1e23b8cbdb3d3e18607934ee374a1ab54f089063b8fde4249c +size 201636 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_4_en.png new file mode 100644 index 0000000000..d2c1431d1f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3bc03644a96c782c4dd88e6429f5ee6a5ab089d4e10cd525e6010da37e90469 +size 69890 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_5_en.png new file mode 100644 index 0000000000..ac9f23e72a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1740956e1e5be37355f8cf1a835c7304e78c9dcd7e66632ce53848f291c148ce +size 84969 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_6_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_6_en.png new file mode 100644 index 0000000000..4ca78fac54 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a32469802d6e33935a9970162899f85553806e1fb8e655e6ca5ac38b5583e3d +size 72404 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_7_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_7_en.png new file mode 100644 index 0000000000..171a1b4cbc --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:177c59914d02b5a26e7c4a949557ed875fab5f25871d2e480e83406673d101d1 +size 103021 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_8_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_8_en.png new file mode 100644 index 0000000000..5a9411875c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aa7a1d6666e73fd9f268776c0d4129e1adea4a78499820fd1f3cfa6b7387198 +size 52806 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_9_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_9_en.png new file mode 100644 index 0000000000..b41446ae50 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Day_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33a9ce2e9848960f0505bd1deaaefb558878640f5e801ff821fc1e632849980a +size 371405 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_0_en.png new file mode 100644 index 0000000000..db1b88c864 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dc5f9cf4a4a029813a8842974fc8c0e5452f350558805531b5f774b1bd8402f +size 48832 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_10_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_10_en.png new file mode 100644 index 0000000000..93f32de922 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:066840b06b0357bc56f1c3579ef87262e0d9bed128913bc0814cc8c564513947 +size 148556 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_11_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_11_en.png new file mode 100644 index 0000000000..a5a4311afe --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e92f8e266cf5c6ad607a21d5f9b35edc9a0d514736a97b6213f727410da30c4f +size 86743 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_12_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_12_en.png new file mode 100644 index 0000000000..aa52382b57 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:786750f228b67b38074c3470f122fa041bb06c17c8a3c6a304603ee1d33bcbc6 +size 50541 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_13_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_13_en.png new file mode 100644 index 0000000000..931001a70c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_13_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:826a099795a4e87a6f6a739a093e4741a9902e8f21993226304f66251c8f7820 +size 61536 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_14_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_14_en.png new file mode 100644 index 0000000000..eed71a91c7 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_14_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8489d144145bfad2048c3d7953da27d675d4c38a9d31dd2f27d55dc9ae3e92cc +size 46742 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_15_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_15_en.png new file mode 100644 index 0000000000..b0e6125a98 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_15_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0508a20cc31b270e5f04f44fc380c712d6584435b769d5aa808a043c0e9c04f8 +size 62457 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_16_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_16_en.png new file mode 100644 index 0000000000..0dea14608c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_16_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a87b1efb9404f5f7bf496332f1a60f39cc7773bee853e3b21ef6e60f62c06afd +size 53494 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_1_en.png new file mode 100644 index 0000000000..0780521366 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad1d4088f839e4abf02a27c1fff63af5793485bf746e9da9c06ef10cbcbcefba +size 68942 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_2_en.png new file mode 100644 index 0000000000..5204ecbe60 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:802b8e81a357a5542ed33abd5ea3c8abb415740df89f1ddf792336b3d70a1553 +size 199451 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_3_en.png new file mode 100644 index 0000000000..e7e00aa9c9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da6bfd7e5856e1d6728685c91ecf0d31e2243c00c98f0a19e35acb5295b5528b +size 200189 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_4_en.png new file mode 100644 index 0000000000..b0e4b26827 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67c7234a2f31f8c67133d01ea09b77f40344592a1f680c6fbc8175ca3f893f76 +size 68399 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_5_en.png new file mode 100644 index 0000000000..9f23241184 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a998fbaa0ccc739241c38ef1d320f0158b969674639e50d04fc4a6e59cabfb7a +size 82841 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_6_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_6_en.png new file mode 100644 index 0000000000..e9126b6536 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7cfb9fca3aef52461af5e17472547497a5c8f54a0de3565f614ed31502d9288 +size 71361 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_7_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_7_en.png new file mode 100644 index 0000000000..39b37b1ba6 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75236cff6503ac62698a92999eeb9fa2c6d367fc5416a199938c74dee21b0b7f +size 100655 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_8_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_8_en.png new file mode 100644 index 0000000000..4d92e0e253 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:188a5cdd2327f4b15f2e2ddf7815bb60629eb3a1446f1ab834307d9c3a91c9f8 +size 52379 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_9_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_9_en.png new file mode 100644 index 0000000000..1b0125da16 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline_TimelineView_Night_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:238efb4366a02436cc5d163564ec74be45fead7bf968577441c333a5e4d8fd07 +size 152644 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Day_0_en.png new file mode 100644 index 0000000000..309c2bd605 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40960e8da93791449132dcc4c77a0ee4ca711358ea8f184c080bb4dddbe01724 +size 53669 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Day_1_en.png new file mode 100644 index 0000000000..97450096ad --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3505a9a29ca2636dbf201b1bdfb0a52d05ec885b5b14709dca3f3d1184cf258 +size 54547 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Day_2_en.png new file mode 100644 index 0000000000..106395dcc2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c495a8d5d9d4cef2f258d39decc7c841b2bee5196a330944e745d78af42b046c +size 50595 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Night_0_en.png new file mode 100644 index 0000000000..fdd5741b35 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43e55acf964c3bde105c3b00eaa9d67d9cdeb3334f0d641d18c5c2476a178655 +size 54416 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Night_1_en.png new file mode 100644 index 0000000000..0e7b362a1c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c749a0dff6fa96383268514cc330e02d13c1f50e5e6d238539c612cad7ba54d +size 55283 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Night_2_en.png new file mode 100644 index 0000000000..9f47f82ec1 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_MessagesViewWithTyping_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d741537e51e539a627aaee9a567a52a5a96207c8dfb7d69ce799438179ad6c29 +size 51388 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Day-68_68_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_TypingNotificationView_null_TypingNotificationView-Night-68_69_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl.typing_TypingNotificationView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_0_en.png new file mode 100644 index 0000000000..fb3f6bcbad --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff311eba5365bb2a726eb59b71ecc40295032003dd5e03587efed086bdca79ec +size 55228 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_10_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_10_en.png new file mode 100644 index 0000000000..3b7df7988e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a24bfa8d881fac3d302898f7721c202c4cdedb37d4a75277cdc551a3a4e6ab80 +size 56882 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_11_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_11_en.png new file mode 100644 index 0000000000..8fdd7ef2a3 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bca01015488a95b5a7daf277fe2e8114012e26ddacad195ddffba6c30edb080 +size 47104 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_12_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_12_en.png new file mode 100644 index 0000000000..5f698df606 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2b13b08c823c492457daf9b54ae17616845154af22a58880cd1081ab38b304c +size 55264 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_1_en.png new file mode 100644 index 0000000000..c50c0cac8b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8424c63cd12ce518c096d62c8aeeffc5d7f7308fed1c1612dca7ad8e832606c4 +size 54790 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_3_en.png new file mode 100644 index 0000000000..6f7fa71e13 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8292a8b339592e3caf7118a16584ca41754900f03a8fa89bbc2424d2c3a6c9f1 +size 57701 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_4_en.png new file mode 100644 index 0000000000..ff5fb09de4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21f6c7ac3951f1aca51d6a2eabca7fdbdb1e00b3b3a3c44c96dae180bbee3623 +size 53216 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_5_en.png new file mode 100644 index 0000000000..50322c59cf --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6db28acda62e4343ba7b4f64f31070253fe968f6ed8464afb1bb54506353278 +size 53081 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_6_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_6_en.png new file mode 100644 index 0000000000..69801a6993 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:806695481b7fe30e0c315b2e46c6fe48c21a1cedbfaf21736ad2716a41212473 +size 53645 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_7_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_7_en.png new file mode 100644 index 0000000000..45e3b40177 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c46f2842388c3d2d14cddae957ccc74c4a108faceff36846f5ca7daa00b9f593 +size 56398 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_8_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_8_en.png new file mode 100644 index 0000000000..fe804c04af --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e85f80a115c90586f81127b87aa5874a2f811d15c6af443bc0f0d7078c85f4e +size 38280 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_9_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_9_en.png new file mode 100644 index 0000000000..c344a1583e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Day_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9ae1d25882c0c05723b68c61f97ac4ff2423750913f1f3186a6dad48e845e8e +size 37557 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_0_en.png new file mode 100644 index 0000000000..ae3271ee83 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e1974d0ec89208a55b0faeb230c89fc3ed10c1d4bead234dc39c06169ab24ca +size 55060 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_10_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_10_en.png new file mode 100644 index 0000000000..439ce25005 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74a2c962831b6468dbff878d6f55460a5cdbc3d06c7566cecfb89b7bcf049b18 +size 56600 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_11_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_11_en.png new file mode 100644 index 0000000000..c74b552192 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e468164817c0e6302c1f8cacecb24daed2fe65eb5453723186651dc7bc1851cf +size 43297 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_12_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_12_en.png new file mode 100644 index 0000000000..7c09af645a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad336e1b96ac2528cd1d7573fda649e5fe09235b72d555d79f32cca4eb8c1c05 +size 55084 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_1_en.png new file mode 100644 index 0000000000..b935cc06e7 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5b9fe533cfad8892708a609a79fa1f8bed95ad8fb20b979993da9b2d1ea380d +size 54511 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_3_en.png new file mode 100644 index 0000000000..0cc32b0dbf --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4d0b4ab8e2234e08ca7c67d4653729abcf2c4ed055b983fdde15589daaf0124 +size 57234 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_4_en.png new file mode 100644 index 0000000000..b513f8b897 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a32531adceea6b03b25291435fb2df753868571b3edf3ea29f00353d07087e +size 49544 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_5_en.png new file mode 100644 index 0000000000..bb7da5784e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:534490ea60a6078200761864dd112f54be124647f818ccec77fb986ea71582a8 +size 52689 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_6_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_6_en.png new file mode 100644 index 0000000000..1eb51aad8a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2063163a5ac3c78398df388b9e471362a32244d5bdf4790409358640b5cfb15f +size 53399 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_7_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_7_en.png new file mode 100644 index 0000000000..a8c890d748 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d0d0b885ae157ff456d7113707bc72f3ced9ab74c895cdf7377adc1bc8c48db +size 52373 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_8_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_8_en.png new file mode 100644 index 0000000000..ecdeb0c387 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:828b9893e06b168b16b42950f42b89ecc51b73c9b425732d379a72d737f04491 +size 36126 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_9_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_9_en.png new file mode 100644 index 0000000000..5920916813 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl_MessagesView_Night_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f251ca0e5c4f98b7c5889b42161e4d52f3faf37850c242122aac2d124a1357b1 +size 35393 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.migration.impl_MigrationView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.migration.impl_MigrationView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.migration.impl_MigrationView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.migration.impl_MigrationView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.migration.impl_MigrationView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.migration.impl_MigrationView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.migration.impl_MigrationView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.migration.impl_MigrationView_null_MigrationView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.migration.impl_MigrationView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.networkmonitor.api.ui_ConnectivityIndicatorView_null_ConnectivityIndicatorView-Day-0_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.networkmonitor.api.ui_ConnectivityIndicatorView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.networkmonitor.api.ui_ConnectivityIndicatorView_null_ConnectivityIndicatorView-Day-0_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.networkmonitor.api.ui_ConnectivityIndicatorView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.networkmonitor.api.ui_ConnectivityIndicatorView_null_ConnectivityIndicatorView-Night-0_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.networkmonitor.api.ui_ConnectivityIndicatorView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.networkmonitor.api.ui_ConnectivityIndicatorView_null_ConnectivityIndicatorView-Night-0_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.networkmonitor.api.ui_ConnectivityIndicatorView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.onboarding.impl_OnBoardingView_null_OnBoardingView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.onboarding.impl_OnBoardingView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_null_PollAnswerViewDisclosedNotSelected-Day-0_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_null_PollAnswerViewDisclosedNotSelected-Day-0_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_null_PollAnswerViewDisclosedNotSelected-Night-0_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_null_PollAnswerViewDisclosedNotSelected-Night-0_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedSelected_null_PollAnswerViewDisclosedSelected-Day-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedSelected_null_PollAnswerViewDisclosedSelected-Day-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedSelected_null_PollAnswerViewDisclosedSelected-Night-1_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewDisclosedSelected_null_PollAnswerViewDisclosedSelected-Night-1_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedSelected_null_PollAnswerViewEndedSelected-Day-6_7_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedSelected_null_PollAnswerViewEndedSelected-Day-6_7_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedSelected_null_PollAnswerViewEndedSelected-Night-6_8_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedSelected_null_PollAnswerViewEndedSelected-Night-6_8_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_null_PollAnswerViewEndedWinnerNotSelected-Day-4_5_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_null_PollAnswerViewEndedWinnerNotSelected-Day-4_5_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_null_PollAnswerViewEndedWinnerNotSelected-Night-4_6_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_null_PollAnswerViewEndedWinnerNotSelected-Night-4_6_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_null_PollAnswerViewEndedWinnerSelected-Day-5_6_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_null_PollAnswerViewEndedWinnerSelected-Day-5_6_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_null_PollAnswerViewEndedWinnerSelected-Night-5_7_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_null_PollAnswerViewEndedWinnerSelected-Night-5_7_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_null_PollAnswerViewUndisclosedNotSelected-Day-2_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_null_PollAnswerViewUndisclosedNotSelected-Day-2_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_null_PollAnswerViewUndisclosedNotSelected-Night-2_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_null_PollAnswerViewUndisclosedNotSelected-Night-2_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_null_PollAnswerViewUndisclosedSelected-Day-3_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_null_PollAnswerViewUndisclosedSelected-Day-3_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_null_PollAnswerViewUndisclosedSelected-Night-3_5_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_null_PollAnswerViewUndisclosedSelected-Night-3_5_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEditable_null_PollContentViewCreatorEditable-Day-10_11_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreatorEditable_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEditable_null_PollContentViewCreatorEditable-Day-10_11_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreatorEditable_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEditable_null_PollContentViewCreatorEditable-Night-10_12_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreatorEditable_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEditable_null_PollContentViewCreatorEditable-Night-10_12_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreatorEditable_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEnded_null_PollContentViewCreatorEnded-Day-12_13_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEnded_null_PollContentViewCreatorEnded-Day-12_13_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEnded_null_PollContentViewCreatorEnded-Night-12_14_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreatorEnded_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreatorEnded_null_PollContentViewCreatorEnded-Night-12_14_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreatorEnded_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreator_null_PollContentViewCreator-Day-11_12_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreator_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreator_null_PollContentViewCreator-Day-11_12_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreator_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreator_null_PollContentViewCreator-Night-11_13_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreator_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewCreator_null_PollContentViewCreator-Night-11_13_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewCreator_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewDisclosed_null_PollContentViewDisclosed-Day-8_9_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewDisclosed_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewDisclosed_null_PollContentViewDisclosed-Day-8_9_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewDisclosed_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewDisclosed_null_PollContentViewDisclosed-Night-8_10_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewDisclosed_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewDisclosed_null_PollContentViewDisclosed-Night-8_10_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewDisclosed_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewEnded_null_PollContentViewEnded-Day-9_10_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewEnded_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewEnded_null_PollContentViewEnded-Day-9_10_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewEnded_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewEnded_null_PollContentViewEnded-Night-9_11_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewEnded_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewEnded_null_PollContentViewEnded-Night-9_11_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewEnded_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewUndisclosed_null_PollContentViewUndisclosed-Day-7_8_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewUndisclosed_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewUndisclosed_null_PollContentViewUndisclosed-Day-7_8_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewUndisclosed_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewUndisclosed_null_PollContentViewUndisclosed-Night-7_9_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewUndisclosed_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.api.pollcontent_PollContentViewUndisclosed_null_PollContentViewUndisclosed-Night-7_9_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.api.pollcontent_PollContentViewUndisclosed_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Day-0_1_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.create_CreatePollView_null_CreatePollView-Night-0_2_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.create_CreatePollView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Day-1_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.poll.impl.history_PollHistoryView_null_PollHistoryView-Night-1_3_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.poll.impl.history_PollHistoryView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.about_AboutView_null_AboutView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.about_AboutView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.about_AboutView_null_AboutView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.about_AboutView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.about_AboutView_null_AboutView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.about_AboutView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.about_AboutView_null_AboutView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.about_AboutView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Day-1_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.advanced_AdvancedSettingsView_null_AdvancedSettingsView-Night-1_3_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.analytics_AnalyticsSettingsView_null_AnalyticsSettingsView-Day-2_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.analytics_AnalyticsSettingsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.analytics_AnalyticsSettingsView_null_AnalyticsSettingsView-Day-2_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.analytics_AnalyticsSettingsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.analytics_AnalyticsSettingsView_null_AnalyticsSettingsView-Night-2_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.analytics_AnalyticsSettingsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.analytics_AnalyticsSettingsView_null_AnalyticsSettingsView-Night-2_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.analytics_AnalyticsSettingsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Day-3_4_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.blockedusers_BlockedUsersView_null_BlockedUsersView-Night-3_5_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.blockedusers_BlockedUsersView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer.tracing_ConfigureTracingView_null_ConfigureTracingView-Day-5_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.developer.tracing_ConfigureTracingView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer.tracing_ConfigureTracingView_null_ConfigureTracingView-Day-5_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.developer.tracing_ConfigureTracingView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer.tracing_ConfigureTracingView_null_ConfigureTracingView-Night-5_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.developer.tracing_ConfigureTracingView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer.tracing_ConfigureTracingView_null_ConfigureTracingView-Night-5_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.developer.tracing_ConfigureTracingView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Day-4_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Night-4_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Night-4_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Night-4_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Night-4_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Night-4_6_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.developer_DeveloperSettingsView_null_DeveloperSettingsView-Night-4_6_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.developer_DeveloperSettingsView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_DefaultNotificationSettingOption_null_DefaultNotificationSettingOption-Day-7_8_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_DefaultNotificationSettingOption_null_DefaultNotificationSettingOption-Day-7_8_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_DefaultNotificationSettingOption_null_DefaultNotificationSettingOption-Night-7_9_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_DefaultNotificationSettingOption_null_DefaultNotificationSettingOption-Night-7_9_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Day-8_9_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_null_EditDefaultNotificationSettingView-Night-8_10_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_12_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_12_en.png new file mode 100644 index 0000000000..c4783027f4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b97743618b94a6f0e9f3e9d1e776f818deafb8e1bfb9671e85497359b2d45a95 +size 15210 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Day-6_7_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_12_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_12_en.png new file mode 100644 index 0000000000..612f5af55b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea1f406cdc673d242f6a8920da2f15316961f9765ddb43e189ef1c057417658a +size 14762 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.notifications_NotificationSettingsView_null_NotificationSettingsView-Night-6_8_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.notifications_NotificationSettingsView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.root_PreferencesRootViewDark_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.root_PreferencesRootViewDark_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.root_PreferencesRootViewDark_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.root_PreferencesRootViewDark_null_PreferencesRootViewDark--1_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.root_PreferencesRootViewDark_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.root_PreferencesRootViewLight_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.root_PreferencesRootViewLight_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.root_PreferencesRootViewLight_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.root_PreferencesRootViewLight_null_PreferencesRootViewLight--0_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.root_PreferencesRootViewLight_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user.editprofile_EditUserProfileView_null_EditUserProfileView-Day-10_11_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.user.editprofile_EditUserProfileView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user.editprofile_EditUserProfileView_null_EditUserProfileView-Day-10_11_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.user.editprofile_EditUserProfileView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user.editprofile_EditUserProfileView_null_EditUserProfileView-Night-10_12_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.user.editprofile_EditUserProfileView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user.editprofile_EditUserProfileView_null_EditUserProfileView-Night-10_12_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.user.editprofile_EditUserProfileView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Day-9_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Day-9_10_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Day-9_10_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Day-9_10_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Day-9_10_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Day-9_10_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Night-9_11_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Night-9_11_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Night-9_11_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Night-9_11_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Night-9_11_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.preferences.impl.user_UserPreferences_null_UserPreferences-Night-9_11_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.preferences.impl.user_UserPreferences_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.crash_CrashDetectionView_null_CrashDetectionView-Day-0_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.api.crash_CrashDetectionView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.crash_CrashDetectionView_null_CrashDetectionView-Day-0_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.api.crash_CrashDetectionView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.crash_CrashDetectionView_null_CrashDetectionView-Night-0_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.api.crash_CrashDetectionView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.crash_CrashDetectionView_null_CrashDetectionView-Night-0_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.api.crash_CrashDetectionView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.detection_RageshakeDialogContent_null_RageshakeDialogContent-Day-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.api.detection_RageshakeDialogContent_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.detection_RageshakeDialogContent_null_RageshakeDialogContent-Day-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.api.detection_RageshakeDialogContent_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.detection_RageshakeDialogContent_null_RageshakeDialogContent-Night-1_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.api.detection_RageshakeDialogContent_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.detection_RageshakeDialogContent_null_RageshakeDialogContent-Night-1_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.api.detection_RageshakeDialogContent_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Day-2_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.api.preferences_RageshakePreferencesView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Day-2_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.api.preferences_RageshakePreferencesView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Day-2_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.api.preferences_RageshakePreferencesView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Day-2_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.api.preferences_RageshakePreferencesView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Night-2_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.api.preferences_RageshakePreferencesView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Night-2_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.api.preferences_RageshakePreferencesView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Night-2_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.api.preferences_RageshakePreferencesView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.api.preferences_RageshakePreferencesView_null_RageshakePreferencesView-Night-2_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.api.preferences_RageshakePreferencesView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.rageshake.impl.bugreport_BugReportView_null_BugReportView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.rageshake.impl.bugreport_BugReportView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomaliasresolver.impl_RoomAliasResolverView_null_RoomAliasResolverView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomaliasresolver.impl_RoomAliasResolverView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgeNegative_null_RoomBadgeNegative-Day-2_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgeNegative_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgeNegative_null_RoomBadgeNegative-Day-2_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgeNegative_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgeNegative_null_RoomBadgeNegative-Night-2_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgeNegative_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgeNegative_null_RoomBadgeNegative-Night-2_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgeNegative_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgeNeutral_null_RoomBadgeNeutral-Day-1_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgeNeutral_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgeNeutral_null_RoomBadgeNeutral-Day-1_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgeNeutral_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgeNeutral_null_RoomBadgeNeutral-Night-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgeNeutral_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgeNeutral_null_RoomBadgeNeutral-Night-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgeNeutral_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgePositive_null_RoomBadgePositive-Day-0_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgePositive_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgePositive_null_RoomBadgePositive-Day-0_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgePositive_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgePositive_null_RoomBadgePositive-Night-0_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgePositive_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.components_RoomBadgePositive_null_RoomBadgePositive-Night-0_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.components_RoomBadgePositive_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Day-3_3_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.edit_RoomDetailsEditView_null_RoomDetailsEditView-Night-3_4_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.edit_RoomDetailsEditView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Day-4_4_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.invite_RoomInviteMembersView_null_RoomInviteMembersView-Night-4_5_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.invite_RoomInviteMembersView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Day-7_7_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members.moderation_RoomMembersModerationView_null_RoomMembersModerationView-Night-7_8_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Day-6_6_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Night-6_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Night-6_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Night-6_7_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Night-6_7_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Night-6_7_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListViewBanned_null_RoomMemberListViewBanned-Night-6_7_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListViewBanned_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Day-5_5_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.members_RoomMemberListView_null_RoomMemberListView-Night-5_6_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members_RoomMemberListView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_null_RoomNotificationSettingsOption-Day-8_8_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_null_RoomNotificationSettingsOption-Day-8_8_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_null_RoomNotificationSettingsOption-Night-8_9_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_null_RoomNotificationSettingsOption-Night-8_9_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Day-9_9_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_null_RoomNotificationSettingsView-Night-9_10_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_null_UserDefinedRoomNotificationSettingsView-Day-10_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_null_UserDefinedRoomNotificationSettingsView-Day-10_10_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_null_UserDefinedRoomNotificationSettingsView-Night-10_11_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_null_UserDefinedRoomNotificationSettingsView-Night-10_11_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Day-12_12_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_null_ChangeRolesView-Night-12_13_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_null_PendingMemberRowWithLongName-Day-13_13_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_null_PendingMemberRowWithLongName-Day-13_13_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_null_PendingMemberRowWithLongName-Night-13_14_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_null_PendingMemberRowWithLongName-Night-13_14_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Day-14_14_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_null_ChangeRoomPermissionsView-Night-14_15_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Day-11_11_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_null_RolesAndPermissionsView-Night-11_12_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_0_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_0_en.png new file mode 100644 index 0000000000..8a8a532ba2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b66bfca625a2c5abbb99eb63840c99d941331f74da6741203f382ee49fec29fa +size 45772 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_10_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_10_en.png new file mode 100644 index 0000000000..99307b9b97 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24d1b09fbf025b954711e4bd8392d32675568154bbd06ce8c69f4a8deb91a958 +size 43695 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_11_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_11_en.png new file mode 100644 index 0000000000..f11e3460cb --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05d47c7317111c9e7ac34f66705a8344114501c35d05d630f2146e128300077d +size 42587 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_12_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_12_en.png new file mode 100644 index 0000000000..2218fcc35e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5491a9525166428c8b1ce94aaf3ef56aa5415cab19f8bcd99be128c265925e9 +size 45669 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_1_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_1_en.png new file mode 100644 index 0000000000..773c3fe950 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e1320dbc665a15434e9ea46bc8f085cb0a1dfe1a328d41139401ebd8ef23f84 +size 34975 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_2_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_2_en.png new file mode 100644 index 0000000000..028a806260 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42590cba46dc5f9e0d4e9504d1ea854c5f5f3fdf3acaddca2604988164153beb +size 37065 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_3_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_3_en.png new file mode 100644 index 0000000000..5e5446c198 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30e9d873c187481341222a986741061eb84162127d7e0d086d3c957d9ef2d2d8 +size 35945 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_4_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_4_en.png new file mode 100644 index 0000000000..d9e920eb75 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:189e30f39a33924a6da727d4caa4ce117df66cc9dd1857c4909649cf8db51fdb +size 43191 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_5_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_5_en.png new file mode 100644 index 0000000000..5053bfa3af --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd1fee6b0af1818d9b0fb6809620fa8118b970f439ae75c504ffd4e172aa60d3 +size 41670 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_6_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_6_en.png new file mode 100644 index 0000000000..5053bfa3af --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd1fee6b0af1818d9b0fb6809620fa8118b970f439ae75c504ffd4e172aa60d3 +size 41670 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_7_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_7_en.png new file mode 100644 index 0000000000..e70f6778f8 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0f12af0b98d2d145d5443554a0657cd0699fe27f86447873630a189cbce615a +size 45008 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_8_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_8_en.png new file mode 100644 index 0000000000..f4023197f4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db2babbe88dd81723ecf8f1c83fa73042efb590d04f1b12aaabf102f7f576dd9 +size 43883 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_9_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_9_en.png new file mode 100644 index 0000000000..866944d635 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetailsDark_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53056291448931a702d761557712626259f04a3969f128553a7bc7a172d74d5b +size 43840 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_0_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_0_en.png new file mode 100644 index 0000000000..0c89045531 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d69018133b9a3ebf36e7819031df2c8b8bc19f1e7632cfeabc02ca6bcf76ffce +size 46744 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_10_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_10_en.png new file mode 100644 index 0000000000..0d9c8a73b7 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04a0838ac192efeacb821d23ed8b3ce8305b8e8084beb0e5a0fbc56cfa1ce964 +size 44435 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_11_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_11_en.png new file mode 100644 index 0000000000..343de082ef --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d760e5015257bd8d608749c1926c6177e4d0ef70d5d5f32764e970f4c80cb43 +size 43331 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_12_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_12_en.png new file mode 100644 index 0000000000..3ba823f05b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_12_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63d2319dc4617d805f0b652983e4bb7b6e4aa7c2e9c6ec37398fce2e2413a79d +size 46441 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_1_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_1_en.png new file mode 100644 index 0000000000..0e629da29e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:374166110a04cee8f63d1d330601976970e5abcd92947cfb284e61613cf47f51 +size 35727 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_2_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_2_en.png new file mode 100644 index 0000000000..e8e3831962 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c3dec8246e5605c61a9132cea048c5afaad35751246ffd81160c33782c26c93 +size 37861 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_3_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_3_en.png new file mode 100644 index 0000000000..3f3136ce6c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8491d21c160851bbe3a0362edae05e46cf9cb072ca4bf41ad569a3a6c57097c +size 36458 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_4_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_4_en.png new file mode 100644 index 0000000000..00cc501d4b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7f08cac8eecb3ae6067f756411d0ec5607d3207832cfe69858ef1189f18ee45 +size 43996 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_5_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_5_en.png new file mode 100644 index 0000000000..3395cc0a08 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5649302bb7468c7ec2214b509259df584574e52662eaca1782ad732c6c9ac659 +size 42296 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_6_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_6_en.png new file mode 100644 index 0000000000..3395cc0a08 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5649302bb7468c7ec2214b509259df584574e52662eaca1782ad732c6c9ac659 +size 42296 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_7_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_7_en.png new file mode 100644 index 0000000000..7a9d976302 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea0cfd0f222862a8becdd4b4a7f2e47a4a7d83ecb1ff761889c46631d7d43e97 +size 45861 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_8_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_8_en.png new file mode 100644 index 0000000000..9a0cf77937 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd7aa71f1d24d4cacafb4aaea8802d1493e317604d5ea35f0d9fac1a304d7f19 +size 44718 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_9_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_9_en.png new file mode 100644 index 0000000000..a2ec270d02 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl_RoomDetails_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:234e65b2caa1f23f9e4d0e01c142d22df0d407851e554a7db3e0b09c57acf47a +size 44626 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdirectory.impl.root_RoomDirectoryView_null_RoomDirectoryView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomdirectory.impl.root_RoomDirectoryView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_ConfirmRecoveryKeyBanner_null_ConfirmRecoveryKeyBanner-Day-2_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_ConfirmRecoveryKeyBanner_null_ConfirmRecoveryKeyBanner-Day-2_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_ConfirmRecoveryKeyBanner_null_ConfirmRecoveryKeyBanner-Night-2_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_ConfirmRecoveryKeyBanner_null_ConfirmRecoveryKeyBanner-Night-2_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_null_DefaultRoomListTopBarWithIndicator-Day-6_7_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_null_DefaultRoomListTopBarWithIndicator-Day-6_7_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_null_DefaultRoomListTopBarWithIndicator-Night-6_8_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_null_DefaultRoomListTopBarWithIndicator-Night-6_8_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBar_null_DefaultRoomListTopBar-Day-5_6_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_DefaultRoomListTopBar_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBar_null_DefaultRoomListTopBar-Day-5_6_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_DefaultRoomListTopBar_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBar_null_DefaultRoomListTopBar-Night-5_7_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_DefaultRoomListTopBar_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_DefaultRoomListTopBar_null_DefaultRoomListTopBar-Night-5_7_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_DefaultRoomListTopBar_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_FullScreenIntentPermissionBanner_null_FullScreenIntentPermissionBanner-Day-3_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_FullScreenIntentPermissionBanner_null_FullScreenIntentPermissionBanner-Day-3_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_FullScreenIntentPermissionBanner_null_FullScreenIntentPermissionBanner-Night-3_5_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_FullScreenIntentPermissionBanner_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_FullScreenIntentPermissionBanner_null_FullScreenIntentPermissionBanner-Night-3_5_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_FullScreenIntentPermissionBanner_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Day-4_5_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomListContentView_null_RoomListContentView-Night-4_6_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryPlaceholderRow_null_RoomSummaryPlaceholderRow-Day-7_8_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryPlaceholderRow_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryPlaceholderRow_null_RoomSummaryPlaceholderRow-Day-7_8_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryPlaceholderRow_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryPlaceholderRow_null_RoomSummaryPlaceholderRow-Night-7_9_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryPlaceholderRow_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryPlaceholderRow_null_RoomSummaryPlaceholderRow-Night-7_9_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryPlaceholderRow_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_12_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_12,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_12_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_13,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_13_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_13,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_13_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_14,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_14_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_14,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_14_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_15,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_15_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_15,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_15_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_16,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_16_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_16,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_16_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_17,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_17_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_17,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_17_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_18,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_18_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_18,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_18_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_19,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_19_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_19,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_19_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_20,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_20_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_20,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_20_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_21,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_21_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_21,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_21_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_22,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_22_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_22,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_22_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_23,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_23_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_23,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_23_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_24,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_24_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_24,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_24_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_25,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_25_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_25,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_25_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_26,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_26_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_26,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_26_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_27,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_27_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_27,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_27_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_28,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_28_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_28,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_28_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_29,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_29_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_29,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_29_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_30,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_30_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_30,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_30_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_31,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_31_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_31,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_31_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Day-8_9_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_12_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_12,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_12_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_13,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_13_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_13,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_13_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_14,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_14_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_14,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_14_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_15,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_15_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_15,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_15_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_16,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_16_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_16,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_16_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_17,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_17_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_17,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_17_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_18,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_18_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_18,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_18_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_19,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_19_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_19,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_19_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_20,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_20_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_20,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_20_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_21,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_21_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_21,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_21_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_22,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_22_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_22,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_22_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_23,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_23_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_23,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_23_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_24,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_24_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_24,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_24_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_25,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_25_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_25,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_25_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_26,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_26_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_26,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_26_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_27,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_27_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_27,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_27_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_28,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_28_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_28,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_28_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_29,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_29_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_29,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_29_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_30,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_30_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_30,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_30_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_31,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_31_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_31,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_31_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.components_RoomSummaryRow_null_RoomSummaryRow-Night-8_10_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomSummaryRow_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-9_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.filters_RoomListFiltersView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-9_10_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.filters_RoomListFiltersView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-9_10_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.filters_RoomListFiltersView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Day-9_10_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.filters_RoomListFiltersView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Night-9_11_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.filters_RoomListFiltersView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Night-9_11_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.filters_RoomListFiltersView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Night-9_11_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.filters_RoomListFiltersView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.filters_RoomListFiltersView_null_RoomListFiltersView-Night-9_11_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.filters_RoomListFiltersView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.migration_MigrationScreenView_null_MigrationScreenView-Day-10_11_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.migration_MigrationScreenView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.migration_MigrationScreenView_null_MigrationScreenView-Day-10_11_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.migration_MigrationScreenView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.migration_MigrationScreenView_null_MigrationScreenView-Night-10_12_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.migration_MigrationScreenView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.migration_MigrationScreenView_null_MigrationScreenView-Night-10_12_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.migration_MigrationScreenView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-11_12_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-11_12_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-11_12_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-11_12_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-11_12_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Day-11_12_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Night-11_13_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Night-11_13_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Night-11_13_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Night-11_13_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Night-11_13_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl.search_RoomListSearchContent_null_RoomListSearchContent-Night-11_13_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl.search_RoomListSearchContent_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListModalBottomSheetContent_null_RoomListModalBottomSheetContent-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListModalBottomSheetContent_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.roomlist.impl_RoomListView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.createkey_CreateNewRecoveryKeyView_null_CreateNewRecoveryKeyView-Day-0_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.createkey_CreateNewRecoveryKeyView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.createkey_CreateNewRecoveryKeyView_null_CreateNewRecoveryKeyView-Day-0_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.createkey_CreateNewRecoveryKeyView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.createkey_CreateNewRecoveryKeyView_null_CreateNewRecoveryKeyView-Night-0_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.createkey_CreateNewRecoveryKeyView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.createkey_CreateNewRecoveryKeyView_null_CreateNewRecoveryKeyView-Night-0_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.createkey_CreateNewRecoveryKeyView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Day-1_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.disable_SecureBackupDisableView_null_SecureBackupDisableView-Night-1_3_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.disable_SecureBackupDisableView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Day-2_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Night-2_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Night-2_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Night-2_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Night-2_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Night-2_4_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enable_SecureBackupEnableView_null_SecureBackupEnableView-Night-2_4_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enable_SecureBackupEnableView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Day-3_4_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_null_SecureBackupEnterRecoveryKeyView-Night-3_5_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Day-4_5_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.root_SecureBackupRootView_null_SecureBackupRootView-Night-4_6_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.root_SecureBackupRootView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Day-7_8_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup.views_RecoveryKeyView_null_RecoveryKeyView-Night-7_9_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup.views_RecoveryKeyView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Day-6_7_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupViewChange_null_SecureBackupSetupViewChange-Night-6_8_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Day-5_6_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.securebackup.impl.setup_SecureBackupSetupView_null_SecureBackupSetupView-Night-5_7_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.securebackup.impl.setup_SecureBackupSetupView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.share.impl_ShareView_null_ShareView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.share.impl_ShareView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.signedout.impl_SignedOutView_null_SignedOutView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.signedout.impl_SignedOutView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.signedout.impl_SignedOutView_null_SignedOutView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.signedout.impl_SignedOutView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.signedout.impl_SignedOutView_null_SignedOutView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.signedout.impl_SignedOutView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.signedout.impl_SignedOutView_null_SignedOutView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.signedout.impl_SignedOutView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileHeaderSection_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileHeaderSection_Day_0_en.png new file mode 100644 index 0000000000..ba31af04fe --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileHeaderSection_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbb4d57450a714d8190155b704b5bdd35024f811459c58f96776bf693ccf0466 +size 12643 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileHeaderSection_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileHeaderSection_Night_0_en.png new file mode 100644 index 0000000000..3a867f337e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileHeaderSection_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e97d209a7b10ed1d2186e32e077b7381b08c5174f939ac2131ba7d98021dc85f +size 13234 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_0_en.png new file mode 100644 index 0000000000..734efeb576 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac5b4e74ec63e7e8e6e61d3f7ffd731e0376eac278c2adce3582d1da02dafe1f +size 21262 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_1_en.png new file mode 100644 index 0000000000..9a980dc6a0 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a99ca956353e88e7358c372b0ddda72f3b1b9e558b55b4455122af109b6be5a +size 18957 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_2_en.png new file mode 100644 index 0000000000..c69f97ed09 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:071f13f5bbcf43b4e8a76c98749657daf4586a87d495fdcf605bf526496478eb +size 21608 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_3_en.png new file mode 100644 index 0000000000..532ef6f882 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:194bdc3cc468226d24d7803bb4b13bceff736b673d74e79513a09ace0b1ecea5 +size 33334 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_4_en.png new file mode 100644 index 0000000000..3c87d8700f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4014fa2f8d607fe79a74a85cfb72a79bb5073f48bc1705bec7727e8965e8409 +size 24896 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_5_en.png new file mode 100644 index 0000000000..d4943a306b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3a8dce72fa62a42d6c8e1fbcf875ff279c5e3dd17399d4e8b7e4a8e5298905b +size 22173 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_6_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_6_en.png new file mode 100644 index 0000000000..c7e92b6e12 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff97b32f07dd179fb4c2685c793734fc0888978273d2330ab571347786d969bc +size 20522 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_7_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_7_en.png new file mode 100644 index 0000000000..22d5ad0d6f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0c300400dba60e0389f454465d14c22926ae224bbd7e93355dd74c7f73f4a6a +size 22174 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_8_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_8_en.png new file mode 100644 index 0000000000..734efeb576 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Day_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac5b4e74ec63e7e8e6e61d3f7ffd731e0376eac278c2adce3582d1da02dafe1f +size 21262 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_0_en.png new file mode 100644 index 0000000000..4908c22bdb --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8bb7296cd22a4c882ec3e93b66b464754d5a58a2f855fe5253ba7b7a2660bfe +size 21124 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_1_en.png new file mode 100644 index 0000000000..f6adf02bfe --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5179ae27b40a0611e8ac715e501b01e715ceb8f227d7b432652186f974f3f512 +size 18970 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_2_en.png new file mode 100644 index 0000000000..3abc686c9a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4e55ae6975324403f2067b3633ddc38c5abd98f092c5d48a9cede88d597193a +size 21469 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_3_en.png new file mode 100644 index 0000000000..879baf96cc --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1a56500a8ec453aba753981ce32e1ab8635abb83f0160b295f455f842696058 +size 31401 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_4_en.png new file mode 100644 index 0000000000..ffb2b1dab9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aea6ecf044b2999bf67478864481724737982466a7552a07e3364b19ae4cb907 +size 23246 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_5_en.png new file mode 100644 index 0000000000..ff5db422ce --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54c198bbebdad2dc4110ca04d3a83b70d75557fb0872157c1724f339054d1234 +size 22020 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_6_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_6_en.png new file mode 100644 index 0000000000..660dd9d65d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65e816869277c12044991fb26427aac17d65072f1e0d7218b53583363a81024f +size 19249 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_7_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_7_en.png new file mode 100644 index 0000000000..141e3f9965 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:611ac8c529d73b14a73a73aeb7cec1eb1a50085d536bd700567462256df30974 +size 22026 diff --git a/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_8_en.png b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_8_en.png new file mode 100644 index 0000000000..4908c22bdb --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.userprofile.shared_UserProfileView_Night_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8bb7296cd22a4c882ec3e93b66b464754d5a58a2f855fe5253ba7b7a2660bfe +size 21124 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl.emoji_SasEmojis_null_SasEmojis-Day-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl.emoji_SasEmojis_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl.emoji_SasEmojis_null_SasEmojis-Day-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl.emoji_SasEmojis_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl.emoji_SasEmojis_null_SasEmojis-Night-1_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl.emoji_SasEmojis_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl.emoji_SasEmojis_null_SasEmojis-Night-1_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl.emoji_SasEmojis_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Day-0_1_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Day_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.verifysession.impl_VerifySelfSessionView_null_VerifySelfSessionView-Night-0_2_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.verifysession.impl_VerifySelfSessionView_Night_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Day-0_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.file_ViewFileView_null_ViewFileView-Night-0_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.file_ViewFileView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Day-1_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.folder_ViewFolderView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Day-1_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.folder_ViewFolderView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Day-1_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.folder_ViewFolderView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Day-1_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.folder_ViewFolderView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Night-1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.folder_ViewFolderView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Night-1_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.folder_ViewFolderView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Night-1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/features.viewfolder.impl.folder_ViewFolderView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.viewfolder.impl.folder_ViewFolderView_null_ViewFolderView-Night-1_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/features.viewfolder.impl.folder_ViewFolderView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_null_ElementLogoAtomLargeNoBlurShadow-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_null_ElementLogoAtomLargeNoBlurShadow-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_null_ElementLogoAtomLargeNoBlurShadow-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_null_ElementLogoAtomLargeNoBlurShadow-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomLargeNoBlurShadow_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLarge_null_ElementLogoAtomLarge-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomLarge_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLarge_null_ElementLogoAtomLarge-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomLarge_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLarge_null_ElementLogoAtomLarge-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomLarge_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomLarge_null_ElementLogoAtomLarge-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomLarge_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_null_ElementLogoAtomMediumNoBlurShadow-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_null_ElementLogoAtomMediumNoBlurShadow-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_null_ElementLogoAtomMediumNoBlurShadow-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_null_ElementLogoAtomMediumNoBlurShadow-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomMediumNoBlurShadow_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMedium_null_ElementLogoAtomMedium-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomMedium_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMedium_null_ElementLogoAtomMedium-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomMedium_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMedium_null_ElementLogoAtomMedium-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomMedium_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_ElementLogoAtomMedium_null_ElementLogoAtomMedium-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_ElementLogoAtomMedium_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_PlaceholderAtom_null_PlaceholderAtom-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_PlaceholderAtom_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_PlaceholderAtom_null_PlaceholderAtom-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_PlaceholderAtom_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_PlaceholderAtom_null_PlaceholderAtom-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_PlaceholderAtom_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_PlaceholderAtom_null_PlaceholderAtom-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_PlaceholderAtom_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_RedIndicatorAtom_null_RedIndicatorAtom-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_RedIndicatorAtom_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_RedIndicatorAtom_null_RedIndicatorAtom-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_RedIndicatorAtom_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_RedIndicatorAtom_null_RedIndicatorAtom-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_RedIndicatorAtom_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_RedIndicatorAtom_null_RedIndicatorAtom-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_RedIndicatorAtom_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_RoundedIconAtom_null_RoundedIconAtom-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_RoundedIconAtom_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_RoundedIconAtom_null_RoundedIconAtom-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_RoundedIconAtom_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_RoundedIconAtom_null_RoundedIconAtom-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_RoundedIconAtom_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_RoundedIconAtom_null_RoundedIconAtom-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_RoundedIconAtom_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_UnreadIndicatorAtom_null_UnreadIndicatorAtom-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_UnreadIndicatorAtom_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_UnreadIndicatorAtom_null_UnreadIndicatorAtom-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_UnreadIndicatorAtom_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_UnreadIndicatorAtom_null_UnreadIndicatorAtom-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_UnreadIndicatorAtom_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.atoms_UnreadIndicatorAtom_null_UnreadIndicatorAtom-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.atoms_UnreadIndicatorAtom_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_ButtonColumnMolecule_null_ButtonColumnMolecule-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ButtonColumnMolecule_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_ButtonColumnMolecule_null_ButtonColumnMolecule-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ButtonColumnMolecule_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_ButtonColumnMolecule_null_ButtonColumnMolecule-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ButtonColumnMolecule_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_ButtonColumnMolecule_null_ButtonColumnMolecule-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ButtonColumnMolecule_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_ButtonRowMolecule_null_ButtonRowMolecule-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ButtonRowMolecule_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_ButtonRowMolecule_null_ButtonRowMolecule-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ButtonRowMolecule_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_ButtonRowMolecule_null_ButtonRowMolecule-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ButtonRowMolecule_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_ButtonRowMolecule_null_ButtonRowMolecule-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ButtonRowMolecule_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_DialogLikeBannerMolecule_null_DialogLikeBannerMolecule-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_DialogLikeBannerMolecule_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_DialogLikeBannerMolecule_null_DialogLikeBannerMolecule-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_DialogLikeBannerMolecule_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_DialogLikeBannerMolecule_null_DialogLikeBannerMolecule-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_DialogLikeBannerMolecule_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_DialogLikeBannerMolecule_null_DialogLikeBannerMolecule-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_DialogLikeBannerMolecule_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_null_IconTitlePlaceholdersRowMolecule-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_null_IconTitlePlaceholdersRowMolecule-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_null_IconTitlePlaceholdersRowMolecule-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_null_IconTitlePlaceholdersRowMolecule-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_null_IconTitleSubtitleMoleculeWithResIcon-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_null_IconTitleSubtitleMoleculeWithResIcon-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_null_IconTitleSubtitleMoleculeWithResIcon-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_null_IconTitleSubtitleMoleculeWithResIcon-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitleSubtitleMoleculeWithResIcon_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMolecule_null_IconTitleSubtitleMolecule-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitleSubtitleMolecule_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMolecule_null_IconTitleSubtitleMolecule-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitleSubtitleMolecule_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMolecule_null_IconTitleSubtitleMolecule-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitleSubtitleMolecule_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_IconTitleSubtitleMolecule_null_IconTitleSubtitleMolecule-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_IconTitleSubtitleMolecule_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_InfoListItemMolecule_null_InfoListItemMolecule-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_InfoListItemMolecule_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_InfoListItemMolecule_null_InfoListItemMolecule-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_InfoListItemMolecule_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_InfoListItemMolecule_null_InfoListItemMolecule-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_InfoListItemMolecule_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_InfoListItemMolecule_null_InfoListItemMolecule-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_InfoListItemMolecule_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_RoomPreviewMembersCountMolecule_null_RoomPreviewMembersCountMolecule-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_RoomMembersCountMolecule_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_RoomPreviewMembersCountMolecule_null_RoomPreviewMembersCountMolecule-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_RoomMembersCountMolecule_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_RoomPreviewMembersCountMolecule_null_RoomPreviewMembersCountMolecule-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_RoomMembersCountMolecule_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.molecules_RoomPreviewMembersCountMolecule_null_RoomPreviewMembersCountMolecule-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_RoomMembersCountMolecule_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.organisms_InfoListOrganism_null_InfoListOrganism-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.organisms_InfoListOrganism_null_InfoListOrganism-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.organisms_InfoListOrganism_null_InfoListOrganism-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.organisms_InfoListOrganism_null_InfoListOrganism-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_FlowStepPage_null_FlowStepPage-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_FlowStepPage_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_FlowStepPage_null_FlowStepPage-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_FlowStepPage_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_FlowStepPage_null_FlowStepPage-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_FlowStepPage_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_FlowStepPage_null_FlowStepPage-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_FlowStepPage_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_HeaderFooterPage_null_HeaderFooterPage-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_HeaderFooterPage_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_HeaderFooterPage_null_HeaderFooterPage-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_HeaderFooterPage_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_HeaderFooterPage_null_HeaderFooterPage-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_HeaderFooterPage_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_HeaderFooterPage_null_HeaderFooterPage-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_HeaderFooterPage_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_OnBoardingPage_null_OnBoardingPage-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_OnBoardingPage_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_OnBoardingPage_null_OnBoardingPage-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_OnBoardingPage_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_OnBoardingPage_null_OnBoardingPage-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_OnBoardingPage_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_OnBoardingPage_null_OnBoardingPage-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_OnBoardingPage_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_SunsetPage_null_SunsetPage-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_SunsetPage_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_SunsetPage_null_SunsetPage-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_SunsetPage_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_SunsetPage_null_SunsetPage-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_SunsetPage_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.atomic.pages_SunsetPage_null_SunsetPage-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.pages_SunsetPage_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.background_LightGradientBackground_null_LightGradientBackground-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.background_LightGradientBackground_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.background_LightGradientBackground_null_LightGradientBackground-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.background_LightGradientBackground_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.background_LightGradientBackground_null_LightGradientBackground-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.background_LightGradientBackground_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.background_LightGradientBackground_null_LightGradientBackground-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.background_LightGradientBackground_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.background_OnboardingBackground_null_OnboardingBackground-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.background_OnboardingBackground_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.background_OnboardingBackground_null_OnboardingBackground-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.background_OnboardingBackground_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.background_OnboardingBackground_null_OnboardingBackground-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.background_OnboardingBackground_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.background_OnboardingBackground_null_OnboardingBackground-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.background_OnboardingBackground_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Day_0_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncActionView_null_AsyncActionView-Night_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncActionView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncFailure_null_AsyncFailure-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncFailure_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncFailure_null_AsyncFailure-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncFailure_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncFailure_null_AsyncFailure-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncFailure_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncFailure_null_AsyncFailure-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncFailure_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncIndicatorFailure_null_AsyncIndicatorFailure-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncIndicatorFailure_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncIndicatorFailure_null_AsyncIndicatorFailure-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncIndicatorFailure_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncIndicatorFailure_null_AsyncIndicatorFailure-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncIndicatorFailure_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncIndicatorFailure_null_AsyncIndicatorFailure-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncIndicatorFailure_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncIndicatorLoading_null_AsyncIndicatorLoading-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncIndicatorLoading_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncIndicatorLoading_null_AsyncIndicatorLoading-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncIndicatorLoading_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncIndicatorLoading_null_AsyncIndicatorLoading-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncIndicatorLoading_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncIndicatorLoading_null_AsyncIndicatorLoading-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncIndicatorLoading_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncLoading_null_AsyncLoading-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncLoading_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncLoading_null_AsyncLoading-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncLoading_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncLoading_null_AsyncLoading-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncLoading_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.async_AsyncLoading_null_AsyncLoading-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.async_AsyncLoading_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_11,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_12_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_12,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_12_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_13,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_13_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_13,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_13_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_14,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_14_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_14,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_14_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_15,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_15_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_15,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_15_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_16,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_16_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_16,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_16_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_17,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_17_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_17,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_17_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_18,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_18_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_18,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_18_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_19,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_19_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_19,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_19_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_20,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_20_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_20,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_20_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_21,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_21_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_21,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_21_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_22,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_22_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_22,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_22_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_23,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_23_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_23,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_23_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_24,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_24_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_24,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_24_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_25,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_25_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_25,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_25_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_26,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_26_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_26,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_26_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_27,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_27_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_27,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_27_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_28,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_28_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_28,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_28_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_29,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_29_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_29,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_29_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_30_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_30_en.png new file mode 100644 index 0000000000..7f11155791 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_30_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd5e2eac32ac182e297879363f4ca5d9f93c82ab200e9c3ed15fc42710bbba18 +size 16769 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_31_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_31_en.png new file mode 100644 index 0000000000..9ddacf9d65 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_31_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f6739cf3b393f3ca39cb7f266baf64199b90e4369ed658beb0641e093e572c7 +size 14963 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_32_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_32_en.png new file mode 100644 index 0000000000..4e6adf5cea --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_32_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd5e60140ca1468932b81d2c708ce98066e1f4fcc0cd3a315986379ce1e66670 +size 21426 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_30,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_33_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_30,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_33_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_31,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_34_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_31,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_34_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_32,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_35_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_32,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_35_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_33,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_36_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_33,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_36_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_34,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_37_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_34,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_37_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_35,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_38_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_35,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_38_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_36,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_39_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_36,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_39_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_37,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_40_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_37,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_40_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_38,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_41_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_38,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_41_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_39,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_42_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_39,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_42_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_40,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_43_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_40,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_43_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_41,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_44_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_41,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_44_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_42,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_45_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_42,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_45_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_43,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_46_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_43,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_46_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_44,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_47_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_44,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_47_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_45,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_48_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_45,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_48_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_46,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_49_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_46,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_49_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_47,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_50_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_47,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_50_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_48,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_51_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_48,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_51_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_49,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_52_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_49,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_52_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_50,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_53_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_50,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_53_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_51,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_54_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_51,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_54_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_52,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_55_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_52,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_55_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_53,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_56_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_53,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_56_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_54,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_57_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_54,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_57_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_55,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_58_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_55,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_58_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_56,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_59_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_56,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_59_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_57,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_60_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_57,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_60_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_58,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_61_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_58,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_61_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_59,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_62_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_59,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_62_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_60,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_63_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_60,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_63_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_61,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_64_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_61,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_64_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_62,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_65_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_62,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_65_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_63,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_66_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_63,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_66_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_64,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_67_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_64,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_67_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_65,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_68_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_65,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_68_en.png diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_69_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_69_en.png new file mode 100644 index 0000000000..3697470264 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_69_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6be06e6a243feb8096a2f121e5cadbd5d82351807b537c938e0e7cbfdf52739 +size 21115 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_70_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_70_en.png new file mode 100644 index 0000000000..7ad7b48d2a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_70_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94607803d470f7f5772cbf421b3e56a845556773b3545cae5b42314a1804a02a +size 18858 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_71_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_71_en.png new file mode 100644 index 0000000000..fc23c2c5ad --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_71_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f3a7f0a4944f35fd726d5090eab08140b57332e6f7d8eb475fc6bf9ef37bcdf +size 26033 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_72_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_72_en.png new file mode 100644 index 0000000000..2202019ea4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_72_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61d634e424c3858902d03a50a128ecbba4c62766ebba97cd04f6eb147f41f71d +size 15042 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_73_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_73_en.png new file mode 100644 index 0000000000..594f49999b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_73_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fea2725865c6277387d8f9d4f1bc980548b671f2946c89dbb9f4cad34be80d7 +size 14267 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_74_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_74_en.png new file mode 100644 index 0000000000..b294ff8e75 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_74_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e88e6991bca9f0c99c28b6126b10135d0ba8de1faa7bc6174e6f66bc11b2ce03 +size 16794 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_Avatar_Avatars_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_CompositeAvatar_Avatars_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_CompositeAvatar_Avatars_en.png new file mode 100644 index 0000000000..c48605599a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_CompositeAvatar_Avatars_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa80768048c3247ede26c831a9d16a2f9c27774b5d9b75e70cb31e0f26b4d411 +size 27620 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_DmAvatars_Avatars_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_DmAvatars_Avatars_en.png new file mode 100644 index 0000000000..862b5b2ccd --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_DmAvatars_Avatars_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dea2f3a3abc6779448f3131a90c7bc03baff57c3ee7d625606064b68d8ec9f97 +size 13938 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_UserAvatarColors_null_UserAvatarColors-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_UserAvatarColors_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_UserAvatarColors_null_UserAvatarColors-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_UserAvatarColors_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_UserAvatarColors_null_UserAvatarColors-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_UserAvatarColors_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_UserAvatarColors_null_UserAvatarColors-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.avatar_UserAvatarColors_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_BackButton_null_Buttons_BackButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_BackButton_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_BackButton_null_Buttons_BackButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_BackButton_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_GradientFloatingActionButtonCircleShape_null_GradientFloatingActionButtonCircleShape-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_GradientFloatingActionButtonCircleShape_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_GradientFloatingActionButtonCircleShape_null_GradientFloatingActionButtonCircleShape-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_GradientFloatingActionButtonCircleShape_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_GradientFloatingActionButtonCircleShape_null_GradientFloatingActionButtonCircleShape-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_GradientFloatingActionButtonCircleShape_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_GradientFloatingActionButtonCircleShape_null_GradientFloatingActionButtonCircleShape-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_GradientFloatingActionButtonCircleShape_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_GradientFloatingActionButton_null_GradientFloatingActionButton-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_GradientFloatingActionButton_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_GradientFloatingActionButton_null_GradientFloatingActionButton-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_GradientFloatingActionButton_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_GradientFloatingActionButton_null_GradientFloatingActionButton-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_GradientFloatingActionButton_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_GradientFloatingActionButton_null_GradientFloatingActionButton-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_GradientFloatingActionButton_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_MainActionButton_null_Buttons_MainActionButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_MainActionButton_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_MainActionButton_null_Buttons_MainActionButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_MainActionButton_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_SuperButton_null_SuperButton-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_SuperButton_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_SuperButton_null_SuperButton-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_SuperButton_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_SuperButton_null_SuperButton-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_SuperButton_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.button_SuperButton_null_SuperButton-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.button_SuperButton_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ConfirmationDialogContent_null_Dialogs_ConfirmationDialogContent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ConfirmationDialogContent_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ConfirmationDialogContent_null_Dialogs_ConfirmationDialogContent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ConfirmationDialogContent_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ConfirmationDialog_null_ConfirmationDialog-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ConfirmationDialog_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ConfirmationDialog_null_ConfirmationDialog-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ConfirmationDialog_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ConfirmationDialog_null_ConfirmationDialog-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ConfirmationDialog_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ConfirmationDialog_null_ConfirmationDialog-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ConfirmationDialog_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialogContent_null_Dialogs_ErrorDialogContent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialogContent_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialogContent_null_Dialogs_ErrorDialogContent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialogContent_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_null_ErrorDialogWithDoNotShowAgain-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_null_ErrorDialogWithDoNotShowAgain-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_null_ErrorDialogWithDoNotShowAgain-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_null_ErrorDialogWithDoNotShowAgain-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialog_null_ErrorDialog-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialog_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialog_null_ErrorDialog-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialog_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialog_null_ErrorDialog-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialog_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ErrorDialog_null_ErrorDialog-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ErrorDialog_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ListDialogContent_null_Dialogs_ListDialogContent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ListDialogContent_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ListDialogContent_null_Dialogs_ListDialogContent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ListDialogContent_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ListDialog_null_ListDialog-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ListDialog_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ListDialog_null_ListDialog-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ListDialog_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ListDialog_null_ListDialog-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ListDialog_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_ListDialog_null_ListDialog-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_ListDialog_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_MultipleSelectionDialogContent_null_Dialogs_MultipleSelectionDialogContent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_MultipleSelectionDialogContent_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_MultipleSelectionDialogContent_null_Dialogs_MultipleSelectionDialogContent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_MultipleSelectionDialogContent_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_MultipleSelectionDialog_null_MultipleSelectionDialog-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_MultipleSelectionDialog_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_MultipleSelectionDialog_null_MultipleSelectionDialog-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_MultipleSelectionDialog_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_MultipleSelectionDialog_null_MultipleSelectionDialog-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_MultipleSelectionDialog_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_MultipleSelectionDialog_null_MultipleSelectionDialog-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_MultipleSelectionDialog_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_RetryDialogContent_null_Dialogs_RetryDialogContent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_RetryDialogContent_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_RetryDialogContent_null_Dialogs_RetryDialogContent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_RetryDialogContent_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_RetryDialog_null_RetryDialog-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_RetryDialog_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_RetryDialog_null_RetryDialog-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_RetryDialog_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_RetryDialog_null_RetryDialog-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_RetryDialog_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_RetryDialog_null_RetryDialog-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_RetryDialog_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_SingleSelectionDialogContent_null_Dialogs_SingleSelectionDialogContent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_SingleSelectionDialogContent_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_SingleSelectionDialogContent_null_Dialogs_SingleSelectionDialogContent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_SingleSelectionDialogContent_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_SingleSelectionDialog_null_SingleSelectionDialog-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_SingleSelectionDialog_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_SingleSelectionDialog_null_SingleSelectionDialog-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_SingleSelectionDialog_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_SingleSelectionDialog_null_SingleSelectionDialog-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_SingleSelectionDialog_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.dialogs_SingleSelectionDialog_null_SingleSelectionDialog-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.dialogs_SingleSelectionDialog_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_MutipleSelectionListItemSelectedTrailingContent_null_Listitems_MultipleselectionListitem-selectionintrailingcontent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_MutipleSelectionListItemSelectedTrailingContent_Multiple selection List item - selection in trailing content_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_MutipleSelectionListItemSelectedTrailingContent_null_Listitems_MultipleselectionListitem-selectionintrailingcontent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_MutipleSelectionListItemSelectedTrailingContent_Multiple selection List item - selection in trailing content_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_MutipleSelectionListItemSelected_null_Listitems_MultipleselectionListitem-selectioninsupportingtext_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_MutipleSelectionListItemSelected_Multiple selection List item - selection in supporting text_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_MutipleSelectionListItemSelected_null_Listitems_MultipleselectionListitem-selectioninsupportingtext_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_MutipleSelectionListItemSelected_Multiple selection List item - selection in supporting text_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_MutipleSelectionListItem_null_Listitems_MultipleselectionListitem-noselection_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_MutipleSelectionListItem_Multiple selection List item - no selection_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_MutipleSelectionListItem_null_Listitems_MultipleselectionListitem-noselection_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_MutipleSelectionListItem_Multiple selection List item - no selection_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItemCustomFormattert_null_Listitems_SingleselectionListitem-customformatter_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItemCustomFormattert_Single selection List item - custom formatter_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItemCustomFormattert_null_Listitems_SingleselectionListitem-customformatter_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItemCustomFormattert_Single selection List item - custom formatter_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItemSelectedInSupportingText_null_Listitems_SingleselectionListitem-selectioninsupportingtext_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItemSelectedInSupportingText_Single selection List item - selection in supporting text_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItemSelectedInSupportingText_null_Listitems_SingleselectionListitem-selectioninsupportingtext_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItemSelectedInSupportingText_Single selection List item - selection in supporting text_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItemSelectedInTrailingContent_null_Listitems_SingleselectionListitem-selectionintrailingcontent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItemSelectedInTrailingContent_Single selection List item - selection in trailing content_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItemSelectedInTrailingContent_null_Listitems_SingleselectionListitem-selectionintrailingcontent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItemSelectedInTrailingContent_Single selection List item - selection in trailing content_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItemUnselectedWithSupportingText_null_Listitems_SingleselectionListitem-noselection,supportingtext_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItemUnselectedWithSupportingText_Single selection List item - no selection, supporting text_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItemUnselectedWithSupportingText_null_Listitems_SingleselectionListitem-noselection,supportingtext_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItemUnselectedWithSupportingText_Single selection List item - no selection, supporting text_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItem_null_Listitems_SingleselectionListitem-noselection_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItem_Single selection List item - no selection_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_SingleSelectionListItem_null_Listitems_SingleselectionListitem-noselection_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_SingleSelectionListItem_Single selection List item - no selection_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_TextFieldListItemEmpty_null_Listitems_TextfieldListitem-empty_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_TextFieldListItemEmpty_Text field List item - empty_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_TextFieldListItemEmpty_null_Listitems_TextfieldListitem-empty_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_TextFieldListItemEmpty_Text field List item - empty_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_TextFieldListItemTextFieldValue_null_Listitems_TextfieldListitem-textfieldvalue_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_TextFieldListItemTextFieldValue_Text field List item - textfieldvalue_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_TextFieldListItemTextFieldValue_null_Listitems_TextfieldListitem-textfieldvalue_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_TextFieldListItemTextFieldValue_Text field List item - textfieldvalue_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_TextFieldListItem_null_Listitems_TextfieldListitem-text_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_TextFieldListItem_Text field List item - text_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.list_TextFieldListItem_null_Listitems_TextfieldListitem-text_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.list_TextFieldListItem_Text field List item - text_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.media_WaveformPlaybackView_null_WaveformPlaybackView-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.media_WaveformPlaybackView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.media_WaveformPlaybackView_null_WaveformPlaybackView-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.media_WaveformPlaybackView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.media_WaveformPlaybackView_null_WaveformPlaybackView-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.media_WaveformPlaybackView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.media_WaveformPlaybackView_null_WaveformPlaybackView-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.media_WaveformPlaybackView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences.components_PreferenceIconWithBadge_null_Preferences_PreferenceIconWithBadge_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences.components_PreferenceIconWithBadge_Preferences_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences.components_PreferenceIconWithBadge_null_Preferences_PreferenceIconWithBadge_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences.components_PreferenceIconWithBadge_Preferences_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences.components_PreferenceIconWithBadge_null_Preferences_PreferenceIconWithBadge_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences.components_PreferenceIconWithBadge_Preferences_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences.components_PreferenceIconWithBadge_null_Preferences_PreferenceIconWithBadge_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences.components_PreferenceIconWithBadge_Preferences_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences.components_PreferenceIcon_null_Preferences_PreferenceIcon_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences.components_PreferenceIcon_Preferences_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences.components_PreferenceIcon_null_Preferences_PreferenceIcon_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences.components_PreferenceIcon_Preferences_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences.components_PreferenceIcon_null_Preferences_PreferenceIcon_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences.components_PreferenceIcon_Preferences_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences.components_PreferenceIcon_null_Preferences_PreferenceIcon_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences.components_PreferenceIcon_Preferences_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceCategory_null_Preferences_PreferenceCategory_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceCategory_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceCategory_null_Preferences_PreferenceCategory_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceCategory_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceCheckbox_null_Preferences_PreferenceCheckbox_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceCheckbox_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceCheckbox_null_Preferences_PreferenceCheckbox_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceCheckbox_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceDivider_null_Preferences_PreferenceDivider_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDivider_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceDivider_null_Preferences_PreferenceDivider_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDivider_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferencePage_null_PreferencePage-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferencePage_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferencePage_null_PreferencePage-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferencePage_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferencePage_null_PreferencePage-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferencePage_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferencePage_null_PreferencePage-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferencePage_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceRow_null_Preferences_PreferenceRow_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceRow_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceRow_null_Preferences_PreferenceRow_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceRow_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceSlide_null_Preferences_PreferenceSlide_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceSlide_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceSlide_null_Preferences_PreferenceSlide_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceSlide_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceSwitch_null_Preferences_PreferenceSwitch_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceSwitch_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceSwitch_null_Preferences_PreferenceSwitch_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceSwitch_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceTextDark_null_Preferences_PreferenceTextDark_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceTextDark_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceTextDark_null_Preferences_PreferenceTextDark_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceTextDark_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceTextLight_null_Preferences_PreferenceTextLight_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceTextLight_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceTextLight_null_Preferences_PreferenceTextLight_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceTextLight_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceTextWithEndBadgeDark_null_Preferences_PreferenceTextWithEndBadgeDark_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceTextWithEndBadgeDark_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceTextWithEndBadgeDark_null_Preferences_PreferenceTextWithEndBadgeDark_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceTextWithEndBadgeDark_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceTextWithEndBadgeLight_null_Preferences_PreferenceTextWithEndBadgeLight_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceTextWithEndBadgeLight_Preferences_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.preferences_PreferenceTextWithEndBadgeLight_null_Preferences_PreferenceTextWithEndBadgeLight_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceTextWithEndBadgeLight_Preferences_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_Badge_null_Badge-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_Badge_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_Badge_null_Badge-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_Badge_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_Badge_null_Badge-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_Badge_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_Badge_null_Badge-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_Badge_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BigCheckmark_null_BigCheckmark-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BigCheckmark_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BigCheckmark_null_BigCheckmark-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BigCheckmark_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BigCheckmark_null_BigCheckmark-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BigCheckmark_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BigCheckmark_null_BigCheckmark-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BigCheckmark_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BigIcon_null_BigIcon-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BigIcon_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BigIcon_null_BigIcon-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BigIcon_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BigIcon_null_BigIcon-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BigIcon_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BigIcon_null_BigIcon-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BigIcon_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_Bloom_BloomInitials_0_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_BloomInitials_null_BloomInitials-Night_1_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_BloomInitials_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_Bloom_null_Bloom_Bloom_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_Bloom_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_Bloom_null_Bloom_Bloom_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_Bloom_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_Bloom_null_Bloom-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_Bloom_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_Bloom_null_Bloom-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_Bloom_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_ClickableLinkText_null_Text_ClickableLinkText_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_ClickableLinkText_Text_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_ClickableLinkText_null_Text_ClickableLinkText_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_ClickableLinkText_Text_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledCheckbox_null_Toggles_LabelledCheckbox_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledCheckbox_Toggles_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledCheckbox_null_Toggles_LabelledCheckbox_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledCheckbox_Toggles_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledOutlinedTextField_null_LabelledOutlinedTextField-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledOutlinedTextField_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledOutlinedTextField_null_LabelledOutlinedTextField-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledOutlinedTextField_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledOutlinedTextField_null_LabelledOutlinedTextField-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledOutlinedTextField_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledOutlinedTextField_null_LabelledOutlinedTextField-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledOutlinedTextField_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledTextField_null_LabelledTextField-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledTextField_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledTextField_null_LabelledTextField-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledTextField_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledTextField_null_LabelledTextField-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledTextField_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_LabelledTextField_null_LabelledTextField-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_LabelledTextField_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Day_0_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconFull_null_PageTitleWithIconFull-Night_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconFull_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconMinimal_null_PageTitleWithIconMinimal-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconMinimal_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconMinimal_null_PageTitleWithIconMinimal-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconMinimal_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconMinimal_null_PageTitleWithIconMinimal-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconMinimal_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PageTitleWithIconMinimal_null_PageTitleWithIconMinimal-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PageTitleWithIconMinimal_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PinIcon_null_PinIcon-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PinIcon_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PinIcon_null_PinIcon-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PinIcon_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PinIcon_null_PinIcon-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PinIcon_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_PinIcon_null_PinIcon-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_PinIcon_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_ProgressDialogContent_null_Dialogs_ProgressDialogContent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_ProgressDialogContent_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_ProgressDialogContent_null_Dialogs_ProgressDialogContent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_ProgressDialogContent_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_ProgressDialog_null_ProgressDialog-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_ProgressDialog_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_ProgressDialog_null_ProgressDialog-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_ProgressDialog_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_ProgressDialog_null_ProgressDialog-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components_ProgressDialog_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components_ProgressDialog_null_ProgressDialog-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components_ProgressDialog_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Day_0_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsCompound_null_IconsCompound-Night_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsCompound_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsOther_null_IconsOther-Day_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsOther_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsOther_null_IconsOther-Day_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsOther_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsOther_null_IconsOther-Night_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsOther_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.icons_IconsOther_null_IconsOther-Night_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.icons_IconsOther_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.modifiers_SquareSizeModifierInsideSquare_null_SquareSizeModifierInsideSquare_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.modifiers_SquareSizeModifierInsideSquare_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.modifiers_SquareSizeModifierInsideSquare_null_SquareSizeModifierInsideSquare_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.modifiers_SquareSizeModifierInsideSquare_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.modifiers_SquareSizeModifierLargeHeight_null_SquareSizeModifierLargeHeight_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.modifiers_SquareSizeModifierLargeHeight_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.modifiers_SquareSizeModifierLargeHeight_null_SquareSizeModifierLargeHeight_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.modifiers_SquareSizeModifierLargeHeight_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.modifiers_SquareSizeModifierLargeWidth_null_SquareSizeModifierLargeWidth_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.modifiers_SquareSizeModifierLargeWidth_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.modifiers_SquareSizeModifierLargeWidth_null_SquareSizeModifierLargeWidth_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.modifiers_SquareSizeModifierLargeWidth_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_HorizontalRuler_null_HorizontalRuler-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_HorizontalRuler_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_HorizontalRuler_null_HorizontalRuler-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_HorizontalRuler_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_HorizontalRuler_null_HorizontalRuler-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_HorizontalRuler_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_HorizontalRuler_null_HorizontalRuler-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_HorizontalRuler_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_VerticalRuler_null_VerticalRuler-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_VerticalRuler_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_VerticalRuler_null_VerticalRuler-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_VerticalRuler_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_VerticalRuler_null_VerticalRuler-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_VerticalRuler_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_VerticalRuler_null_VerticalRuler-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_VerticalRuler_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_WithRulers_null_WithRulers-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_WithRulers_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_WithRulers_null_WithRulers-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_WithRulers_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_WithRulers_null_WithRulers-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_WithRulers_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.ruler_WithRulers_null_WithRulers-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.ruler_WithRulers_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.text_DpScale_0_75f__null_DpScale_0_75f__0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.text_DpScale_0_75f__en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.text_DpScale_0_75f__null_DpScale_0_75f__0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.text_DpScale_0_75f__en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.text_DpScale_1_0f__null_DpScale_1_0f__0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.text_DpScale_1_0f__en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.text_DpScale_1_0f__null_DpScale_1_0f__0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.text_DpScale_1_0f__en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.text_DpScale_1_5f__null_DpScale_1_5f__0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.text_DpScale_1_5f__en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.text_DpScale_1_5f__null_DpScale_1_5f__0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.text_DpScale_1_5f__en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_DatePickerDark_null_DateTimepickers_DatePickerDark_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_DatePickerDark_DateTime pickers_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_DatePickerDark_null_DateTimepickers_DatePickerDark_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_DatePickerDark_DateTime pickers_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_DatePickerLight_null_DateTimepickers_DatePickerLight_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_DatePickerLight_DateTime pickers_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_DatePickerLight_null_DateTimepickers_DatePickerLight_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_DatePickerLight_DateTime pickers_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_Menu_null_Menus_Menu_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_Menu_Menus_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_Menu_null_Menus_Menu_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_Menu_Menus_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_TimePickerHorizontal_null_DateTimepickers_TimePickerHorizontal_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_TimePickerHorizontal_DateTime pickers_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_TimePickerHorizontal_null_DateTimepickers_TimePickerHorizontal_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_TimePickerHorizontal_DateTime pickers_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_TimePickerVerticalDark_null_DateTimepickers_TimePickerVerticalDark_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_TimePickerVerticalDark_DateTime pickers_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_TimePickerVerticalDark_null_DateTimepickers_TimePickerVerticalDark_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_TimePickerVerticalDark_DateTime pickers_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_TimePickerVerticalLight_null_DateTimepickers_TimePickerVerticalLight_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_TimePickerVerticalLight_DateTime pickers_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components.previews_TimePickerVerticalLight_null_DateTimepickers_TimePickerVerticalLight_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components.previews_TimePickerVerticalLight_DateTime pickers_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_BottomSheetDragHandle_null_BottomSheetDragHandle-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_BottomSheetDragHandle_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_BottomSheetDragHandle_null_BottomSheetDragHandle-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_BottomSheetDragHandle_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_BottomSheetDragHandle_null_BottomSheetDragHandle-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_BottomSheetDragHandle_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_BottomSheetDragHandle_null_BottomSheetDragHandle-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_BottomSheetDragHandle_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Checkboxes_null_Toggles_Checkboxes_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Checkboxes_Toggles_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Checkboxes_null_Toggles_Checkboxes_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Checkboxes_Toggles_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_CircularProgressIndicator_null_ProgressIndicators_CircularProgressIndicator_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_CircularProgressIndicator_Progress Indicators_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_CircularProgressIndicator_null_ProgressIndicators_CircularProgressIndicator_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_CircularProgressIndicator_Progress Indicators_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithDestructiveButton_null_Dialogs_Dialogwithdestructivebutton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithDestructiveButton_Dialog with destructive button_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithDestructiveButton_null_Dialogs_Dialogwithdestructivebutton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithDestructiveButton_Dialog with destructive button_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithOnlyMessageAndOkButton_null_Dialogs_Dialogwithonlymessageandokbutton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithOnlyMessageAndOkButton_Dialog with only message and ok button_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithOnlyMessageAndOkButton_null_Dialogs_Dialogwithonlymessageandokbutton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithOnlyMessageAndOkButton_Dialog with only message and ok button_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithThirdButton_null_Dialogs_Dialogwiththirdbutton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithThirdButton_Dialog with third button_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithThirdButton_null_Dialogs_Dialogwiththirdbutton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithThirdButton_Dialog with third button_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithTitleAndOkButton_null_Dialogs_Dialogwithtitleandokbutton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithTitleAndOkButton_Dialog with title and ok button_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithTitleAndOkButton_null_Dialogs_Dialogwithtitleandokbutton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithTitleAndOkButton_Dialog with title and ok button_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithTitleIconAndOkButton_null_Dialogs_Dialogwithtitle,iconandokbutton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithTitleIconAndOkButton_Dialog with title, icon and ok button_Dialogs_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DialogWithTitleIconAndOkButton_null_Dialogs_Dialogwithtitle,iconandokbutton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DialogWithTitleIconAndOkButton_Dialog with title, icon and ok button_Dialogs_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DropdownMenuItem_null_Menus_DropdownMenuItem_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DropdownMenuItem_Menus_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_DropdownMenuItem_null_Menus_DropdownMenuItem_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_DropdownMenuItem_Menus_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_FilledButtonLarge_null_Buttons_FilledButtonLarge_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_FilledButtonLarge_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_FilledButtonLarge_null_Buttons_FilledButtonLarge_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_FilledButtonLarge_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_FilledButtonMedium_null_Buttons_FilledButtonMedium_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_FilledButtonMedium_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_FilledButtonMedium_null_Buttons_FilledButtonMedium_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_FilledButtonMedium_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_FilledButtonSmall_null_Buttons_FilledButtonSmall_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_FilledButtonSmall_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_FilledButtonSmall_null_Buttons_FilledButtonSmall_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_FilledButtonSmall_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_FloatingActionButton_null_FloatingActionButtons_FloatingActionButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_FloatingActionButton_Floating Action Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_FloatingActionButton_null_FloatingActionButtons_FloatingActionButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_FloatingActionButton_Floating Action Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_HorizontalDivider_null_Dividers_HorizontalDivider_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_HorizontalDivider_Dividers_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_HorizontalDivider_null_Dividers_HorizontalDivider_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_HorizontalDivider_Dividers_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_IconButton_null_Buttons_IconButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_IconButton_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_IconButton_null_Buttons_IconButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_IconButton_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_IconImageVector_null_Icons_IconImageVector_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_IconImageVector_Icons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_IconImageVector_null_Icons_IconImageVector_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_IconImageVector_Icons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_IconToggleButton_null_Toggles_IconToggleButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_IconToggleButton_Toggles_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_IconToggleButton_null_Toggles_IconToggleButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_IconToggleButton_Toggles_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_LinearProgressIndicator_null_ProgressIndicators_LinearProgressIndicator_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_LinearProgressIndicator_Progress Indicators_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_LinearProgressIndicator_null_ProgressIndicators_LinearProgressIndicator_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_LinearProgressIndicator_Progress Indicators_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemDisabledWithIcon_null_Listitems_Listitem-Disabled&Icon_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemDisabledWithIcon_List item - Disabled & Icon_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemDisabledWithIcon_null_Listitems_Listitem-Disabled&Icon_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemDisabledWithIcon_List item - Disabled & Icon_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemDisabled_null_Listitems_Listitem-Disabled_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemDisabled_List item - Disabled_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemDisabled_null_Listitems_Listitem-Disabled_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemDisabled_List item - Disabled_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemErrorWithIcon_null_Listitems_Listitem-Error&Icon_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemErrorWithIcon_List item - Error & Icon_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemErrorWithIcon_null_Listitems_Listitem-Error&Icon_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemErrorWithIcon_List item - Error & Icon_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemError_null_Listitems_Listitem-Error_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemError_List item - Error_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemError_null_Listitems_Listitem-Error_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemError_List item - Error_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemPrimaryActionWithIcon_null_Listitems_Listitem-Primaryaction&Icon_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemPrimaryActionWithIcon_List item - Primary action & Icon_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemPrimaryActionWithIcon_null_Listitems_Listitem-Primaryaction&Icon_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemPrimaryActionWithIcon_List item - Primary action & Icon_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineBothIcons_null_Listitems_Listitem(1line)-BothIcons_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineBothIcons_List item (1 line) - Both Icons_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineBothIcons_null_Listitems_Listitem(1line)-BothIcons_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineBothIcons_List item (1 line) - Both Icons_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingCheckbox_null_Listitems_Listitem(1line)-LeadingCheckbox_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineLeadingCheckbox_List item (1 line) - Leading Checkbox_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingCheckbox_null_Listitems_Listitem(1line)-LeadingCheckbox_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineLeadingCheckbox_List item (1 line) - Leading Checkbox_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingIcon_null_Listitems_Listitem(1line)-LeadingIcon_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineLeadingIcon_List item (1 line) - Leading Icon_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingIcon_null_Listitems_Listitem(1line)-LeadingIcon_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineLeadingIcon_List item (1 line) - Leading Icon_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingRadioButton_null_Listitems_Listitem(1line)-LeadingRadioButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineLeadingRadioButton_List item (1 line) - Leading RadioButton_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingRadioButton_null_Listitems_Listitem(1line)-LeadingRadioButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineLeadingRadioButton_List item (1 line) - Leading RadioButton_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingSwitch_null_Listitems_Listitem(1line)-LeadingSwitch_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineLeadingSwitch_List item (1 line) - Leading Switch_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineLeadingSwitch_null_Listitems_Listitem(1line)-LeadingSwitch_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineLeadingSwitch_List item (1 line) - Leading Switch_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineSimple_null_Listitems_Listitem(1line)-Simple_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineSimple_List item (1 line) - Simple_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineSimple_null_Listitems_Listitem(1line)-Simple_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineSimple_List item (1 line) - Simple_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingCheckBox_null_Listitems_Listitem(1line)-TrailingCheckbox_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineTrailingCheckBox_List item (1 line) - Trailing Checkbox_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingCheckBox_null_Listitems_Listitem(1line)-TrailingCheckbox_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineTrailingCheckBox_List item (1 line) - Trailing Checkbox_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingIcon_null_Listitems_Listitem(1line)-TrailingIcon_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineTrailingIcon_List item (1 line) - Trailing Icon_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingIcon_null_Listitems_Listitem(1line)-TrailingIcon_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineTrailingIcon_List item (1 line) - Trailing Icon_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingRadioButton_null_Listitems_Listitem(1line)-TrailingRadioButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineTrailingRadioButton_List item (1 line) - Trailing RadioButton_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingRadioButton_null_Listitems_Listitem(1line)-TrailingRadioButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineTrailingRadioButton_List item (1 line) - Trailing RadioButton_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingSwitch_null_Listitems_Listitem(1line)-TrailingSwitch_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineTrailingSwitch_List item (1 line) - Trailing Switch_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemSingleLineTrailingSwitch_null_Listitems_Listitem(1line)-TrailingSwitch_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemSingleLineTrailingSwitch_List item (1 line) - Trailing Switch_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesBothIcons_null_Listitems_Listitem(3lines)-BothIcons_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesBothIcons_List item (3 lines) - Both Icons_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesBothIcons_null_Listitems_Listitem(3lines)-BothIcons_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesBothIcons_List item (3 lines) - Both Icons_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingCheckbox_null_Listitems_Listitem(3lines)-LeadingCheckbox_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesLeadingCheckbox_List item (3 lines) - Leading Checkbox_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingCheckbox_null_Listitems_Listitem(3lines)-LeadingCheckbox_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesLeadingCheckbox_List item (3 lines) - Leading Checkbox_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingIcon_null_Listitems_Listitem(3lines)-LeadingIcon_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesLeadingIcon_List item (3 lines) - Leading Icon_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingIcon_null_Listitems_Listitem(3lines)-LeadingIcon_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesLeadingIcon_List item (3 lines) - Leading Icon_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingRadioButton_null_Listitems_Listitem(3lines)-LeadingRadioButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesLeadingRadioButton_List item (3 lines) - Leading RadioButton_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingRadioButton_null_Listitems_Listitem(3lines)-LeadingRadioButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesLeadingRadioButton_List item (3 lines) - Leading RadioButton_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingSwitch_null_Listitems_Listitem(3lines)-LeadingSwitch_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesLeadingSwitch_List item (3 lines) - Leading Switch_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesLeadingSwitch_null_Listitems_Listitem(3lines)-LeadingSwitch_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesLeadingSwitch_List item (3 lines) - Leading Switch_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesSimple_null_Listitems_Listitem(3lines)-Simple_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesSimple_List item (3 lines) - Simple_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesSimple_null_Listitems_Listitem(3lines)-Simple_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesSimple_List item (3 lines) - Simple_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingCheckBox_null_Listitems_Listitem(3lines)-TrailingCheckbox_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesTrailingCheckBox_List item (3 lines) - Trailing Checkbox_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingCheckBox_null_Listitems_Listitem(3lines)-TrailingCheckbox_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesTrailingCheckBox_List item (3 lines) - Trailing Checkbox_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingIcon_null_Listitems_Listitem(3lines)-TrailingIcon_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesTrailingIcon_List item (3 lines) - Trailing Icon_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingIcon_null_Listitems_Listitem(3lines)-TrailingIcon_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesTrailingIcon_List item (3 lines) - Trailing Icon_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingRadioButton_null_Listitems_Listitem(3lines)-TrailingRadioButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesTrailingRadioButton_List item (3 lines) - Trailing RadioButton_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingRadioButton_null_Listitems_Listitem(3lines)-TrailingRadioButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesTrailingRadioButton_List item (3 lines) - Trailing RadioButton_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingSwitch_null_Listitems_Listitem(3lines)-TrailingSwitch_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesTrailingSwitch_List item (3 lines) - Trailing Switch_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemThreeLinesTrailingSwitch_null_Listitems_Listitem(3lines)-TrailingSwitch_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemThreeLinesTrailingSwitch_List item (3 lines) - Trailing Switch_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesBothIcons_null_Listitems_Listitem(2lines)-BothIcons_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesBothIcons_List item (2 lines) - Both Icons_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesBothIcons_null_Listitems_Listitem(2lines)-BothIcons_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesBothIcons_List item (2 lines) - Both Icons_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingCheckbox_null_Listitems_Listitem(2lines)-LeadingCheckbox_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesLeadingCheckbox_List item (2 lines) - Leading Checkbox_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingCheckbox_null_Listitems_Listitem(2lines)-LeadingCheckbox_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesLeadingCheckbox_List item (2 lines) - Leading Checkbox_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingIcon_null_Listitems_Listitem(2lines)-LeadingIcon_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesLeadingIcon_List item (2 lines) - Leading Icon_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingIcon_null_Listitems_Listitem(2lines)-LeadingIcon_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesLeadingIcon_List item (2 lines) - Leading Icon_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingRadioButton_null_Listitems_Listitem(2lines)-LeadingRadioButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesLeadingRadioButton_List item (2 lines) - Leading RadioButton_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingRadioButton_null_Listitems_Listitem(2lines)-LeadingRadioButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesLeadingRadioButton_List item (2 lines) - Leading RadioButton_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingSwitch_null_Listitems_Listitem(2lines)-LeadingSwitch_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesLeadingSwitch_List item (2 lines) - Leading Switch_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesLeadingSwitch_null_Listitems_Listitem(2lines)-LeadingSwitch_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesLeadingSwitch_List item (2 lines) - Leading Switch_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesSimple_null_Listitems_Listitem(2lines)-Simple_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesSimple_List item (2 lines) - Simple_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesSimple_null_Listitems_Listitem(2lines)-Simple_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesSimple_List item (2 lines) - Simple_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingCheckBox_null_Listitems_Listitem(2lines)-TrailingCheckbox_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesTrailingCheckBox_List item (2 lines) - Trailing Checkbox_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingCheckBox_null_Listitems_Listitem(2lines)-TrailingCheckbox_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesTrailingCheckBox_List item (2 lines) - Trailing Checkbox_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingIcon_null_Listitems_Listitem(2lines)-TrailingIcon_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesTrailingIcon_List item (2 lines) - Trailing Icon_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingIcon_null_Listitems_Listitem(2lines)-TrailingIcon_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesTrailingIcon_List item (2 lines) - Trailing Icon_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingRadioButton_null_Listitems_Listitem(2lines)-TrailingRadioButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesTrailingRadioButton_List item (2 lines) - Trailing RadioButton_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingRadioButton_null_Listitems_Listitem(2lines)-TrailingRadioButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesTrailingRadioButton_List item (2 lines) - Trailing RadioButton_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingSwitch_null_Listitems_Listitem(2lines)-TrailingSwitch_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesTrailingSwitch_List item (2 lines) - Trailing Switch_List items_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListItemTwoLinesTrailingSwitch_null_Listitems_Listitem(2lines)-TrailingSwitch_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListItemTwoLinesTrailingSwitch_List item (2 lines) - Trailing Switch_List items_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSectionHeaderWithDescriptionAndDivider_null_Listsections_Listsectionheaderwithdescriptionanddivider_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSectionHeaderWithDescriptionAndDivider_List section header with description and divider_List sections_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSectionHeaderWithDescriptionAndDivider_null_Listsections_Listsectionheaderwithdescriptionanddivider_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSectionHeaderWithDescriptionAndDivider_List section header with description and divider_List sections_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSectionHeaderWithDescription_null_Listsections_Listsectionheaderwithdescription_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSectionHeaderWithDescription_List section header with description_List sections_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSectionHeaderWithDescription_null_Listsections_Listsectionheaderwithdescription_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSectionHeaderWithDescription_List section header with description_List sections_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSectionHeaderWithDivider_null_Listsections_Listsectionheaderwithdivider_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSectionHeaderWithDivider_List section header with divider_List sections_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSectionHeaderWithDivider_null_Listsections_Listsectionheaderwithdivider_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSectionHeaderWithDivider_List section header with divider_List sections_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSectionHeader_null_Listsections_Listsectionheader_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSectionHeader_List section header_List sections_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSectionHeader_null_Listsections_Listsectionheader_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSectionHeader_List section header_List sections_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextCustomPadding_null_Listsections_Listsupportingtext-custompadding_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextCustomPadding_List supporting text - custom padding_List sections_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextCustomPadding_null_Listsections_Listsupportingtext-custompadding_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextCustomPadding_List supporting text - custom padding_List sections_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextDefaultPadding_null_Listsections_Listsupportingtext-defaultpadding_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextDefaultPadding_List supporting text - default padding_List sections_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextDefaultPadding_null_Listsections_Listsupportingtext-defaultpadding_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextDefaultPadding_List supporting text - default padding_List sections_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextLargePadding_null_Listsections_Listsupportingtext-largepadding_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextLargePadding_List supporting text - large padding_List sections_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextLargePadding_null_Listsections_Listsupportingtext-largepadding_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextLargePadding_List supporting text - large padding_List sections_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextNoPadding_null_Listsections_Listsupportingtext-nopadding_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextNoPadding_List supporting text - no padding_List sections_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextNoPadding_null_Listsections_Listsupportingtext-nopadding_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextNoPadding_List supporting text - no padding_List sections_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextSmallPadding_null_Listsections_Listsupportingtext-smallpadding_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextSmallPadding_List supporting text - small padding_List sections_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ListSupportingTextSmallPadding_null_Listsections_Listsupportingtext-smallpadding_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ListSupportingTextSmallPadding_List supporting text - small padding_List sections_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_MediumTopAppBar_null_AppBars_MediumTopAppBar_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_MediumTopAppBar_App Bars_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_MediumTopAppBar_null_AppBars_MediumTopAppBar_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_MediumTopAppBar_App Bars_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ModalBottomSheetDark_null_BottomSheets_ModalBottomSheetDark_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ModalBottomSheetDark_Bottom Sheets_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ModalBottomSheetDark_null_BottomSheets_ModalBottomSheetDark_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ModalBottomSheetDark_Bottom Sheets_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ModalBottomSheetLight_null_BottomSheets_ModalBottomSheetLight_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ModalBottomSheetLight_Bottom Sheets_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_ModalBottomSheetLight_null_BottomSheets_ModalBottomSheetLight_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_ModalBottomSheetLight_Bottom Sheets_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedButtonLarge_null_Buttons_OutlinedButtonLarge_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedButtonLarge_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedButtonLarge_null_Buttons_OutlinedButtonLarge_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedButtonLarge_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedButtonMedium_null_Buttons_OutlinedButtonMedium_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedButtonMedium_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedButtonMedium_null_Buttons_OutlinedButtonMedium_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedButtonMedium_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedButtonSmall_null_Buttons_OutlinedButtonSmall_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedButtonSmall_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedButtonSmall_null_Buttons_OutlinedButtonSmall_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedButtonSmall_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedTextFieldsDark_null_TextFields_OutlinedTextFieldsDark_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedTextFieldsDark_TextFields_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedTextFieldsDark_null_TextFields_OutlinedTextFieldsDark_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedTextFieldsDark_TextFields_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedTextFields_null_TextFields_OutlinedTextFields_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedTextFields_TextFields_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_OutlinedTextFields_null_TextFields_OutlinedTextFields_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_OutlinedTextFields_TextFields_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_RadioButton_null_Toggles_RadioButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_RadioButton_Toggles_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_RadioButton_null_Toggles_RadioButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_RadioButton_Toggles_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveNoneQuery_null_Searchviews_SearchBarActiveNoneQuery_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveNoneQuery_Search views_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveNoneQuery_null_Searchviews_SearchBarActiveNoneQuery_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveNoneQuery_Search views_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveWithContent_null_Searchviews_SearchBarActiveWithContent_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveWithContent_Search views_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveWithContent_null_Searchviews_SearchBarActiveWithContent_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveWithContent_Search views_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveWithNoResults_null_Searchviews_SearchBarActiveWithNoResults_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveWithNoResults_Search views_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveWithNoResults_null_Searchviews_SearchBarActiveWithNoResults_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveWithNoResults_Search views_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveWithQueryNoBackButton_null_Searchviews_SearchBarActiveWithQueryNoBackButton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveWithQueryNoBackButton_Search views_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveWithQueryNoBackButton_null_Searchviews_SearchBarActiveWithQueryNoBackButton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveWithQueryNoBackButton_Search views_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveWithQuery_null_Searchviews_SearchBarActiveWithQuery_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveWithQuery_Search views_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarActiveWithQuery_null_Searchviews_SearchBarActiveWithQuery_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarActiveWithQuery_Search views_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarInactive_null_Searchviews_SearchBarInactive_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarInactive_Search views_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SearchBarInactive_null_Searchviews_SearchBarInactive_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SearchBarInactive_Search views_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Sliders_null_Sliders_Sliders_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Sliders_Sliders_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Sliders_null_Sliders_Sliders_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Sliders_Sliders_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SnackbarWithActionAndCloseButton_null_Snackbars_Snackbarwithactionandclosebutton_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SnackbarWithActionAndCloseButton_Snackbar with action and close button_Snackbars_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SnackbarWithActionAndCloseButton_null_Snackbars_Snackbarwithactionandclosebutton_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SnackbarWithActionAndCloseButton_Snackbar with action and close button_Snackbars_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SnackbarWithActionOnNewLineAndCloseButton_null_Snackbars_Snackbarwithactionandclosebuttononnewline_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SnackbarWithActionOnNewLineAndCloseButton_Snackbar with action and close button on new line_Snackbars_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SnackbarWithActionOnNewLineAndCloseButton_null_Snackbars_Snackbarwithactionandclosebuttononnewline_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SnackbarWithActionOnNewLineAndCloseButton_Snackbar with action and close button on new line_Snackbars_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SnackbarWithActionOnNewLine_null_Snackbars_Snackbarwithactiononnewline_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SnackbarWithActionOnNewLine_Snackbar with action on new line_Snackbars_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SnackbarWithActionOnNewLine_null_Snackbars_Snackbarwithactiononnewline_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SnackbarWithActionOnNewLine_Snackbar with action on new line_Snackbars_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SnackbarWithAction_null_Snackbars_Snackbarwithaction_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SnackbarWithAction_Snackbar with action_Snackbars_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_SnackbarWithAction_null_Snackbars_Snackbarwithaction_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_SnackbarWithAction_Snackbar with action_Snackbars_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Snackbar_null_Snackbars_Snackbar_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Snackbar_Snackbar_Snackbars_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Snackbar_null_Snackbars_Snackbar_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Snackbar_Snackbar_Snackbars_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Surface_null_Surface_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Surface_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Surface_null_Surface_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Surface_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Switch_null_Toggles_Switch_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Switch_Toggles_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_Switch_null_Toggles_Switch_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_Switch_Toggles_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextButtonLarge_null_Buttons_TextButtonLarge_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextButtonLarge_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextButtonLarge_null_Buttons_TextButtonLarge_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextButtonLarge_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextButtonMedium_null_Buttons_TextButtonMedium_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextButtonMedium_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextButtonMedium_null_Buttons_TextButtonMedium_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextButtonMedium_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextButtonSmall_null_Buttons_TextButtonSmall_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextButtonSmall_Buttons_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextButtonSmall_null_Buttons_TextButtonSmall_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextButtonSmall_Buttons_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextDark_null_Text_TextDark_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextDark_Text_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextDark_null_Text_TextDark_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextDark_Text_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextFieldDark_null_TextFields_TextFieldDark_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextFieldDark_TextFields_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextFieldDark_null_TextFields_TextFieldDark_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextFieldDark_TextFields_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextFieldLight_null_TextFields_TextFieldLight_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextFieldLight_TextFields_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextFieldLight_null_TextFields_TextFieldLight_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextFieldLight_TextFields_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextFieldValueLight_null_TextFields_TextFieldValueLight_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextFieldValueLight_TextFields_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextFieldValueLight_null_TextFields_TextFieldValueLight_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextFieldValueLight_TextFields_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextFieldValueTextFieldDark_null_TextFields_TextFieldValueTextFieldDark_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextFieldValueTextFieldDark_TextFields_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextFieldValueTextFieldDark_null_TextFields_TextFieldValueTextFieldDark_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextFieldValueTextFieldDark_TextFields_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextLight_null_Text_TextLight_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextLight_Text_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TextLight_null_Text_TextLight_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TextLight_Text_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TopAppBar_null_AppBars_TopAppBar_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TopAppBar_App Bars_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme.components_TopAppBar_null_AppBars_TopAppBar_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme.components_TopAppBar_App Bars_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme_ColorAliases_null_ColorAliases-Day_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme_ColorAliases_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme_ColorAliases_null_ColorAliases-Day_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme_ColorAliases_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme_ColorAliases_null_ColorAliases-Night_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.theme_ColorAliases_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.theme_ColorAliases_null_ColorAliases-Night_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.theme_ColorAliases_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/libraries.featureflag.ui_FeatureListView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.featureflag.ui_FeatureListView_Day_0_en.png new file mode 100644 index 0000000000..809f92268f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.featureflag.ui_FeatureListView_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6266c58ae1c80cdee9d9cc43ecf84b3b7b14bf3c0935de15af4f0c6e62b252f1 +size 17424 diff --git a/tests/uitests/src/test/snapshots/images/libraries.featureflag.ui_FeatureListView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.featureflag.ui_FeatureListView_Night_0_en.png new file mode 100644 index 0000000000..9bae4d1b3f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.featureflag.ui_FeatureListView_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0851c1514f7392f3bb478b5cb179a9a4334dd23469942a318a776963e5ba20f0 +size 16955 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Day-0_1_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AttachmentThumbnail_null_AttachmentThumbnail-Night-0_2_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AttachmentThumbnail_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AvatarActionBottomSheet_null_AvatarActionBottomSheet-Day-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AvatarActionBottomSheet_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AvatarActionBottomSheet_null_AvatarActionBottomSheet-Day-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AvatarActionBottomSheet_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AvatarActionBottomSheet_null_AvatarActionBottomSheet-Night-1_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AvatarActionBottomSheet_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_AvatarActionBottomSheet_null_AvatarActionBottomSheet-Night-1_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_AvatarActionBottomSheet_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_CheckableResolvedUserRow_null_CheckableResolvedUserRow_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_CheckableResolvedUserRow_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_CheckableResolvedUserRow_null_CheckableResolvedUserRow_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_CheckableResolvedUserRow_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_CheckableUnresolvedUserRow_null_CheckableUnresolvedUserRow_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_CheckableUnresolvedUserRow_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_CheckableUnresolvedUserRow_null_CheckableUnresolvedUserRow_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_CheckableUnresolvedUserRow_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Day-2_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Day-2_3_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Day-2_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Day-2_3_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Day-2_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Day-2_3_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Night-2_4_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Night-2_4_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Night-2_4_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Night-2_4_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Night-2_4_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_EditableAvatarView_null_EditableAvatarView-Night-2_4_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_EditableAvatarView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_InviteSenderView_null_InviteSenderView-Day-3_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_InviteSenderView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_InviteSenderView_null_InviteSenderView-Day-3_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_InviteSenderView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_InviteSenderView_null_InviteSenderView-Night-3_5_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_InviteSenderView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_InviteSenderView_null_InviteSenderView-Night-3_5_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_InviteSenderView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeaderPlaceholder_null_MatrixUserHeaderPlaceholder-Day-5_6_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeaderPlaceholder_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeaderPlaceholder_null_MatrixUserHeaderPlaceholder-Day-5_6_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeaderPlaceholder_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeaderPlaceholder_null_MatrixUserHeaderPlaceholder-Night-5_7_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeaderPlaceholder_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeaderPlaceholder_null_MatrixUserHeaderPlaceholder-Night-5_7_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeaderPlaceholder_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Day-4_5_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Day-4_5_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Day-4_5_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Day-4_5_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Night-4_6_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Night-4_6_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Night-4_6_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserHeader_null_MatrixUserHeader-Night-4_6_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Day-6_7_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserRow_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Day-6_7_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserRow_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Day-6_7_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserRow_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Day-6_7_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserRow_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Night-6_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserRow_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Night-6_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserRow_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Night-6_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserRow_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_MatrixUserRow_null_MatrixUserRow-Night-6_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserRow_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Day-7_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedRoom_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Day-7_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedRoom_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Day-7_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedRoom_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Day-7_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedRoom_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Night-7_9_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedRoom_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Night-7_9_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedRoom_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Night-7_9_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedRoom_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedRoom_null_SelectedRoom-Night-7_9_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedRoom_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUserCannotRemove_null_SelectedUserCannotRemove-Day-9_10_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUserCannotRemove_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUserCannotRemove_null_SelectedUserCannotRemove-Day-9_10_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUserCannotRemove_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUserCannotRemove_null_SelectedUserCannotRemove-Night-9_11_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUserCannotRemove_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUserCannotRemove_null_SelectedUserCannotRemove-Night-9_11_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUserCannotRemove_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUser_null_SelectedUser-Day-8_9_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUser_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUser_null_SelectedUser-Day-8_9_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUser_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUser_null_SelectedUser-Night-8_10_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUser_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUser_null_SelectedUser-Night-8_10_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUser_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUsersRowList_null_SelectedUsersRowList-Day-10_11_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUsersRowList_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUsersRowList_null_SelectedUsersRowList-Day-10_11_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUsersRowList_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUsersRowList_null_SelectedUsersRowList-Night-10_12_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUsersRowList_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_SelectedUsersRowList_null_SelectedUsersRowList-Night-10_12_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_SelectedUsersRowList_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_UnresolvedUserRow_null_UnresolvedUserRow_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_UnresolvedUserRow_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_UnresolvedUserRow_null_UnresolvedUserRow_0_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_UnresolvedUserRow_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_UnsavedAvatar_null_UnsavedAvatar-Day-11_12_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_UnsavedAvatar_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_UnsavedAvatar_null_UnsavedAvatar-Day-11_12_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_UnsavedAvatar_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_UnsavedAvatar_null_UnsavedAvatar-Night-11_13_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_UnsavedAvatar_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.matrix.ui.components_UnsavedAvatar_null_UnsavedAvatar-Night-11_13_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_UnsavedAvatar_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_0_en.png new file mode 100644 index 0000000000..4a9ee758b4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e5f66737cd496a01c020411282d9dbe6b6ba19515b6d32749bf0e48e30ddff2 +size 10216 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_10_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_10_en.png new file mode 100644 index 0000000000..82c372435e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a703452f0e41decc88cd09312fdf9629c4d28036f94b74ccf88c327d1b3ba32 +size 6082 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_11_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_11_en.png new file mode 100644 index 0000000000..25c49f963d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73919b99c5a5699aeede26b8e9e14fae8a23ccbf0f7933158a215a0f96de8a25 +size 9742 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_1_en.png new file mode 100644 index 0000000000..338fddee76 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2931a4fcedef937c7029e6799365601db53a57e36766d8e53f4dc9dc7d59e767 +size 19024 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_2_en.png new file mode 100644 index 0000000000..bfaeebe016 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:465ca302a1429fa6943aa8554abda6391bd06735c8a84bce394e7c54c49f81ce +size 6932 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_3_en.png new file mode 100644 index 0000000000..ee46744a0b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:795a462bf0f34c66d9bfc87ca70b5efa2df6c20f73525f2320f61d0c08978056 +size 6499 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_4_en.png new file mode 100644 index 0000000000..0b9e175664 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c698691bd7b71a73538ba689b94a9d7558202fe6c6f50fc44bb3ac75f2268589 +size 8762 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_5_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_5_en.png new file mode 100644 index 0000000000..b1e7386915 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:444e50fa6d7667b9295aaccbc059318e1564a3e4f7d83a360ca28bf750a4ed1b +size 6157 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_6_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_6_en.png new file mode 100644 index 0000000000..7af9b0b11e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed30e1a7e05c124a239f658cd2df094a12a43fb2fbac789ccc42a5763ba25fe9 +size 6407 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_7_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_7_en.png new file mode 100644 index 0000000000..bdc3bb3f7e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cdac36229c6f622d7acfa3e2131b6610a70fdf929cfc164143232df06015ef0 +size 6906 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_8_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_8_en.png new file mode 100644 index 0000000000..f1c34227af --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b758cd057277798880b92bf7fc1e67d02d181c41ae384f5be6233a841c13f06d +size 8915 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_9_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_9_en.png new file mode 100644 index 0000000000..c7e61c148f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Day_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d5e56df45634ccc9cba4c31d8485186ad8326ea98d7f8f26fb770bd9021eff8 +size 6236 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_0_en.png new file mode 100644 index 0000000000..ce1a7d6aa2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2e2129d8e12c3b78a4441cd9fa4cf25a544d0c92ba8896d922bbc991f4783da +size 10040 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_10_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_10_en.png new file mode 100644 index 0000000000..015c3f7223 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfb9e4469b785d8cd21b7b52a3dcbb1645d1a1e68ef5c0bf4dded6ded16df191 +size 6011 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_11_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_11_en.png new file mode 100644 index 0000000000..2b7662775c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58776fc7227c819dff17d7f2857381e022d9926906024b8102efd1b0f82029bd +size 9579 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_1_en.png new file mode 100644 index 0000000000..385e9bcc6b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:513116da8889016885032e6ba46991c5ddfc3232ad80afc7b37d3f8bbfb8a98e +size 18677 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_2_en.png new file mode 100644 index 0000000000..1f9395bf45 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3da1f3f3a9b435e93b2227ecc5816996cd92161fbfa104b693466639ac2e665c +size 6899 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_3_en.png new file mode 100644 index 0000000000..92f9513558 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de0c54d3b8ba37a84f2bf75d2a413a34ec7904501fad7115fdcb35518caf4bc7 +size 6456 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_4_en.png new file mode 100644 index 0000000000..f0c9dbcd6b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2658de388e16410bf37308a9a26434f4c0e89072df2104ea19343830681a9ef2 +size 8663 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_5_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_5_en.png new file mode 100644 index 0000000000..4c1860381a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb8ea0027d6e4eb841d570c008468eaaacb2c841cfb7fa70d84c1f9e50dd9f36 +size 6147 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_6_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_6_en.png new file mode 100644 index 0000000000..23a08f6fbc --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57ab57280fad1a8572153be82085580e118c470257ffc35c267d453f3b109bb1 +size 6360 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_7_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_7_en.png new file mode 100644 index 0000000000..5cfb9081c2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23d4b7d2feef85f66b8772c7722918abad562d6673b657357e19fb094f5d04d2 +size 6853 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_8_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_8_en.png new file mode 100644 index 0000000000..2ea90795e6 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae369206a379473b46f3f606f59e6206972364d5e6ce64836a710dde999e2280 +size 8846 diff --git a/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_9_en.png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_9_en.png new file mode 100644 index 0000000000..50486fc64c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.reply_InReplyToView_Night_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9018dc832b5c01b651402a0f31e2ee31dce3d459816f979223b39863c72303b1 +size 6208 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Day-8_8_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.sender_SenderName_null_SenderName-Night-8_9_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.matrix.ui.messages.sender_SenderName_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_10,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_8,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_9_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.mediaviewer.api.viewer_MediaViewerView_null_MediaViewerView_0_null_9,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.mediaviewer.api.viewer_MediaViewerView_9_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.permissions.api_PermissionsView_null_PermissionsView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.permissions.api_PermissionsView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.roomselect.impl_RoomSelectView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components.markdown_MarkdownTextInput_null_MarkdownTextInput-Day-19_20_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components.markdown_MarkdownTextInput_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components.markdown_MarkdownTextInput_null_MarkdownTextInput-Day-19_20_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components.markdown_MarkdownTextInput_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components.markdown_MarkdownTextInput_null_MarkdownTextInput-Night-19_21_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components.markdown_MarkdownTextInput_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components.markdown_MarkdownTextInput_null_MarkdownTextInput-Night-19_21_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components.markdown_MarkdownTextInput_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_ComposerOptionsButton_null_ComposerOptionsButton-Day-9_10_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_ComposerOptionsButton_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_ComposerOptionsButton_null_ComposerOptionsButton-Day-9_10_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_ComposerOptionsButton_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_ComposerOptionsButton_null_ComposerOptionsButton-Night-9_11_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_ComposerOptionsButton_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_ComposerOptionsButton_null_ComposerOptionsButton-Night-9_11_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_ComposerOptionsButton_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_DismissTextFormattingButton_null_DismissTextFormattingButton-Day-10_11_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_DismissTextFormattingButton_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_DismissTextFormattingButton_null_DismissTextFormattingButton-Day-10_11_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_DismissTextFormattingButton_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_DismissTextFormattingButton_null_DismissTextFormattingButton-Night-10_12_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_DismissTextFormattingButton_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_DismissTextFormattingButton_null_DismissTextFormattingButton-Night-10_12_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_DismissTextFormattingButton_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_FormattingOption_null_FormattingOption-Day-11_12_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_FormattingOption_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_FormattingOption_null_FormattingOption-Day-11_12_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_FormattingOption_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_FormattingOption_null_FormattingOption-Night-11_13_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_FormattingOption_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_FormattingOption_null_FormattingOption-Night-11_13_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_FormattingOption_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_LiveWaveformView_null_LiveWaveformView-Day-12_13_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_LiveWaveformView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_LiveWaveformView_null_LiveWaveformView-Day-12_13_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_LiveWaveformView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_LiveWaveformView_null_LiveWaveformView-Night-12_14_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_LiveWaveformView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_LiveWaveformView_null_LiveWaveformView-Night-12_14_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_LiveWaveformView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_SendButton_null_SendButton-Day-13_14_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_SendButton_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_SendButton_null_SendButton-Day-13_14_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_SendButton_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_SendButton_null_SendButton-Night-13_15_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_SendButton_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_SendButton_null_SendButton-Night-13_15_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_SendButton_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_TextFormatting_null_TextFormatting-Day-14_15_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_TextFormatting_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_TextFormatting_null_TextFormatting-Day-14_15_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_TextFormatting_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_TextFormatting_null_TextFormatting-Night-14_16_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_TextFormatting_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_TextFormatting_null_TextFormatting-Night-14_16_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_TextFormatting_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageDeleteButton_null_VoiceMessageDeleteButton-Day-15_16_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageDeleteButton_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageDeleteButton_null_VoiceMessageDeleteButton-Day-15_16_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageDeleteButton_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageDeleteButton_null_VoiceMessageDeleteButton-Night-15_17_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageDeleteButton_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageDeleteButton_null_VoiceMessageDeleteButton-Night-15_17_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageDeleteButton_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageRecorderButton_null_VoiceMessageRecorderButton-Day-17_18_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageRecorderButton_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageRecorderButton_null_VoiceMessageRecorderButton-Day-17_18_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageRecorderButton_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageRecorderButton_null_VoiceMessageRecorderButton-Night-17_19_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageRecorderButton_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageRecorderButton_null_VoiceMessageRecorderButton-Night-17_19_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageRecorderButton_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageRecording_null_VoiceMessageRecording-Day-18_19_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageRecording_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageRecording_null_VoiceMessageRecording-Day-18_19_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageRecording_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageRecording_null_VoiceMessageRecording-Night-18_20_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageRecording_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessageRecording_null_VoiceMessageRecording-Night-18_20_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessageRecording_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessagePreview_null_VoiceMessagePreview-Day-16_17_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessage_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessagePreview_null_VoiceMessagePreview-Day-16_17_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessage_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessagePreview_null_VoiceMessagePreview-Night-16_18_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessage_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.components_VoiceMessagePreview_null_VoiceMessagePreview-Night-16_18_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.components_VoiceMessage_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.mentions_MentionSpan_null_MentionSpan-Day-20_21_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.mentions_MentionSpan_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.mentions_MentionSpan_null_MentionSpan-Day-20_21_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.mentions_MentionSpan_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.mentions_MentionSpan_null_MentionSpan-Night-20_22_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer.mentions_MentionSpan_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer.mentions_MentionSpan_null_MentionSpan-Night-20_22_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer.mentions_MentionSpan_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_MarkdownTextComposerEdit_null_MarkdownTextComposerEdit-Day-3_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_MarkdownTextComposerEdit_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_MarkdownTextComposerEdit_null_MarkdownTextComposerEdit-Day-3_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_MarkdownTextComposerEdit_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_MarkdownTextComposerEdit_null_MarkdownTextComposerEdit-Night-3_5_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_MarkdownTextComposerEdit_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_MarkdownTextComposerEdit_null_MarkdownTextComposerEdit-Night-3_5_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_MarkdownTextComposerEdit_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerEdit_null_TextComposerEdit-Day-2_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerEdit_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerEdit_null_TextComposerEdit-Day-2_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerEdit_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerEdit_null_TextComposerEdit-Night-2_4_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerEdit_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerEdit_null_TextComposerEdit-Night-2_4_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerEdit_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerFormatting_null_TextComposerFormatting-Day-1_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerFormatting_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerFormatting_null_TextComposerFormatting-Day-1_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerFormatting_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerFormatting_null_TextComposerFormatting-Night-1_3_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerFormatting_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerFormatting_null_TextComposerFormatting-Night-1_3_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerFormatting_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_null_TextComposerLinkDialogCreateLinkWithoutText-Day-7_8_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_null_TextComposerLinkDialogCreateLinkWithoutText-Day-7_8_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_null_TextComposerLinkDialogCreateLinkWithoutText-Night-7_9_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_null_TextComposerLinkDialogCreateLinkWithoutText-Night-7_9_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLink_null_TextComposerLinkDialogCreateLink-Day-6_7_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogCreateLink_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLink_null_TextComposerLinkDialogCreateLink-Day-6_7_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogCreateLink_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLink_null_TextComposerLinkDialogCreateLink-Night-6_8_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogCreateLink_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogCreateLink_null_TextComposerLinkDialogCreateLink-Night-6_8_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogCreateLink_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogEditLink_null_TextComposerLinkDialogEditLink-Day-8_9_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogEditLink_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogEditLink_null_TextComposerLinkDialogEditLink-Day-8_9_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogEditLink_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogEditLink_null_TextComposerLinkDialogEditLink-Night-8_10_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogEditLink_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerLinkDialogEditLink_null_TextComposerLinkDialogEditLink-Night-8_10_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerLinkDialogEditLink_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_0_en.png new file mode 100644 index 0000000000..18c6848a23 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ba137e031bf871e7dfc4e02dde94543a2fdae300182e943f5e231a63767df21 +size 19952 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_10_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_10_en.png new file mode 100644 index 0000000000..1238496c22 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eec0c7c8a131d5e17833897ee777eebd7272e15ee8c664fe106bfb924617d6e4 +size 15465 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_11_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_11_en.png new file mode 100644 index 0000000000..431f6e60ff --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:727d84a024a40ea3524d26e528deb8deaa1b7a91c6d44a040eac724312c7ee5b +size 19358 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_1_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_1_en.png new file mode 100644 index 0000000000..314072ad7a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f896d0fac1c193a37f18ccf8b1a218364a5c493657fc46ffb8c9d851d1cf7361 +size 22239 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_2_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_2_en.png new file mode 100644 index 0000000000..a6f04755f2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b3b984b2c549b30f18bc7ea8afae134d10b223137c98461cc99c09d8f2c7a7b +size 16288 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_3_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_3_en.png new file mode 100644 index 0000000000..b522c20bff --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:332c75d3dfd87165edfd3c7550864424f12048b90f8fe2204e5127f23607762c +size 15862 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_4_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_4_en.png new file mode 100644 index 0000000000..0a78fb33c3 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4521f8d315cbdb95e5e3e1f34fe395e543aef52ee402b6ff0072a81cc170f37c +size 18253 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_5_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_5_en.png new file mode 100644 index 0000000000..3ebec5c75b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dbc2ec4e7fa64dbb8214457aac6c049a71cf438ddda9819400837e50e13fa79 +size 15580 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_6_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_6_en.png new file mode 100644 index 0000000000..7ee96cb375 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e956f8706aa28409214bd473953d5d21455bba28730098c8107a02ba9fe3cbc +size 15788 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_7_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_7_en.png new file mode 100644 index 0000000000..fdc18ba43f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:631320ef054296d5bd1cbe4d2efc93fc2cf4d502e6cde6092df9fd0a53ff0cc4 +size 16319 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_8_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_8_en.png new file mode 100644 index 0000000000..9cd314c654 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d13a2471950e1fa8a1e006e5f37ad19d2046ed5b894735b13dee153e22a317d6 +size 18349 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_9_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_9_en.png new file mode 100644 index 0000000000..42598fa896 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Day_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2564c5807df45b8bf1ce9557bcb49121bd34fc831affe17abd440dc53b915467 +size 15666 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_0_en.png new file mode 100644 index 0000000000..ad21a120e3 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5bf7c115d5c0e25f325d8e8e7b01f98466c4d8fbd752882db8e8b3e2e4ea70b +size 18846 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_10_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_10_en.png new file mode 100644 index 0000000000..f1bdd6f14f --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_10_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82ce783813417d6da3db55ae1d4f8a6690b775c4e809c3480ca66494662921ab +size 14624 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_11_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_11_en.png new file mode 100644 index 0000000000..a06e3b44ca --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_11_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4bb1269080c567c03210191e8486f79382a70f14a96133578957f48701a5de0 +size 18439 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_1_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_1_en.png new file mode 100644 index 0000000000..9a2cafe64e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae50ed7f1afa9d323d54756388a808353d9cf4981cb324099ffdb6129006294c +size 21103 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_2_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_2_en.png new file mode 100644 index 0000000000..d051afdd4d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b094fa4d99b60bec8131d02afb0b004929120a13e9b6f56fe5ec80899db23367 +size 15549 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_3_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_3_en.png new file mode 100644 index 0000000000..cd36d31c39 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e556677d17885e1daa1054f19fc91a9adb2c3cce6fb386aee95e0f7f5869218 +size 15137 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_4_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_4_en.png new file mode 100644 index 0000000000..1b59db3513 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a4c6d53fac8158b00f0b3dbf82cd355da6416eb373b3bd57b58cf0a782bc0a6 +size 17374 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_5_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_5_en.png new file mode 100644 index 0000000000..dc6cb0c954 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5273133c6205403ade60a42e415c74aa988fcf60cf3125aa50ae10e0d3257558 +size 14833 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_6_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_6_en.png new file mode 100644 index 0000000000..8d90207152 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb093750e294a6e271f743dd40e3a8acad1783c7d7b6ef3e715a78854ede40ae +size 14968 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_7_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_7_en.png new file mode 100644 index 0000000000..5ca572a992 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e99bd0a813c6130c77f549c3bda2743ef5cad1b442c789796a765737ce2a52e0 +size 15616 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_8_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_8_en.png new file mode 100644 index 0000000000..dd11957d1a --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3840ff79977e18a589db993e62575d9a81484cb712e64eef0b5df740f3255fa4 +size 17459 diff --git a/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_9_en.png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_9_en.png new file mode 100644 index 0000000000..d9e5e61da9 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerReply_Night_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e366992f5cefcede77af4511e1f06464fa62352f341161cf0f0e5c320dffdfd +size 14869 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerSimple_null_TextComposerSimple-Day-0_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerSimple_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerSimple_null_TextComposerSimple-Day-0_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerSimple_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerSimple_null_TextComposerSimple-Night-0_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerSimple_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerSimple_null_TextComposerSimple-Night-0_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerSimple_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerVoice_null_TextComposerVoice-Day-5_6_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerVoice_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerVoice_null_TextComposerVoice-Day-5_6_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerVoice_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerVoice_null_TextComposerVoice-Night-5_7_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerVoice_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerVoice_null_TextComposerVoice-Night-5_7_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.textcomposer_TextComposerVoice_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Day-0_1_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_0,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_1,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_2,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_3,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_4,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_5,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_6,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[l.troubleshoot.impl_TroubleshootNotificationsView_null_TroubleshootNotificationsView-Night-0_2_null_7,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[services.apperror.impl_AppErrorView_null_AppErrorView-Day-0_1_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/services.apperror.impl_AppErrorView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[services.apperror.impl_AppErrorView_null_AppErrorView-Day-0_1_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/services.apperror.impl_AppErrorView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[services.apperror.impl_AppErrorView_null_AppErrorView-Night-0_2_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/services.apperror.impl_AppErrorView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/ui_S_t[services.apperror.impl_AppErrorView_null_AppErrorView-Night-0_2_null,NEXUS_5,1.0,en].png rename to tests/uitests/src/test/snapshots/images/services.apperror.impl_AppErrorView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Body Large,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Body Large,NEXUS_5,1.0,en].png deleted file mode 100644 index 033d7d9902..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Body Large,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c05daa5bb55ca90eac68148e98ce1b40c541527bbca7afccfbb3b505511cf3c2 -size 6966 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Body Medium,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Body Medium,NEXUS_5,1.0,en].png deleted file mode 100644 index a26f8435e2..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Body Medium,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:01b1c9dcfda6b1f72357a05953b103c0a45afc9cc49c79cbb2e45d28a3d8d74e -size 6807 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Body Small,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Body Small,NEXUS_5,1.0,en].png deleted file mode 100644 index ce6e96fc20..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Body Small,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b6561355af644cb5f3302f89162dc62acb10f13b5db06e290d21cf40a6bf2f29 -size 6085 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Headline Large,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Headline Large,NEXUS_5,1.0,en].png deleted file mode 100644 index 475b331674..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Headline Large,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a96bdfdb76afebb0431773a48258021196735231c9d53eb619e9083455e608fc -size 10675 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Headline Medium,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Headline Medium,NEXUS_5,1.0,en].png deleted file mode 100644 index ccefba9222..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Headline Medium,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ecf8f7a63dfc4d4691881ff90310553925ab36e43ef87abf9ecbfb9cfb1580c5 -size 10020 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Headline Small,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Headline Small,NEXUS_5,1.0,en].png deleted file mode 100644 index ee95e85325..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Headline Small,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b97c37a664d78c5e8870963808858522373d636af4fe66f10b7db60b92ee0a64 -size 8767 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Label Large,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Label Large,NEXUS_5,1.0,en].png deleted file mode 100644 index 8b4523d2aa..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Label Large,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a0bd2117b7e2f2cebfcb635bd52ce13e96ba4f41b4deab0c76f58572425de089 -size 6335 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Label Medium,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Label Medium,NEXUS_5,1.0,en].png deleted file mode 100644 index 7c6c83af52..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Label Medium,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e33d869d33297bbb190b040233814438678677b937482ab9ed8a0aa4ba51c815 -size 6304 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Label Small,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Label Small,NEXUS_5,1.0,en].png deleted file mode 100644 index df8d20f771..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Label Small,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c0f70ecb31f10c8c8ee7f4dba78127f56eb4648583634f43892df1365e85bf49 -size 5801 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Title Large,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Title Large,NEXUS_5,1.0,en].png deleted file mode 100644 index 3db72401c6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Title Large,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7cc7425208bba63652d6e6a8308a9022c4ed7a827e1b338dce7522508b9921d8 -size 7326 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Title Medium,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Title Medium,NEXUS_5,1.0,en].png deleted file mode 100644 index da902248b5..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Title Medium,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1ab5c1cc8b1bf80bb5243e3a3f3885ef82480986cdd4943e6198d912778c86ac -size 6767 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Title Small,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Title Small,NEXUS_5,1.0,en].png deleted file mode 100644 index 10c2dada3c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[Typo_Compound_M3 Title Small,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6381216df6189d446325bde161bb8e1fe9f3e48c92cd5de935a92aa76387995b -size 5944 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_null_TimelineImageWithCaptionRow-Day-41_41_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_null_TimelineImageWithCaptionRow-Day-41_41_null,NEXUS_5,1.0,en].png deleted file mode 100644 index cf6b64cc92..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_null_TimelineImageWithCaptionRow-Day-41_41_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ff075a12fe61bbb9de173852c603277d93de89c573c221125cef97dba4993aab -size 130321 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_null_TimelineImageWithCaptionRow-Night-41_42_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_null_TimelineImageWithCaptionRow-Night-41_42_null,NEXUS_5,1.0,en].png deleted file mode 100644 index 9ee9b90d8f..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_null_TimelineImageWithCaptionRow-Night-41_42_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3eab57e2d8e5093b99c79157d32b784094d8c9a872ff2df63f644a0edfc4d442 -size 130073 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_null_TimelineVideoWithCaptionRow-Day-52_52_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_null_TimelineVideoWithCaptionRow-Day-52_52_null,NEXUS_5,1.0,en].png deleted file mode 100644 index 5de8cb3ca1..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_null_TimelineVideoWithCaptionRow-Day-52_52_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4fdd9c628181b7800b53ef51ef8f99a9c4267ec673a4d27312e57cca03f27b5 -size 129087 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_null_TimelineVideoWithCaptionRow-Night-52_53_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_null_TimelineVideoWithCaptionRow-Night-52_53_null,NEXUS_5,1.0,en].png deleted file mode 100644 index 331abf1f83..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_null_TimelineVideoWithCaptionRow-Night-52_53_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6a4864f3ce0efd4aa54d8ade967f1a6717558114e8d23288d255edf7aa2f43df -size 128702 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 12f056c6a0..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30920f1b3664340f1fe83bf9c55f7830ab71c2446e1c512104acdef68c9d911e -size 5510 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 4c0529cbc3..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:acc7e8eb072fbd7b843c54663f1b826d8a704b20e1b5c5d666003966394ad907 -size 5341 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_12,NEXUS_5,1.0,en].png deleted file mode 100644 index 3c10d915dc..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_12,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f56e320f01213e8c4072f5fc9231f291f36a992d5daa8c652c1dee3ae95187fd -size 5823 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_13,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_13,NEXUS_5,1.0,en].png deleted file mode 100644 index 55cf86e7a9..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_13,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:724a90edd848378a7f887df5ea5f4ee5d617dbbbebf09fe054823f1d12470d29 -size 5658 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index 5578daa61d..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8f8598ab8faba390d51ab56998cb4cf226a75a9165bbacfebe0c4332fe0d0095 -size 5819 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index 0a03997753..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:155f071922a021ebac8b525b62c6b3eed9989744a30cb3455525320351dca946 -size 5677 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index 9560f9494b..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3caa602a448a805f6c531a052aad62eae09ca30fa3343af1f08f79cdb082e113 -size 5566 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index f729d61b4c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Day-10_10_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:115a3e6edfec58a2caf205698efe145b96d3a035f2b1373b2f4213a779cc3ebd -size 5396 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index c21a618a39..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e3f2ff6e841cf64a8bb25d36e76cc9d7b3081d3583c4bf8fc983596459acdebe -size 5647 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 800a8a99ef..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7f6d7328b456e3d4e6c809e1804c9bb32004d08dffea58e9b4fbfaabc2198dc7 -size 5482 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_10,NEXUS_5,1.0,en].png deleted file mode 100644 index 123ee41ef6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_10,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7795df5855fd67aefc27d90427ce50318bb6c8fbdda4b173aaa66db247779b00 -size 5614 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_11,NEXUS_5,1.0,en].png deleted file mode 100644 index 04f6fc0f48..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_11,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ce077798805fb8a5551ffd28b17a6e5738d35a3c357ae66719e2174419cb35c -size 5438 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_12,NEXUS_5,1.0,en].png deleted file mode 100644 index c6c0c9e067..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_12,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa54addb355befa22de7b739c34086e96bd18cd72cf7576e56a836c1221f9a4e -size 6002 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_13,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_13,NEXUS_5,1.0,en].png deleted file mode 100644 index 379adff6ff..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_13,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bf5b944eb8371b14df14407efdef7c03e74172a7e8e80e58c9d09fabf611aa92 -size 5822 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_14,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_14,NEXUS_5,1.0,en].png deleted file mode 100644 index b61970f6c1..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_14,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2230d3a0a3815a5067867890c56709abe3a3329612c5fa37f59f6bb4e4ab390f -size 5809 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_15,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_15,NEXUS_5,1.0,en].png deleted file mode 100644 index 5e4784c069..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_15,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ba4c6ba91cde563673ad6e9f727d9c2b974a69ef54e276f67c4fc4f889c833a8 -size 5622 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index dc8e683bd2..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:efef19f15d2666e34a151688e6cd2a071ba858a7158669f1f5965c05f6460742 -size 5500 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 129ec44a3e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:011caa2ddc92b210c72aca6c0a66a250183e22648ead1ca8ee9765ac7aa370fe -size 5340 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index d70f5a9e4d..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e31514657a3b866ea3f17dbce0eae196f025935d01e8db86e921dc208e994544 -size 5957 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index 7dce48a1d5..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:412c67946dd2d62a0f3626a6a73b4596db3e506c43b4c43ace9e5bd87c1b2baa -size 5781 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 8fbaab031e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:61585ff27c6740550405d4ccd58cacf4b9f52dce70f150b3299b7ef2d35fe0d5 -size 5846 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index fae56b520e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99fa91704cebc5c5f5995b1637754c1fc7a0ed871222a816a739198aee5fc992 -size 5682 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index d0cfc96c76..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6ac14b2e020cea647be85e598f2c4c330bd414d8445d605ece7b1700f5a7a427 -size 5733 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index 9c9ae35c88..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_MessageEventBubble_null_MessageEventBubble-Night-10_11_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1d6f3d25e8815372d70cea84cc69f64b35aab894f1cf5e2f4052155e17a81dbc -size 5563 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 7fd6bf228b..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Day-16_16_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cce57f0b6d304c9871fdb3f8a13e1dd787493d95d5edde9631a18e45b9756acc -size 5704 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index ab62303abe..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineEventTimestampView_null_TimelineEventTimestampView-Night-16_17_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7d670f258934a3b9b016464f74739a0eff902ec9a184bfb166b116e01de36da -size 5698 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_null_TimelineItemEventRowDisambiguated-Day-19_19_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_null_TimelineItemEventRowDisambiguated-Day-19_19_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index a4a38b37c0..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_null_TimelineItemEventRowDisambiguated-Day-19_19_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d673735894d33b1e02127b73c2c79ae40c7a57ce6941662e8acc7bcad8f1e3f -size 163253 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_null_TimelineItemEventRowDisambiguated-Night-19_20_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_null_TimelineItemEventRowDisambiguated-Night-19_20_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 9027c2824a..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_null_TimelineItemEventRowDisambiguated-Night-19_20_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bbf91c8fbe79f0dbecd1908316618ac65d5fa53970774a062417e37b73c62d15 -size 161912 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_null_TimelineItemEventRowForDirectRoom-Day-20_20_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_null_TimelineItemEventRowForDirectRoom-Day-20_20_null,NEXUS_5,1.0,en].png deleted file mode 100644 index 7277accc2b..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_null_TimelineItemEventRowForDirectRoom-Day-20_20_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1fb134f5a757889f06ac297f9964a23028942f36f8af7ee67580465b2b4db184 -size 167396 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_null_TimelineItemEventRowForDirectRoom-Night-20_21_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_null_TimelineItemEventRowForDirectRoom-Night-20_21_null,NEXUS_5,1.0,en].png deleted file mode 100644 index 73473c94b1..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_null_TimelineItemEventRowForDirectRoom-Night-20_21_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f07fce4dc950affe9ce20d527aee68f84639679a4ca544e9a5a863c2e5059289 -size 165653 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowLongSenderName_null_TimelineItemEventRowLongSenderName_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowLongSenderName_null_TimelineItemEventRowLongSenderName_0_null,NEXUS_5,1.0,en].png deleted file mode 100644 index d2ea8e2eaa..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowLongSenderName_null_TimelineItemEventRowLongSenderName_0_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ddc6fcf6c1fb59d94f190d9cc035974627ca99a85a1c2b4ea37907e75f28b965 -size 15942 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index a3417b0ea9..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:af5bd4e8b1343e6a57e14e9e81d4be05a3cbe8746372d1ec4a5639e23b7059f0 -size 29125 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 1594e91e0f..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:29cceba22078f6b7791bd5785c7654b68114a7858d043aa5e3b71764089c8ab7 -size 31482 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index da7fd75bc5..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:93fde09b8788a085e0dcd40e79f58f88866b4b81ec1650d39ae49ae94eb1a731 -size 32774 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index aa9b6c7812..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Day-21_21_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:00e60c9996b9f76848eaa6178aa50ecc4aedd880536800bd307fb68db9c17011 -size 35177 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index b247c714c3..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:88d3e63eb2be8669537788b52ec61ec589b4c231ceeb2b574a4c390dd6d61d92 -size 29890 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 4efd44ace2..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c3bb375b7a5e3e1566c73693cb19e9a38a33b9f40148ffd219a2e0c2037d7a97 -size 32137 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 465c23c69b..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eecd962872023976ec011ad2f83b4ccb013c14fa90afee8573fad3c985bd5720 -size 33352 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 0bc3924405..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowTimestamp_null_TimelineItemEventRowTimestamp-Night-21_22_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57c3265ca6432efdc69ed45acdb719a10a72544c520b32008c203294bd92f18d -size 35571 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Day-22_22_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Day-22_22_null,NEXUS_5,1.0,en].png deleted file mode 100644 index b439765d80..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Day-22_22_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8278e0079700f97b7583e3d7f87c7e9bc4670abea3a781c4cc0845b13d45dcd6 -size 80126 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Night-22_23_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Night-22_23_null,NEXUS_5,1.0,en].png deleted file mode 100644 index 14035af8fa..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_null_TimelineItemEventRowWithManyReactions-Night-22_23_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:84c4191eb164962ca0286af10a63f64fbb195bcf6719b0c236730b7fb2ede54c -size 80577 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 41d3311fe4..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c33d05c9e5474cfb21f44152388e18ee915f7c433e8f27ba0b73f41bd9d20751 -size 25581 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index c96f222dd3..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd10f15643bc822305b29080e4f685b33e39b98462c6a74cdcc780c09f7ade6e -size 25051 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 6452a050b7..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Day-23_23_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:da458c28aec5a25effbec136a5f7d97ade5cc395614a7cdbd2d54a8aaff0a896 -size 29160 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 7d0bc73a83..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15ebb3a77b520b0651a1b8f2e59ab19c451a94d856e82ec33a08f835f209ce94 -size 25256 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index a8358c1f1c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bfdf21dfc5a6266cc842ac84b1d25ff9938d197cad79a8f270f01e28e557597b -size 24707 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index ff863838c1..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithRR_null_TimelineItemEventRowWithRR-Night-23_24_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:42fee3d77999a02ee61ddbdcbfe6e17d65a6a5e35a16172ee2e244e933bb2653 -size 30032 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 25518f6170..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d87c9341813cdbda0965f9f1a2cba18444de9492eb92990117e1af0e5f963a37 -size 146010 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 70ff6292f8..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Day-24_24_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:624d78851c8af47601984f2cdba456c4c5b882e38730121745690c619718f4ea -size 151316 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Night-24_25_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Night-24_25_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index a06ab812ae..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Night-24_25_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d381e2dc1ea60da620e179c0cea381e0a6efc6a2a535ce65625e6b2509f20e3e -size 145412 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Night-24_25_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Night-24_25_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index ff0ee54b2e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_null_TimelineItemEventRowWithReplyInformative-Night-24_25_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd05df1c85a5123702cc337757b2a6971e7287cdae9240fd281261b5cab44728 -size 150553 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Day-25_25_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Day-25_25_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index a5b779aea4..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Day-25_25_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7c26e86724276074cc7b7c60307eeda10cf5d021ae34a47f085224f5ea646ed -size 128247 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Day-25_25_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Day-25_25_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index dbecb1d90d..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Day-25_25_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6f750b71addd8bdaf90e4394775fb80661a6700213a3a3ed1fc06af18d08c4d1 -size 140763 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Night-25_26_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Night-25_26_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 665a3e909c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Night-25_26_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68e5e74d2f071fa2aed2f3cd411cc121f22df30f11b825a8297f15b10f152cd5 -size 127811 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Night-25_26_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Night-25_26_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index ea64f393ab..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_null_TimelineItemEventRowWithReplyOther-Night-25_26_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15670b20503a7479972fd1e2bef30251eff2fbfecd63b4287e0b648f558387c4 -size 139729 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 12f29dfc23..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:df21cda21d9596949874100e1ad39732d75d99164a93416ff2e60a0b8e5d415d -size 150835 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index ccc12838fe..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15a18b2871562ff8bc3749caaf2c5b3bd70287d2310c3a3db8a6893cdd2c4f6a -size 157180 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_10,NEXUS_5,1.0,en].png deleted file mode 100644 index 7589d87eec..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_10,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c669b0971dacf42384e372fed75ccec32d51bd9592b8b564c795fbe49c017402 -size 137074 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_11,NEXUS_5,1.0,en].png deleted file mode 100644 index 2c052237eb..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_11,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:52c83d679737ca4bbf9c5981533a6d66f66814a14e2ffa67cc6d5daf5a92e2e5 -size 148763 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 70bdb981ef..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:53263cb215455bae9af989f07e49e947354eeaa413a8a3f8369077960654f65f -size 139733 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 308a4332dd..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4ad2ef9106de82f3918218fc1fc4c6cd0591ba6f5d68abd94e6aaccef5126f2 -size 138189 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index 25ff5faf57..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8d25a4018d3578a5e80dc3ccf80ae0ed22aa5359afed70ff05b3357e8018a911 -size 145559 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index 9509f79c1e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:743310f200473bec421fc3d869456159a3d46dd03c3f750a102704b3fdbaa3d6 -size 137338 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 39608caa2d..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8bc77afc5ebb5f9e8eb139cf042d92d287679b36e7e23d3d5dfe134163e98d86 -size 138234 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index 6b669996c6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:023e6115b72cbdf67f9a149987f64668c6a5328d4e1894977fbac826bd4bbaf5 -size 139988 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index 6501004402..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e87c517d8db7587353b57989663ef6b15901ed8fca00edae5683365e051c4180 -size 146089 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index c4d4d7a8ac..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Day-26_26_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e83f217d766f2dcd1433b44667c2f30c52d3d576b99fae001bce466d5ad0d683 -size 137690 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index e47cfb0605..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac654a59f178c55e8b4c194c873e9af113768a52d18ac57ce7fd26838e3cc2d2 -size 150012 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index a42aa10071..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b1c1e556e876f3ea6fb36cb654d3bdaa48e28cc7e376d425761a6aba85db898 -size 156268 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_10,NEXUS_5,1.0,en].png deleted file mode 100644 index 8aad4edf32..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_10,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c881f6e2c7f9938b503f5289fc40e338d639076568e11b50176628a02c6fe82f -size 136293 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_11,NEXUS_5,1.0,en].png deleted file mode 100644 index 4ede81c8f0..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_11,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:70b5ad4bf5d0fe82cd8e8b57837fcd7744aaa6557b40c7f9575e35c6d5d92fe8 -size 148275 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 485b31add7..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7699c789759de80565820623ff1b65554338504c2a572427f95a557504e84764 -size 139031 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 41ce22ddbe..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a33f0c9922a367dded4088edbdd39af0daf556e049427e9f6cff54e86cb00dc -size 137518 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index cb0606e653..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f7e68a669800a0c79e46b81f430904fe593eada9e9fd8262f189f7603d8c83e3 -size 145028 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index b3039c8471..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fdda78d15ec03f104fdf350c9bd8fc17a43292028bd19467ac50ecc9bf2a129b -size 136613 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 60e7663bb2..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99cc12af68590f89a1fea3440e4e659de9ff4ce7efeffd2fc34b74399fa24aee -size 137444 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index b548465962..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b48cf56605f695a533a4c87e6ff90653f545ed0ffb0b59851274e7cbdf9e3f28 -size 139342 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index ac4aaff16c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e197c0ad954fa430b875e51efa2ddbe5d5f0643476936a0e32ef4f5411018657 -size 145375 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index 36d5e394b4..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRowWithReply_null_TimelineItemEventRowWithReply-Night-26_27_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3c880e6913d36a198293ea606d71f2eed976f3faa5d674d9292e62a161f3762b -size 136863 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRow_null_TimelineItemEventRow-Day-18_18_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRow_null_TimelineItemEventRow-Day-18_18_null,NEXUS_5,1.0,en].png deleted file mode 100644 index a79de599e4..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRow_null_TimelineItemEventRow-Day-18_18_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd17bb2c6642bdac12f7d65caddfa2a17d51650ca8b84d972a35e30adcffc25f -size 180004 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRow_null_TimelineItemEventRow-Night-18_19_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRow_null_TimelineItemEventRow-Night-18_19_null,NEXUS_5,1.0,en].png deleted file mode 100644 index 52d7608d88..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventRow_null_TimelineItemEventRow-Night-18_19_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d4078f7ebf4cc857b8aa0b8d1d186b8fd768ae71b782e5c13f1f1543912257f9 -size 179953 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventTimestampBelow_null_TimelineItemEventTimestampBelow_0_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventTimestampBelow_null_TimelineItemEventTimestampBelow_0_null,NEXUS_5,1.0,en].png deleted file mode 100644 index 29fbeae0a4..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline.components_TimelineItemEventTimestampBelow_null_TimelineItemEventTimestampBelow_0_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3a4c8e9a978cdc8c051923c1d4753ba7de955c91564276cf57057dc2cf685a8 -size 52593 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 0781ebf8a0..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:af29bab33aa3acd1cf0141d339c54764b76ef79978519ad33078dadb2bab39b5 -size 50347 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index cd6ec0918f..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d45f5492470427b578e9a89147114df46b8e97669aa821356ffcb1b13669c360 -size 71317 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_10,NEXUS_5,1.0,en].png deleted file mode 100644 index 4b6810b5b3..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_10,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:90d6e29da0c6e203b5337496aef692f579f3754c3709735c98d650fe4e519b5b -size 310747 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_11,NEXUS_5,1.0,en].png deleted file mode 100644 index 4d88097a8b..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_11,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b3534ec458fa98111819b74453086b203dbd69cbc9aee70141203444f56b01f2 -size 84090 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_12,NEXUS_5,1.0,en].png deleted file mode 100644 index 3ff9c8ca52..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_12,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fa1157e50a67d9fbb25dcb2fba467a684709a329ed2dc6aca9178ccd66e654b7 -size 51816 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_13,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_13,NEXUS_5,1.0,en].png deleted file mode 100644 index 2c8958ad02..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_13,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:66ef24a752440232d199c490b3d75db9f9348b5f9665e1f3a668f9496634fd34 -size 63525 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_14,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_14,NEXUS_5,1.0,en].png deleted file mode 100644 index c19eda08f4..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_14,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:54933b4baf189f65341b3d0d38712de2cca05626df279e9f31b454edf76ba17a -size 47926 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_15,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_15,NEXUS_5,1.0,en].png deleted file mode 100644 index 768ffe3a70..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_15,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fb4c57a9fabbd79fb9fd9e2b151c45ac4b72b95f809b67aa0197915172477527 -size 64546 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_16,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_16,NEXUS_5,1.0,en].png deleted file mode 100644 index 2583076db6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_16,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:27a0bba84f8641eeb7dc0945a66da0d595569afd8a7dd89efabc884989fbc4a8 -size 55233 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 536d316361..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2dc3a3b111f837ad42c2d0e5e2ea3292cfdb3b70c8b46340ef4c3171468103b3 -size 193757 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 016aa7bdd5..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7084d16f74914bdc62fd23a00dffc866f5e478d9c849e45453f692df2d4449d8 -size 194242 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index 0431d96d3c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:50e8c9686df4ab245041eef15207f77c18dc183796469e4c6a269e4b1939ffc5 -size 67083 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index 0fb0e33a31..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bf1b21d0356f70811ca05b7878db88d7778f83545c47ae05e91b6c687606247e -size 77775 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index c311a4d1e3..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:91da42863dc70c8c1c260928af7844d3923df47040716ee195c944eaefedcbb0 -size 69564 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index 49f190baa8..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:303dbf1c5c464a915fbda1d88b98a1ea987d10728f6e65f25920ac549c583ca3 -size 94549 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index 203ad7fa9b..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:95df044e19bd5471c7b8eabd813816eef73968e790ff510a72336cdb49c5370d -size 51139 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index 7377e60892..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Day-9_9_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bb876f78f2e2ebecafbb58095817ad01a220ccb9a70965e7a508183c214d8df6 -size 354592 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 1db4d0f25c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c36e4582167745c80628ef8526dc68906bbff53de097b4c36aa1f4f592d4d9ea -size 50047 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 4c62f9bb73..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:789a326a3af5180bda7dad9d9d77ca79b62812a8f6e24d84a6f3c83abd64e99b -size 69242 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_10,NEXUS_5,1.0,en].png deleted file mode 100644 index 26749a6429..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_10,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b73ee19ebcf4cb6799a67c80427b7a25e64183b0b52ab1af812e5851847b830e -size 144140 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_11,NEXUS_5,1.0,en].png deleted file mode 100644 index 828c920437..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_11,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:118d94c8b41b679847bd91cf01d11f897c65a2521aafd24ffa48a63091c84bc8 -size 85089 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_12,NEXUS_5,1.0,en].png deleted file mode 100644 index b119cc55d6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_12,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c4149e8fd1203da0ab5a545c3f67094dd737918e57502aa0796697ca72d0c106 -size 51505 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_13,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_13,NEXUS_5,1.0,en].png deleted file mode 100644 index 5d79c36d11..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_13,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:086940e0370602326a9bf5ea997580fd4de5e80de4c0341e3d8fc1578ce6ce0f -size 61864 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_14,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_14,NEXUS_5,1.0,en].png deleted file mode 100644 index 540a782147..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_14,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8b663f20fcb93302d8fe1225a87232ec4e41f743f9242a7efc623e8da7643dd5 -size 47894 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_15,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_15,NEXUS_5,1.0,en].png deleted file mode 100644 index e79fa00980..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_15,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4668a3a7ac3765532d9e051ed2fe11a9a2c239030d6769649615f1b550f6c9e7 -size 62912 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_16,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_16,NEXUS_5,1.0,en].png deleted file mode 100644 index 1a757b5aa7..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_16,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c2ebe0178839e23c368387366120fb8260ff508036b9d5934f377d82e9b9c120 -size 54674 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 25a026b9a6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e6480a796cd00662a3e14e4c1d4188f7a52c83c29d7efcde2f433e646d1b948 -size 192615 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index dea21b6398..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:67e0d7a2b395a791cae4a4498d7b7ba05f999fd07d5103771bf69c58bc4dffab -size 193004 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index f17d9dec1e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2901dc01b47ac30f456390b09fdb65bde848f4e02f56faceafefbe7706dcd764 -size 65680 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index 88d306cd6d..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d5032b5c43157e218668c78856c1ab4a0e7fd429d8161b919cb8a41be135e53c -size 75958 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 4d5ada1737..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5eb6c2e7b5b6ce965ed1aa2d3aa47deb62946f79d2b0282e87dbb412ed23c4cc -size 68508 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index 8e2590c21e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:844fa90309a83dd43b3d4028ae79d48d1c0bdef1a7944b2a4e865d9cf77dcec5 -size 92567 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index d95c9dc8f3..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5505c9f63fff3452d9fc896c943b646b3086669bef40881fde0c77ccbe7fa156 -size 50785 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index ae1f7c0cdc..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.timeline_TimelineView_null_TimelineView-Night-9_10_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3cae1244e4454bd92040ba2583aed5980742825f95a00baa843c1a711a408728 -size 149639 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index c314a4c9ab..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:19de73540ba48d5ca65b64e5d194e52a977a21592c29dcea6ff45f3f36ea1a3b -size 52261 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index d4b5ac5a93..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a7fe5302b43c78202b4028134ed4df8f6e9558643f4bf8178ff273bee941816 -size 53095 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index db091d9591..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Day-67_67_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13ff670c0b97e1274d6afb7202fec7bb622be86814315997a79f957e898bee75 -size 49202 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 3bef28c102..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9db737b3288fcb08871daa469f93bef6ea95070661d3dae02426f7c199f41f5d -size 53004 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 29202c56b6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:891b7b9e40990e87417495261f241c3b477dd206297ee1d357ea8fcdd90159f6 -size 53840 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index c76a3720a6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl.typing_MessagesViewWithTyping_null_MessagesViewWithTyping-Night-67_68_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:428579cbd7ec1f61a89938f2150cf261676fb2fc6658a7917661842efc28020f -size 49986 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 3251147c47..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a9f75213d353879e58f44c677e8624103d7f481ab699a5df53dd774c5a31e5b -size 52658 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 8cf3ac1926..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8831c74f330178283e105bc52732421c9b16119d0bd2bed763df9ed7238bbeed -size 51614 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_10,NEXUS_5,1.0,en].png deleted file mode 100644 index a04206308c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_10,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4c844567d2284b1ceb1cf990fa480219b444cd7e5a228e076118af3f60330060 -size 54327 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_11,NEXUS_5,1.0,en].png deleted file mode 100644 index 7d9837e64f..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_11,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9ea468e739fcba66cc8c942738ff657fc2d0d801c52a9dfc93bd0dc425647aa2 -size 44407 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_12,NEXUS_5,1.0,en].png deleted file mode 100644 index 5ce64e308f..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_12,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8b2ad537992b4e99232d660f04823e850b0dbe993370a77da41701a03775355b -size 52662 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 5aa8895565..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e8dbbc5b6b2d017a0bf95cbd11a74abb8ba7883dc203108fbf3af952ea984b52 -size 55655 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index 0942fdde3e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:034deeac70a9226f1e205dcd159506062007118b0fb4e8a6a802d4bb4b34ca2a -size 50335 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index 1ed84f67ce..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:562d614859a7e299701903096d01566efbc5e69a34cd52b8aaae14131d27be8f -size 50674 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 84d36014f0..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:00d7de2a5361fa33b455ebe3b5763315d00ff779039d01b08211952421dacd8e -size 50053 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index e920a85eb1..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:05411d4eb0d11263d43b57a7c67e8ac2bec1ebadc1220d635a4ae66f65274485 -size 53992 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index 11692cb0a8..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ba8eff7b71d995d22a48aeb2e739fceec6d1a6908f15b04b37a694d5116bf56 -size 37165 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index 0ca16daad3..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Day-0_0_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:be97b0dba2e8203a7fbf101c3ae59f600059b1fb62d951eca21442deeaf31566 -size 36443 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index e8b3b3e18b..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:294da45aa0eb92dcc09ec4398e5c08ee67d5aa8fb4a28c2bbfc218719e695216 -size 52803 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 502e8bfeed..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d485b0a5eb23a4757a9e18498924fa1d95293b3aacb83f8c7e536d7504767819 -size 51496 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_10,NEXUS_5,1.0,en].png deleted file mode 100644 index 15384fb85f..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_10,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a4cb9e671219a2c448c007b702b6ada9f91bf3dcfc80e42fecf75b7d07d59934 -size 54366 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_11,NEXUS_5,1.0,en].png deleted file mode 100644 index 31adf1e477..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_11,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b11805c536c004d3f22ffefff4c07fc80ff106073f9ab67a879af1f770c9eafb -size 40952 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_12,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_12,NEXUS_5,1.0,en].png deleted file mode 100644 index f38b4974c7..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_12,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:87c1063cbb57541b02338ef0d09681f2f6b6ba035af7e2ea44a0e15e0d263b34 -size 52818 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 1027e6a30c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:28be632b07cdcb9fa560cf51276a8aa2e42afc47ce35f5292b40ef037aaea407 -size 55766 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index 6596824545..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c194e458f638acd1a9a3f99023bd1d22a492f955abf4766e792556a70ccf89fa -size 47152 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index b50dc9d5d5..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d9a167883fd1bfa98a062c2d88215356193d497ad8a8d48b58a33c876957d1a -size 50618 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 108a5324ad..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1e05626759cc33c599e27f9b6f8720f99a5e03cc7210581321e3f2dba349fbed -size 49992 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index 5da9af327c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:07a828f80adaef6bb1329252248cc21f530818e5173d302ccbd8b10a9d814ff8 -size 50285 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index ff93a71ff0..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ae2dc28e342ae38be1157306f8cc4d6bc0ff6f70e58dc42ca396232c15e69f1 -size 35190 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index 6d459fb0e0..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.messages.impl_MessagesView_null_MessagesView-Night-0_1_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5dd1a559e607794d71bda4bc3ff032e5fd365f47ed8a01a29a582d65adcdd64b -size 34452 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index d2f9ab5db9..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a4744d8211b2afaa0e45d018e618296be417db72976a7fe248044e69dc419747 -size 46405 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 1866e67ab6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b070a8b1d40d9b944a35f1ca9d034dac4d8f75fcd2ce29ca90a6c0d02eefe567 -size 34637 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_10,NEXUS_5,1.0,en].png deleted file mode 100644 index 1273e8ea35..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_10,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d6975f45047b144416e394c61d50b2c67296e075ab87521b2bd19190e688b2db -size 44684 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_11,NEXUS_5,1.0,en].png deleted file mode 100644 index 4bfc4b76c6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_11,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:06ecef645a1770f028a0be5b519d9fa058896599764b679d431302530dfe5bfd -size 43593 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 2eabc0dccf..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8d89dc9226478c87a95f381474dc952372506c59f5797b1ebc06a73f79cda7d4 -size 36723 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 91047eaa4c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fee91322d75a86cf574c0bae99fc7534a7a41f0aa9925554c2cecdd1f67616a2 -size 35594 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index 91424489cd..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cb91e113a89b29e43529fee0140b04c9d45aa6dee95b636e8b02cb697f8eaec3 -size 42854 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index 82f781443c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:74b7eafa18ce0487d8a6bc1bec69de692355e51885ab2f50f633e8c0a1602e98 -size 40826 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 82f781443c..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:74b7eafa18ce0487d8a6bc1bec69de692355e51885ab2f50f633e8c0a1602e98 -size 40826 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index 6c046aa84e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dcb14bafbaeb398a7351528b9756888190cb3614b64ced30604525d33042d0b7 -size 45983 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index 8273c91f0a..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:27f9fd42938231cbedef25c60c0bf5c38445ed4ae3c43076a3d0d1de781c1571 -size 44882 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index 162cd9c264..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetailsDark_null_RoomDetailsDark--1_3_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d851ccac1aea76e629d3b8ef381595e734e8d02789ebea3a28b5f40dfb07040f -size 44838 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 2ef84f644e..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a077772fbbcd2e5096e9fa5907705e5bb3d04692c597510f825102ce31afb6a -size 47451 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index 2467e58bcd..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e60750a386993ee7e14a2f1e9afcbfb898d6212f9f043d67431017991b53a3c4 -size 35470 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_10,NEXUS_5,1.0,en].png deleted file mode 100644 index bc1dc06a99..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_10,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7d805eed0dbdf07599c836af16e904ec5a6ebe4adb0b9ebfa5200f2065630cfa -size 45596 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_11,NEXUS_5,1.0,en].png deleted file mode 100644 index 1635ac1d06..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_11,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c04bd5c13058d696364295110fc4b323b424766bda0ba42c13b2ed772e8f6520 -size 44474 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 7cc2a1b656..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb96628c10622b9f39b9723b4c3a7b1a7e38a643753a42159af63e8f00a2f51c -size 37610 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 7a1641860a..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f84aea29dfb13dbe42c6e466b3afd7258742bf2c0411039ab93e554803945333 -size 36229 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index f09ef9182f..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e7e580cd945db94a37cfaa162ab709ade3a830f20a42bb98a28fd7650114a90 -size 43740 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index 4e5f890206..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:21a24d8102042a68337b99c60df2ac1f408b37abe47550f9e4f160ca7938d266 -size 41782 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 4e5f890206..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:21a24d8102042a68337b99c60df2ac1f408b37abe47550f9e4f160ca7938d266 -size 41782 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index b3e71b54a2..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:14b22efc30f883ca6812f9e87bf8eaecc3d37479fa5421026fcaf7b01a11e952 -size 46986 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index 0af429e838..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:45a3856e5d802c02302318caf584b4356122c3412bea177944ec8edab0c809c0 -size 45846 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_9,NEXUS_5,1.0,en].png deleted file mode 100644 index 1dc805428d..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.roomdetails.impl_RoomDetails_null_RoomDetails--0_2_null_9,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd29438c4d913cd920e2f19e85f9098d6a486a401fcd8e14a9f7a323dd5c334c -size 45773 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 10c48f8d36..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:adcdd1eadf8193d8fe028221e246ad76adffbce75b4afc7762f0a7045209c987 -size 20514 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index de99507b6a..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3ebbdc49757a62674034e2e5482fbb6f23ec712ab0c5b866a33cd04e016a5cb6 -size 18500 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 0f361bf16b..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:732ca333bbb7e529807fa5cab67746e136d0ef66b7f7f7072c4f000698cb459e -size 20876 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index 64d09a5844..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ecf4f405644cdf0fc3524cda78f3a996f30408bc4e50ac5963ba767b5f02e5f4 -size 35978 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index d5e3c5de63..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d1fc46596044285be0fdf7fcd8cf8b3aafa7d795eeb533154dfb2866e0b3df77 -size 27389 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index e9f06053d8..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2df1ef825be0992971cbade0c7e8b9c0f51da948fb468b77780603fda60ab764 -size 21442 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 72e02c8ebc..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d4bd0050b39e644f0ca51394b5aacd51a4fbb0b4ee470d4cccab0f4cfbdf097a -size 19282 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index 7f376d1878..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0391784c2c0367c746c6098ea7ce780b3350e111a64c2da4a9d27e9a871ab21 -size 21479 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index 10c48f8d36..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Day-0_1_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:adcdd1eadf8193d8fe028221e246ad76adffbce75b4afc7762f0a7045209c987 -size 20514 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_0,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_0,NEXUS_5,1.0,en].png deleted file mode 100644 index 1ffc783ef1..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_0,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56abdea2af9b91a54a1573fcbfaa328ebca94628c5a9da7ecb39dded0e3288aa -size 20279 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_1,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_1,NEXUS_5,1.0,en].png deleted file mode 100644 index cc62a653c8..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_1,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c1cb9b81ebd723b3df3d3488523c9f99ce7ac79b2d93160e3409e622a5033c4c -size 18296 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_2,NEXUS_5,1.0,en].png deleted file mode 100644 index 60974802c2..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_2,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:af96762d9f6f1ccb26bd9fd5a4f30b1d02ae192e7426a7b52c3cb2f027d749f3 -size 20596 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_3,NEXUS_5,1.0,en].png deleted file mode 100644 index c80609e47f..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_3,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:df7a6a9cd9cbe094c3b7a9dfd0b001161b21fa622d6f5f23c1eb05db109f9277 -size 33654 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_4,NEXUS_5,1.0,en].png deleted file mode 100644 index 71fff1a87b..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_4,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1e87e0f6781ea52c421d55b7d177696a765431db19658f8a704aa8204c17843d -size 25694 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_5,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_5,NEXUS_5,1.0,en].png deleted file mode 100644 index e622167502..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_5,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a4adebc4076d7ad97900d19fc2432524a6c62486fa22c917a94c91166881c29 -size 21141 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_6,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_6,NEXUS_5,1.0,en].png deleted file mode 100644 index 74b0d4c762..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_6,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:41501177b8bbf7285b48fce8db920d9de5374d0bb586279025f05a6ede316377 -size 18108 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_7,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_7,NEXUS_5,1.0,en].png deleted file mode 100644 index 0a86b98869..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_7,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3724877c12301966d5457287fc32694617624c7fbc23c3b3989fbccc80dbcf0d -size 21228 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_8,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_8,NEXUS_5,1.0,en].png deleted file mode 100644 index 1ffc783ef1..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[f.userprofile.shared_UserProfileView_null_UserProfileView-Night-0_2_null_8,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56abdea2af9b91a54a1573fcbfaa328ebca94628c5a9da7ecb39dded0e3288aa -size 20279 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Day-4_5_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Day-4_5_null,NEXUS_5,1.0,en].png deleted file mode 100644 index fa1160a4d6..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Day-4_5_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f6ff631986fd1e18d562b8ca6d7a33a6a3be25cea30dff36180b43b0074dcfa2 -size 83892 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Night-4_6_null,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Night-4_6_null,NEXUS_5,1.0,en].png deleted file mode 100644 index cb81556875..0000000000 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.textcomposer_TextComposerReply_null_TextComposerReply-Night-4_6_null,NEXUS_5,1.0,en].png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3628bde141bc7825d128d6a2c80e764478f8d26f2f0d221aabb2a933b7c2a6c1 -size 80890 diff --git a/tools/danger/dangerfile.js b/tools/danger/dangerfile.js index b9f46d5666..024e661c67 100644 --- a/tools/danger/dangerfile.js +++ b/tools/danger/dangerfile.js @@ -27,30 +27,14 @@ if (editedFiles.length > 50) { message("This pull request seems relatively large. Please consider splitting it into multiple smaller ones.") } -// Request a changelog for each PR -const changelogAllowList = [ - "dependabot[bot]", -] +// Request a correct title for each PR +if (pr.title.endsWith("…")) { + fail("Please provide a complete title that can be used as a changelog entry.") +} -const requiresChangelog = !changelogAllowList.includes(user) - -if (requiresChangelog) { - const changelogFiles = editedFiles.filter(file => file.startsWith("changelog.d/")) - - if (changelogFiles.length == 0) { - warn("Please add a changelog. See instructions [here](https://github.com/element-hq/element-android/blob/develop/CONTRIBUTING.md#changelog)") - } else { - const validTowncrierExtensions = [ - "bugfix", - "doc", - "feature", - "misc", - "wip", - ] - if (!changelogFiles.every(file => validTowncrierExtensions.includes(file.split(".").pop()))) { - fail("Invalid extension for changelog. See instructions [here](https://github.com/element-hq/element-android/blob/develop/CONTRIBUTING.md#changelog)") - } - } +// Request a `PR-` label for each PR +if (pr.labels.filter((label) => label.name.startsWith("PR-")).length != 1) { + fail("Please add a `PR-` label to categorise the changelog entry.") } // check that frozen classes have not been modified diff --git a/tools/detekt/detekt.yml b/tools/detekt/detekt.yml index 69608a0a1a..7212a58ce3 100644 --- a/tools/detekt/detekt.yml +++ b/tools/detekt/detekt.yml @@ -197,9 +197,7 @@ performance: # Note: all rules for `comments` are disabled by default, but I put them here to be aware of their existence comments: AbsentOrWrongFileLicense: - active: true - licenseTemplateFile: 'license.template' - licenseTemplateIsRegex: true + active: false CommentOverPrivateFunction: active: false CommentOverPrivateProperty: @@ -222,7 +220,13 @@ Compose: CompositionLocalAllowlist: active: true # You can optionally define a list of CompositionLocals that are allowed here - allowedCompositionLocals: LocalCompoundColors, LocalSnackbarDispatcher, LocalCameraPositionState, LocalTimelineItemPresenterFactories + allowedCompositionLocals: + - LocalCompoundColors + - LocalSnackbarDispatcher + - LocalCameraPositionState + - LocalTimelineItemPresenterFactories + - LocalRoomMemberProfilesCache + - LocalMentionSpanProvider CompositionLocalNaming: active: true ContentEmitterReturningValues: diff --git a/tools/detekt/license.template b/tools/detekt/license.template deleted file mode 100644 index 08cadc82f9..0000000000 --- a/tools/detekt/license.template +++ /dev/null @@ -1,15 +0,0 @@ -\/\* -(?:.*\n)* \* Copyright \(c\) 20\d\d New Vector Ltd -(?:.*\n)* \* - \* Licensed under the Apache License, Version 2\.0 \(the "License"\); - \* you may not use this file except in compliance with the License\. - \* You may obtain a copy of the License at - \* - \* http(?:s)?:\/\/www\.apache\.org\/licenses\/LICENSE-2\.0 - \* - \* Unless required by applicable law or agreed to in writing, software - \* distributed under the License is distributed on an "AS IS" BASIS, - \* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\. - \* See the License for the specific language governing permissions and - \* limitations under the License\. - \*\/ diff --git a/tools/release/ReleaseNotesNightly.md b/tools/release/ReleaseNotesNightly.md new file mode 100644 index 0000000000..0c1a2e5393 --- /dev/null +++ b/tools/release/ReleaseNotesNightly.md @@ -0,0 +1,3 @@ +See which PRs have been merged recently here: + +https://github.com/element-hq/element-x-android/pulls?q=is%3Apr+sort%3Aupdated-desc+is%3Aclosed diff --git a/tools/release/release.sh b/tools/release/release.sh index 2e7999fd21..1a39150588 100755 --- a/tools/release/release.sh +++ b/tools/release/release.sh @@ -73,8 +73,8 @@ if [ ${envError} == 1 ]; then exit 1 fi -minSdkVersion=23 -buildToolsVersion="32.0.0" +minSdkVersion=24 +buildToolsVersion="35.0.0" buildToolsPath="${androidHome}/build-tools/${buildToolsVersion}" if [[ ! -d ${buildToolsPath} ]]; then @@ -141,17 +141,6 @@ rm ${versionsFileBak} # This commit may have no effect because generally we do not change the version during the release. git commit -a -m "Setting version for the release ${version}" -printf "\n================================================================================\n" -printf "Running towncrier...\n" -yes | towncrier build --version "v${version}" - -printf "\n================================================================================\n" -read -p "Check the file CHANGES.md consistency. It's possible to reorder items (most important changes first) or change their section if relevant. Also an opportunity to fix some typo, or rewrite things. Do not commit your change. Press enter to continue. " - -printf "\n================================================================================\n" -printf "Committing...\n" -git commit -a -m "Changelog for version ${version}" - printf "\n================================================================================\n" printf "Creating fastlane file...\n" printf -v versionMajor2Digits "%02d" "${versionMajor}" @@ -198,17 +187,6 @@ read -p "I have updated the versions to prepare the next release, please check t printf "Committing...\n" git commit -a -m 'version++' -printf "\n================================================================================\n" -read -p "Done, push the branch 'develop' (yes/no) default to yes? (A rebase may be necessary in case develop got new commits) " doPush -doPush=${doPush:-yes} - -if [ "${doPush}" == "yes" ]; then - printf "Pushing branch 'develop'...\n" - git push origin develop -else - printf "Not pushing, do not forget to push manually!\n" -fi - printf "\n================================================================================\n" printf "Wait for the GitHub action https://github.com/element-hq/element-x-android/actions/workflows/release.yml?query=branch%%3Amain to build the 'main' branch.\n" printf "Please enter the url of the github action (!!! WARNING: NOT THE URL OF THE ARTIFACT ANYMORE !!!)\n" @@ -230,6 +208,18 @@ printf "Unzipping the F-Droid artifact...\n" fdroidTargetPath="${targetPath}/fdroid" unzip "${targetPath}"/elementx-app-fdroid-apks-unsigned.zip -d "${fdroidTargetPath}" +printf "\n================================================================================\n" +printf "Patching the FDroid APKs using inplace-fix.py...\n" + +inplaceFixScript="./tmp/inplace-fix.py" +curl -s https://raw.githubusercontent.com/obfusk/reproducible-apk-tools/master/inplace-fix.py --output "${inplaceFixScript}" +curl -s https://raw.githubusercontent.com/obfusk/reproducible-apk-tools/master/fix-pg-map-id.py --output "./tmp/fix-pg-map-id.py" + +python3 "${inplaceFixScript}" --page-size 16 fix-pg-map-id "${fdroidTargetPath}"/app-fdroid-arm64-v8a-release.apk '0000000' +python3 "${inplaceFixScript}" --page-size 16 fix-pg-map-id "${fdroidTargetPath}"/app-fdroid-armeabi-v7a-release.apk '0000000' +python3 "${inplaceFixScript}" --page-size 16 fix-pg-map-id "${fdroidTargetPath}"/app-fdroid-x86-release.apk '0000000' +python3 "${inplaceFixScript}" --page-size 16 fix-pg-map-id "${fdroidTargetPath}"/app-fdroid-x86_64-release.apk '0000000' + printf "\n================================================================================\n" printf "Signing the FDroid APKs...\n" @@ -369,19 +359,37 @@ printf "You can then go to \"Publishing overview\" and send the new release for read -p "Press enter to continue. " printf "\n================================================================================\n" -# Url encode for "" -body="%3C%21--%20Copy%20paste%20the%20section%20of%20the%20file%20CHANGES.md%20for%20this%20release%20here%20--%3E" -githubCreateReleaseLink="https://github.com/element-hq/element-x-android/releases/new?tag=v${version}&title=Element%20X%20Android%20v${version}&body=${body}" +githubCreateReleaseLink="https://github.com/element-hq/element-x-android/releases/new?tag=v${version}&title=Element%20X%20Android%20v${version}" printf "Creating the release on gitHub.\n" printf -- "Open this link: %s\n" "${githubCreateReleaseLink}" printf "Then\n" -printf " - copy paste the section of the file CHANGES.md for this release.\n" -printf " - click on the 'Generate releases notes' button.\n" +printf " - Click on the 'Generate releases notes' button.\n" +printf " - Optionally reorder items and fix typos.\n" printf " - Add the file ${signedBundlePath} to the GitHub release.\n" printf " - Add the universal APK, downloaded from the GooglePlay console to the GitHub release.\n" printf " - Add the 4 signed APKs for F-Droid, located at ${fdroidTargetPath} to the GitHub release.\n" read -p ". Press enter to continue. " +printf "\n================================================================================\n" +printf "Update the project release notes:\n\n" + +read -p "Copy the content of the release note generated by GitHub to the file CHANGES.md and press enter to commit the change. \n" + +printf "\n================================================================================\n" +printf "Committing...\n" +git commit -a -m "Changelog for version ${version}" + +printf "\n================================================================================\n" +read -p "Done, push the branch 'develop' (yes/no) default to yes? (A rebase may be necessary in case develop got new commits) " doPush +doPush=${doPush:-yes} + +if [ "${doPush}" == "yes" ]; then + printf "Pushing branch 'develop'...\n" + git push origin develop +else + printf "Not pushing, do not forget to push manually!\n" +fi + printf "\n================================================================================\n" printf "Message for the Android internal room:\n\n" message="@room Element X Android ${version} is ready to be tested. You can get it from https://github.com/element-hq/element-x-android/releases/tag/v${version}. You can install the universal APK. If you want to install the application from the app bundle, you can follow instructions [here](https://github.com/element-hq/element-x-android/blob/develop/docs/install_from_github_release.md). Please report any feedback. Thanks!" diff --git a/tools/templates/files/fileTemplates/Template Module Feature Build Gradle Impl.kts b/tools/templates/files/fileTemplates/Template Module Feature Build Gradle Impl.kts index 6b40a1d06f..881481227a 100644 --- a/tools/templates/files/fileTemplates/Template Module Feature Build Gradle Impl.kts +++ b/tools/templates/files/fileTemplates/Template Module Feature Build Gradle Impl.kts @@ -1,7 +1,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.anvil) - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -16,7 +15,7 @@ anvil { dependencies { implementation(projects.anvilannotations) anvil(projects.anvilcodegen) - api(projects.features.${MODULE_NAME}.api) + api(projects.features.${ MODULE_NAME }.api) implementation(projects.libraries.core) implementation(projects.libraries.architecture) implementation(projects.libraries.matrix.api) @@ -29,6 +28,4 @@ dependencies { testImplementation(libs.test.truth) testImplementation(libs.test.turbine) testImplementation(projects.libraries.matrix.test) - - ksp(libs.showkase.processor) } diff --git a/tools/test/generateAllScreenshots.py b/tools/test/generateAllScreenshots.py index 0018833c1c..b3819b7c52 100755 --- a/tools/test/generateAllScreenshots.py +++ b/tools/test/generateAllScreenshots.py @@ -34,26 +34,26 @@ def generateAllScreenshots(languages): print("Generating all screenshots...") os.system("./gradlew recordPaparazziDebug -PallLanguages") else: - tFile = "tests/uitests/src/test/kotlin/ui/T.kt" + tFile = "tests/uitests/src/test/kotlin/translations/TranslationsScreenshotTest.kt" print("Generating screenshots for languages: %s" % languages) # Record the languages one by one, else it's getting too slow for lang in languages: print("Generating screenshots for language: %s" % lang) - # Patch file T.kt, replace `@TestParameter(value = ["de"]) localeStr: String,` with `@TestParameter(value = []) localeStr: String,` + # Patch file TranslationsScreenshotTest.kt, replace `@TestParameter(value = ["de"])` with `@TestParameter(value = [])` with open(tFile, "r") as file: data = file.read() - data = data.replace("@TestParameter(value = [\"de\"]) localeStr: String,", "@TestParameter(value = [\"%s\"]) localeStr: String," % lang) + data = data.replace("@TestParameter(value = [\"de\"])", "@TestParameter(value = [\"%s\"])" % lang) with open(tFile, "w") as file: file.write(data) os.system("./gradlew recordPaparazziDebug -PallLanguagesNoEnglish") - # Git reset the change on file T.kt + # Git reset the change on file TranslationsScreenshotTest.kt os.system("git checkout HEAD -- %s" % tFile) def detectLanguages(): __doc__ = "Detect languages from screenshots, other than English" files = os.listdir("tests/uitests/src/test/snapshots/images/") - languages = set(map(lambda file: file[-7:-5], files)) + languages = set(map(lambda file: file[-6:-4], files)) languages = [lang for lang in languages if re.match("[a-z]", lang) and lang != "en"] print("Detected languages: %s" % languages) return languages @@ -64,11 +64,11 @@ def deleteDuplicatedScreenshots(lang): print("Deleting screenshots identical to the English version for language %s..." % lang) files = os.listdir("tests/uitests/src/test/snapshots/images/") # Filter files by language - files = [file for file in files if file[-7:-5] == lang] + files = [file for file in files if file[-6:-4] == lang] identicalFileCounter = 0 differentFileCounter = 0 for file in files: - englishFile = file[:3] + "S" + file[4:-7] + "en" + file[-5:] + englishFile = file[:-6] + "en" + file[-4:] fullFile = "tests/uitests/src/test/snapshots/images/" + file fullEnglishFile = "tests/uitests/src/test/snapshots/images/" + englishFile isDifferent = compare(fullFile, fullEnglishFile) @@ -88,7 +88,7 @@ def moveScreenshots(lang): print("Moving screenshots for %s to %s..." % (lang, targetFolder)) files = os.listdir("tests/uitests/src/test/snapshots/images/") # Filter files by language - files = [file for file in files if file[-7:-5] == lang] + files = [file for file in files if file[-6:-4] == lang] # Create the folder "./screenshots/" os.makedirs(targetFolder, exist_ok=True) for file in files: @@ -102,11 +102,11 @@ def detectRecordedLanguages(): def computeDarkFileName(lightFileName): - if "-Day_0" in lightFileName: - return lightFileName.replace("-Day_0", "-Night_1") - match = re.match("(.*)-Day-(\\d+)_(\\d+)(.*)", lightFileName, flags=re.ASCII) + if "_Day" in lightFileName: + return lightFileName.replace("_Day", "_Night") + match = re.match("(.*)_Day_(\\d+)_(.*)", lightFileName, flags=re.ASCII) if match: - return match.group(1) + "-Night-" + match.group(2) + "_" + str((int(match.group(3)) + 1)) + match.group(4) + return match.group(1) + "_Night_" + match.group(2) + "_" + match.group(3) return "" def generateJavascriptFile(): @@ -117,11 +117,11 @@ def generateJavascriptFile(): data = [["en", "en-dark"] + languages] files = sorted( os.listdir("tests/uitests/src/test/snapshots/images/"), - key=lambda file: file[file.find("_", 6):], + key=lambda file: file[file.find("_", 1):], ) for file in files: - # Continue if file contains "-Night", keep only light screenshots - if "-Night" in file: + # Continue if file contains "_Night", keep only light screenshots + if "_Night" in file: continue dataForFile = [file[:-4]] darkFile = computeDarkFileName(file) @@ -130,7 +130,7 @@ def generateJavascriptFile(): else: dataForFile.append("") for l in languages: - simpleFile = file[:3] + "T" + file[4:-7] + l + file[-5:-4] + simpleFile = file[:-6] + l translatedFile = "./screenshots/" + l + "/" + simpleFile + ".png" if os.path.exists(translatedFile): # Get the last modified date of the file in seconds and round to days @@ -167,5 +167,4 @@ def main(): moveScreenshots(l) generateJavascriptFile() - main() diff --git a/tools/towncrier/template.md b/tools/towncrier/template.md deleted file mode 100644 index 4e5e96a4ac..0000000000 --- a/tools/towncrier/template.md +++ /dev/null @@ -1,36 +0,0 @@ -{% if top_line %} -{{ top_line }} -{{ top_underline * ((top_line)|length)}} -{% elif versiondata.name %} -{{ versiondata.name }} {{ versiondata.version }} ({{ versiondata.date }}) -{{ top_underline * ((versiondata.name + versiondata.version + versiondata.date)|length + 4)}} -{% else %} -{{ versiondata.version }} ({{ versiondata.date }}) -{{ top_underline * ((versiondata.version + versiondata.date)|length + 3)}} -{% endif %} -{% for section, _ in sections.items() %} -{% set underline = underlines[0] %}{% if section %}{{section}} -{{ underline * section|length }}{% set underline = underlines[1] %} -{% endif %} - -{% if sections[section] %} -{% for category, val in definitions.items() if category in sections[section]%} -{{ definitions[category]['name'] }} -{{ underline * definitions[category]['name']|length }} -{% if definitions[category]['showcontent'] %} -{% for text, values in sections[section][category].items() %} - - {{ text }} ({{ values|join(', ') }}) -{% endfor %} -{% else %} - - {{ sections[section][category]['']|join(', ') }} -{% endif %} -{% if sections[section][category]|length == 0 %} -No significant changes. -{% else %} -{% endif %} - -{% endfor %} -{% else %} -No significant changes. -{% endif %} -{% endfor %} diff --git a/towncrier.toml b/towncrier.toml deleted file mode 100644 index e018467aec..0000000000 --- a/towncrier.toml +++ /dev/null @@ -1,31 +0,0 @@ -[tool.towncrier] - directory = "changelog.d" - filename = "CHANGES.md" - name = "Changes in Element X" - template = "tools/towncrier/template.md" - issue_format = "[#{issue}](https://github.com/element-hq/element-x-android/issues/{issue})" - - [[tool.towncrier.type]] - directory = "feature" - name = "Features ✨" - showcontent = true - - [[tool.towncrier.type]] - directory = "bugfix" - name = "Bugfixes 🐛" - showcontent = true - - [[tool.towncrier.type]] - directory = "wip" - name = "In development 🚧" - showcontent = true - - [[tool.towncrier.type]] - directory = "doc" - name = "Improved Documentation 📚" - showcontent = true - - [[tool.towncrier.type]] - directory = "misc" - name = "Other changes" - showcontent = true