Move ProtoLayout protos into their own library
The wrappers in the ProtoLayout library will be updated in a future
CL.
Bug: 257462120
Change-Id: Iab40fbb57bac59172bf1dfe3e5be991a0d2620a9
diff --git a/wear/protolayout/protolayout-proto/build.gradle b/wear/protolayout/protolayout-proto/build.gradle
index 42da9e5..8600bd5 100644
--- a/wear/protolayout/protolayout-proto/build.gradle
+++ b/wear/protolayout/protolayout-proto/build.gradle
@@ -13,17 +13,75 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
import androidx.build.LibraryType
-
+import androidx.build.RunApiTasks
plugins {
id("AndroidXPlugin")
id("java-library")
+ id("com.google.protobuf")
+ id("com.github.johnrengelman.shadow")
+}
+configurations {
+ shadowed
+ compileOnly.extendsFrom(shadowed)
+ testCompile.extendsFrom(shadowed)
+}
+dependencies {
+ implementation("androidx.annotation:annotation:1.1.0")
+ shadowed(libs.protobufLite)
}
-dependencies {
- annotationProcessor(libs.nullaway)
- implementation("androidx.annotation:annotation:1.1.0")
+// HACK: Move standard JAR to have another suffix and build a shadowJar with
+// no classifier (so it's picked up as the primary artifact).
+jar {
+ archiveClassifier = 'before-shadow'
+}
+
+shadowJar {
+ archiveClassifier = ''
+ configurations = [project.configurations.shadowed]
+
+ relocate "com.google.protobuf", "androidx.wear.protolayout.protobuf"
+ exclude("**/*.proto")
+}
+
+configurations {
+ apiElements.outgoing.artifacts.clear()
+ apiElements.outgoing.artifact(shadowJar) {
+ builtBy shadowJar
+ }
+ runtimeElements.outgoing.artifacts.clear()
+ runtimeElements.outgoing.artifact(shadowJar) {
+ builtBy shadowJar
+ }
+}
+
+protobuf {
+ protoc {
+ artifact = libs.protobufCompiler.get()
+ }
+
+ generateProtoTasks {
+ ofSourceSet("main").each { task ->
+ sourceSets.main.java.srcDir(task)
+ }
+ all().each { task ->
+ task.builtins {
+ java {
+ option 'lite'
+ }
+ }
+ }
+ }
+}
+
+afterEvaluate {
+ lint {
+ lintOptions {
+ // protobuf generates unannotated and synthetic accessor methods
+ disable("UnknownNullness", "SyntheticAccessor")
+ }
+ }
}
androidx {
@@ -32,4 +90,6 @@
mavenGroup = LibraryGroups.WEAR_PROTOLAYOUT
inceptionYear = "2022"
description = "Jarjar the generated proto and proto-lite dependency for use by wear-protolayout"
+ runApiTasks = new RunApiTasks.No("Metalava doesn't properly parse the proto sources " +
+ "(b/180579063)")
}
diff --git a/wear/tiles/tiles-proto/src/main/proto/action.proto b/wear/protolayout/protolayout-proto/src/main/proto/action.proto
similarity index 95%
rename from wear/tiles/tiles-proto/src/main/proto/action.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/action.proto
index 454a83c..9406086 100644
--- a/wear/tiles/tiles-proto/src/main/proto/action.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/action.proto
@@ -1,11 +1,11 @@
// Actions that can be performed when a user interacts with layout elements.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
import "state.proto";
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "ActionProto";
// A string value that can be added to an Android intent's extras.
diff --git a/wear/tiles/tiles-proto/src/main/proto/color.proto b/wear/protolayout/protolayout-proto/src/main/proto/color.proto
similarity index 68%
rename from wear/tiles/tiles-proto/src/main/proto/color.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/color.proto
index c4c1463..f719a06 100644
--- a/wear/tiles/tiles-proto/src/main/proto/color.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/color.proto
@@ -1,9 +1,9 @@
// Color utilities for layout elements.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "ColorProto";
// A property defining a color.
diff --git a/wear/tiles/tiles-proto/src/main/proto/device_parameters.proto b/wear/protolayout/protolayout-proto/src/main/proto/device_parameters.proto
similarity index 92%
rename from wear/tiles/tiles-proto/src/main/proto/device_parameters.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/device_parameters.proto
index 65308f2..e7a5e2a 100644
--- a/wear/tiles/tiles-proto/src/main/proto/device_parameters.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/device_parameters.proto
@@ -1,9 +1,9 @@
// Request messages used to fetch tiles and resources
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "DeviceParametersProto";
// The platform of the device requesting a tile.
diff --git a/wear/tiles/tiles-proto/src/main/proto/dimension.proto b/wear/protolayout/protolayout-proto/src/main/proto/dimension.proto
similarity index 95%
rename from wear/tiles/tiles-proto/src/main/proto/dimension.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/dimension.proto
index a9ff32b..a0a9989 100644
--- a/wear/tiles/tiles-proto/src/main/proto/dimension.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/dimension.proto
@@ -1,9 +1,9 @@
// Dimensions for layout elements.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "DimensionProto";
// A type for linear dimensions, measured in dp.
diff --git a/wear/tiles/tiles-proto/src/main/proto/layout.proto b/wear/protolayout/protolayout-proto/src/main/proto/layout.proto
similarity index 99%
rename from wear/tiles/tiles-proto/src/main/proto/layout.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/layout.proto
index f5454bf..bd896ba 100644
--- a/wear/tiles/tiles-proto/src/main/proto/layout.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/layout.proto
@@ -2,14 +2,14 @@
// UI layouts.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
import "color.proto";
import "dimension.proto";
import "modifiers.proto";
import "types.proto";
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "LayoutElementProto";
// The horizontal alignment of an element within its container.
diff --git a/wear/tiles/tiles-proto/src/main/proto/modifiers.proto b/wear/protolayout/protolayout-proto/src/main/proto/modifiers.proto
similarity index 97%
rename from wear/tiles/tiles-proto/src/main/proto/modifiers.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/modifiers.proto
index a62f00f..4aa04db 100644
--- a/wear/tiles/tiles-proto/src/main/proto/modifiers.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/modifiers.proto
@@ -1,14 +1,14 @@
// Modifiers for composable layout elements.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
import "action.proto";
import "color.proto";
import "dimension.proto";
import "types.proto";
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "ModifiersProto";
// A modifier for an element which can have associated Actions for click events.
diff --git a/wear/tiles/tiles-proto/src/main/proto/resources.proto b/wear/protolayout/protolayout-proto/src/main/proto/resources.proto
similarity index 96%
rename from wear/tiles/tiles-proto/src/main/proto/resources.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/resources.proto
index eb4d8af..f14a6a21 100644
--- a/wear/tiles/tiles-proto/src/main/proto/resources.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/resources.proto
@@ -1,9 +1,9 @@
// The resources for a layout.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "ResourceProto";
// Format describing the contents of an image data byte array.
diff --git a/wear/tiles/tiles-proto/src/main/proto/state.proto b/wear/protolayout/protolayout-proto/src/main/proto/state.proto
similarity index 68%
rename from wear/tiles/tiles-proto/src/main/proto/state.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/state.proto
index 749d051..64d63468 100644
--- a/wear/tiles/tiles-proto/src/main/proto/state.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/state.proto
@@ -1,9 +1,9 @@
// State of a tile.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "StateProto";
// State information.
diff --git a/wear/tiles/tiles-proto/src/main/proto/timeline.proto b/wear/protolayout/protolayout-proto/src/main/proto/timeline.proto
similarity index 93%
rename from wear/tiles/tiles-proto/src/main/proto/timeline.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/timeline.proto
index b00c05e..28266d3 100644
--- a/wear/tiles/tiles-proto/src/main/proto/timeline.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/timeline.proto
@@ -2,11 +2,11 @@
// given time intervals.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
import "layout.proto";
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "TimelineProto";
// A time interval, typically used to describe the validity period of a
diff --git a/wear/tiles/tiles-proto/src/main/proto/types.proto b/wear/protolayout/protolayout-proto/src/main/proto/types.proto
similarity index 81%
rename from wear/tiles/tiles-proto/src/main/proto/types.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/types.proto
index 42b66c9..00591bc 100644
--- a/wear/tiles/tiles-proto/src/main/proto/types.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/types.proto
@@ -1,9 +1,9 @@
// Extensible primitive types used by layout elements.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "TypesProto";
// An int32 type.
diff --git a/wear/tiles/tiles-proto/src/main/proto/version.proto b/wear/protolayout/protolayout-proto/src/main/proto/version.proto
similarity index 85%
rename from wear/tiles/tiles-proto/src/main/proto/version.proto
rename to wear/protolayout/protolayout-proto/src/main/proto/version.proto
index 869841a..4a006bb 100644
--- a/wear/tiles/tiles-proto/src/main/proto/version.proto
+++ b/wear/protolayout/protolayout-proto/src/main/proto/version.proto
@@ -1,9 +1,9 @@
// The components of a tile that can be rendered by a tile renderer.
syntax = "proto3";
-package androidx.wear.tiles.proto;
+package androidx.wear.protolayout.proto;
-option java_package = "androidx.wear.tiles.proto";
+option java_package = "androidx.wear.protolayout.proto";
option java_outer_classname = "VersionProto";
// Version information. This is used to encode the schema version of a payload
diff --git a/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/testapp/GoldenTestActivity.java b/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/testapp/GoldenTestActivity.java
index 36a28fb..3fd63b3 100644
--- a/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/testapp/GoldenTestActivity.java
+++ b/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/testapp/GoldenTestActivity.java
@@ -39,7 +39,7 @@
import androidx.wear.tiles.ResourceBuilders.ImageResource;
import androidx.wear.tiles.ResourceBuilders.Resources;
import androidx.wear.tiles.material.R;
-import androidx.wear.tiles.proto.LayoutElementProto.LayoutElement;
+import androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement;
import androidx.wear.tiles.renderer.TileRenderer;
import java.util.concurrent.Executor;
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Button.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Button.java
index 81f4392..62f41ba 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Button.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Button.java
@@ -52,7 +52,7 @@
import androidx.wear.tiles.ModifiersBuilders.Modifiers;
import androidx.wear.tiles.ModifiersBuilders.Semantics;
import androidx.wear.tiles.material.Typography.TypographyName;
-import androidx.wear.tiles.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Chip.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Chip.java
index c704d3f..e60493c 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Chip.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Chip.java
@@ -62,7 +62,7 @@
import androidx.wear.tiles.ModifiersBuilders.Padding;
import androidx.wear.tiles.ModifiersBuilders.Semantics;
import androidx.wear.tiles.material.Typography.TypographyName;
-import androidx.wear.tiles.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/CircularProgressIndicator.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/CircularProgressIndicator.java
index abb0108..42e24e5 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/CircularProgressIndicator.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/CircularProgressIndicator.java
@@ -47,7 +47,7 @@
import androidx.wear.tiles.ModifiersBuilders.Modifiers;
import androidx.wear.tiles.ModifiersBuilders.Padding;
import androidx.wear.tiles.ModifiersBuilders.Semantics;
-import androidx.wear.tiles.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
/**
* Tiles component {@link CircularProgressIndicator} that represents circular progress indicator
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/CompactChip.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/CompactChip.java
index 21bb316..e8ff215 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/CompactChip.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/CompactChip.java
@@ -39,7 +39,7 @@
import androidx.wear.tiles.ModifiersBuilders.Clickable;
import androidx.wear.tiles.ModifiersBuilders.ElementMetadata;
import androidx.wear.tiles.ModifiersBuilders.Modifiers;
-import androidx.wear.tiles.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
/**
* Tiles component {@link CompactChip} that represents clickable object with the text.
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Text.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Text.java
index ae86212..fc8f794 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Text.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Text.java
@@ -44,8 +44,8 @@
import androidx.wear.tiles.ModifiersBuilders.ElementMetadata;
import androidx.wear.tiles.ModifiersBuilders.Modifiers;
import androidx.wear.tiles.material.Typography.TypographyName;
-import androidx.wear.tiles.proto.LayoutElementProto;
-import androidx.wear.tiles.proto.ModifiersProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.ModifiersProto;
/**
* Tiles component {@link Text} that represents text object holding any information.
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/TitleChip.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/TitleChip.java
index d220e42..807e2c7 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/TitleChip.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/TitleChip.java
@@ -38,7 +38,7 @@
import androidx.wear.tiles.LayoutElementBuilders.HorizontalAlignment;
import androidx.wear.tiles.LayoutElementBuilders.LayoutElement;
import androidx.wear.tiles.ModifiersBuilders.Clickable;
-import androidx.wear.tiles.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
/**
* Tiles component {@link TitleChip} that represents clickable object with the text.
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/EdgeContentLayout.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/EdgeContentLayout.java
index d5fcbed..49e9ddf2 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/EdgeContentLayout.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/EdgeContentLayout.java
@@ -45,7 +45,7 @@
import androidx.wear.tiles.ModifiersBuilders.Modifiers;
import androidx.wear.tiles.ModifiersBuilders.Padding;
import androidx.wear.tiles.material.CircularProgressIndicator;
-import androidx.wear.tiles.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/MultiButtonLayout.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/MultiButtonLayout.java
index f1581bc..67053c9 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/MultiButtonLayout.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/MultiButtonLayout.java
@@ -42,7 +42,7 @@
import androidx.wear.tiles.ModifiersBuilders.ElementMetadata;
import androidx.wear.tiles.ModifiersBuilders.Modifiers;
import androidx.wear.tiles.material.Button;
-import androidx.wear.tiles.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/MultiSlotLayout.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/MultiSlotLayout.java
index e6c9998..0e5196b 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/MultiSlotLayout.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/MultiSlotLayout.java
@@ -41,7 +41,7 @@
import androidx.wear.tiles.LayoutElementBuilders.Spacer;
import androidx.wear.tiles.ModifiersBuilders.ElementMetadata;
import androidx.wear.tiles.ModifiersBuilders.Modifiers;
-import androidx.wear.tiles.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
import java.util.ArrayList;
import java.util.List;
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/PrimaryLayout.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/PrimaryLayout.java
index 4125e6c..2a215ca 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/PrimaryLayout.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/PrimaryLayout.java
@@ -58,7 +58,7 @@
import androidx.wear.tiles.ModifiersBuilders.Modifiers;
import androidx.wear.tiles.ModifiersBuilders.Padding;
import androidx.wear.tiles.material.CompactChip;
-import androidx.wear.tiles.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.LayoutElementProto;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/wear/tiles/tiles-proto/build.gradle b/wear/tiles/tiles-proto/build.gradle
index b2ebf91..91b8bbd 100644
--- a/wear/tiles/tiles-proto/build.gradle
+++ b/wear/tiles/tiles-proto/build.gradle
@@ -13,57 +13,45 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
import androidx.build.Publish
import androidx.build.RunApiTasks
-import com.github.jengelman.gradle.plugins.shadow.transformers.DontIncludeResourceTransformer
-
plugins {
id("AndroidXPlugin")
id("java-library")
id("com.google.protobuf")
id("com.github.johnrengelman.shadow")
}
-
configurations {
shadowed
-
compileOnly.extendsFrom(shadowed)
testCompile.extendsFrom(shadowed)
}
-
dependencies {
+ constraints {
+ implementation(project(":wear:protolayout:protolayout-proto"))
+ }
+
implementation("androidx.annotation:annotation:1.1.0")
- shadowed(libs.protobufLite)
+ compileOnly(libs.protobufLite)
+ // Use a non-shadow configuration during compile to pick up the proto dependencies.
+ // But declare the proper shadowed dependency externally.
+ // For some reason not specifying the configuration causes undeclared changes to the inputs to
+ // extractIncludeProto task (making it out-dated without any source change).
+ compileOnly(project(path:":wear:protolayout:protolayout-proto", configuration:"archives"))
+ api(project(path:":wear:protolayout:protolayout-proto", configuration:"shadow"))
}
-
-sourceSets {
- main.java.srcDirs += "$buildDir/generated/source/proto"
-}
-
// HACK: Move standard JAR to have another suffix and build a shadowJar with
// no classifier (so it's picked up as the primary artifact).
jar {
archiveClassifier = 'before-shadow'
}
-
shadowJar {
archiveClassifier = ''
configurations = [project.configurations.shadowed]
-
- relocate "com.google.protobuf", "androidx.wear.tiles.protobuf"
-
- // libs.protobufLite ships with a standard set of proto files in the JAR, which clash if this
- // library is included from two different downstream libraries. exclude("*.proto") (or
- // **/*.proto etc etc) doesn't exclude the ones from libs.protobufLite, so take a more heavy handed
- // approach and use a transformer to strip those files.
- transform(DontIncludeResourceTransformer.class) {
- resource = ".proto"
- }
+ relocate "com.google.protobuf", "androidx.wear.protolayout.protobuf"
+ exclude("**/*.proto")
}
-
assemble.dependsOn(shadowJar)
-
configurations {
apiElements.outgoing.artifacts.clear()
apiElements.outgoing.artifact(shadowJar) {
@@ -74,12 +62,10 @@
builtBy shadowJar
}
}
-
protobuf {
protoc {
artifact = libs.protobufCompiler.get()
}
-
generateProtoTasks {
ofSourceSet("main").each { task ->
sourceSets.main.java.srcDir(task)
@@ -93,7 +79,6 @@
}
}
}
-
afterEvaluate {
lint {
lintOptions {
@@ -102,7 +87,6 @@
}
}
}
-
androidx {
name = "Wear Tiles Proto"
publish = Publish.SNAPSHOT_AND_RELEASE
@@ -112,4 +96,4 @@
"wear-tiles."
runApiTasks = new RunApiTasks.No("Metalava doesn't properly parse the proto sources " +
"(b/180579063)")
-}
+}
\ No newline at end of file
diff --git a/wear/tiles/tiles-proto/src/main/proto/requests.proto b/wear/tiles/tiles-proto/src/main/proto/requests.proto
index 2b6d7bf..f171d08 100644
--- a/wear/tiles/tiles-proto/src/main/proto/requests.proto
+++ b/wear/tiles/tiles-proto/src/main/proto/requests.proto
@@ -13,10 +13,10 @@
// version of the tile.
message TileRequest {
// Parameters describing the device requesting the tile update.
- DeviceParameters device_parameters = 1;
+ androidx.wear.protolayout.proto.DeviceParameters device_parameters = 1;
// The state that should be used when building the tile.
- State state = 2;
+ androidx.wear.protolayout.proto.State state = 2;
}
// Parameters passed to a Tile Service when the renderer is requesting a
@@ -36,5 +36,5 @@
repeated string resource_ids = 2;
// Parameters describing the device requesting the resources.
- DeviceParameters device_parameters = 3;
+ androidx.wear.protolayout.proto.DeviceParameters device_parameters = 3;
}
diff --git a/wear/tiles/tiles-proto/src/main/proto/tile.proto b/wear/tiles/tiles-proto/src/main/proto/tile.proto
index 3abfaf8..fc3d294 100644
--- a/wear/tiles/tiles-proto/src/main/proto/tile.proto
+++ b/wear/tiles/tiles-proto/src/main/proto/tile.proto
@@ -19,10 +19,10 @@
string resources_version = 1;
// The tiles to show in the carousel, along with their validity periods.
- Timeline timeline = 2;
+ androidx.wear.protolayout.proto.Timeline timeline = 2;
// The schema version that this tile was built with.
- VersionInfo schema_version = 3;
+ androidx.wear.protolayout.proto.VersionInfo schema_version = 3;
// How many milliseconds of elapsed time (**not** wall clock time) this tile
// can be considered to be "fresh". The platform will attempt to refresh
diff --git a/wear/tiles/tiles-renderer/src/androidTest/java/androidx/wear/tiles/renderer/test/TileRendererGoldenTest.java b/wear/tiles/tiles-renderer/src/androidTest/java/androidx/wear/tiles/renderer/test/TileRendererGoldenTest.java
index 44045e5..8b6ef65 100644
--- a/wear/tiles/tiles-renderer/src/androidTest/java/androidx/wear/tiles/renderer/test/TileRendererGoldenTest.java
+++ b/wear/tiles/tiles-renderer/src/androidTest/java/androidx/wear/tiles/renderer/test/TileRendererGoldenTest.java
@@ -32,14 +32,14 @@
import androidx.test.screenshot.matchers.MSSIMMatcher;
import androidx.wear.tiles.LayoutElementBuilders;
import androidx.wear.tiles.ResourceBuilders;
-import androidx.wear.tiles.proto.LayoutElementProto.Layout;
-import androidx.wear.tiles.proto.LayoutElementProto.LayoutElement;
-import androidx.wear.tiles.proto.ResourceProto.AndroidImageResourceByResId;
-import androidx.wear.tiles.proto.ResourceProto.ImageFormat;
-import androidx.wear.tiles.proto.ResourceProto.ImageResource;
-import androidx.wear.tiles.proto.ResourceProto.InlineImageResource;
-import androidx.wear.tiles.proto.ResourceProto.Resources;
-import androidx.wear.tiles.protobuf.ByteString;
+import androidx.wear.protolayout.proto.LayoutElementProto.Layout;
+import androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement;
+import androidx.wear.protolayout.proto.ResourceProto.AndroidImageResourceByResId;
+import androidx.wear.protolayout.proto.ResourceProto.ImageFormat;
+import androidx.wear.protolayout.proto.ResourceProto.ImageResource;
+import androidx.wear.protolayout.proto.ResourceProto.InlineImageResource;
+import androidx.wear.protolayout.proto.ResourceProto.Resources;
+import androidx.wear.protolayout.protobuf.ByteString;
import androidx.wear.tiles.renderer.TileRenderer;
import com.google.protobuf.TextFormat;
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/connection/DefaultTileClient.kt b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/connection/DefaultTileClient.kt
index dd509d06..601a189d 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/connection/DefaultTileClient.kt
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/connection/DefaultTileClient.kt
@@ -37,9 +37,9 @@
import androidx.wear.tiles.TileService
import androidx.wear.tiles.TileRemoveEventData
import androidx.wear.tiles.client.TileClient
-import androidx.wear.tiles.proto.ResourceProto
+import androidx.wear.protolayout.proto.ResourceProto
import androidx.wear.tiles.proto.TileProto
-import androidx.wear.tiles.protobuf.InvalidProtocolBufferException
+import androidx.wear.protolayout.protobuf.InvalidProtocolBufferException
import com.google.common.util.concurrent.ListenableFuture
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/DefaultAndroidImageResourceByResIdResolver.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/DefaultAndroidImageResourceByResIdResolver.java
index 06345ca..3f422ce 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/DefaultAndroidImageResourceByResIdResolver.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/DefaultAndroidImageResourceByResIdResolver.java
@@ -21,7 +21,7 @@
import android.graphics.drawable.Drawable;
import androidx.annotation.NonNull;
-import androidx.wear.tiles.proto.ResourceProto.AndroidImageResourceByResId;
+import androidx.wear.protolayout.proto.ResourceProto.AndroidImageResourceByResId;
import androidx.wear.tiles.renderer.internal.ResourceResolvers.AndroidImageResourceByResIdResolver;
import com.google.common.util.concurrent.ListenableFuture;
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/DefaultInlineImageResourceResolver.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/DefaultInlineImageResourceResolver.java
index 9f06df3..d0a5ae6 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/DefaultInlineImageResourceResolver.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/DefaultInlineImageResourceResolver.java
@@ -25,8 +25,8 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.wear.tiles.proto.ResourceProto.ImageFormat;
-import androidx.wear.tiles.proto.ResourceProto.InlineImageResource;
+import androidx.wear.protolayout.proto.ResourceProto.ImageFormat;
+import androidx.wear.protolayout.proto.ResourceProto.InlineImageResource;
import androidx.wear.tiles.renderer.internal.ResourceResolvers.InlineImageResourceResolver;
import androidx.wear.tiles.renderer.internal.ResourceResolvers.ResourceAccessException;
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/ResourceResolvers.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/ResourceResolvers.java
index f98f776..4c4ef42 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/ResourceResolvers.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/ResourceResolvers.java
@@ -22,9 +22,9 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.concurrent.futures.ResolvableFuture;
-import androidx.wear.tiles.proto.ResourceProto;
-import androidx.wear.tiles.proto.ResourceProto.AndroidImageResourceByResId;
-import androidx.wear.tiles.proto.ResourceProto.InlineImageResource;
+import androidx.wear.protolayout.proto.ResourceProto;
+import androidx.wear.protolayout.proto.ResourceProto.AndroidImageResourceByResId;
+import androidx.wear.protolayout.proto.ResourceProto.InlineImageResource;
import com.google.common.util.concurrent.ListenableFuture;
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/StandardResourceResolvers.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/StandardResourceResolvers.java
index 6308bbf..c5e7db3 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/StandardResourceResolvers.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/StandardResourceResolvers.java
@@ -21,7 +21,7 @@
import androidx.annotation.NonNull;
import androidx.wear.tiles.TileService;
-import androidx.wear.tiles.proto.ResourceProto;
+import androidx.wear.protolayout.proto.ResourceProto;
/** Utility class to get {@link ResourceResolvers} populated with standard options. */
public class StandardResourceResolvers {
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/TileRendererInternal.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/TileRendererInternal.java
index c071ee6..07e6ea9 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/TileRendererInternal.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/internal/TileRendererInternal.java
@@ -69,54 +69,54 @@
import androidx.annotation.StyleRes;
import androidx.core.content.ContextCompat;
import androidx.wear.tiles.TileService;
-import androidx.wear.tiles.proto.ActionProto.Action;
-import androidx.wear.tiles.proto.ActionProto.AndroidActivity;
-import androidx.wear.tiles.proto.ActionProto.AndroidExtra;
-import androidx.wear.tiles.proto.ActionProto.LaunchAction;
-import androidx.wear.tiles.proto.ActionProto.LoadAction;
-import androidx.wear.tiles.proto.DimensionProto.ContainerDimension;
-import androidx.wear.tiles.proto.DimensionProto.ContainerDimension.InnerCase;
-import androidx.wear.tiles.proto.DimensionProto.DpProp;
-import androidx.wear.tiles.proto.DimensionProto.ExpandedDimensionProp;
-import androidx.wear.tiles.proto.DimensionProto.ImageDimension;
-import androidx.wear.tiles.proto.DimensionProto.ProportionalDimensionProp;
-import androidx.wear.tiles.proto.DimensionProto.SpProp;
-import androidx.wear.tiles.proto.DimensionProto.SpacerDimension;
-import androidx.wear.tiles.proto.DimensionProto.WrappedDimensionProp;
-import androidx.wear.tiles.proto.LayoutElementProto.Arc;
-import androidx.wear.tiles.proto.LayoutElementProto.ArcAnchorTypeProp;
-import androidx.wear.tiles.proto.LayoutElementProto.ArcLayoutElement;
-import androidx.wear.tiles.proto.LayoutElementProto.ArcLine;
-import androidx.wear.tiles.proto.LayoutElementProto.ArcSpacer;
-import androidx.wear.tiles.proto.LayoutElementProto.ArcText;
-import androidx.wear.tiles.proto.LayoutElementProto.Box;
-import androidx.wear.tiles.proto.LayoutElementProto.Column;
-import androidx.wear.tiles.proto.LayoutElementProto.ContentScaleMode;
-import androidx.wear.tiles.proto.LayoutElementProto.FontStyle;
-import androidx.wear.tiles.proto.LayoutElementProto.FontVariant;
-import androidx.wear.tiles.proto.LayoutElementProto.HorizontalAlignmentProp;
-import androidx.wear.tiles.proto.LayoutElementProto.Image;
-import androidx.wear.tiles.proto.LayoutElementProto.Layout;
-import androidx.wear.tiles.proto.LayoutElementProto.LayoutElement;
-import androidx.wear.tiles.proto.LayoutElementProto.Row;
-import androidx.wear.tiles.proto.LayoutElementProto.Spacer;
-import androidx.wear.tiles.proto.LayoutElementProto.Span;
-import androidx.wear.tiles.proto.LayoutElementProto.SpanImage;
-import androidx.wear.tiles.proto.LayoutElementProto.SpanText;
-import androidx.wear.tiles.proto.LayoutElementProto.SpanVerticalAlignmentProp;
-import androidx.wear.tiles.proto.LayoutElementProto.Spannable;
-import androidx.wear.tiles.proto.LayoutElementProto.Text;
-import androidx.wear.tiles.proto.LayoutElementProto.TextAlignmentProp;
-import androidx.wear.tiles.proto.LayoutElementProto.TextOverflowProp;
-import androidx.wear.tiles.proto.LayoutElementProto.VerticalAlignmentProp;
-import androidx.wear.tiles.proto.ModifiersProto.ArcModifiers;
-import androidx.wear.tiles.proto.ModifiersProto.Background;
-import androidx.wear.tiles.proto.ModifiersProto.Border;
-import androidx.wear.tiles.proto.ModifiersProto.Clickable;
-import androidx.wear.tiles.proto.ModifiersProto.Modifiers;
-import androidx.wear.tiles.proto.ModifiersProto.Padding;
-import androidx.wear.tiles.proto.ModifiersProto.SpanModifiers;
-import androidx.wear.tiles.proto.StateProto.State;
+import androidx.wear.protolayout.proto.ActionProto.Action;
+import androidx.wear.protolayout.proto.ActionProto.AndroidActivity;
+import androidx.wear.protolayout.proto.ActionProto.AndroidExtra;
+import androidx.wear.protolayout.proto.ActionProto.LaunchAction;
+import androidx.wear.protolayout.proto.ActionProto.LoadAction;
+import androidx.wear.protolayout.proto.DimensionProto.ContainerDimension;
+import androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.InnerCase;
+import androidx.wear.protolayout.proto.DimensionProto.DpProp;
+import androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp;
+import androidx.wear.protolayout.proto.DimensionProto.ImageDimension;
+import androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp;
+import androidx.wear.protolayout.proto.DimensionProto.SpProp;
+import androidx.wear.protolayout.proto.DimensionProto.SpacerDimension;
+import androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp;
+import androidx.wear.protolayout.proto.LayoutElementProto.Arc;
+import androidx.wear.protolayout.proto.LayoutElementProto.ArcAnchorTypeProp;
+import androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement;
+import androidx.wear.protolayout.proto.LayoutElementProto.ArcLine;
+import androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer;
+import androidx.wear.protolayout.proto.LayoutElementProto.ArcText;
+import androidx.wear.protolayout.proto.LayoutElementProto.Box;
+import androidx.wear.protolayout.proto.LayoutElementProto.Column;
+import androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleMode;
+import androidx.wear.protolayout.proto.LayoutElementProto.FontStyle;
+import androidx.wear.protolayout.proto.LayoutElementProto.FontVariant;
+import androidx.wear.protolayout.proto.LayoutElementProto.HorizontalAlignmentProp;
+import androidx.wear.protolayout.proto.LayoutElementProto.Image;
+import androidx.wear.protolayout.proto.LayoutElementProto.Layout;
+import androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement;
+import androidx.wear.protolayout.proto.LayoutElementProto.Row;
+import androidx.wear.protolayout.proto.LayoutElementProto.Spacer;
+import androidx.wear.protolayout.proto.LayoutElementProto.Span;
+import androidx.wear.protolayout.proto.LayoutElementProto.SpanImage;
+import androidx.wear.protolayout.proto.LayoutElementProto.SpanText;
+import androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp;
+import androidx.wear.protolayout.proto.LayoutElementProto.Spannable;
+import androidx.wear.protolayout.proto.LayoutElementProto.Text;
+import androidx.wear.protolayout.proto.LayoutElementProto.TextAlignmentProp;
+import androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp;
+import androidx.wear.protolayout.proto.LayoutElementProto.VerticalAlignmentProp;
+import androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers;
+import androidx.wear.protolayout.proto.ModifiersProto.Background;
+import androidx.wear.protolayout.proto.ModifiersProto.Border;
+import androidx.wear.protolayout.proto.ModifiersProto.Clickable;
+import androidx.wear.protolayout.proto.ModifiersProto.Modifiers;
+import androidx.wear.protolayout.proto.ModifiersProto.Padding;
+import androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers;
+import androidx.wear.protolayout.proto.StateProto.State;
import androidx.wear.tiles.renderer.R;
import androidx.wear.tiles.renderer.internal.ResourceResolvers.ResourceAccessException;
import androidx.wear.widget.ArcLayout;
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/TilesTimelineCache.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/TilesTimelineCache.java
index c69aaeb..3bc7f8d 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/TilesTimelineCache.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/TilesTimelineCache.java
@@ -20,7 +20,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.wear.tiles.TimelineBuilders;
-import androidx.wear.tiles.proto.TimelineProto.TimelineEntry;
+import androidx.wear.protolayout.proto.TimelineProto.TimelineEntry;
import androidx.wear.tiles.timeline.internal.TilesTimelineCacheInternal;
/**
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/internal/TilesTimelineCacheInternal.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/internal/TilesTimelineCacheInternal.java
index 91dc111..4571ad5 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/internal/TilesTimelineCacheInternal.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/internal/TilesTimelineCacheInternal.java
@@ -19,9 +19,9 @@
import androidx.annotation.MainThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.wear.tiles.proto.TimelineProto.TimeInterval;
-import androidx.wear.tiles.proto.TimelineProto.Timeline;
-import androidx.wear.tiles.proto.TimelineProto.TimelineEntry;
+import androidx.wear.protolayout.proto.TimelineProto.TimeInterval;
+import androidx.wear.protolayout.proto.TimelineProto.Timeline;
+import androidx.wear.protolayout.proto.TimelineProto.TimelineEntry;
/**
* Timeline cache for Tiles. This will take in a full timeline, and return the appropriate entry for
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/internal/TilesTimelineManagerInternal.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/internal/TilesTimelineManagerInternal.java
index ccf786d..d25e42d 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/internal/TilesTimelineManagerInternal.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/internal/TilesTimelineManagerInternal.java
@@ -25,8 +25,8 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.wear.tiles.proto.TimelineProto.Timeline;
-import androidx.wear.tiles.proto.TimelineProto.TimelineEntry;
+import androidx.wear.protolayout.proto.TimelineProto.Timeline;
+import androidx.wear.protolayout.proto.TimelineProto.TimelineEntry;
import java.util.concurrent.Executor;
diff --git a/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/connection/DefaultTileClientTest.kt b/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/connection/DefaultTileClientTest.kt
index b6e2c7f..5fc55c5 100644
--- a/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/connection/DefaultTileClientTest.kt
+++ b/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/connection/DefaultTileClientTest.kt
@@ -38,7 +38,7 @@
import androidx.wear.tiles.TileRequestData
import androidx.wear.tiles.TilesTestRunner
import androidx.wear.tiles.proto.TileProto
-import androidx.wear.tiles.protobuf.InvalidProtocolBufferException
+import androidx.wear.protolayout.protobuf.InvalidProtocolBufferException
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.TimeoutCancellationException
diff --git a/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/renderer/internal/TileRendererInternalTest.java b/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/renderer/internal/TileRendererInternalTest.java
index 68914be..01c37cf 100644
--- a/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/renderer/internal/TileRendererInternalTest.java
+++ b/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/renderer/internal/TileRendererInternalTest.java
@@ -40,58 +40,58 @@
import androidx.core.content.ContextCompat;
import androidx.wear.tiles.TileService;
import androidx.wear.tiles.TilesTestRunner;
-import androidx.wear.tiles.proto.ActionProto.Action;
-import androidx.wear.tiles.proto.ActionProto.AndroidActivity;
-import androidx.wear.tiles.proto.ActionProto.AndroidBooleanExtra;
-import androidx.wear.tiles.proto.ActionProto.AndroidDoubleExtra;
-import androidx.wear.tiles.proto.ActionProto.AndroidExtra;
-import androidx.wear.tiles.proto.ActionProto.AndroidIntExtra;
-import androidx.wear.tiles.proto.ActionProto.AndroidLongExtra;
-import androidx.wear.tiles.proto.ActionProto.AndroidStringExtra;
-import androidx.wear.tiles.proto.ActionProto.LaunchAction;
-import androidx.wear.tiles.proto.ActionProto.LoadAction;
-import androidx.wear.tiles.proto.ColorProto.ColorProp;
-import androidx.wear.tiles.proto.DimensionProto.ContainerDimension;
-import androidx.wear.tiles.proto.DimensionProto.DegreesProp;
-import androidx.wear.tiles.proto.DimensionProto.DpProp;
-import androidx.wear.tiles.proto.DimensionProto.ExpandedDimensionProp;
-import androidx.wear.tiles.proto.DimensionProto.ImageDimension;
-import androidx.wear.tiles.proto.DimensionProto.ProportionalDimensionProp;
-import androidx.wear.tiles.proto.DimensionProto.SpacerDimension;
-import androidx.wear.tiles.proto.DimensionProto.WrappedDimensionProp;
-import androidx.wear.tiles.proto.LayoutElementProto.Arc;
-import androidx.wear.tiles.proto.LayoutElementProto.ArcLayoutElement;
-import androidx.wear.tiles.proto.LayoutElementProto.ArcLine;
-import androidx.wear.tiles.proto.LayoutElementProto.ArcSpacer;
-import androidx.wear.tiles.proto.LayoutElementProto.ArcText;
-import androidx.wear.tiles.proto.LayoutElementProto.Box;
-import androidx.wear.tiles.proto.LayoutElementProto.Column;
-import androidx.wear.tiles.proto.LayoutElementProto.FontStyle;
-import androidx.wear.tiles.proto.LayoutElementProto.HorizontalAlignment;
-import androidx.wear.tiles.proto.LayoutElementProto.HorizontalAlignmentProp;
-import androidx.wear.tiles.proto.LayoutElementProto.Image;
-import androidx.wear.tiles.proto.LayoutElementProto.Layout;
-import androidx.wear.tiles.proto.LayoutElementProto.LayoutElement;
-import androidx.wear.tiles.proto.LayoutElementProto.Row;
-import androidx.wear.tiles.proto.LayoutElementProto.Spacer;
-import androidx.wear.tiles.proto.LayoutElementProto.Span;
-import androidx.wear.tiles.proto.LayoutElementProto.SpanImage;
-import androidx.wear.tiles.proto.LayoutElementProto.SpanText;
-import androidx.wear.tiles.proto.LayoutElementProto.Spannable;
-import androidx.wear.tiles.proto.LayoutElementProto.Text;
-import androidx.wear.tiles.proto.LayoutElementProto.VerticalAlignment;
-import androidx.wear.tiles.proto.LayoutElementProto.VerticalAlignmentProp;
-import androidx.wear.tiles.proto.ModifiersProto.Border;
-import androidx.wear.tiles.proto.ModifiersProto.Clickable;
-import androidx.wear.tiles.proto.ModifiersProto.Modifiers;
-import androidx.wear.tiles.proto.ModifiersProto.Padding;
-import androidx.wear.tiles.proto.ModifiersProto.Semantics;
-import androidx.wear.tiles.proto.ModifiersProto.SpanModifiers;
-import androidx.wear.tiles.proto.ResourceProto.AndroidImageResourceByResId;
-import androidx.wear.tiles.proto.ResourceProto.ImageResource;
-import androidx.wear.tiles.proto.ResourceProto.Resources;
-import androidx.wear.tiles.proto.StateProto.State;
-import androidx.wear.tiles.proto.TypesProto.StringProp;
+import androidx.wear.protolayout.proto.ActionProto.Action;
+import androidx.wear.protolayout.proto.ActionProto.AndroidActivity;
+import androidx.wear.protolayout.proto.ActionProto.AndroidBooleanExtra;
+import androidx.wear.protolayout.proto.ActionProto.AndroidDoubleExtra;
+import androidx.wear.protolayout.proto.ActionProto.AndroidExtra;
+import androidx.wear.protolayout.proto.ActionProto.AndroidIntExtra;
+import androidx.wear.protolayout.proto.ActionProto.AndroidLongExtra;
+import androidx.wear.protolayout.proto.ActionProto.AndroidStringExtra;
+import androidx.wear.protolayout.proto.ActionProto.LaunchAction;
+import androidx.wear.protolayout.proto.ActionProto.LoadAction;
+import androidx.wear.protolayout.proto.ColorProto.ColorProp;
+import androidx.wear.protolayout.proto.DimensionProto.ContainerDimension;
+import androidx.wear.protolayout.proto.DimensionProto.DegreesProp;
+import androidx.wear.protolayout.proto.DimensionProto.DpProp;
+import androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp;
+import androidx.wear.protolayout.proto.DimensionProto.ImageDimension;
+import androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp;
+import androidx.wear.protolayout.proto.DimensionProto.SpacerDimension;
+import androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp;
+import androidx.wear.protolayout.proto.LayoutElementProto.Arc;
+import androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement;
+import androidx.wear.protolayout.proto.LayoutElementProto.ArcLine;
+import androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer;
+import androidx.wear.protolayout.proto.LayoutElementProto.ArcText;
+import androidx.wear.protolayout.proto.LayoutElementProto.Box;
+import androidx.wear.protolayout.proto.LayoutElementProto.Column;
+import androidx.wear.protolayout.proto.LayoutElementProto.FontStyle;
+import androidx.wear.protolayout.proto.LayoutElementProto.HorizontalAlignment;
+import androidx.wear.protolayout.proto.LayoutElementProto.HorizontalAlignmentProp;
+import androidx.wear.protolayout.proto.LayoutElementProto.Image;
+import androidx.wear.protolayout.proto.LayoutElementProto.Layout;
+import androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement;
+import androidx.wear.protolayout.proto.LayoutElementProto.Row;
+import androidx.wear.protolayout.proto.LayoutElementProto.Spacer;
+import androidx.wear.protolayout.proto.LayoutElementProto.Span;
+import androidx.wear.protolayout.proto.LayoutElementProto.SpanImage;
+import androidx.wear.protolayout.proto.LayoutElementProto.SpanText;
+import androidx.wear.protolayout.proto.LayoutElementProto.Spannable;
+import androidx.wear.protolayout.proto.LayoutElementProto.Text;
+import androidx.wear.protolayout.proto.LayoutElementProto.VerticalAlignment;
+import androidx.wear.protolayout.proto.LayoutElementProto.VerticalAlignmentProp;
+import androidx.wear.protolayout.proto.ModifiersProto.Border;
+import androidx.wear.protolayout.proto.ModifiersProto.Clickable;
+import androidx.wear.protolayout.proto.ModifiersProto.Modifiers;
+import androidx.wear.protolayout.proto.ModifiersProto.Padding;
+import androidx.wear.protolayout.proto.ModifiersProto.Semantics;
+import androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers;
+import androidx.wear.protolayout.proto.ResourceProto.AndroidImageResourceByResId;
+import androidx.wear.protolayout.proto.ResourceProto.ImageResource;
+import androidx.wear.protolayout.proto.ResourceProto.Resources;
+import androidx.wear.protolayout.proto.StateProto.State;
+import androidx.wear.protolayout.proto.TypesProto.StringProp;
import androidx.wear.tiles.renderer.test.R;
import androidx.wear.widget.ArcLayout;
import androidx.wear.widget.CurvedTextView;
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ActionBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ActionBuilders.java
index 243aae3..1b06fe0 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ActionBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ActionBuilders.java
@@ -25,7 +25,7 @@
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.tiles.StateBuilders.State;
-import androidx.wear.tiles.proto.ActionProto;
+import androidx.wear.protolayout.proto.ActionProto;
import java.util.Collections;
import java.util.Map;
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ColorBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ColorBuilders.java
index fa35b82..bfe3868 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ColorBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ColorBuilders.java
@@ -20,7 +20,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
-import androidx.wear.tiles.proto.ColorProto;
+import androidx.wear.protolayout.proto.ColorProto;
/** Builders for color utilities for layout elements. */
public final class ColorBuilders {
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DeviceParametersBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DeviceParametersBuilders.java
index 74e900a..b39f93f 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DeviceParametersBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DeviceParametersBuilders.java
@@ -24,7 +24,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
-import androidx.wear.tiles.proto.DeviceParametersProto;
+import androidx.wear.protolayout.proto.DeviceParametersProto;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DimensionBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DimensionBuilders.java
index 3a754fc..7aaea5b 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DimensionBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DimensionBuilders.java
@@ -26,7 +26,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
-import androidx.wear.tiles.proto.DimensionProto;
+import androidx.wear.protolayout.proto.DimensionProto;
/** Builders for dimensions for layout elements. */
public final class DimensionBuilders {
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/LayoutElementBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/LayoutElementBuilders.java
index 15be15f..3a811ba 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/LayoutElementBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/LayoutElementBuilders.java
@@ -42,9 +42,9 @@
import androidx.wear.tiles.TypeBuilders.BoolProp;
import androidx.wear.tiles.TypeBuilders.Int32Prop;
import androidx.wear.tiles.TypeBuilders.StringProp;
-import androidx.wear.tiles.proto.LayoutElementProto;
-import androidx.wear.tiles.proto.TypesProto;
-import androidx.wear.tiles.protobuf.InvalidProtocolBufferException;
+import androidx.wear.protolayout.proto.LayoutElementProto;
+import androidx.wear.protolayout.proto.TypesProto;
+import androidx.wear.protolayout.protobuf.InvalidProtocolBufferException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ModifiersBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ModifiersBuilders.java
index 754d9a6..b3ced75 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ModifiersBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ModifiersBuilders.java
@@ -26,9 +26,9 @@
import androidx.wear.tiles.ColorBuilders.ColorProp;
import androidx.wear.tiles.DimensionBuilders.DpProp;
import androidx.wear.tiles.TypeBuilders.BoolProp;
-import androidx.wear.tiles.proto.ModifiersProto;
-import androidx.wear.tiles.proto.TypesProto;
-import androidx.wear.tiles.protobuf.ByteString;
+import androidx.wear.protolayout.proto.ModifiersProto;
+import androidx.wear.protolayout.proto.TypesProto;
+import androidx.wear.protolayout.protobuf.ByteString;
/** Builders for modifiers for composable layout elements. */
public final class ModifiersBuilders {
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourceBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourceBuilders.java
index 971a5c1..b062133 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourceBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourceBuilders.java
@@ -29,9 +29,9 @@
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
-import androidx.wear.tiles.proto.ResourceProto;
-import androidx.wear.tiles.protobuf.ByteString;
-import androidx.wear.tiles.protobuf.InvalidProtocolBufferException;
+import androidx.wear.protolayout.proto.ResourceProto;
+import androidx.wear.protolayout.protobuf.ByteString;
+import androidx.wear.protolayout.protobuf.InvalidProtocolBufferException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/StateBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/StateBuilders.java
index 37a8cbc..ba9a1c6 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/StateBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/StateBuilders.java
@@ -19,7 +19,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
-import androidx.wear.tiles.proto.StateProto;
+import androidx.wear.protolayout.proto.StateProto;
/** Builders for state of a tile. */
public final class StateBuilders {
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileBuilders.java
index 7200f76..dc56dd4 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileBuilders.java
@@ -22,7 +22,7 @@
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.tiles.TimelineBuilders.Timeline;
import androidx.wear.tiles.proto.TileProto;
-import androidx.wear.tiles.proto.VersionProto.VersionInfo;
+import androidx.wear.protolayout.proto.VersionProto.VersionInfo;
/** Builders for the components of a tile that can be rendered by a tile renderer. */
public final class TileBuilders {
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileService.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileService.java
index 72cdde0..1319e5f 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileService.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileService.java
@@ -39,7 +39,7 @@
import androidx.wear.tiles.proto.EventProto;
import androidx.wear.tiles.proto.RequestProto;
import androidx.wear.tiles.proto.TileProto;
-import androidx.wear.tiles.protobuf.InvalidProtocolBufferException;
+import androidx.wear.protolayout.protobuf.InvalidProtocolBufferException;
import com.google.common.util.concurrent.ListenableFuture;
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TimelineBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TimelineBuilders.java
index 647d4cc..1f94c0d 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TimelineBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TimelineBuilders.java
@@ -23,7 +23,7 @@
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.tiles.LayoutElementBuilders.Layout;
-import androidx.wear.tiles.proto.TimelineProto;
+import androidx.wear.protolayout.proto.TimelineProto;
import java.util.Collections;
import java.util.List;
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TypeBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TypeBuilders.java
index 80ec6ac..69cf3db 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TypeBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TypeBuilders.java
@@ -21,7 +21,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
-import androidx.wear.tiles.proto.TypesProto;
+import androidx.wear.protolayout.proto.TypesProto;
/** Builders for extensible primitive types used by layout elements. */
public final class TypeBuilders {
diff --git a/wear/tiles/tiles/src/test/java/androidx/wear/tiles/ResourcesDataTest.java b/wear/tiles/tiles/src/test/java/androidx/wear/tiles/ResourcesDataTest.java
index 9465918..cdbb5a9 100644
--- a/wear/tiles/tiles/src/test/java/androidx/wear/tiles/ResourcesDataTest.java
+++ b/wear/tiles/tiles/src/test/java/androidx/wear/tiles/ResourcesDataTest.java
@@ -20,7 +20,7 @@
import android.os.Parcel;
-import androidx.wear.tiles.proto.ResourceProto.Resources;
+import androidx.wear.protolayout.proto.ResourceProto.Resources;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/wear/tiles/tiles/src/test/java/androidx/wear/tiles/TileServiceTest.java b/wear/tiles/tiles/src/test/java/androidx/wear/tiles/TileServiceTest.java
index a4e00d1..d6bf3f6 100644
--- a/wear/tiles/tiles/src/test/java/androidx/wear/tiles/TileServiceTest.java
+++ b/wear/tiles/tiles/src/test/java/androidx/wear/tiles/TileServiceTest.java
@@ -34,7 +34,7 @@
import androidx.wear.tiles.TileBuilders.Version;
import androidx.wear.tiles.proto.EventProto;
import androidx.wear.tiles.proto.RequestProto;
-import androidx.wear.tiles.proto.ResourceProto.Resources;
+import androidx.wear.protolayout.proto.ResourceProto.Resources;
import androidx.wear.tiles.proto.TileProto.Tile;
import com.google.common.truth.Expect;