Skip to content

Commit

Permalink
Enable setting screen orientation on API 34 half-folded devices
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 620042179
  • Loading branch information
Paige McAuliffe authored and copybara-androidxtest committed Mar 28, 2024
1 parent 10dfce5 commit c6c0a5b
Show file tree
Hide file tree
Showing 52 changed files with 85 additions and 80 deletions.
2 changes: 1 addition & 1 deletion BUILD
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
load("//build_extensions/maven:maven_repo.bzl", "maven_repository")
load("@rules_jvm_external//:defs.bzl", "artifact")
load("@rules_license//rules:license.bzl", "license")
load("//build_extensions/maven:maven_repo.bzl", "maven_repository")

package(default_visibility = ["//:__subpackages__"])

Expand Down
2 changes: 1 addition & 1 deletion annotation/java/androidx/test/annotation/BUILD
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Description: Build rules for building androidx.test.annotation from source

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

# all users should reference the equivalent targets in //annotation
package(
Expand Down
2 changes: 1 addition & 1 deletion build_extensions/android_app_instrumentation_tests.bzl
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
"""A rule wrapper for an instrumentation test for an android binary."""

load("//build_extensions:kt_android_library.bzl", "kt_android_library")
load(
"//build_extensions:generate_instrumentation_tests.bzl",
"generate_instrumentation_tests",
Expand All @@ -10,6 +9,7 @@ load(
"infer_java_package_name",
"infer_java_package_name_from_label",
)
load("//build_extensions:kt_android_library.bzl", "kt_android_library")
load("//build_extensions:register_extension_info.bzl", "register_extension_info")

def android_app_instrumentation_tests(
Expand Down
2 changes: 1 addition & 1 deletion build_extensions/android_library_instrumentation_tests.bzl
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
"""A rule wrapper for an instrumentation test for an android library."""

load("//build_extensions:kt_android_library.bzl", "kt_android_library")
load(
"//build_extensions:generate_instrumentation_tests.bzl",
"generate_instrumentation_tests",
Expand All @@ -9,6 +8,7 @@ load(
"//build_extensions:infer_java_package_name.bzl",
"infer_java_package_name",
)
load("//build_extensions:kt_android_library.bzl", "kt_android_library")
load("//build_extensions:register_extension_info.bzl", "register_extension_info")

def android_library_instrumentation_tests(
Expand Down
2 changes: 1 addition & 1 deletion core/java/androidx/test/core/BUILD
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Description: Build rules for building androidx.test.truth from source

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:kt_android_library.bzl", "kt_android_library")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

# all users should reference the equivalent targets in //core
package(
Expand Down
2 changes: 1 addition & 1 deletion core/javatests/androidx/test/core/app/BUILD
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Description: Tests for androidx.test.core

load("@build_bazel_rules_android//android:rules.bzl", "android_binary")
load("//build_extensions:android_library_test.bzl", "axt_android_library_test")
load("//build_extensions:axt_android_application_test.bzl", "axt_android_application_test")
load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")
load("@build_bazel_rules_android//android:rules.bzl", "android_binary")
load("//build_extensions:phone_devices.bzl", "devices")

package(
Expand Down
2 changes: 1 addition & 1 deletion core/javatests/androidx/test/core/content/pm/BUILD
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Description: Tests for androidx.test.core

load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")
load("//build_extensions:android_library_test.bzl", "axt_android_library_test")
load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")

package(
default_applicable_licenses = ["//:license"],
Expand Down
2 changes: 1 addition & 1 deletion core/javatests/androidx/test/core/os/BUILD
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Description: Tests for androidx.test.core

load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")
load("//build_extensions:android_library_test.bzl", "axt_android_library_test")
load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")

package(
default_applicable_licenses = ["//:license"],
Expand Down
2 changes: 1 addition & 1 deletion core/javatests/androidx/test/core/view/BUILD
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Description: Tests for androidx.test.core

load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")
load("//build_extensions:android_library_test.bzl", "axt_android_library_test")
load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")

package(
default_applicable_licenses = ["//:license"],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:api_checks.bzl", "api_checks")

# Description:
# Espresso Accessibility APIs
Expand Down
4 changes: 2 additions & 2 deletions espresso/contrib/java/androidx/test/espresso/contrib/BUILD
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:jetify.bzl", "jetify_android_library")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("//build_extensions:jetify.bzl", "jetify_android_library")
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

# Description:
# Contributed / non-core functionality of Espresso. Tools which add on to
Expand Down
2 changes: 1 addition & 1 deletion espresso/core/java/androidx/test/espresso/BUILD
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Description:
# Espresso - the new UI Test API for Android.

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

licenses(["notice"])

Expand Down
2 changes: 1 addition & 1 deletion espresso/core/javatests/androidx/test/espresso/BUILD
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Description:
# Tests for espresso core

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load(
"//build_extensions:android_library_test.bzl",
"axt_android_library_test",
Expand All @@ -9,7 +10,6 @@ load(
"//build_extensions:axt_android_application_test.bzl",
"axt_android_application_test",
)
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

package(default_applicable_licenses = ["//espresso:license"])

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Description:
# Tests for espresso matchers

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load(
"//build_extensions:android_library_test.bzl",
"axt_android_library_test",
)
load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load(
"//build_extensions:phone_devices.bzl",
"apis",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Description:
# Tests for espresso remote classes

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load(
"//build_extensions:android_library_test.bzl",
"axt_android_library_test",
)
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

package(default_applicable_licenses = ["//espresso:license"])

Expand Down
3 changes: 2 additions & 1 deletion espresso/device/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
`androidx.test.espresso:espresso-device:{version}` is released.

**Bug Fixes**
Clarify error messaging for setting screen orientation without a resumed activity
* Clarify error messaging for setting screen orientation without a resumed activity
* Support setting screen orientation on half-folded API 34 physical devices

**New Features**

Expand Down
2 changes: 1 addition & 1 deletion espresso/device/java/androidx/test/espresso/device/BUILD
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Description:
# EspressoDevice - the new Synchronized Device State Change API for Android.

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:kt_android_library.bzl", "kt_android_library")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

licenses(["notice"])

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package androidx.test.espresso.device.action

import android.content.res.Configuration
import android.util.Log
import androidx.test.espresso.device.common.getDeviceApiLevel
import androidx.test.espresso.device.common.isTestDeviceAnEmulator
import androidx.test.espresso.device.controller.DeviceControllerOperationException
import androidx.test.espresso.device.controller.DeviceMode
Expand All @@ -42,9 +43,10 @@ internal class BookModeAction() :
)
} else if (super.foldingFeatureOrientation != FoldingFeature.Orientation.VERTICAL) {
Log.d(TAG, "FoldingFeature orientation needs to be rotated.")
// TODO(b/296910911) On physical devices, changing screen orientation requires the device to
// be in FLAT mode. Open the fold, update orientation, and then restore the half-folded state.
if (!isTestDeviceAnEmulator()) {
// TODO(b/296910911) On certain physical devices, changing screen orientation requires the
// device to be in FLAT mode. Open the fold, update orientation, and then restore the
// half-folded state.
if (!isTestDeviceAnEmulator() && getDeviceApiLevel() < 34) {
Log.d(TAG, "Temporarily setting device to flat mode so that device can be rotated.")
BaseSingleFoldDeviceAction(DeviceMode.FLAT, FoldingFeature.State.FLAT)
.perform(deviceController)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package androidx.test.espresso.device.action

import android.content.res.Configuration
import android.util.Log
import androidx.test.espresso.device.common.getDeviceApiLevel
import androidx.test.espresso.device.common.isTestDeviceAnEmulator
import androidx.test.espresso.device.controller.DeviceControllerOperationException
import androidx.test.espresso.device.controller.DeviceMode
Expand All @@ -42,9 +43,10 @@ internal class TabletopModeAction() :
)
} else if (super.foldingFeatureOrientation != FoldingFeature.Orientation.HORIZONTAL) {
Log.d(TAG, "FoldingFeature orientation needs to be rotated.")
// TODO(b/296910911) On physical devices, changing screen orientation requires the device to
// be in FLAT mode. Open the fold, update orientation, and then restore the half-folded state.
if (!isTestDeviceAnEmulator()) {
// TODO(b/296910911) On certain physical devices, changing screen orientation requires the
// device to be in FLAT mode. Open the fold, update orientation, and then restore the
// half-folded state.
if (!isTestDeviceAnEmulator() && getDeviceApiLevel() < 34) {
Log.d(TAG, "Temporarily setting device to flat mode so that device can be rotated.")
BaseSingleFoldDeviceAction(DeviceMode.FLAT, FoldingFeature.State.FLAT)
.perform(deviceController)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,13 @@ class PhysicalDeviceController() : DeviceController {
)
}

// TODO(b/296910911) Support setting screen orientation on folded devices
// TODO(b/296910911) Support setting screen orientation on API 33- folded devices
val supportedDeviceStates = getMapOfDeviceStateNamesToIdentifiers()
if (supportedDeviceStates.isNotEmpty()) {
if (supportedDeviceStates.isNotEmpty() && getDeviceApiLevel() < 34) {
val currentDeviceStateIdentifier = executeShellCommand("cmd device_state print-state").trim()
if (currentDeviceStateIdentifier != getMapOfDeviceStateNamesToIdentifiers().get("OPENED")) {
throw UnsupportedDeviceOperationException(
"Setting screen orientation is not suported on physical foldable devices that are not in flat mode."
"Setting screen orientation is not suported on physical foldable devices API 33- that are not in flat mode."
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
# Light weight module that contains IdlinResources around concurrent Java APIs

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")

package(
default_applicable_licenses = ["//espresso:license"],
Expand Down
6 changes: 3 additions & 3 deletions espresso/idling_resource/java/androidx/test/espresso/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
# Light weight module represents a resources of an application under test which can cause
# asynchronous background work to happen during test execution.

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:api_checks.bzl", "api_checks")
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

package(
default_applicable_licenses = ["//espresso:license"],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:api_checks.bzl", "api_checks")

# Description:
# Network Idling Resources
Expand Down
4 changes: 2 additions & 2 deletions espresso/intents/java/androidx/test/espresso/intent/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
# Common library for testing inter and intra app communication via intents.

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:api_checks.bzl", "api_checks")

licenses(["notice"])

Expand Down
2 changes: 1 addition & 1 deletion espresso/remote/java/androidx/test/espresso/remote/BUILD
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Description:
# Remote package for espresso.

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

licenses(["notice"])

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Description:
# Tests for espresso remote classes

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load(
"//build_extensions:android_library_test.bzl",
"axt_android_library_test",
)
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

package(default_applicable_licenses = ["//espresso:license"])

Expand Down
4 changes: 2 additions & 2 deletions espresso/web/java/androidx/test/espresso/web/BUILD
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:api_checks.bzl", "api_checks")

licenses(["notice"])

Expand Down
2 changes: 1 addition & 1 deletion ext/junit/java/androidx/test/ext/junit/BUILD
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Description: Build rules for building androidx.test.junit from source

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions:kt_android_library.bzl", "kt_android_library")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

# all users should reference the equivalent targets in //ext/junit
package(
Expand Down
2 changes: 1 addition & 1 deletion ext/junit/javatests/androidx/test/ext/junit/rules/BUILD
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")
load("//build_extensions:android_library_test.bzl", "axt_android_library_test")
load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")

package(default_applicable_licenses = ["//:license"])

Expand Down
2 changes: 1 addition & 1 deletion ext/junit/javatests/androidx/test/ext/junit/runners/BUILD
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")
load("//build_extensions:android_library_test.bzl", "axt_android_library_test")
load("//build_extensions:axt_android_local_test.bzl", "axt_android_local_test")

package(default_applicable_licenses = ["//:license"])

Expand Down
2 changes: 1 addition & 1 deletion ext/truth/java/androidx/test/ext/truth/BUILD
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Description: Build rules for building androidx.test.truth from source

load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load("//build_extensions:api_checks.bzl", "api_checks")
load("//build_extensions:dackka_test.bzl", "dackka_test")
load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar")
load("//build_extensions/maven:maven_artifact.bzl", "maven_artifact")
load("@build_bazel_rules_android//android:rules.bzl", "android_library")

# all users should reference the equivalent targets in //ext/truth
package(
Expand Down
Loading

0 comments on commit c6c0a5b

Please sign in to comment.