Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0de8f3e authored by Jordan Demeulenaere's avatar Jordan Demeulenaere
Browse files

Add a screenshot test for ExampleFeature (2/2)

This CL slightly changes ExampleFeature to showcase different screenshot
tests configurations. See ag/19083787 for the resulting screenshots.

Test: atest ExampleFeatureScreenshotTests
Bug: 230832101
Change-Id: I3eca69fd02d069bf535efe7a935232c1ed2da99c
parent 634f763b
Loading
Loading
Loading
Loading
+42 −1
Original line number Diff line number Diff line
@@ -17,8 +17,12 @@
package com.android.systemui

import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.Column
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.shape.RoundedCornerShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
@@ -29,14 +33,37 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import kotlin.math.roundToInt

/**
 * This is an example Compose feature, which shows a text and a count that is incremented when
 * clicked.
 * clicked. We also show the max width available to this component, which is displayed either next
 * to or below the text depending on that max width.
 */
@Composable
fun ExampleFeature(text: String, modifier: Modifier = Modifier) {
    BoxWithConstraints(modifier) {
        val maxWidth = maxWidth
        if (maxWidth < 600.dp) {
            Column {
                CounterTile(text)
                Spacer(Modifier.size(16.dp))
                MaxWidthTile(maxWidth)
            }
        } else {
            Row {
                CounterTile(text)
                Spacer(Modifier.size(16.dp))
                MaxWidthTile(maxWidth)
            }
        }
    }
}

@Composable
private fun CounterTile(text: String, modifier: Modifier = Modifier) {
    Surface(
        modifier,
        color = MaterialTheme.colorScheme.primaryContainer,
@@ -51,3 +78,17 @@ fun ExampleFeature(text: String, modifier: Modifier = Modifier) {
        }
    }
}

@Composable
private fun MaxWidthTile(maxWidth: Dp, modifier: Modifier = Modifier) {
    Surface(
        modifier,
        color = MaterialTheme.colorScheme.tertiaryContainer,
        shape = RoundedCornerShape(28.dp),
    ) {
        Text(
            "The max available width to me is: ${maxWidth.value.roundToInt()}dp",
            Modifier.padding(16.dp)
        )
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ android_library {
android_app {
    name: "SystemUIComposeGallery",
    defaults: ["platform_app_defaults"],
    manifest: "app/AndroidManifest.xml",

    static_libs: [
        "SystemUIComposeGalleryLib",
+1 −17
Original line number Diff line number Diff line
@@ -17,21 +17,5 @@

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.systemui.compose.gallery">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.SystemUIGallery">
        <activity
            android:name=".GalleryActivity"
            android:exported="true"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
+37 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2022 The Android Open Source Project

     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.
-->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.systemui.compose.gallery">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.SystemUIGallery">
        <activity
            android:name=".GalleryActivity"
            android:exported="true"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
+3 −2
Original line number Diff line number Diff line
@@ -18,10 +18,11 @@ package com.android.systemui.compose.gallery

import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.android.systemui.ExampleFeature

/** The screen that shows ExampleFeature. */
@Composable
fun ExampleFeatureScreen() {
    Column { ExampleFeature("This is an example feature!") }
fun ExampleFeatureScreen(modifier: Modifier = Modifier) {
    Column(modifier) { ExampleFeature("This is an example feature!") }
}