Migrate wear tiles to use JSpecify annotations
CL created by running `development/jspecify_update.py wear/tiles`
We are updating all AndroidX libraries to use the Jspecify nullness annotations (https://docs.google.com/document/d/1XjainD032hUdCfgXIzRThHvP9FJANYuocKaTDXWuLXo/edit?usp=sharing)
Bug: 326456246
Test: `checkApi`, `lint`, `runErrorProne`
Relnote: "This library now uses [JSpecify nullness annotations](https://jspecify.dev/), which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode"
Change-Id: I390e9fc6d6e16227f3c7f1d114aa15c4c4626b65
diff --git a/wear/tiles/tiles-material/build.gradle b/wear/tiles/tiles-material/build.gradle
index 5a1fa54..f1afc74 100644
--- a/wear/tiles/tiles-material/build.gradle
+++ b/wear/tiles/tiles-material/build.gradle
@@ -32,6 +32,7 @@
}
dependencies {
+ api(libs.jspecify)
api("androidx.annotation:annotation:1.8.1")
api(project(":wear:tiles:tiles"))
implementation(project(":wear:tiles:tiles-proto"))
diff --git a/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/RunnerUtils.java b/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/RunnerUtils.java
index f630834..a8cb5ea 100644
--- a/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/RunnerUtils.java
+++ b/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/RunnerUtils.java
@@ -22,13 +22,14 @@
import android.graphics.Bitmap;
import android.util.Log;
-import androidx.annotation.NonNull;
import androidx.test.core.app.ActivityScenario;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.screenshot.AndroidXScreenshotTestRule;
import androidx.test.screenshot.matchers.MSSIMMatcher;
import androidx.wear.tiles.material.testapp.GoldenTestActivity;
+import org.jspecify.annotations.NonNull;
+
@SuppressWarnings("deprecation")
public class RunnerUtils {
// This isn't totally ideal right now. The screenshot tests run on a phone, so emulate some
@@ -40,7 +41,7 @@
public static void runSingleScreenshotTest(
@NonNull AndroidXScreenshotTestRule rule,
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement layoutElement,
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement layoutElement,
@NonNull String expected) {
byte[] layoutElementPayload = layoutElement.toLayoutElementProto().toByteArray();
diff --git a/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/TestCasesGenerator.java b/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/TestCasesGenerator.java
index 50d9fb8..531d07f 100644
--- a/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/TestCasesGenerator.java
+++ b/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/TestCasesGenerator.java
@@ -19,7 +19,7 @@
import android.content.Context;
import android.graphics.Color;
-import androidx.annotation.NonNull;
+import org.jspecify.annotations.NonNull;
import java.util.HashMap;
import java.util.Map;
@@ -38,11 +38,12 @@
* different for different user font sizes. Note that some of the golden will have the same name
* as it should point on the same size independent image.
*/
- @NonNull
- static Map<String, androidx.wear.tiles.LayoutElementBuilders.LayoutElement> generateTestCases(
- @NonNull Context context,
- @NonNull androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters deviceParameters,
- @NonNull String goldenSuffix) {
+ static @NonNull Map<String, androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ generateTestCases(
+ @NonNull Context context,
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
+ deviceParameters,
+ @NonNull String goldenSuffix) {
androidx.wear.tiles.ModifiersBuilders.Clickable clickable =
new androidx.wear.tiles.ModifiersBuilders.Clickable.Builder()
.setOnClick(
diff --git a/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/layouts/TestCasesGenerator.java b/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/layouts/TestCasesGenerator.java
index 5984524..342d482 100644
--- a/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/layouts/TestCasesGenerator.java
+++ b/wear/tiles/tiles-material/src/androidTest/java/androidx/wear/tiles/material/layouts/TestCasesGenerator.java
@@ -20,7 +20,8 @@
import android.graphics.Color;
import androidx.annotation.Dimension;
-import androidx.annotation.NonNull;
+
+import org.jspecify.annotations.NonNull;
import java.util.HashMap;
import java.util.Map;
@@ -37,11 +38,12 @@
* different for different user font sizes. Note that some of the golden will have the same name
* as it should point on the same size independent image.
*/
- @NonNull
- static Map<String, androidx.wear.tiles.LayoutElementBuilders.LayoutElement> generateTestCases(
- @NonNull Context context,
- @NonNull androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters deviceParameters,
- @NonNull String goldenSuffix) {
+ static @NonNull Map<String, androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ generateTestCases(
+ @NonNull Context context,
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
+ deviceParameters,
+ @NonNull String goldenSuffix) {
androidx.wear.tiles.ModifiersBuilders.Clickable clickable =
new androidx.wear.tiles.ModifiersBuilders.Clickable.Builder()
.setOnClick(
@@ -635,13 +637,11 @@
return testCases;
}
- @NonNull
- private static androidx.wear.tiles.ColorBuilders.ColorProp color(int yellow) {
+ private static androidx.wear.tiles.ColorBuilders.@NonNull ColorProp color(int yellow) {
return androidx.wear.tiles.ColorBuilders.argb(yellow);
}
- @NonNull
- private static androidx.wear.tiles.material.Text buildTextLabel(
+ private static androidx.wear.tiles.material.@NonNull Text buildTextLabel(
@NonNull Context context, @NonNull String text) {
return new androidx.wear.tiles.material.Text.Builder(context, text)
.setTypography(androidx.wear.tiles.material.Typography.TYPOGRAPHY_CAPTION1)
@@ -649,8 +649,8 @@
.build();
}
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.Box buildColoredBoxMSL(int color) {
+ private static androidx.wear.tiles.LayoutElementBuilders.@NonNull Box buildColoredBoxMSL(
+ int color) {
return new androidx.wear.tiles.LayoutElementBuilders.Box.Builder()
.setWidth(androidx.wear.tiles.DimensionBuilders.dp(60))
.setHeight(androidx.wear.tiles.DimensionBuilders.dp(60))
@@ -665,8 +665,8 @@
.build();
}
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.Box buildColoredBoxPLL(int color) {
+ private static androidx.wear.tiles.LayoutElementBuilders.@NonNull Box buildColoredBoxPLL(
+ int color) {
return new androidx.wear.tiles.LayoutElementBuilders.Box.Builder()
.setWidth(androidx.wear.tiles.DimensionBuilders.expand())
.setHeight(androidx.wear.tiles.DimensionBuilders.dp(60))
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 8374563..6e4ea0c 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
@@ -31,7 +31,6 @@
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
-import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.wear.protolayout.LayoutElementBuilders;
import androidx.wear.protolayout.LayoutElementBuilders.Layout;
@@ -42,6 +41,8 @@
import androidx.wear.tiles.material.R;
import androidx.wear.tiles.renderer.TileRenderer;
+import org.jspecify.annotations.Nullable;
+
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
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 b469d86..2689359 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
@@ -22,13 +22,14 @@
import androidx.annotation.Dimension;
import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.HashMap;
@@ -92,9 +93,9 @@
*/
static final String METADATA_TAG_CUSTOM_CONTENT = "CSTBTN";
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.Box mElement;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull Box mElement;
- Button(@NonNull androidx.wear.tiles.LayoutElementBuilders.Box element) {
+ Button(androidx.wear.tiles.LayoutElementBuilders.@NonNull Box element) {
mElement = element;
}
@@ -107,27 +108,27 @@
private static final int IMAGE = 2;
private static final int CUSTOM_CONTENT = 3;
- @NonNull static final Map<Integer, String> TYPE_TO_TAG = new HashMap<>();
+ static final @NonNull Map<Integer, String> TYPE_TO_TAG = new HashMap<>();
@RestrictTo(RestrictTo.Scope.LIBRARY)
@Retention(RetentionPolicy.SOURCE)
@IntDef({NOT_SET, ICON, TEXT, IMAGE, CUSTOM_CONTENT})
@interface ButtonType {}
- @NonNull private final Context mContext;
- @Nullable private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mCustomContent;
- @NonNull private final androidx.wear.tiles.ModifiersBuilders.Clickable mClickable;
- @NonNull private CharSequence mContentDescription = "";
+ private final @NonNull Context mContext;
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement mCustomContent;
+ private final androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable mClickable;
+ private @NonNull CharSequence mContentDescription = "";
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DpProp mSize = ButtonDefaults.DEFAULT_SIZE;
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DpProp mSize =
+ ButtonDefaults.DEFAULT_SIZE;
- @Nullable private String mText = null;
- @Nullable private Integer mTypographyName = null;
- @Nullable private String mIcon = null;
- @Nullable private androidx.wear.tiles.DimensionBuilders.DpProp mIconSize = null;
- @Nullable private String mImage = null;
- @NonNull private ButtonColors mButtonColors = ButtonDefaults.PRIMARY_COLORS;
+ private @Nullable String mText = null;
+ private @Nullable Integer mTypographyName = null;
+ private @Nullable String mIcon = null;
+ private androidx.wear.tiles.DimensionBuilders.@Nullable DpProp mIconSize = null;
+ private @Nullable String mImage = null;
+ private @NonNull ButtonColors mButtonColors = ButtonDefaults.PRIMARY_COLORS;
@ButtonType private int mType = NOT_SET;
static {
@@ -148,7 +149,7 @@
*/
public Builder(
@NonNull Context context,
- @NonNull androidx.wear.tiles.ModifiersBuilders.Clickable clickable) {
+ androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable clickable) {
mClickable = clickable;
mContext = context;
}
@@ -157,8 +158,7 @@
* Sets the content description for the {@link Button}. It is highly recommended to provide
* this for button containing icon or image.
*/
- @NonNull
- public Builder setContentDescription(@NonNull CharSequence contentDescription) {
+ public @NonNull Builder setContentDescription(@NonNull CharSequence contentDescription) {
this.mContentDescription = contentDescription;
return this;
}
@@ -169,8 +169,8 @@
* ButtonDefaults#EXTRA_LARGE_SIZE}. If not set, {@link ButtonDefaults#DEFAULT_SIZE} will be
* used.
*/
- @NonNull
- public Builder setSize(@NonNull androidx.wear.tiles.DimensionBuilders.DpProp size) {
+ public @NonNull Builder setSize(
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp size) {
mSize = size;
return this;
}
@@ -181,8 +181,7 @@
* ButtonDefaults#EXTRA_LARGE_SIZE}. If not set, {@link ButtonDefaults#DEFAULT_SIZE} will be
* used.
*/
- @NonNull
- public Builder setSize(@Dimension(unit = DP) float size) {
+ public @NonNull Builder setSize(@Dimension(unit = DP) float size) {
mSize = androidx.wear.tiles.DimensionBuilders.dp(size);
return this;
}
@@ -191,8 +190,7 @@
* Sets the colors for the {@link Button}. If not set, {@link ButtonDefaults#PRIMARY_COLORS}
* will be used.
*/
- @NonNull
- public Builder setButtonColors(@NonNull ButtonColors buttonColors) {
+ public @NonNull Builder setButtonColors(@NonNull ButtonColors buttonColors) {
mButtonColors = buttonColors;
return this;
}
@@ -200,9 +198,8 @@
/**
* Sets the custom content for this Button. Any previously added content will be overridden.
*/
- @NonNull
- public Builder setCustomContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement content) {
+ public @NonNull Builder setCustomContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement content) {
resetContent();
this.mCustomContent = content;
this.mType = CUSTOM_CONTENT;
@@ -215,10 +212,9 @@
* from {@link ButtonColors} and with the given size. This icon should be image with chosen
* alpha channel and not an actual image.
*/
- @NonNull
- public Builder setIconContent(
+ public @NonNull Builder setIconContent(
@NonNull String imageResourceId,
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp size) {
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp size) {
resetContent();
this.mIcon = imageResourceId;
this.mType = ICON;
@@ -232,8 +228,7 @@
* icon will be tinted to the given content color from {@link ButtonColors}. This icon
* should be image with chosen alpha channel and not an actual image.
*/
- @NonNull
- public Builder setIconContent(@NonNull String imageResourceId) {
+ public @NonNull Builder setIconContent(@NonNull String imageResourceId) {
resetContent();
this.mIcon = imageResourceId;
this.mType = ICON;
@@ -248,8 +243,7 @@
* Any previously added content will be overridden. Text should contain no more than 3
* characters, otherwise it will overflow from the edges.
*/
- @NonNull
- public Builder setTextContent(@NonNull String text) {
+ public @NonNull Builder setTextContent(@NonNull String text) {
resetContent();
this.mText = text;
this.mType = TEXT;
@@ -262,8 +256,7 @@
* Text} component. Any previously added content will be overridden. Text should contain no
* more than 3 characters, otherwise it will overflow from the edges.
*/
- @NonNull
- public Builder setTextContent(
+ public @NonNull Builder setTextContent(
@NonNull String text, @Typography.TypographyName int typographyName) {
resetContent();
this.mText = text;
@@ -276,8 +269,7 @@
* Sets the content of this Button to be the given image, i.e. contacts photo. Any
* previously added content will be overridden.
*/
- @NonNull
- public Builder setImageContent(@NonNull String imageResourceId) {
+ public @NonNull Builder setImageContent(@NonNull String imageResourceId) {
resetContent();
this.mImage = imageResourceId;
this.mType = IMAGE;
@@ -294,9 +286,8 @@
}
/** Constructs and returns {@link Button} with the provided field and look. */
- @NonNull
@Override
- public Button build() {
+ public @NonNull Button build() {
androidx.wear.tiles.ModifiersBuilders.Modifiers.Builder modifiers =
new androidx.wear.tiles.ModifiersBuilders.Modifiers.Builder()
.setClickable(mClickable)
@@ -335,8 +326,8 @@
return new Button(element.build());
}
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement getCorrectContent() {
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement
+ getCorrectContent() {
androidx.wear.tiles.LayoutElementBuilders.LayoutElement.Builder content;
switch (mType) {
case ICON:
@@ -399,7 +390,7 @@
}
private static @Typography.TypographyName int getDefaultTypographyForSize(
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp size) {
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp size) {
if (size.getValue() == ButtonDefaults.LARGE_SIZE.getValue()) {
return Typography.TYPOGRAPHY_TITLE1;
} else if (size.getValue() == ButtonDefaults.EXTRA_LARGE_SIZE.getValue()) {
@@ -413,8 +404,7 @@
/**
* Returns the custom content of this Button if it has been added. Otherwise, it returns null.
*/
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getCustomContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement getCustomContent() {
if (!getMetadataTag().equals(METADATA_TAG_CUSTOM_CONTENT)) {
return null;
}
@@ -422,8 +412,7 @@
}
/** Returns the icon content of this Button if it has been added. Otherwise, it returns null. */
- @Nullable
- public String getIconContent() {
+ public @Nullable String getIconContent() {
androidx.wear.tiles.LayoutElementBuilders.Image icon = getIconContentObject();
return icon != null ? Helper.checkNotNull(icon.getResourceId()).getValue() : null;
}
@@ -431,42 +420,36 @@
/**
* Returns the image content of this Button if it has been added. Otherwise, it returns null.
*/
- @Nullable
- public String getImageContent() {
+ public @Nullable String getImageContent() {
androidx.wear.tiles.LayoutElementBuilders.Image image = getImageContentObject();
return image != null ? Helper.checkNotNull(image.getResourceId()).getValue() : null;
}
/** Returns the text content of this Button if it has been added. Otherwise, it returns null. */
- @Nullable
- public String getTextContent() {
+ public @Nullable String getTextContent() {
Text text = getTextContentObject();
return text != null ? text.getText() : null;
}
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement getAnyContent() {
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement getAnyContent() {
return Helper.checkNotNull(mElement.getContents().get(0));
}
- @Nullable
- private androidx.wear.tiles.LayoutElementBuilders.Image getIconContentObject() {
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable Image getIconContentObject() {
if (!getMetadataTag().equals(METADATA_TAG_ICON)) {
return null;
}
return (androidx.wear.tiles.LayoutElementBuilders.Image) getAnyContent();
}
- @Nullable
- private Text getTextContentObject() {
+ private @Nullable Text getTextContentObject() {
if (!getMetadataTag().equals(METADATA_TAG_TEXT)) {
return null;
}
return Text.fromLayoutElement(getAnyContent());
}
- @Nullable
- private androidx.wear.tiles.LayoutElementBuilders.Image getImageContentObject() {
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable Image getImageContentObject() {
if (!getMetadataTag().equals(METADATA_TAG_IMAGE)) {
return null;
}
@@ -474,14 +457,12 @@
}
/** Returns click event action associated with this Button. */
- @NonNull
- public androidx.wear.tiles.ModifiersBuilders.Clickable getClickable() {
+ public androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable getClickable() {
return Helper.checkNotNull(Helper.checkNotNull(mElement.getModifiers()).getClickable());
}
/** Returns content description for this Button. */
- @Nullable
- public CharSequence getContentDescription() {
+ public @Nullable CharSequence getContentDescription() {
androidx.wear.tiles.ModifiersBuilders.Semantics semantics =
Helper.checkNotNull(mElement.getModifiers()).getSemantics();
if (semantics == null) {
@@ -491,8 +472,7 @@
}
/** Returns size for this Button. */
- @NonNull
- public androidx.wear.tiles.DimensionBuilders.ContainerDimension getSize() {
+ public androidx.wear.tiles.DimensionBuilders.@NonNull ContainerDimension getSize() {
return Helper.checkNotNull(mElement.getWidth());
}
@@ -503,8 +483,7 @@
}
/** Returns button color of this Button. */
- @NonNull
- public ButtonColors getButtonColors() {
+ public @NonNull ButtonColors getButtonColors() {
androidx.wear.tiles.ColorBuilders.ColorProp backgroundColor = getBackgroundColor();
androidx.wear.tiles.ColorBuilders.ColorProp contentColor = null;
@@ -538,8 +517,7 @@
}
/** Returns metadata tag set to this Button. */
- @NonNull
- String getMetadataTag() {
+ @NonNull String getMetadataTag() {
return Helper.getMetadataTagName(
Helper.checkNotNull(Helper.checkNotNull(mElement.getModifiers()).getMetadata()));
}
@@ -550,9 +528,8 @@
* container.getContents().get(index)}) if that element can be converted to Button. Otherwise,
* it will return null.
*/
- @Nullable
- public static Button fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable Button fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof Button) {
return (Button) element;
}
@@ -568,17 +545,15 @@
return new Button(boxElement);
}
- @NonNull
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return Helper.checkNotNull(mElement.toLayoutElementProto());
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mElement.getFingerprint();
}
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ButtonColors.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ButtonColors.java
index 23face2..e48335b 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ButtonColors.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ButtonColors.java
@@ -17,7 +17,8 @@
package androidx.wear.tiles.material;
import androidx.annotation.ColorInt;
-import androidx.annotation.NonNull;
+
+import org.jspecify.annotations.NonNull;
/**
* Represents the background and content colors used in a button Tiles component.
@@ -32,8 +33,8 @@
@Deprecated
@SuppressWarnings("deprecation")
public class ButtonColors {
- @NonNull private final androidx.wear.tiles.ColorBuilders.ColorProp mBackgroundColor;
- @NonNull private final androidx.wear.tiles.ColorBuilders.ColorProp mContentColor;
+ private final androidx.wear.tiles.ColorBuilders.@NonNull ColorProp mBackgroundColor;
+ private final androidx.wear.tiles.ColorBuilders.@NonNull ColorProp mContentColor;
/**
* Constructor for {@link ButtonColors} object.
@@ -55,8 +56,8 @@
* @param contentColor The content color or tint color to be used for a button.
*/
public ButtonColors(
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp backgroundColor,
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp contentColor) {
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp backgroundColor,
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp contentColor) {
mBackgroundColor = backgroundColor;
mContentColor = contentColor;
}
@@ -65,8 +66,7 @@
* Returns a {@link ButtonColors} object, using the current Primary colors from the given {@link
* Colors}.
*/
- @NonNull
- public static ButtonColors primaryButtonColors(@NonNull Colors colors) {
+ public static @NonNull ButtonColors primaryButtonColors(@NonNull Colors colors) {
return new ButtonColors(colors.getPrimary(), colors.getOnPrimary());
}
@@ -74,20 +74,17 @@
* Returns a {@link ButtonColors} object, using the current Surface colors from the given {@link
* Colors}.
*/
- @NonNull
- public static ButtonColors secondaryButtonColors(@NonNull Colors colors) {
+ public static @NonNull ButtonColors secondaryButtonColors(@NonNull Colors colors) {
return new ButtonColors(colors.getSurface(), colors.getOnSurface());
}
/** The background color to be used on a button Tiles components. */
- @NonNull
- public androidx.wear.tiles.ColorBuilders.ColorProp getBackgroundColor() {
+ public androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getBackgroundColor() {
return mBackgroundColor;
}
/** The content or tint color to be used on a button Tiles components. */
- @NonNull
- public androidx.wear.tiles.ColorBuilders.ColorProp getContentColor() {
+ public androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getContentColor() {
return mContentColor;
}
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ButtonDefaults.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ButtonDefaults.java
index 3fa5303..6a38829 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ButtonDefaults.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ButtonDefaults.java
@@ -19,7 +19,8 @@
import static androidx.annotation.Dimension.DP;
import androidx.annotation.Dimension;
-import androidx.annotation.NonNull;
+
+import org.jspecify.annotations.NonNull;
/**
* Contains the default values used by button Tiles components.
@@ -33,41 +34,34 @@
private ButtonDefaults() {}
/** The default size for standard {@link Button}. */
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp DEFAULT_SIZE =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp DEFAULT_SIZE =
androidx.wear.tiles.DimensionBuilders.dp(52);
/** The recommended size for large {@link Button}. */
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp LARGE_SIZE =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp LARGE_SIZE =
androidx.wear.tiles.DimensionBuilders.dp(60);
/** The recommended size for extra large {@link Button}. */
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp EXTRA_LARGE_SIZE =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp EXTRA_LARGE_SIZE =
androidx.wear.tiles.DimensionBuilders.dp(88);
/** Returns the recommended icon size for the given size of a {@link Button}. */
- @NonNull
- public static androidx.wear.tiles.DimensionBuilders.DpProp recommendedIconSize(
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp buttonSize) {
+ public static androidx.wear.tiles.DimensionBuilders.@NonNull DpProp recommendedIconSize(
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp buttonSize) {
return recommendedIconSize(buttonSize.getValue());
}
/** Returns the recommended icon size for the given size of a {@link Button}. */
- @NonNull
- public static androidx.wear.tiles.DimensionBuilders.DpProp recommendedIconSize(
+ public static androidx.wear.tiles.DimensionBuilders.@NonNull DpProp recommendedIconSize(
@Dimension(unit = DP) float buttonSize) {
return androidx.wear.tiles.DimensionBuilders.dp(buttonSize / 2);
}
/** The recommended colors for a primary {@link Button}. */
- @NonNull
- public static final ButtonColors PRIMARY_COLORS =
+ public static final @NonNull ButtonColors PRIMARY_COLORS =
ButtonColors.primaryButtonColors(Colors.DEFAULT);
/** The recommended colors for a secondary {@link Button}. */
- @NonNull
- public static final ButtonColors SECONDARY_COLORS =
+ public static final @NonNull ButtonColors SECONDARY_COLORS =
ButtonColors.secondaryButtonColors(Colors.DEFAULT);
}
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 741a1a2..bef10f1 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
@@ -22,13 +22,14 @@
import androidx.annotation.Dimension;
import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.HashMap;
@@ -91,9 +92,9 @@
*/
static final String METADATA_TAG_CUSTOM_CONTENT = "CSTCHP";
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.Box mElement;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull Box mElement;
- Chip(@NonNull androidx.wear.tiles.LayoutElementBuilders.Box element) {
+ Chip(androidx.wear.tiles.LayoutElementBuilders.@NonNull Box element) {
mElement = element;
}
@@ -110,19 +111,19 @@
@IntDef({NOT_SET, TEXT, ICON, CUSTOM_CONTENT})
@interface ChipType {}
- @NonNull private final Context mContext;
- @Nullable private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mCustomContent;
- @Nullable private String mImageResourceId = null;
- @Nullable private String mPrimaryLabel = null;
- @Nullable private String mSecondaryLabel = null;
- @NonNull private final androidx.wear.tiles.ModifiersBuilders.Clickable mClickable;
- @NonNull private CharSequence mContentDescription = "";
- @NonNull private androidx.wear.tiles.DimensionBuilders.ContainerDimension mWidth;
+ private final @NonNull Context mContext;
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement mCustomContent;
+ private @Nullable String mImageResourceId = null;
+ private @Nullable String mPrimaryLabel = null;
+ private @Nullable String mSecondaryLabel = null;
+ private final androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable mClickable;
+ private @NonNull CharSequence mContentDescription = "";
+ private androidx.wear.tiles.DimensionBuilders.@NonNull ContainerDimension mWidth;
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DpProp mHeight = ChipDefaults.DEFAULT_HEIGHT;
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DpProp mHeight =
+ ChipDefaults.DEFAULT_HEIGHT;
- @NonNull private ChipColors mChipColors = ChipDefaults.PRIMARY_COLORS;
+ private @NonNull ChipColors mChipColors = ChipDefaults.PRIMARY_COLORS;
@androidx.wear.tiles.LayoutElementBuilders.HorizontalAlignment
private int mHorizontalAlign =
@@ -130,15 +131,14 @@
@Typography.TypographyName private int mPrimaryLabelTypography;
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DpProp mHorizontalPadding =
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DpProp mHorizontalPadding =
ChipDefaults.HORIZONTAL_PADDING;
private boolean mIsScalable = true;
private int mMaxLines = 0; // 0 indicates that is not set.
- @NonNull private String mMetadataTag = "";
+ private @NonNull String mMetadataTag = "";
- @NonNull static final Map<Integer, String> TYPE_TO_TAG = new HashMap<>();
+ static final @NonNull Map<Integer, String> TYPE_TO_TAG = new HashMap<>();
static {
TYPE_TO_TAG.put(ICON, METADATA_TAG_ICON);
@@ -157,10 +157,9 @@
*/
public Builder(
@NonNull Context context,
- @NonNull androidx.wear.tiles.ModifiersBuilders.Clickable clickable,
- @NonNull
- androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
- deviceParameters) {
+ androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable clickable,
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
+ deviceParameters) {
mContext = context;
mClickable = clickable;
mWidth =
@@ -174,9 +173,8 @@
/**
* Sets the width of {@link Chip}. If not set, default value will be set to fill the screen.
*/
- @NonNull
- public Builder setWidth(
- @NonNull androidx.wear.tiles.DimensionBuilders.ContainerDimension width) {
+ public @NonNull Builder setWidth(
+ androidx.wear.tiles.DimensionBuilders.@NonNull ContainerDimension width) {
mWidth = width;
return this;
}
@@ -185,8 +183,7 @@
* Sets the width of {@link TitleChip}. If not set, default value will be set to fill the
* screen.
*/
- @NonNull
- public Builder setWidth(@Dimension(unit = DP) float width) {
+ public @NonNull Builder setWidth(@Dimension(unit = DP) float width) {
mWidth = androidx.wear.tiles.DimensionBuilders.dp(width);
return this;
}
@@ -195,9 +192,8 @@
* Sets the custom content for the {@link Chip}. Any previously added content will be
* overridden.
*/
- @NonNull
- public Builder setCustomContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement content) {
+ public @NonNull Builder setCustomContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement content) {
this.mCustomContent = content;
this.mPrimaryLabel = "";
this.mSecondaryLabel = "";
@@ -209,8 +205,7 @@
* Sets the content description for the {@link Chip}. It is highly recommended to provide
* this for chip containing icon.
*/
- @NonNull
- public Builder setContentDescription(@NonNull CharSequence contentDescription) {
+ public @NonNull Builder setContentDescription(@NonNull CharSequence contentDescription) {
this.mContentDescription = contentDescription;
return this;
}
@@ -220,8 +215,7 @@
* overridden. Primary label can be on 1 or 2 lines, depending on the length and existence
* of secondary label.
*/
- @NonNull
- public Builder setPrimaryLabelContent(@NonNull String primaryLabel) {
+ public @NonNull Builder setPrimaryLabelContent(@NonNull String primaryLabel) {
this.mPrimaryLabel = primaryLabel;
this.mCustomContent = null;
return this;
@@ -232,8 +226,7 @@
*
* <p>Sets the font for the primary label and should only be used internally.
*/
- @NonNull
- Builder setPrimaryLabelTypography(@Typography.TypographyName int typography) {
+ @NonNull Builder setPrimaryLabelTypography(@Typography.TypographyName int typography) {
this.mPrimaryLabelTypography = typography;
return this;
}
@@ -243,8 +236,7 @@
*
* <p>Sets whether the font for the primary label is scalable.
*/
- @NonNull
- Builder setIsPrimaryLabelScalable(boolean isScalable) {
+ @NonNull Builder setIsPrimaryLabelScalable(boolean isScalable) {
this.mIsScalable = isScalable;
return this;
}
@@ -254,8 +246,7 @@
* be overridden. If secondary label is set, primary label must be set too with {@link
* #setPrimaryLabelContent}.
*/
- @NonNull
- public Builder setSecondaryLabelContent(@NonNull String secondaryLabel) {
+ public @NonNull Builder setSecondaryLabelContent(@NonNull String secondaryLabel) {
this.mSecondaryLabel = secondaryLabel;
this.mCustomContent = null;
return this;
@@ -267,8 +258,7 @@
* ChipColors}. This icon should be image with chosen alpha channel and not an actual image.
* If icon is set, primary label must be set too with {@link #setPrimaryLabelContent}.
*/
- @NonNull
- public Builder setIconContent(@NonNull String imageResourceId) {
+ public @NonNull Builder setIconContent(@NonNull String imageResourceId) {
this.mImageResourceId = imageResourceId;
this.mCustomContent = null;
return this;
@@ -281,8 +271,7 @@
* ChipColors#getIconColor()} will be used as color for the icon itself. If not set, {@link
* ChipDefaults#PRIMARY_COLORS} will be used.
*/
- @NonNull
- public Builder setChipColors(@NonNull ChipColors chipColors) {
+ public @NonNull Builder setChipColors(@NonNull ChipColors chipColors) {
mChipColors = chipColors;
return this;
}
@@ -295,8 +284,7 @@
* androidx.wear.tiles.LayoutElementBuilders.HorizontalAlignment#HORIZONTAL_ALIGN_START}
* will be used.
*/
- @NonNull
- public Builder setHorizontalAlignment(
+ public @NonNull Builder setHorizontalAlignment(
@androidx.wear.tiles.LayoutElementBuilders.HorizontalAlignment
int horizontalAlignment) {
mHorizontalAlign = horizontalAlignment;
@@ -304,38 +292,33 @@
}
/** Used for creating CompactChip and TitleChip. */
- @NonNull
- Builder setHorizontalPadding(
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp horizontalPadding) {
+ @NonNull Builder setHorizontalPadding(
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp horizontalPadding) {
this.mHorizontalPadding = horizontalPadding;
return this;
}
/** Used for creating CompactChip and TitleChip. */
- @NonNull
- Builder setHeight(@NonNull androidx.wear.tiles.DimensionBuilders.DpProp height) {
+ @NonNull Builder setHeight(androidx.wear.tiles.DimensionBuilders.@NonNull DpProp height) {
this.mHeight = height;
return this;
}
/** Used for creating CompactChip and TitleChip. */
- @NonNull
- Builder setMaxLines(int maxLines) {
+ @NonNull Builder setMaxLines(int maxLines) {
this.mMaxLines = maxLines;
return this;
}
/** Used for setting the correct tag in CompactChip and TitleChip. */
- @NonNull
- Builder setMetadataTag(@NonNull String metadataTag) {
+ @NonNull Builder setMetadataTag(@NonNull String metadataTag) {
this.mMetadataTag = metadataTag;
return this;
}
/** Constructs and returns {@link Chip} with the provided content and look. */
- @NonNull
@Override
- public Chip build() {
+ public @NonNull Chip build() {
androidx.wear.tiles.ModifiersBuilders.Modifiers.Builder modifiers =
new androidx.wear.tiles.ModifiersBuilders.Modifiers.Builder()
.setClickable(mClickable)
@@ -374,8 +357,7 @@
return new Chip(element.build());
}
- @NonNull
- private String getCorrectContentDescription() {
+ private @NonNull String getCorrectContentDescription() {
if (mContentDescription.length() == 0) {
mContentDescription = "";
if (mPrimaryLabel != null) {
@@ -414,8 +396,8 @@
return METADATA_TAG_TEXT;
}
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement getCorrectContent() {
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement
+ getCorrectContent() {
if (mCustomContent != null) {
return mCustomContent;
}
@@ -493,41 +475,36 @@
}
private androidx.wear.tiles.LayoutElementBuilders.Box.Builder putLayoutInBox(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
// Wrapped and centered content are default.
return new androidx.wear.tiles.LayoutElementBuilders.Box.Builder().addContent(element);
}
}
/** Returns height of this Chip. */
- @NonNull
- public androidx.wear.tiles.DimensionBuilders.ContainerDimension getHeight() {
+ public androidx.wear.tiles.DimensionBuilders.@NonNull ContainerDimension getHeight() {
return Helper.checkNotNull(mElement.getHeight());
}
/** Returns width of this Chip. */
- @NonNull
- public androidx.wear.tiles.DimensionBuilders.ContainerDimension getWidth() {
+ public androidx.wear.tiles.DimensionBuilders.@NonNull ContainerDimension getWidth() {
return Helper.checkNotNull(mElement.getWidth());
}
/** Returns click event action associated with this Chip. */
- @NonNull
- public androidx.wear.tiles.ModifiersBuilders.Clickable getClickable() {
+ public androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable getClickable() {
return Helper.checkNotNull(Helper.checkNotNull(mElement.getModifiers()).getClickable());
}
/** Returns background color of this Chip. */
- @NonNull
- private androidx.wear.tiles.ColorBuilders.ColorProp getBackgroundColor() {
+ private androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getBackgroundColor() {
return Helper.checkNotNull(
Helper.checkNotNull(Helper.checkNotNull(mElement.getModifiers()).getBackground())
.getColor());
}
/** Returns chip colors of this Chip. */
- @NonNull
- public ChipColors getChipColors() {
+ public @NonNull ChipColors getChipColors() {
androidx.wear.tiles.ColorBuilders.ColorProp backgroundColor = getBackgroundColor();
androidx.wear.tiles.ColorBuilders.ColorProp contentColor = null;
androidx.wear.tiles.ColorBuilders.ColorProp secondaryContentColor = null;
@@ -563,8 +540,7 @@
}
/** Returns content description of this Chip. */
- @Nullable
- public CharSequence getContentDescription() {
+ public @Nullable CharSequence getContentDescription() {
androidx.wear.tiles.ModifiersBuilders.Semantics semantics =
Helper.checkNotNull(mElement.getModifiers()).getSemantics();
if (semantics == null) {
@@ -574,8 +550,7 @@
}
/** Returns custom content from this Chip if it has been added. Otherwise, it returns null. */
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getCustomContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement getCustomContent() {
if (getMetadataTag().equals(METADATA_TAG_CUSTOM_CONTENT)) {
return Helper.checkNotNull(Helper.checkNotNull(mElement.getContents()).get(0));
}
@@ -583,38 +558,32 @@
}
/** Returns primary label from this Chip if it has been added. Otherwise, it returns null. */
- @Nullable
- public String getPrimaryLabelContent() {
+ public @Nullable String getPrimaryLabelContent() {
Text primaryLabel = getPrimaryLabelContentObject();
return primaryLabel != null ? primaryLabel.getText() : null;
}
/** Returns secondary label from this Chip if it has been added. Otherwise, it returns null. */
- @Nullable
- public String getSecondaryLabelContent() {
+ public @Nullable String getSecondaryLabelContent() {
Text label = getSecondaryLabelContentObject();
return label != null ? label.getText() : null;
}
/** Returns icon id from this Chip if it has been added. Otherwise, it returns null. */
- @Nullable
- public String getIconContent() {
+ public @Nullable String getIconContent() {
androidx.wear.tiles.LayoutElementBuilders.Image icon = getIconContentObject();
return icon != null ? Helper.checkNotNull(icon.getResourceId()).getValue() : null;
}
- @Nullable
- private Text getPrimaryLabelContentObject() {
+ private @Nullable Text getPrimaryLabelContentObject() {
return getPrimaryOrSecondaryLabelContent(0);
}
- @Nullable
- private Text getSecondaryLabelContentObject() {
+ private @Nullable Text getSecondaryLabelContentObject() {
return getPrimaryOrSecondaryLabelContent(1);
}
- @Nullable
- private androidx.wear.tiles.LayoutElementBuilders.Image getIconContentObject() {
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable Image getIconContentObject() {
if (!getMetadataTag().equals(METADATA_TAG_ICON)) {
return null;
}
@@ -624,8 +593,7 @@
.get(0));
}
- @Nullable
- private Text getPrimaryOrSecondaryLabelContent(int index) {
+ private @Nullable Text getPrimaryOrSecondaryLabelContent(int index) {
String metadataTag = getMetadataTag();
if (metadataTag.equals(METADATA_TAG_CUSTOM_CONTENT)) {
return null;
@@ -669,8 +637,7 @@
}
/** Returns metadata tag set to this Chip. */
- @NonNull
- String getMetadataTag() {
+ @NonNull String getMetadataTag() {
return Helper.getMetadataTagName(
Helper.checkNotNull(Helper.checkNotNull(mElement.getModifiers()).getMetadata()));
}
@@ -681,9 +648,8 @@
* container.getContents().get(index)}) if that element can be converted to Chip. Otherwise, it
* will return null.
*/
- @Nullable
- public static Chip fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable Chip fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof Chip) {
return (Chip) element;
}
@@ -699,17 +665,15 @@
return new Chip(boxElement);
}
- @NonNull
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return mElement.toLayoutElementProto();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mElement.getFingerprint();
}
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ChipColors.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ChipColors.java
index 18ae16e..8eb19b4 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ChipColors.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ChipColors.java
@@ -17,7 +17,8 @@
package androidx.wear.tiles.material;
import androidx.annotation.ColorInt;
-import androidx.annotation.NonNull;
+
+import org.jspecify.annotations.NonNull;
/**
* Represents the background and content colors used in a chip Tiles component.
@@ -32,10 +33,10 @@
@Deprecated
@SuppressWarnings("deprecation")
public class ChipColors {
- @NonNull private final androidx.wear.tiles.ColorBuilders.ColorProp mBackgroundColor;
- @NonNull private final androidx.wear.tiles.ColorBuilders.ColorProp mIconColor;
- @NonNull private final androidx.wear.tiles.ColorBuilders.ColorProp mContentColor;
- @NonNull private final androidx.wear.tiles.ColorBuilders.ColorProp mSecondaryContentColor;
+ private final androidx.wear.tiles.ColorBuilders.@NonNull ColorProp mBackgroundColor;
+ private final androidx.wear.tiles.ColorBuilders.@NonNull ColorProp mIconColor;
+ private final androidx.wear.tiles.ColorBuilders.@NonNull ColorProp mContentColor;
+ private final androidx.wear.tiles.ColorBuilders.@NonNull ColorProp mSecondaryContentColor;
/**
* Constructor for the {@link ChipColors} object.
@@ -85,10 +86,10 @@
* component.
*/
public ChipColors(
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp backgroundColor,
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp iconColor,
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp contentColor,
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp secondaryContentColor) {
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp backgroundColor,
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp iconColor,
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp contentColor,
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp secondaryContentColor) {
mBackgroundColor = backgroundColor;
mIconColor = iconColor;
mContentColor = contentColor;
@@ -102,8 +103,8 @@
* @param contentColor The content color to be used for all items inside a chip Tiles component.
*/
public ChipColors(
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp backgroundColor,
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp contentColor) {
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp backgroundColor,
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp contentColor) {
mBackgroundColor = backgroundColor;
mIconColor = contentColor;
mContentColor = contentColor;
@@ -114,8 +115,7 @@
* Returns a {@link ChipColors} object, using the current Primary colors from the given {@link
* Colors}.
*/
- @NonNull
- public static ChipColors primaryChipColors(@NonNull Colors colors) {
+ public static @NonNull ChipColors primaryChipColors(@NonNull Colors colors) {
return new ChipColors(colors.getPrimary(), colors.getOnPrimary());
}
@@ -123,32 +123,27 @@
* Returns a {@link ChipColors} object, using the current Surface colors from the given {@link
* Colors}.
*/
- @NonNull
- public static ChipColors secondaryChipColors(@NonNull Colors colors) {
+ public static @NonNull ChipColors secondaryChipColors(@NonNull Colors colors) {
return new ChipColors(colors.getSurface(), colors.getOnSurface());
}
/** The background color to be used on a chip Tiles components. */
- @NonNull
- public androidx.wear.tiles.ColorBuilders.ColorProp getBackgroundColor() {
+ public androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getBackgroundColor() {
return mBackgroundColor;
}
/** The icon color to be used on a chip Tiles components. */
- @NonNull
- public androidx.wear.tiles.ColorBuilders.ColorProp getIconColor() {
+ public androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getIconColor() {
return mIconColor;
}
/** The main text color to be used on a chip Tiles components. */
- @NonNull
- public androidx.wear.tiles.ColorBuilders.ColorProp getContentColor() {
+ public androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getContentColor() {
return mContentColor;
}
/** The label text color to be used on a chip Tiles components. */
- @NonNull
- public androidx.wear.tiles.ColorBuilders.ColorProp getSecondaryContentColor() {
+ public androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getSecondaryContentColor() {
return mSecondaryContentColor;
}
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ChipDefaults.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ChipDefaults.java
index ccdc94d..f848a1e 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ChipDefaults.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ChipDefaults.java
@@ -16,10 +16,11 @@
package androidx.wear.tiles.material;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
+import org.jspecify.annotations.NonNull;
+
/**
* Contains the default values used by chip Tiles components.
*
@@ -33,26 +34,22 @@
/** The default height for standard {@link Chip} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp DEFAULT_HEIGHT =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp DEFAULT_HEIGHT =
androidx.wear.tiles.DimensionBuilders.dp(52);
/** The default height for standard {@link CompactChip} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp COMPACT_HEIGHT =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp COMPACT_HEIGHT =
androidx.wear.tiles.DimensionBuilders.dp(32);
/** The default height of tappable area for standard {@link CompactChip} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp COMPACT_HEIGHT_TAPPABLE =
- androidx.wear.tiles.DimensionBuilders.dp(48);
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp
+ COMPACT_HEIGHT_TAPPABLE = androidx.wear.tiles.DimensionBuilders.dp(48);
/** The default height for standard {@link TitleChip} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp TITLE_HEIGHT =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp TITLE_HEIGHT =
androidx.wear.tiles.DimensionBuilders.dp(60);
/** The recommended horizontal margin used for width for standard {@link Chip} */
@@ -61,60 +58,50 @@
/** The recommended horizontal padding for standard {@link Chip} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp HORIZONTAL_PADDING =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp HORIZONTAL_PADDING =
androidx.wear.tiles.DimensionBuilders.dp(14);
/** The recommended horizontal padding for standard {@link CompactChip} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp COMPACT_HORIZONTAL_PADDING =
- androidx.wear.tiles.DimensionBuilders.dp(12);
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp
+ COMPACT_HORIZONTAL_PADDING = androidx.wear.tiles.DimensionBuilders.dp(12);
/** The recommended horizontal padding for standard {@link TitleChip} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp TITLE_HORIZONTAL_PADDING =
- androidx.wear.tiles.DimensionBuilders.dp(16);
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp
+ TITLE_HORIZONTAL_PADDING = androidx.wear.tiles.DimensionBuilders.dp(16);
/** The recommended vertical space between icon and text in standard {@link Chip} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp ICON_SPACER_WIDTH =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp ICON_SPACER_WIDTH =
androidx.wear.tiles.DimensionBuilders.dp(6);
/** The icon size used in standard {@link Chip} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp ICON_SIZE =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp ICON_SIZE =
androidx.wear.tiles.DimensionBuilders.dp(24);
/** The recommended colors for a primary {@link Chip}. */
- @NonNull
- public static final ChipColors PRIMARY_COLORS = ChipColors.primaryChipColors(Colors.DEFAULT);
+ public static final @NonNull ChipColors PRIMARY_COLORS =
+ ChipColors.primaryChipColors(Colors.DEFAULT);
/** The recommended colors for a secondary {@link Chip}. */
- @NonNull
- public static final ChipColors SECONDARY_COLORS =
+ public static final @NonNull ChipColors SECONDARY_COLORS =
ChipColors.secondaryChipColors(Colors.DEFAULT);
/** The recommended colors for a primary {@link CompactChip}. */
- @NonNull
- public static final ChipColors COMPACT_PRIMARY_COLORS =
+ public static final @NonNull ChipColors COMPACT_PRIMARY_COLORS =
ChipColors.primaryChipColors(Colors.DEFAULT);
/** The recommended colors for a secondary {@link CompactChip}. */
- @NonNull
- public static final ChipColors COMPACT_SECONDARY_COLORS =
+ public static final @NonNull ChipColors COMPACT_SECONDARY_COLORS =
ChipColors.secondaryChipColors(Colors.DEFAULT);
/** The recommended colors for a primary {@link TitleChip}. */
- @NonNull
- public static final ChipColors TITLE_PRIMARY_COLORS =
+ public static final @NonNull ChipColors TITLE_PRIMARY_COLORS =
ChipColors.primaryChipColors(Colors.DEFAULT);
/** The recommended colors for a secondary {@link TitleChip}. */
- @NonNull
- public static final ChipColors TITLE_SECONDARY_COLORS =
+ public static final @NonNull ChipColors TITLE_SECONDARY_COLORS =
ChipColors.secondaryChipColors(Colors.DEFAULT);
}
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 4e83a9a..a417faf 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
@@ -20,13 +20,14 @@
import androidx.annotation.Dimension;
import androidx.annotation.FloatRange;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Tiles component {@link CircularProgressIndicator} that represents circular progress indicator
* which supports a gap in the circular track between startAngle and endAngle. [Progress Indicator
@@ -76,11 +77,11 @@
*/
static final String METADATA_TAG = "CPI";
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.Arc mElement;
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.ArcLine mProgress;
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.ArcLine mBackground;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull Arc mElement;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull ArcLine mProgress;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull ArcLine mBackground;
- CircularProgressIndicator(@NonNull androidx.wear.tiles.LayoutElementBuilders.Arc element) {
+ CircularProgressIndicator(androidx.wear.tiles.LayoutElementBuilders.@NonNull Arc element) {
this.mElement = element;
this.mBackground =
(androidx.wear.tiles.LayoutElementBuilders.ArcLine) element.getContents().get(0);
@@ -91,23 +92,19 @@
/** Builder class for {@link CircularProgressIndicator} */
public static final class Builder
implements androidx.wear.tiles.LayoutElementBuilders.LayoutElement.Builder {
- @NonNull
- private ProgressIndicatorColors mCircularProgressIndicatorColors =
+ private @NonNull ProgressIndicatorColors mCircularProgressIndicatorColors =
ProgressIndicatorDefaults.DEFAULT_COLORS;
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DpProp mStrokeWidth =
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DpProp mStrokeWidth =
ProgressIndicatorDefaults.DEFAULT_STROKE_WIDTH;
- @NonNull private CharSequence mContentDescription = "";
+ private @NonNull CharSequence mContentDescription = "";
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DegreesProp mStartAngle =
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DegreesProp mStartAngle =
androidx.wear.tiles.DimensionBuilders.degrees(
ProgressIndicatorDefaults.DEFAULT_START_ANGLE);
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DegreesProp mEndAngle =
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DegreesProp mEndAngle =
androidx.wear.tiles.DimensionBuilders.degrees(
ProgressIndicatorDefaults.DEFAULT_END_ANGLE);
@@ -122,8 +119,8 @@
* from 0 to 1. Progress will be colored in {@link ProgressIndicatorColors#getTrackColor}.
* If not set, 0 will be used.
*/
- @NonNull
- public Builder setProgress(@FloatRange(from = 0, to = 1) float progressPercentage) {
+ public @NonNull Builder setProgress(
+ @FloatRange(from = 0, to = 1) float progressPercentage) {
this.mProgress = progressPercentage;
return this;
}
@@ -134,8 +131,7 @@
* start arc from the 9 o'clock. If not set 0 will be used and the indicator will have full
* length.
*/
- @NonNull
- public Builder setStartAngle(float startAngle) {
+ public @NonNull Builder setStartAngle(float startAngle) {
this.mStartAngle = androidx.wear.tiles.DimensionBuilders.degrees(startAngle);
return this;
}
@@ -145,8 +141,7 @@
* 0 is 12 o'clock. End angle doesn't need to be within 0-360 range, but it must be larger
* than start angle. If not set 360 will be used and the indicator will have full length.
*/
- @NonNull
- public Builder setEndAngle(float endAngle) {
+ public @NonNull Builder setEndAngle(float endAngle) {
this.mEndAngle = androidx.wear.tiles.DimensionBuilders.degrees(endAngle);
return this;
}
@@ -155,8 +150,7 @@
* Sets the content description of the {@link CircularProgressIndicator} to be used for
* accessibility support.
*/
- @NonNull
- public Builder setContentDescription(@NonNull CharSequence contentDescription) {
+ public @NonNull Builder setContentDescription(@NonNull CharSequence contentDescription) {
this.mContentDescription = contentDescription;
return this;
}
@@ -167,8 +161,7 @@
* made, while {@link ProgressIndicatorColors#getTrackColor()} will be used for a background
* full size arc. If not set, {@link ProgressIndicatorDefaults#DEFAULT_COLORS} will be used.
*/
- @NonNull
- public Builder setCircularProgressIndicatorColors(
+ public @NonNull Builder setCircularProgressIndicatorColors(
@NonNull ProgressIndicatorColors circularProgressIndicatorColors) {
this.mCircularProgressIndicatorColors = circularProgressIndicatorColors;
return this;
@@ -178,9 +171,8 @@
* Sets the stroke width of the {@link CircularProgressIndicator}. Strongly recommended
* value is {@link ProgressIndicatorDefaults#DEFAULT_STROKE_WIDTH}.
*/
- @NonNull
- public Builder setStrokeWidth(
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp strokeWidth) {
+ public @NonNull Builder setStrokeWidth(
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp strokeWidth) {
this.mStrokeWidth = strokeWidth;
return this;
}
@@ -189,8 +181,7 @@
* Sets the stroke width of the {@link CircularProgressIndicator}. Strongly recommended
* value is {@link ProgressIndicatorDefaults#DEFAULT_STROKE_WIDTH}.
*/
- @NonNull
- public Builder setStrokeWidth(@Dimension(unit = DP) float strokeWidth) {
+ public @NonNull Builder setStrokeWidth(@Dimension(unit = DP) float strokeWidth) {
this.mStrokeWidth = androidx.wear.tiles.DimensionBuilders.dp(strokeWidth);
return this;
}
@@ -199,9 +190,8 @@
* Constructs and returns {@link CircularProgressIndicator} with the provided field and
* look.
*/
- @NonNull
@Override
- public CircularProgressIndicator build() {
+ public @NonNull CircularProgressIndicator build() {
checkAngles();
androidx.wear.tiles.DimensionBuilders.DegreesProp length = getLength();
@@ -268,8 +258,7 @@
}
}
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DegreesProp getLength() {
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DegreesProp getLength() {
float startAngle = mStartAngle.getValue();
float endAngle = mEndAngle.getValue();
if (endAngle <= startAngle) {
@@ -280,26 +269,22 @@
}
/** Returns angle representing progressed part of this CircularProgressIndicator. */
- @NonNull
- public androidx.wear.tiles.DimensionBuilders.DegreesProp getProgress() {
+ public androidx.wear.tiles.DimensionBuilders.@NonNull DegreesProp getProgress() {
return androidx.wear.tiles.material.Helper.checkNotNull(mProgress.getLength());
}
/** Returns stroke width of this CircularProgressIndicator. */
- @NonNull
- public androidx.wear.tiles.DimensionBuilders.DpProp getStrokeWidth() {
+ public androidx.wear.tiles.DimensionBuilders.@NonNull DpProp getStrokeWidth() {
return androidx.wear.tiles.material.Helper.checkNotNull(mProgress.getThickness());
}
/** Returns start angle of this CircularProgressIndicator. */
- @NonNull
- public androidx.wear.tiles.DimensionBuilders.DegreesProp getStartAngle() {
+ public androidx.wear.tiles.DimensionBuilders.@NonNull DegreesProp getStartAngle() {
return androidx.wear.tiles.material.Helper.checkNotNull(mElement.getAnchorAngle());
}
/** Returns start angle of this CircularProgressIndicator. */
- @NonNull
- public androidx.wear.tiles.DimensionBuilders.DegreesProp getEndAngle() {
+ public androidx.wear.tiles.DimensionBuilders.@NonNull DegreesProp getEndAngle() {
float backArcLength =
androidx.wear.tiles.material.Helper.checkNotNull(mBackground.getLength())
.getValue();
@@ -308,16 +293,14 @@
}
/** Returns main arc color of this CircularProgressIndicator. */
- @NonNull
- public ProgressIndicatorColors getCircularProgressIndicatorColors() {
+ public @NonNull ProgressIndicatorColors getCircularProgressIndicatorColors() {
return new ProgressIndicatorColors(
androidx.wear.tiles.material.Helper.checkNotNull(mProgress.getColor()),
androidx.wear.tiles.material.Helper.checkNotNull(mBackground.getColor()));
}
/** Returns content description of this CircularProgressIndicator. */
- @Nullable
- public CharSequence getContentDescription() {
+ public @Nullable CharSequence getContentDescription() {
androidx.wear.tiles.ModifiersBuilders.Semantics semantics =
androidx.wear.tiles.material.Helper.checkNotNull(mElement.getModifiers())
.getSemantics();
@@ -331,8 +314,7 @@
* Returns metadata tag set to this CircularProgressIndicator, which should be {@link
* #METADATA_TAG}.
*/
- @NonNull
- String getMetadataTag() {
+ @NonNull String getMetadataTag() {
return androidx.wear.tiles.material.Helper.getMetadataTagName(
androidx.wear.tiles.material.Helper.checkNotNull(
androidx.wear.tiles.material.Helper.checkNotNull(mElement.getModifiers())
@@ -345,9 +327,8 @@
* container's content with {@code container.getContents().get(index)}) if that element can be
* converted to CircularProgressIndicator. Otherwise, it will return null.
*/
- @Nullable
- public static CircularProgressIndicator fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable CircularProgressIndicator fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof CircularProgressIndicator) {
return (CircularProgressIndicator) element;
}
@@ -364,17 +345,15 @@
return new CircularProgressIndicator(arcElement);
}
- @NonNull
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return mElement.toLayoutElementProto();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mElement.getFingerprint();
}
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Colors.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Colors.java
index f638b1f..63af19d 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Colors.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Colors.java
@@ -17,10 +17,11 @@
package androidx.wear.tiles.material;
import androidx.annotation.ColorInt;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
+import org.jspecify.annotations.NonNull;
+
/**
* Represent the container for default color scheme in your Tile, that can be used to create color
* objects for all Material components.
@@ -55,8 +56,8 @@
public static final int ON_SURFACE = 0xFFFFFFFF;
/** The default color scheme to be used in Tiles Material components. */
- @NonNull
- public static final Colors DEFAULT = new Colors(PRIMARY, ON_PRIMARY, SURFACE, ON_SURFACE);
+ public static final @NonNull Colors DEFAULT =
+ new Colors(PRIMARY, ON_PRIMARY, SURFACE, ON_SURFACE);
private @ColorInt final int mPrimary;
private @ColorInt final int mOnPrimary;
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 ef9e6ba..bde902d 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
@@ -18,13 +18,14 @@
import android.content.Context;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Tiles component {@link CompactChip} that represents clickable object with the text.
*
@@ -67,10 +68,10 @@
*/
static final String METADATA_TAG = "CMPCHP";
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.Box mImpl;
- @NonNull private final Chip mElement;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull Box mImpl;
+ private final @NonNull Chip mElement;
- CompactChip(@NonNull androidx.wear.tiles.LayoutElementBuilders.Box element) {
+ CompactChip(androidx.wear.tiles.LayoutElementBuilders.@NonNull Box element) {
this.mImpl = element;
// We know for sure that content of the androidx.wear.tiles.LayoutElementBuilders.Box is
// Chip.
@@ -83,15 +84,14 @@
/** Builder class for {@link androidx.wear.tiles.material.CompactChip}. */
public static final class Builder
implements androidx.wear.tiles.LayoutElementBuilders.LayoutElement.Builder {
- @NonNull private final Context mContext;
- @NonNull private final String mText;
- @NonNull private final androidx.wear.tiles.ModifiersBuilders.Clickable mClickable;
+ private final @NonNull Context mContext;
+ private final @NonNull String mText;
+ private final androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable mClickable;
- @NonNull
- private final androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ private final androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
mDeviceParameters;
- @NonNull private ChipColors mChipColors = ChipDefaults.COMPACT_PRIMARY_COLORS;
+ private @NonNull ChipColors mChipColors = ChipDefaults.COMPACT_PRIMARY_COLORS;
/**
* Creates a builder for the {@link CompactChip} with associated action and the given text
@@ -105,9 +105,8 @@
public Builder(
@NonNull Context context,
@NonNull String text,
- @NonNull androidx.wear.tiles.ModifiersBuilders.Clickable clickable,
- @NonNull
- androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable clickable,
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
deviceParameters) {
this.mContext = context;
this.mText = text;
@@ -121,16 +120,14 @@
* ChipColors#getContentColor()} for the text. If not set, {@link
* ChipDefaults#COMPACT_PRIMARY_COLORS} will be used.
*/
- @NonNull
- public Builder setChipColors(@NonNull ChipColors chipColors) {
+ public @NonNull Builder setChipColors(@NonNull ChipColors chipColors) {
mChipColors = chipColors;
return this;
}
/** Constructs and returns {@link CompactChip} with the provided content and look. */
- @NonNull
@Override
- public CompactChip build() {
+ public @NonNull CompactChip build() {
Chip.Builder chipBuilder =
new Chip.Builder(mContext, mClickable, mDeviceParameters)
.setMetadataTag(METADATA_TAG)
@@ -173,26 +170,22 @@
}
/** Returns click event action associated with this Chip. */
- @NonNull
- public androidx.wear.tiles.ModifiersBuilders.Clickable getClickable() {
+ public androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable getClickable() {
return mElement.getClickable();
}
/** Returns chip color of this Chip. */
- @NonNull
- public ChipColors getChipColors() {
+ public @NonNull ChipColors getChipColors() {
return mElement.getChipColors();
}
/** Returns text content of this Chip. */
- @NonNull
- public String getText() {
+ public @NonNull String getText() {
return androidx.wear.tiles.material.Helper.checkNotNull(mElement.getPrimaryLabelContent());
}
/** Returns metadata tag set to this CompactChip, which should be {@link #METADATA_TAG}. */
- @NonNull
- String getMetadataTag() {
+ @NonNull String getMetadataTag() {
return mElement.getMetadataTag();
}
@@ -202,9 +195,8 @@
* container's content with {@code container.getContents().get(index)}) if that element can be
* converted to CompactChip. Otherwise, it will return null.
*/
- @Nullable
- public static CompactChip fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable CompactChip fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof CompactChip) {
return (CompactChip) element;
}
@@ -236,16 +228,14 @@
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
@Override
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return mImpl.toLayoutElementProto();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mImpl.getFingerprint();
}
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Helper.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Helper.java
index d81e33f..8253cba 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Helper.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Helper.java
@@ -16,11 +16,12 @@
package androidx.wear.tiles.material;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collection;
@@ -39,8 +40,7 @@
/** Returns given value if not null or throws {@code NullPointerException} otherwise. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static <T> T checkNotNull(@Nullable T value) {
+ public static <T> @NonNull T checkNotNull(@Nullable T value) {
if (value == null) {
throw new NullPointerException();
}
@@ -50,8 +50,7 @@
/**
* Returns radius in {@link androidx.wear.tiles.DimensionBuilders.DpProp} of the given diameter.
*/
- @NonNull
- static androidx.wear.tiles.DimensionBuilders.DpProp radiusOf(
+ static androidx.wear.tiles.DimensionBuilders.@NonNull DpProp radiusOf(
androidx.wear.tiles.DimensionBuilders.DpProp diameter) {
return androidx.wear.tiles.DimensionBuilders.dp(diameter.getValue() / 2);
}
@@ -62,8 +61,7 @@
*/
@RestrictTo(Scope.LIBRARY_GROUP)
public static boolean isRoundDevice(
- @NonNull
- androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
deviceParameters) {
return deviceParameters.getScreenShape()
== androidx.wear.tiles.DeviceParametersBuilders.SCREEN_SHAPE_ROUND;
@@ -71,15 +69,13 @@
/** Returns String representation of tag from byte array. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static String getTagName(@NonNull byte[] tagData) {
+ public static @NonNull String getTagName(byte @NonNull [] tagData) {
return new String(tagData, StandardCharsets.UTF_8);
}
/** Returns byte array representation of tag from String. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static byte[] getTagBytes(@NonNull String tagName) {
+ public static byte @NonNull [] getTagBytes(@NonNull String tagName) {
return tagName.getBytes(StandardCharsets.UTF_8);
}
@@ -87,9 +83,8 @@
* Returns the String representation of metadata tag from the given
* androidx.wear.tiles.ModifiersBuilders.ElementMetadata.
*/
- @NonNull
- public static String getMetadataTagName(
- @NonNull androidx.wear.tiles.ModifiersBuilders.ElementMetadata metadata) {
+ public static @NonNull String getMetadataTagName(
+ androidx.wear.tiles.ModifiersBuilders.@NonNull ElementMetadata metadata) {
return getTagName(getMetadataTagBytes(metadata));
}
@@ -97,9 +92,8 @@
* Returns the metadata tag from the given
* androidx.wear.tiles.ModifiersBuilders.ElementMetadata.
*/
- @NonNull
- public static byte[] getMetadataTagBytes(
- @NonNull androidx.wear.tiles.ModifiersBuilders.ElementMetadata metadata) {
+ public static byte @NonNull [] getMetadataTagBytes(
+ androidx.wear.tiles.ModifiersBuilders.@NonNull ElementMetadata metadata) {
return checkNotNull(metadata).getTagData();
}
@@ -108,7 +102,7 @@
* set to the given String value.
*/
public static boolean checkTag(
- @Nullable androidx.wear.tiles.ModifiersBuilders.Modifiers modifiers,
+ androidx.wear.tiles.ModifiersBuilders.@Nullable Modifiers modifiers,
@NonNull String validTag) {
return modifiers != null
&& modifiers.getMetadata() != null
@@ -120,7 +114,7 @@
* set to any of the value in the given String collection.
*/
public static boolean checkTag(
- @Nullable androidx.wear.tiles.ModifiersBuilders.Modifiers modifiers,
+ androidx.wear.tiles.ModifiersBuilders.@Nullable Modifiers modifiers,
@NonNull Collection<String> validTags) {
return modifiers != null
&& modifiers.getMetadata() != null
@@ -132,9 +126,9 @@
* set with prefix that is equal to the given String and its length is of the given base array.
*/
public static boolean checkTag(
- @Nullable androidx.wear.tiles.ModifiersBuilders.Modifiers modifiers,
+ androidx.wear.tiles.ModifiersBuilders.@Nullable Modifiers modifiers,
@NonNull String validPrefix,
- @NonNull byte[] validBase) {
+ byte @NonNull [] validBase) {
if (modifiers == null || modifiers.getMetadata() == null) {
return false;
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ProgressIndicatorColors.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ProgressIndicatorColors.java
index 079f675f..04af668 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ProgressIndicatorColors.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ProgressIndicatorColors.java
@@ -17,7 +17,8 @@
package androidx.wear.tiles.material;
import androidx.annotation.ColorInt;
-import androidx.annotation.NonNull;
+
+import org.jspecify.annotations.NonNull;
/**
* Represents the indicator and track colors used in a progress indicator Tiles component.
@@ -31,8 +32,8 @@
@Deprecated
@SuppressWarnings("deprecation")
public class ProgressIndicatorColors {
- @NonNull private final androidx.wear.tiles.ColorBuilders.ColorProp mIndicatorColor;
- @NonNull private final androidx.wear.tiles.ColorBuilders.ColorProp mTrackColor;
+ private final androidx.wear.tiles.ColorBuilders.@NonNull ColorProp mIndicatorColor;
+ private final androidx.wear.tiles.ColorBuilders.@NonNull ColorProp mTrackColor;
/**
* Constructor for {@link ProgressIndicatorColors} object.
@@ -43,8 +44,8 @@
* component.
*/
public ProgressIndicatorColors(
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp indicatorColor,
- @NonNull androidx.wear.tiles.ColorBuilders.ColorProp trackColor) {
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp indicatorColor,
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp trackColor) {
this.mIndicatorColor = indicatorColor;
this.mTrackColor = trackColor;
}
@@ -67,20 +68,17 @@
* indicator color and the current Surface color for the track color from the given {@link
* Colors}.
*/
- @NonNull
- public static ProgressIndicatorColors progressIndicatorColors(@NonNull Colors colors) {
+ public static @NonNull ProgressIndicatorColors progressIndicatorColors(@NonNull Colors colors) {
return new ProgressIndicatorColors(colors.getPrimary(), colors.getSurface());
}
/** The indicator color to be used for a progress indicator Tiles component. */
- @NonNull
- public androidx.wear.tiles.ColorBuilders.ColorProp getIndicatorColor() {
+ public androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getIndicatorColor() {
return mIndicatorColor;
}
/** The background track color to be used for a progress indicator Tiles component. */
- @NonNull
- public androidx.wear.tiles.ColorBuilders.ColorProp getTrackColor() {
+ public androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getTrackColor() {
return mTrackColor;
}
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ProgressIndicatorDefaults.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ProgressIndicatorDefaults.java
index ef92913..54c2c5b 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ProgressIndicatorDefaults.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/ProgressIndicatorDefaults.java
@@ -16,10 +16,11 @@
package androidx.wear.tiles.material;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
+import org.jspecify.annotations.NonNull;
+
/**
* Contains the default values used by {@link CircularProgressIndicator} Tiles components.
*
@@ -33,19 +34,16 @@
private ProgressIndicatorDefaults() {}
/** The default stroke width for {@link CircularProgressIndicator} */
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp DEFAULT_STROKE_WIDTH =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp DEFAULT_STROKE_WIDTH =
androidx.wear.tiles.DimensionBuilders.dp(8);
/** The default padding for {@link CircularProgressIndicator} */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp DEFAULT_PADDING =
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp DEFAULT_PADDING =
androidx.wear.tiles.DimensionBuilders.dp(6);
/** The recommended colors for {@link CircularProgressIndicator}. */
- @NonNull
- public static final ProgressIndicatorColors DEFAULT_COLORS =
+ public static final @NonNull ProgressIndicatorColors DEFAULT_COLORS =
ProgressIndicatorColors.progressIndicatorColors(Colors.DEFAULT);
static final float DEFAULT_GAP_LENGTH = 47.8f;
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 2819794..ed5b641 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
@@ -19,14 +19,15 @@
import android.content.Context;
import androidx.annotation.IntRange;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
import androidx.wear.protolayout.proto.ModifiersProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Tiles component {@link Text} that represents text object holding any information.
*
@@ -64,20 +65,19 @@
*/
static final String METADATA_TAG = "TXT";
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.Text mText;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull Text mText;
- Text(@NonNull androidx.wear.tiles.LayoutElementBuilders.Text mText) {
+ Text(androidx.wear.tiles.LayoutElementBuilders.@NonNull Text mText) {
this.mText = mText;
}
/** Builder class for {@link Text}. */
public static final class Builder
implements androidx.wear.tiles.LayoutElementBuilders.LayoutElement.Builder {
- @NonNull private final Context mContext;
- @NonNull private String mTextContent = "";
+ private final @NonNull Context mContext;
+ private @NonNull String mTextContent = "";
- @NonNull
- private androidx.wear.tiles.ColorBuilders.ColorProp mColor =
+ private androidx.wear.tiles.ColorBuilders.@NonNull ColorProp mColor =
androidx.wear.tiles.ColorBuilders.argb(Colors.DEFAULT.getOnPrimary());
private @Typography.TypographyName int mTypographyName = Typography.TYPOGRAPHY_DISPLAY1;
@@ -89,14 +89,13 @@
private int mMultilineAlignment =
androidx.wear.tiles.LayoutElementBuilders.TEXT_ALIGN_CENTER;
- @NonNull
- private androidx.wear.tiles.ModifiersBuilders.Modifiers mModifiers =
+ private androidx.wear.tiles.ModifiersBuilders.@NonNull Modifiers mModifiers =
new androidx.wear.tiles.ModifiersBuilders.Modifiers.Builder().build();
private @androidx.wear.tiles.LayoutElementBuilders.TextOverflow int mOverflow =
androidx.wear.tiles.LayoutElementBuilders.TEXT_OVERFLOW_ELLIPSIZE_END;
private boolean mIsScalable = true;
- @Nullable private Integer mCustomWeight = null;
+ private @Nullable Integer mCustomWeight = null;
/**
* Creates a builder for {@link Text}.
@@ -113,12 +112,11 @@
* Sets the typography for the {@link Text}. If not set, {@link
* Typography#TYPOGRAPHY_DISPLAY1} will be used.
*/
- @NonNull
@SuppressWarnings("MissingGetterMatchingBuilder")
// There is getFontStyle matching getter for this setter as the serialized format of the
// Tiles do not allow for a direct reconstruction of the all arguments, but it has
// androidx.wear.tiles.LayoutElementBuilders.FontStyle object of that text.
- public Builder setTypography(@Typography.TypographyName int typography) {
+ public @NonNull Builder setTypography(@Typography.TypographyName int typography) {
this.mTypographyName = typography;
return this;
}
@@ -136,29 +134,26 @@
* Sets the color for the {@link Text}. If not set, onPrimary color from the {@link
* Colors#DEFAULT} will be used.
*/
- @NonNull
- public Builder setColor(@NonNull androidx.wear.tiles.ColorBuilders.ColorProp color) {
+ public @NonNull Builder setColor(
+ androidx.wear.tiles.ColorBuilders.@NonNull ColorProp color) {
this.mColor = color;
return this;
}
/** Sets the text to be italic. If not set, false will be used. */
- @NonNull
- public Builder setItalic(boolean italic) {
+ public @NonNull Builder setItalic(boolean italic) {
this.mItalic = italic;
return this;
}
/** Sets the text to be underlined. If not set, false will be used. */
- @NonNull
- public Builder setUnderline(boolean underline) {
+ public @NonNull Builder setUnderline(boolean underline) {
this.mUnderline = underline;
return this;
}
/** Sets the maximum lines of text. If not set, 1 will be used. */
- @NonNull
- public Builder setMaxLines(@IntRange(from = 1) int maxLines) {
+ public @NonNull Builder setMaxLines(@IntRange(from = 1) int maxLines) {
this.mMaxLines = maxLines;
return this;
}
@@ -169,17 +164,15 @@
* container should be used. If not set, {@link
* androidx.wear.tiles.LayoutElementBuilders.TextAlignment#TEXT_ALIGN_CENTER} will be used.
*/
- @NonNull
- public Builder setMultilineAlignment(
+ public @NonNull Builder setMultilineAlignment(
@androidx.wear.tiles.LayoutElementBuilders.TextAlignment int multilineAlignment) {
this.mMultilineAlignment = multilineAlignment;
return this;
}
/** Sets the modifiers of text. */
- @NonNull
- public Builder setModifiers(
- @NonNull androidx.wear.tiles.ModifiersBuilders.Modifiers modifiers) {
+ public @NonNull Builder setModifiers(
+ androidx.wear.tiles.ModifiersBuilders.@NonNull Modifiers modifiers) {
this.mModifiers = modifiers;
return this;
}
@@ -189,8 +182,7 @@
* androidx.wear.tiles.LayoutElementBuilders.TextAlignment#TEXT_OVERFLOW_ELLIPSIZE_END} will
* be used.
*/
- @NonNull
- public Builder setOverflow(
+ public @NonNull Builder setOverflow(
@androidx.wear.tiles.LayoutElementBuilders.TextOverflow int overflow) {
this.mOverflow = overflow;
return this;
@@ -200,16 +192,15 @@
* Sets the weight of the font. If not set, default weight for the chosen Typography will be
* used.
*/
- @NonNull
- public Builder setWeight(@androidx.wear.tiles.LayoutElementBuilders.FontWeight int weight) {
+ public @NonNull Builder setWeight(
+ @androidx.wear.tiles.LayoutElementBuilders.FontWeight int weight) {
this.mCustomWeight = weight;
return this;
}
/** Constructs and returns {@link Text} with the provided content and look. */
- @NonNull
@Override
- public Text build() {
+ public @NonNull Text build() {
androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder fontStyleBuilder =
Typography.getFontStyleBuilder(mTypographyName, mContext, mIsScalable)
.setColor(mColor)
@@ -231,8 +222,7 @@
return new Text(text.build());
}
- @NonNull
- static androidx.wear.tiles.ModifiersBuilders.Modifiers addTagToModifiers(
+ static androidx.wear.tiles.ModifiersBuilders.@NonNull Modifiers addTagToModifiers(
androidx.wear.tiles.ModifiersBuilders.Modifiers modifiers) {
return androidx.wear.tiles.ModifiersBuilders.Modifiers.fromProto(
ModifiersProto.Modifiers.newBuilder(modifiers.toProto())
@@ -250,22 +240,19 @@
}
/** Returns the text of this Text element. */
- @NonNull
- public String getText() {
+ public @NonNull String getText() {
return androidx.wear.tiles.material.Helper.checkNotNull(
androidx.wear.tiles.material.Helper.checkNotNull(mText.getText()).getValue());
}
/** Returns the color of this Text element. */
- @NonNull
- public androidx.wear.tiles.ColorBuilders.ColorProp getColor() {
+ public androidx.wear.tiles.ColorBuilders.@NonNull ColorProp getColor() {
return androidx.wear.tiles.material.Helper.checkNotNull(
androidx.wear.tiles.material.Helper.checkNotNull(mText.getFontStyle()).getColor());
}
/** Returns the font style of this Text element. */
- @NonNull
- public androidx.wear.tiles.LayoutElementBuilders.FontStyle getFontStyle() {
+ public androidx.wear.tiles.LayoutElementBuilders.@NonNull FontStyle getFontStyle() {
return androidx.wear.tiles.material.Helper.checkNotNull(mText.getFontStyle());
}
@@ -287,8 +274,7 @@
}
/** Returns the modifiers of this Text element. */
- @NonNull
- public androidx.wear.tiles.ModifiersBuilders.Modifiers getModifiers() {
+ public androidx.wear.tiles.ModifiersBuilders.@NonNull Modifiers getModifiers() {
return androidx.wear.tiles.material.Helper.checkNotNull(mText.getModifiers());
}
@@ -324,8 +310,7 @@
}
/** Returns metadata tag set to this Text, which should be {@link #METADATA_TAG}. */
- @NonNull
- String getMetadataTag() {
+ @NonNull String getMetadataTag() {
return androidx.wear.tiles.material.Helper.getMetadataTagName(
androidx.wear.tiles.material.Helper.checkNotNull(
androidx.wear.tiles.material.Helper.checkNotNull(getModifiers())
@@ -338,9 +323,8 @@
* container's content with {@code container.getContents().get(index)}) if that element can be
* converted to Material Text. Otherwise, it will return null.
*/
- @Nullable
- public static Text fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable Text fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof Text) {
return (Text) element;
}
@@ -357,17 +341,15 @@
return new Text(textElement);
}
- @NonNull
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return mText.toLayoutElementProto();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mText.getFingerprint();
}
}
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 18cd2a1..3622bb2 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
@@ -21,13 +21,14 @@
import android.content.Context;
import androidx.annotation.Dimension;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Tiles component {@link TitleChip} that represents clickable object with the text.
*
@@ -71,7 +72,7 @@
*/
static final String METADATA_TAG = "TTLCHP";
- @NonNull private final Chip mElement;
+ private final @NonNull Chip mElement;
TitleChip(@NonNull Chip element) {
this.mElement = element;
@@ -80,15 +81,14 @@
/** Builder class for {@link TitleChip}. */
public static final class Builder
implements androidx.wear.tiles.LayoutElementBuilders.LayoutElement.Builder {
- @NonNull private final Context mContext;
- @NonNull private final String mText;
- @NonNull private final androidx.wear.tiles.ModifiersBuilders.Clickable mClickable;
+ private final @NonNull Context mContext;
+ private final @NonNull String mText;
+ private final androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable mClickable;
- @NonNull
- private final androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ private final androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
mDeviceParameters;
- @NonNull private ChipColors mChipColors = ChipDefaults.TITLE_PRIMARY_COLORS;
+ private @NonNull ChipColors mChipColors = ChipDefaults.TITLE_PRIMARY_COLORS;
@androidx.wear.tiles.LayoutElementBuilders.HorizontalAlignment
private int mHorizontalAlign =
@@ -96,7 +96,7 @@
// Indicates that the width isn't set, so it will be automatically set by Chip.Builder
// constructor.
- @Nullable private androidx.wear.tiles.DimensionBuilders.ContainerDimension mWidth = null;
+ private androidx.wear.tiles.DimensionBuilders.@Nullable ContainerDimension mWidth = null;
/**
* Creates a builder for the {@link TitleChip} with associated action and the given text
@@ -111,9 +111,8 @@
public Builder(
@NonNull Context context,
@NonNull String text,
- @NonNull androidx.wear.tiles.ModifiersBuilders.Clickable clickable,
- @NonNull
- androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable clickable,
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
deviceParameters) {
this.mContext = context;
this.mText = text;
@@ -127,15 +126,13 @@
* ChipColors#getContentColor()} for the text. If not set, {@link
* ChipDefaults#TITLE_PRIMARY_COLORS} will be used.
*/
- @NonNull
- public Builder setChipColors(@NonNull ChipColors chipColors) {
+ public @NonNull Builder setChipColors(@NonNull ChipColors chipColors) {
mChipColors = chipColors;
return this;
}
/** Sets the horizontal alignment in the chip. If not set, content will be centered. */
- @NonNull
- public Builder setHorizontalAlignment(
+ public @NonNull Builder setHorizontalAlignment(
@androidx.wear.tiles.LayoutElementBuilders.HorizontalAlignment
int horizontalAlignment) {
mHorizontalAlign = horizontalAlignment;
@@ -146,9 +143,8 @@
* Sets the width of {@link TitleChip}. If not set, default value will be set to fill the
* screen.
*/
- @NonNull
- public Builder setWidth(
- @NonNull androidx.wear.tiles.DimensionBuilders.ContainerDimension width) {
+ public @NonNull Builder setWidth(
+ androidx.wear.tiles.DimensionBuilders.@NonNull ContainerDimension width) {
mWidth = width;
return this;
}
@@ -157,16 +153,14 @@
* Sets the width of {@link TitleChip}. If not set, default value will be set to fill the
* screen.
*/
- @NonNull
- public Builder setWidth(@Dimension(unit = DP) float width) {
+ public @NonNull Builder setWidth(@Dimension(unit = DP) float width) {
mWidth = androidx.wear.tiles.DimensionBuilders.dp(width);
return this;
}
/** Constructs and returns {@link TitleChip} with the provided content and look. */
- @NonNull
@Override
- public TitleChip build() {
+ public @NonNull TitleChip build() {
Chip.Builder chipBuilder =
new Chip.Builder(mContext, mClickable, mDeviceParameters)
.setMetadataTag(METADATA_TAG)
@@ -189,26 +183,22 @@
}
/** Returns width of this Chip. */
- @NonNull
- public androidx.wear.tiles.DimensionBuilders.ContainerDimension getWidth() {
+ public androidx.wear.tiles.DimensionBuilders.@NonNull ContainerDimension getWidth() {
return mElement.getWidth();
}
/** Returns click event action associated with this Chip. */
- @NonNull
- public androidx.wear.tiles.ModifiersBuilders.Clickable getClickable() {
+ public androidx.wear.tiles.ModifiersBuilders.@NonNull Clickable getClickable() {
return mElement.getClickable();
}
/** Returns chip color of this Chip. */
- @NonNull
- public ChipColors getChipColors() {
+ public @NonNull ChipColors getChipColors() {
return mElement.getChipColors();
}
/** Returns text content of this Chip. */
- @NonNull
- public String getText() {
+ public @NonNull String getText() {
return androidx.wear.tiles.material.Helper.checkNotNull(mElement.getPrimaryLabelContent());
}
@@ -219,8 +209,7 @@
}
/** Returns metadata tag set to this TitleChip, which should be {@link #METADATA_TAG}. */
- @NonNull
- String getMetadataTag() {
+ @NonNull String getMetadataTag() {
return mElement.getMetadataTag();
}
@@ -230,9 +219,8 @@
* container's content with {@code container.getContents().get(index)}) if that element can be
* converted to TitleChip. Otherwise, it will return null.
*/
- @Nullable
- public static TitleChip fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable TitleChip fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof TitleChip) {
return (TitleChip) element;
}
@@ -250,16 +238,14 @@
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
@Override
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return mElement.toLayoutElementProto();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mElement.getFingerprint();
}
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Typography.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Typography.java
index dd937c9..623b894 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Typography.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/Typography.java
@@ -25,9 +25,10 @@
import androidx.annotation.Dimension;
import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.HashMap;
@@ -97,8 +98,8 @@
@interface TypographyName {}
/** Mapping for line height for different typography. */
- @NonNull
- private static final Map<Integer, Float> TYPOGRAPHY_TO_LINE_HEIGHT_SP = new HashMap<>();
+ private static final @NonNull Map<Integer, Float> TYPOGRAPHY_TO_LINE_HEIGHT_SP =
+ new HashMap<>();
static {
TYPOGRAPHY_TO_LINE_HEIGHT_SP.put(TYPOGRAPHY_DISPLAY1, 46f);
@@ -120,8 +121,7 @@
* androidx.wear.tiles.LayoutElementBuilders.FontStyle code with the recommended size, weight
* and letter spacing. Font will be scalable.
*/
- @NonNull
- static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder getFontStyleBuilder(
+ static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder getFontStyleBuilder(
@TypographyName int fontStyleCode, @NonNull Context context) {
return getFontStyleBuilder(fontStyleCode, context, true);
}
@@ -133,8 +133,7 @@
* Typography code with the recommended size, weight and letter spacing, with the option to make
* this font not scalable.
*/
- @NonNull
- static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder getFontStyleBuilder(
+ static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder getFontStyleBuilder(
@TypographyName int typographyCode, @NonNull Context context, boolean isScalable) {
switch (typographyCode) {
case TYPOGRAPHY_BODY1:
@@ -172,8 +171,7 @@
* Returns the recommended line height for the given Typography to be added to the Text
* component.
*/
- @NonNull
- static androidx.wear.tiles.DimensionBuilders.SpProp getLineHeightForTypography(
+ static androidx.wear.tiles.DimensionBuilders.@NonNull SpProp getLineHeightForTypography(
@TypographyName int typography) {
if (!TYPOGRAPHY_TO_LINE_HEIGHT_SP.containsKey(typography)) {
throw new IllegalArgumentException("Typography " + typography + " doesn't exist.");
@@ -184,7 +182,6 @@
.intValue());
}
- @NonNull
@SuppressLint("ResourceType")
// This is a helper function to make the font not scalable. It should interpret in value as DP
// and convert it to SP which is needed to be passed in as a font size. However, we will pass an
@@ -192,7 +189,7 @@
// size on device in 1, so the DP is equal to SP.
// TODO(b/267744228): Remove the warning suppression.
@SuppressWarnings("deprecation")
- private static androidx.wear.tiles.DimensionBuilders.SpProp dpToSp(
+ private static androidx.wear.tiles.DimensionBuilders.@NonNull SpProp dpToSp(
@NonNull Context context, @Dimension(unit = DP) float valueDp) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
float scaledSp = (valueDp / metrics.scaledDensity) * metrics.density;
@@ -222,8 +219,7 @@
}
/** Font style for large display text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder display1(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder display1(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
40,
@@ -235,8 +231,7 @@
}
/** Font style for medium display text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder display2(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder display2(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
34,
@@ -248,8 +243,7 @@
}
/** Font style for small display text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder display3(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder display3(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
30,
@@ -261,8 +255,7 @@
}
/** Font style for large title text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder title1(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder title1(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
24,
@@ -274,8 +267,7 @@
}
/** Font style for medium title text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder title2(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder title2(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
20,
@@ -287,8 +279,7 @@
}
/** Font style for small title text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder title3(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder title3(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
16,
@@ -300,8 +291,7 @@
}
/** Font style for normal body text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder body1(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder body1(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
16,
@@ -313,8 +303,7 @@
}
/** Font style for small body text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder body2(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder body2(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
14,
@@ -326,8 +315,7 @@
}
/** Font style for bold button text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder button(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder button(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
15,
@@ -339,8 +327,7 @@
}
/** Font style for large caption text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder caption1(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder caption1(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
14,
@@ -352,8 +339,7 @@
}
/** Font style for medium caption text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder caption2(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder caption2(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
12,
@@ -365,8 +351,7 @@
}
/** Font style for small caption text. */
- @NonNull
- private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.Builder caption3(
+ private static androidx.wear.tiles.LayoutElementBuilders.FontStyle.@NonNull Builder caption3(
boolean isScalable, @NonNull Context context) {
return createFontStyleBuilder(
10,
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 2f0c55c..c257513 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
@@ -17,13 +17,14 @@
package androidx.wear.tiles.material.layouts;
import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
@@ -123,16 +124,16 @@
})
@interface ContentBits {}
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.Box mImpl;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull Box mImpl;
// This contains inner columns and edge content.
- @NonNull private final List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> mContents;
+ private final @NonNull List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> mContents;
// This contains optional labels, spacers and main content.
- @NonNull
- private final List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> mInnerColumn;
+ private final @NonNull List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ mInnerColumn;
- EdgeContentLayout(@NonNull androidx.wear.tiles.LayoutElementBuilders.Box layoutElement) {
+ EdgeContentLayout(androidx.wear.tiles.LayoutElementBuilders.@NonNull Box layoutElement) {
this.mImpl = layoutElement;
this.mContents = mImpl.getContents();
this.mInnerColumn =
@@ -146,20 +147,19 @@
/** Builder class for {@link EdgeContentLayout}. */
public static final class Builder
implements androidx.wear.tiles.LayoutElementBuilders.LayoutElement.Builder {
- @NonNull
- private final androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ private final androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
mDeviceParameters;
- @Nullable
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mEdgeContent = null;
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement mEdgeContent =
+ null;
- @Nullable
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mPrimaryLabelText = null;
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ mPrimaryLabelText = null;
- @Nullable
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mSecondaryLabelText = null;
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ mSecondaryLabelText = null;
- @Nullable private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mContent = null;
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement mContent = null;
private byte mMetadataContentByte = 0;
/**
@@ -167,8 +167,7 @@
* later be set with ({@link #setContent}.
*/
public Builder(
- @NonNull
- androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
deviceParameters) {
this.mDeviceParameters = deviceParameters;
}
@@ -176,18 +175,16 @@
/**
* Sets the content to be around the edges. This can be {@link CircularProgressIndicator}.
*/
- @NonNull
- public Builder setEdgeContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement edgeContent) {
+ public @NonNull Builder setEdgeContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement edgeContent) {
this.mEdgeContent = edgeContent;
mMetadataContentByte = (byte) (mMetadataContentByte | EDGE_CONTENT_PRESENT);
return this;
}
/** Sets the content in the primary label slot which will be above the main content. */
- @NonNull
- public Builder setPrimaryLabelTextContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement primaryLabelText) {
+ public @NonNull Builder setPrimaryLabelTextContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement primaryLabelText) {
this.mPrimaryLabelText = primaryLabelText;
mMetadataContentByte = (byte) (mMetadataContentByte | PRIMARY_LABEL_PRESENT);
return this;
@@ -197,10 +194,8 @@
* Sets the content in the secondary label slot which will be below the main content. It is
* highly recommended to have primary label set when having secondary label.
*/
- @NonNull
- public Builder setSecondaryLabelTextContent(
- @NonNull
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement
+ public @NonNull Builder setSecondaryLabelTextContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement
secondaryLabelText) {
this.mSecondaryLabelText = secondaryLabelText;
mMetadataContentByte = (byte) (mMetadataContentByte | SECONDARY_LABEL_PRESENT);
@@ -208,18 +203,16 @@
}
/** Sets the additional content to this layout, inside of the screen. */
- @NonNull
- public Builder setContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement content) {
+ public @NonNull Builder setContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement content) {
this.mContent = content;
mMetadataContentByte = (byte) (mMetadataContentByte | CONTENT_PRESENT);
return this;
}
/** Constructs and returns {@link EdgeContentLayout} with the provided content and look. */
- @NonNull
@Override
- public EdgeContentLayout build() {
+ public @NonNull EdgeContentLayout build() {
float thicknessDp =
mEdgeContent instanceof androidx.wear.tiles.material.CircularProgressIndicator
? ((androidx.wear.tiles.material.CircularProgressIndicator)
@@ -345,8 +338,7 @@
}
/** Returns metadata tag set to this EdgeContentLayout. */
- @NonNull
- byte[] getMetadataTag() {
+ byte @NonNull [] getMetadataTag() {
return androidx.wear.tiles.material.Helper.getMetadataTagBytes(
androidx.wear.tiles.material.Helper.checkNotNull(
androidx.wear.tiles.material.Helper.checkNotNull(mImpl.getModifiers())
@@ -354,8 +346,7 @@
}
/** Returns the inner content from this layout. */
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement getContent() {
if (!areElementsPresent(CONTENT_PRESENT)) {
return null;
}
@@ -368,8 +359,8 @@
}
/** Get the primary label content from this layout. */
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getPrimaryLabelTextContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ getPrimaryLabelTextContent() {
if (!areElementsPresent(PRIMARY_LABEL_PRESENT)) {
return null;
}
@@ -378,8 +369,8 @@
}
/** Get the secondary label content from this layout. */
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getSecondaryLabelTextContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ getSecondaryLabelTextContent() {
if (!areElementsPresent(SECONDARY_LABEL_PRESENT)) {
return null;
}
@@ -388,8 +379,7 @@
}
/** Returns the edge content from this layout. */
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getEdgeContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement getEdgeContent() {
if (areElementsPresent(EDGE_CONTENT_PRESENT)) {
return mContents.get(1);
}
@@ -402,9 +392,8 @@
* container's content with {@code container.getContents().get(index)}) if that element can be
* converted to EdgeContentLayout. Otherwise, it will return null.
*/
- @Nullable
- public static EdgeContentLayout fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable EdgeContentLayout fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof EdgeContentLayout) {
return (EdgeContentLayout) element;
}
@@ -421,17 +410,15 @@
return new EdgeContentLayout(boxElement);
}
- @NonNull
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return mImpl.toLayoutElementProto();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mImpl.getFingerprint();
}
}
diff --git a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/LayoutDefaults.java b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/LayoutDefaults.java
index 40b9cb8..883114d 100644
--- a/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/LayoutDefaults.java
+++ b/wear/tiles/tiles-material/src/main/java/androidx/wear/tiles/material/layouts/LayoutDefaults.java
@@ -16,7 +16,7 @@
package androidx.wear.tiles.material.layouts;
-import androidx.annotation.NonNull;
+import org.jspecify.annotations.NonNull;
/**
* Contains the default values used by layout templates for Tiles.
@@ -110,13 +110,11 @@
public static final float EDGE_CONTENT_LAYOUT_PADDING_BELOW_MAIN_CONTENT_DP = 8;
/** The default spacer width for slots in a {@link MultiSlotLayout}. */
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp
MULTI_SLOT_LAYOUT_HORIZONTAL_SPACER_WIDTH = androidx.wear.tiles.DimensionBuilders.dp(8);
/** The recommended space between the main content and additional labels in layouts. */
- @NonNull
- public static final androidx.wear.tiles.DimensionBuilders.DpProp
+ public static final androidx.wear.tiles.DimensionBuilders.@NonNull DpProp
DEFAULT_VERTICAL_SPACER_HEIGHT = androidx.wear.tiles.DimensionBuilders.dp(8);
/** The maximum number of button that can be added to the {@link MultiButtonLayout}. */
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 4f521ce..f476080 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
@@ -17,13 +17,14 @@
package androidx.wear.tiles.material.layouts;
import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -81,17 +82,16 @@
@IntDef({FIVE_BUTTON_DISTRIBUTION_TOP_HEAVY, FIVE_BUTTON_DISTRIBUTION_BOTTOM_HEAVY})
public @interface ButtonDistribution {}
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.Box mElement;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull Box mElement;
- MultiButtonLayout(@NonNull androidx.wear.tiles.LayoutElementBuilders.Box mElement) {
+ MultiButtonLayout(androidx.wear.tiles.LayoutElementBuilders.@NonNull Box mElement) {
this.mElement = mElement;
}
/** Builder class for {@link MultiButtonLayout}. */
public static final class Builder
implements androidx.wear.tiles.LayoutElementBuilders.LayoutElement.Builder {
- @NonNull
- private final List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ private final @NonNull List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
mButtonsContent = new ArrayList<>();
private @ButtonDistribution int mFiveButtonDistribution =
@@ -109,12 +109,11 @@
* to add a {@link Button} as the layout is optimized for it. Any button added after {@link
* LayoutDefaults#MULTI_BUTTON_MAX_NUMBER} is reached will be discarded.
*/
- @NonNull
@SuppressWarnings("MissingGetterMatchingBuilder")
// There is no direct matching getter for this setter, but there is a getter that gets all
// added buttons.
- public Builder addButtonContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement buttonContent) {
+ public @NonNull Builder addButtonContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement buttonContent) {
mButtonsContent.add(buttonContent);
return this;
}
@@ -124,16 +123,15 @@
* there is 5 buttons in the layout to determine whether the 3 buttons row is at the top or
* bottom.
*/
- @NonNull
- public Builder setFiveButtonDistribution(@ButtonDistribution int fiveButtonDistribution) {
+ public @NonNull Builder setFiveButtonDistribution(
+ @ButtonDistribution int fiveButtonDistribution) {
this.mFiveButtonDistribution = fiveButtonDistribution;
return this;
}
/** Constructs and returns {@link MultiButtonLayout} with the provided content and look. */
- @NonNull
@Override
- public MultiButtonLayout build() {
+ public @NonNull MultiButtonLayout build() {
int buttonNum = mButtonsContent.size();
if (buttonNum > LayoutDefaults.MULTI_BUTTON_MAX_NUMBER) {
throw new IllegalArgumentException(
@@ -162,8 +160,7 @@
return new MultiButtonLayout(elementBuilder.build());
}
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement buildButtons(
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement buildButtons(
int buttonNum) {
switch (buttonNum) {
case 1:
@@ -255,11 +252,10 @@
return new androidx.wear.tiles.LayoutElementBuilders.Box.Builder().build();
}
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.Row build3ButtonRow(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement button1,
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement button2,
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement button3) {
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull Row build3ButtonRow(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement button1,
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement button2,
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement button3) {
return new androidx.wear.tiles.LayoutElementBuilders.Row.Builder()
.setWidth(androidx.wear.tiles.DimensionBuilders.wrap())
.setHeight(androidx.wear.tiles.DimensionBuilders.wrap())
@@ -271,11 +267,10 @@
.build();
}
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.Row build2ButtonRow(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement button1,
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement button2,
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp size) {
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull Row build2ButtonRow(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement button1,
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement button2,
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp size) {
return new androidx.wear.tiles.LayoutElementBuilders.Row.Builder()
.setWidth(androidx.wear.tiles.DimensionBuilders.wrap())
.setHeight(androidx.wear.tiles.DimensionBuilders.wrap())
@@ -285,24 +280,21 @@
.build();
}
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.Spacer buildHorizontalSpacer() {
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull Spacer buildHorizontalSpacer() {
return new androidx.wear.tiles.LayoutElementBuilders.Spacer.Builder()
.setWidth(LayoutDefaults.MULTI_BUTTON_SPACER_WIDTH)
.build();
}
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.Spacer buildVerticalSpacer() {
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull Spacer buildVerticalSpacer() {
return new androidx.wear.tiles.LayoutElementBuilders.Spacer.Builder()
.setHeight(LayoutDefaults.MULTI_BUTTON_SPACER_HEIGHT)
.build();
}
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.Box wrapButton(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement button,
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp size) {
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull Box wrapButton(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement button,
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp size) {
return new androidx.wear.tiles.LayoutElementBuilders.Box.Builder()
.setWidth(size)
.setHeight(size)
@@ -312,8 +304,8 @@
}
/** Gets the content from this layout, containing all buttons that were added. */
- @NonNull
- public List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> getButtonContents() {
+ public @NonNull List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ getButtonContents() {
List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> buttons = new ArrayList<>();
List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> contents =
mElement.getContents();
@@ -343,8 +335,7 @@
}
/** Returns metadata tag set to this MultiButtonLayouts. */
- @NonNull
- String getMetadataTag() {
+ @NonNull String getMetadataTag() {
return androidx.wear.tiles.material.Helper.getMetadataTagName(
androidx.wear.tiles.material.Helper.checkNotNull(
androidx.wear.tiles.material.Helper.checkNotNull(mElement.getModifiers())
@@ -405,9 +396,8 @@
* container's content with {@code container.getContents().get(index)}) if that element can be
* converted to MultiButtonLayout. Otherwise, it will return null.
*/
- @Nullable
- public static MultiButtonLayout fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable MultiButtonLayout fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof MultiButtonLayout) {
return (MultiButtonLayout) element;
}
@@ -424,17 +414,15 @@
return new MultiButtonLayout(boxElement);
}
- @NonNull
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return mElement.toLayoutElementProto();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mElement.getFingerprint();
}
}
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 104e75e..7e8fe36d 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
@@ -21,13 +21,14 @@
import android.annotation.SuppressLint;
import androidx.annotation.Dimension;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.util.ArrayList;
import java.util.List;
@@ -73,9 +74,9 @@
*/
static final String METADATA_TAG = "MSL";
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.Row mElement;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull Row mElement;
- MultiSlotLayout(@NonNull androidx.wear.tiles.LayoutElementBuilders.Row mElement) {
+ MultiSlotLayout(androidx.wear.tiles.LayoutElementBuilders.@NonNull Row mElement) {
this.mElement = mElement;
}
@@ -83,12 +84,10 @@
public static final class Builder
implements androidx.wear.tiles.LayoutElementBuilders.LayoutElement.Builder {
- @NonNull
- private final List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> mSlotsContent =
- new ArrayList<>();
+ private final @NonNull List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ mSlotsContent = new ArrayList<>();
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DpProp mHorizontalSpacerWidth =
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DpProp mHorizontalSpacerWidth =
LayoutDefaults.MULTI_SLOT_LAYOUT_HORIZONTAL_SPACER_WIDTH;
/**
@@ -98,12 +97,11 @@
public Builder() {}
/** Add one new slot to the layout with the given content inside. */
- @NonNull
@SuppressWarnings("MissingGetterMatchingBuilder")
// There is no direct matching getter for this setter, but there is a getter that gets all
// added slots.
- public Builder addSlotContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement slotContent) {
+ public @NonNull Builder addSlotContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement slotContent) {
mSlotsContent.add(slotContent);
return this;
}
@@ -113,20 +111,18 @@
* than one slot. If not set, {@link
* LayoutDefaults#MULTI_SLOT_LAYOUT_HORIZONTAL_SPACER_WIDTH} will be used.
*/
- @NonNull
- public Builder setHorizontalSpacerWidth(@Dimension(unit = DP) float width) {
+ public @NonNull Builder setHorizontalSpacerWidth(@Dimension(unit = DP) float width) {
this.mHorizontalSpacerWidth = androidx.wear.tiles.DimensionBuilders.dp(width);
return this;
}
/** Constructs and returns {@link MultiSlotLayout} with the provided content and look. */
- @NonNull
@Override
// The @Dimension(unit = DP) on mVerticalSpacerHeight.getValue() is seemingly being ignored,
// so lint complains that we're passing PX to something expecting DP. Just suppress the
// warning for now.
@SuppressLint("ResourceType")
- public MultiSlotLayout build() {
+ public @NonNull MultiSlotLayout build() {
androidx.wear.tiles.LayoutElementBuilders.Row.Builder rowBuilder =
new androidx.wear.tiles.LayoutElementBuilders.Row.Builder()
.setHeight(androidx.wear.tiles.DimensionBuilders.wrap())
@@ -170,8 +166,8 @@
}
/** Gets the content from this layout, containing all slots that were added. */
- @NonNull
- public List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> getSlotContents() {
+ public @NonNull List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ getSlotContents() {
List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> slots = new ArrayList<>();
for (androidx.wear.tiles.LayoutElementBuilders.LayoutElement slot :
mElement.getContents()) {
@@ -206,8 +202,7 @@
}
/** Returns metadata tag set to this MultiSlotLayout. */
- @NonNull
- String getMetadataTag() {
+ @NonNull String getMetadataTag() {
return androidx.wear.tiles.material.Helper.getMetadataTagName(
androidx.wear.tiles.material.Helper.checkNotNull(
androidx.wear.tiles.material.Helper.checkNotNull(mElement.getModifiers())
@@ -220,9 +215,8 @@
* container's content with {@code container.getContents().get(index)}) if that element can be
* converted to MultiSlotLayout. Otherwise, it will return null.
*/
- @Nullable
- public static MultiSlotLayout fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable MultiSlotLayout fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof MultiSlotLayout) {
return (MultiSlotLayout) element;
}
@@ -239,17 +233,15 @@
return new MultiSlotLayout(rowElement);
}
- @NonNull
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return mElement.toLayoutElementProto();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mElement.getFingerprint();
}
}
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 037ba46..f3f0e86 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
@@ -22,13 +22,14 @@
import androidx.annotation.Dimension;
import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.LayoutElementProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
@@ -131,22 +132,21 @@
value = {CHIP_PRESENT, PRIMARY_LABEL_PRESENT, SECONDARY_LABEL_PRESENT, CONTENT_PRESENT})
@interface ContentBits {}
- @NonNull private final androidx.wear.tiles.LayoutElementBuilders.Box mImpl;
+ private final androidx.wear.tiles.LayoutElementBuilders.@NonNull Box mImpl;
// This contains inner columns and primary chip.
- @NonNull
- private final List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> mAllContent;
+ private final @NonNull List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ mAllContent;
// This contains optional labels, spacers and main content.
- @NonNull
- private final List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement> mPrimaryLabel;
+ private final @NonNull List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ mPrimaryLabel;
// This contains optional labels, spacers and main content.
- @NonNull
- private final List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
+ private final @NonNull List<androidx.wear.tiles.LayoutElementBuilders.LayoutElement>
mContentAndSecondaryLabel;
- PrimaryLayout(@NonNull androidx.wear.tiles.LayoutElementBuilders.Box layoutElement) {
+ PrimaryLayout(androidx.wear.tiles.LayoutElementBuilders.@NonNull Box layoutElement) {
this.mImpl = layoutElement;
this.mAllContent =
((androidx.wear.tiles.LayoutElementBuilders.Column)
@@ -170,25 +170,22 @@
/** Builder class for {@link PrimaryLayout}. */
public static final class Builder
implements androidx.wear.tiles.LayoutElementBuilders.LayoutElement.Builder {
- @NonNull
- private final androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ private final androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
mDeviceParameters;
- @Nullable
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mPrimaryChip = null;
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement mPrimaryChip =
+ null;
- @Nullable
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mPrimaryLabelText = null;
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ mPrimaryLabelText = null;
- @Nullable
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mSecondaryLabelText = null;
+ private androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ mSecondaryLabelText = null;
- @NonNull
- private androidx.wear.tiles.LayoutElementBuilders.LayoutElement mContent =
+ private androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement mContent =
new androidx.wear.tiles.LayoutElementBuilders.Box.Builder().build();
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DpProp mVerticalSpacerHeight =
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DpProp mVerticalSpacerHeight =
LayoutDefaults.DEFAULT_VERTICAL_SPACER_HEIGHT;
private byte mMetadataContentByte = 0;
@@ -199,8 +196,7 @@
* #setPrimaryLabelTextContent} and {@link #setSecondaryLabelTextContent}.
*/
public Builder(
- @NonNull
- androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
deviceParameters) {
this.mDeviceParameters = deviceParameters;
}
@@ -211,18 +207,16 @@
* but it is strongly recommended to add a {@link CompactChip} as the layout is optimized
* for it.
*/
- @NonNull
- public Builder setPrimaryChipContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement compactChip) {
+ public @NonNull Builder setPrimaryChipContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement compactChip) {
this.mPrimaryChip = compactChip;
mMetadataContentByte = (byte) (mMetadataContentByte | CHIP_PRESENT);
return this;
}
/** Sets the content in the primary label slot which will be above the main content. */
- @NonNull
- public Builder setPrimaryLabelTextContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement primaryLabelText) {
+ public @NonNull Builder setPrimaryLabelTextContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement primaryLabelText) {
this.mPrimaryLabelText = primaryLabelText;
mMetadataContentByte = (byte) (mMetadataContentByte | PRIMARY_LABEL_PRESENT);
return this;
@@ -232,10 +226,8 @@
* Sets the content in the primary label slot which will be below the main content. It is
* highly recommended to have primary label set when having secondary label.
*/
- @NonNull
- public Builder setSecondaryLabelTextContent(
- @NonNull
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement
+ public @NonNull Builder setSecondaryLabelTextContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement
secondaryLabelText) {
this.mSecondaryLabelText = secondaryLabelText;
mMetadataContentByte = (byte) (mMetadataContentByte | SECONDARY_LABEL_PRESENT);
@@ -252,9 +244,8 @@
* set to {@code expand} to use all the available space, rather than an explicit width which
* may lead to clipping.
*/
- @NonNull
- public Builder setContent(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement content) {
+ public @NonNull Builder setContent(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement content) {
this.mContent = content;
mMetadataContentByte = (byte) (mMetadataContentByte | CONTENT_PRESENT);
return this;
@@ -265,11 +256,10 @@
* secondary label if there is any. If not set, {@link
* LayoutDefaults#DEFAULT_VERTICAL_SPACER_HEIGHT} will be used.
*/
- @NonNull
// The @Dimension(unit = DP) on dp() is seemingly being ignored, so lint complains that
// we're passing PX to something expecting DP. Just suppress the warning for now.
@SuppressLint("ResourceType")
- public Builder setVerticalSpacerHeight(@Dimension(unit = DP) float height) {
+ public @NonNull Builder setVerticalSpacerHeight(@Dimension(unit = DP) float height) {
this.mVerticalSpacerHeight = androidx.wear.tiles.DimensionBuilders.dp(height);
return this;
}
@@ -278,9 +268,8 @@
// The @Dimension(unit = DP) on dp() is seemingly being ignored, so lint complains that
// we're passing DP to something expecting PX. Just suppress the warning for now.
@SuppressLint("ResourceType")
- @NonNull
@Override
- public PrimaryLayout build() {
+ public @NonNull PrimaryLayout build() {
float topPadding = getTopPadding();
float bottomPadding = getBottomPadding();
float horizontalPadding = getHorizontalPadding();
@@ -497,8 +486,8 @@
}
/** Returns the spacer height to be placed above primary label to accommodate Tile icon. */
- @NonNull
- private androidx.wear.tiles.DimensionBuilders.DpProp getPrimaryLabelTopSpacerHeight() {
+ private androidx.wear.tiles.DimensionBuilders.@NonNull DpProp
+ getPrimaryLabelTopSpacerHeight() {
return androidx.wear.tiles.material.Helper.isRoundDevice(mDeviceParameters)
? LayoutDefaults.PRIMARY_LAYOUT_PRIMARY_LABEL_SPACER_HEIGHT_ROUND_DP
: LayoutDefaults.PRIMARY_LAYOUT_PRIMARY_LABEL_SPACER_HEIGHT_SQUARE_DP;
@@ -506,8 +495,8 @@
}
/** Get the primary label content from this layout. */
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getPrimaryLabelTextContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ getPrimaryLabelTextContent() {
if (!areElementsPresent(PRIMARY_LABEL_PRESENT)) {
return null;
}
@@ -515,8 +504,8 @@
}
/** Get the secondary label content from this layout. */
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getSecondaryLabelTextContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ getSecondaryLabelTextContent() {
if (!areElementsPresent(SECONDARY_LABEL_PRESENT)) {
return null;
}
@@ -525,8 +514,7 @@
}
/** Get the inner content from this layout. */
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement getContent() {
if (!areElementsPresent(CONTENT_PRESENT)) {
return null;
}
@@ -537,8 +525,8 @@
}
/** Get the primary chip content from this layout. */
- @Nullable
- public androidx.wear.tiles.LayoutElementBuilders.LayoutElement getPrimaryChipContent() {
+ public androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ getPrimaryChipContent() {
if (areElementsPresent(CHIP_PRESENT)) {
return ((androidx.wear.tiles.LayoutElementBuilders.Box)
mAllContent.get(PRIMARY_CHIP_POSITION))
@@ -573,8 +561,7 @@
}
/** Returns metadata tag set to this PrimaryLayout. */
- @NonNull
- byte[] getMetadataTag() {
+ byte @NonNull [] getMetadataTag() {
return androidx.wear.tiles.material.Helper.getMetadataTagBytes(
androidx.wear.tiles.material.Helper.checkNotNull(
androidx.wear.tiles.material.Helper.checkNotNull(mImpl.getModifiers())
@@ -587,9 +574,8 @@
* container's content with {@code container.getContents().get(index)}) if that element can be
* converted to PrimaryLayout. Otherwise, it will return null.
*/
- @Nullable
- public static PrimaryLayout fromLayoutElement(
- @NonNull androidx.wear.tiles.LayoutElementBuilders.LayoutElement element) {
+ public static @Nullable PrimaryLayout fromLayoutElement(
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull LayoutElement element) {
if (element instanceof PrimaryLayout) {
return (PrimaryLayout) element;
}
@@ -606,17 +592,15 @@
return new PrimaryLayout(boxElement);
}
- @NonNull
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return mImpl.toLayoutElementProto();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
@Override
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mImpl.getFingerprint();
}
}
diff --git a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/ButtonTest.java b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/ButtonTest.java
index 81ac645..7bc6c6a 100644
--- a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/ButtonTest.java
+++ b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/ButtonTest.java
@@ -22,11 +22,11 @@
import android.content.Context;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.internal.DoNotInstrument;
@@ -232,15 +232,15 @@
private void assertButton(
@NonNull Button actualButton,
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp expectedSize,
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp expectedSize,
@NonNull ButtonColors expectedButtonColors,
@Nullable String expectedContentDescription,
@NonNull String expectedMetadataTag,
@Nullable String expectedTextContent,
@Nullable String expectedIconContent,
@Nullable String expectedImageContent,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedCustomContent) {
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ expectedCustomContent) {
assertButtonIsEqual(
actualButton,
expectedSize,
@@ -268,15 +268,15 @@
private void assertButtonIsEqual(
@NonNull Button actualButton,
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp expectedSize,
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp expectedSize,
@NonNull ButtonColors expectedButtonColors,
@Nullable String expectedContentDescription,
@NonNull String expectedMetadataTag,
@Nullable String expectedTextContent,
@Nullable String expectedIconContent,
@Nullable String expectedImageContent,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedCustomContent) {
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ expectedCustomContent) {
// Mandatory
assertThat(actualButton.getMetadataTag()).isEqualTo(expectedMetadataTag);
assertThat(actualButton.getClickable().toProto()).isEqualTo(CLICKABLE.toProto());
@@ -323,15 +323,15 @@
private void assertFromLayoutElementButtonIsEqual(
@NonNull Button button,
- @NonNull androidx.wear.tiles.DimensionBuilders.DpProp expectedSize,
+ androidx.wear.tiles.DimensionBuilders.@NonNull DpProp expectedSize,
@NonNull ButtonColors expectedButtonColors,
@Nullable String expectedContentDescription,
@NonNull String expectedMetadataTag,
@Nullable String expectedTextContent,
@Nullable String expectedIconContent,
@Nullable String expectedImageContent,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedCustomContent) {
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ expectedCustomContent) {
androidx.wear.tiles.LayoutElementBuilders.Box box =
new androidx.wear.tiles.LayoutElementBuilders.Box.Builder()
.addContent(button)
diff --git a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/ChipTest.java b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/ChipTest.java
index 3e96246..808ba0b 100644
--- a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/ChipTest.java
+++ b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/ChipTest.java
@@ -23,11 +23,11 @@
import android.content.Context;
import android.graphics.Color;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.internal.DoNotInstrument;
@@ -176,8 +176,8 @@
@Nullable String expectedPrimaryText,
@Nullable String expectedLabel,
@Nullable String expectedIcon,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedCustomContent) {
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ expectedCustomContent) {
assertChipIsEqual(
actualChip,
hAlign,
@@ -245,8 +245,8 @@
@Nullable String expectedPrimaryText,
@Nullable String expectedLabel,
@Nullable String expectedIcon,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedCustomContent) {
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ expectedCustomContent) {
androidx.wear.tiles.LayoutElementBuilders.Box box =
new androidx.wear.tiles.LayoutElementBuilders.Box.Builder()
.addContent(chip)
@@ -276,8 +276,8 @@
@Nullable String expectedPrimaryText,
@Nullable String expectedLabel,
@Nullable String expectedIcon,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedCustomContent) {
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
+ expectedCustomContent) {
assertThat(actualChip.getMetadataTag()).isEqualTo(expectedMetadata);
assertThat(actualChip.getClickable().toProto()).isEqualTo(CLICKABLE.toProto());
assertThat(actualChip.getWidth().toContainerDimensionProto())
diff --git a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/CircularProgressIndicatorTest.java b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/CircularProgressIndicatorTest.java
index f6b33f8..738ccf4e 100644
--- a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/CircularProgressIndicatorTest.java
+++ b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/CircularProgressIndicatorTest.java
@@ -22,10 +22,10 @@
import android.graphics.Color;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.internal.DoNotInstrument;
diff --git a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/layouts/EdgeContentLayoutTest.java b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/layouts/EdgeContentLayoutTest.java
index f1b5e00..61f0949 100644
--- a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/layouts/EdgeContentLayoutTest.java
+++ b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/layouts/EdgeContentLayoutTest.java
@@ -22,11 +22,11 @@
import android.content.Context;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.internal.DoNotInstrument;
@@ -148,13 +148,11 @@
private void assertLayout(
@NonNull EdgeContentLayout actualLayout,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
expectedProgressIndicator,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedContent,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedPrimaryLabel,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedContent,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedPrimaryLabel,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
expectedSecondaryLabel) {
assertLayoutIsEqual(
actualLayout,
@@ -183,13 +181,11 @@
private void assertLayoutIsEqual(
@NonNull EdgeContentLayout actualLayout,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
expectedProgressIndicator,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedContent,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedPrimaryLabel,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedContent,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedPrimaryLabel,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
expectedSecondaryLabel) {
byte[] expectedMetadata = EdgeContentLayout.METADATA_TAG_BASE.clone();
diff --git a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/layouts/PrimaryLayoutTest.java b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/layouts/PrimaryLayoutTest.java
index f2e689f..67eb223 100644
--- a/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/layouts/PrimaryLayoutTest.java
+++ b/wear/tiles/tiles-material/src/test/java/androidx/wear/tiles/material/layouts/PrimaryLayoutTest.java
@@ -22,11 +22,11 @@
import android.content.Context;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.internal.DoNotInstrument;
@@ -194,11 +194,10 @@
private void assertLayout(
float height,
@NonNull PrimaryLayout actualLayout,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedContent,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedPrimaryChip,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedPrimaryLabel,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedContent,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedPrimaryChip,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedPrimaryLabel,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
expectedSecondaryLabel) {
assertLayoutIsEqual(
height,
@@ -230,11 +229,10 @@
private void assertLayoutIsEqual(
float height,
@NonNull PrimaryLayout actualLayout,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedContent,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedPrimaryChip,
- @Nullable androidx.wear.tiles.LayoutElementBuilders.LayoutElement expectedPrimaryLabel,
- @Nullable
- androidx.wear.tiles.LayoutElementBuilders.LayoutElement
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedContent,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedPrimaryChip,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement expectedPrimaryLabel,
+ androidx.wear.tiles.LayoutElementBuilders.@Nullable LayoutElement
expectedSecondaryLabel) {
byte[] expectedMetadata = PrimaryLayout.METADATA_TAG_BASE.clone();
diff --git a/wear/tiles/tiles-renderer/build.gradle b/wear/tiles/tiles-renderer/build.gradle
index 5c78299..8c21683 100644
--- a/wear/tiles/tiles-renderer/build.gradle
+++ b/wear/tiles/tiles-renderer/build.gradle
@@ -33,6 +33,7 @@
}
dependencies {
+ api(libs.jspecify)
api("androidx.annotation:annotation:1.8.1")
api(libs.guavaListenableFuture)
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/client/TileClient.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/client/TileClient.java
index bb730a1..cf7f642 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/client/TileClient.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/client/TileClient.java
@@ -18,7 +18,6 @@
import static com.google.common.util.concurrent.MoreExecutors.directExecutor;
-import androidx.annotation.NonNull;
import androidx.wear.protolayout.ResourceBuilders;
import androidx.wear.tiles.RequestBuilders;
import androidx.wear.tiles.TileBuilders;
@@ -26,22 +25,21 @@
import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.ListenableFuture;
+import org.jspecify.annotations.NonNull;
+
/** Client to connect and interact with a TileService. */
public interface TileClient {
/** Gets the API version supported by the connected TileService. */
- @NonNull
- ListenableFuture<Integer> requestApiVersion();
+ @NonNull ListenableFuture<Integer> requestApiVersion();
/** Request a tile payload from the connected TileService. */
- @NonNull
- ListenableFuture<TileBuilders.Tile> requestTile(
- @NonNull RequestBuilders.TileRequest requestParams);
+ @NonNull ListenableFuture<TileBuilders.Tile> requestTile(
+ RequestBuilders.@NonNull TileRequest requestParams);
/** Request a resource bundle from the connected TileService. */
- @NonNull
@SuppressWarnings("deprecation") // For backward compatibility
- default ListenableFuture<ResourceBuilders.Resources> requestTileResourcesAsync(
- @NonNull RequestBuilders.ResourcesRequest requestParams) {
+ default @NonNull ListenableFuture<ResourceBuilders.Resources> requestTileResourcesAsync(
+ RequestBuilders.@NonNull ResourcesRequest requestParams) {
return FluentFuture.from(requestResources(requestParams))
.transform(
res -> ResourceBuilders.Resources.fromProto(res.toProto()),
@@ -53,24 +51,19 @@
*
* @deprecated Use {@link #requestTileResourcesAsync(RequestBuilders.ResourcesRequest)} instead.
*/
- @NonNull
@Deprecated
- ListenableFuture<androidx.wear.tiles.ResourceBuilders.Resources> requestResources(
- @NonNull RequestBuilders.ResourcesRequest requestParams);
+ @NonNull ListenableFuture<androidx.wear.tiles.ResourceBuilders.Resources> requestResources(
+ RequestBuilders.@NonNull ResourcesRequest requestParams);
/** Send a Tile Added notification to the connected TileService. */
- @NonNull
- ListenableFuture<Void> sendOnTileAddedEvent();
+ @NonNull ListenableFuture<Void> sendOnTileAddedEvent();
/** Send a Tile Removed notification to the connected TileService. */
- @NonNull
- ListenableFuture<Void> sendOnTileRemovedEvent();
+ @NonNull ListenableFuture<Void> sendOnTileRemovedEvent();
/** Send a Tile Enter notification to the connected TileService. */
- @NonNull
- ListenableFuture<Void> sendOnTileEnterEvent();
+ @NonNull ListenableFuture<Void> sendOnTileEnterEvent();
/** Send a Tile Leave notification to the connected TileService. */
- @NonNull
- ListenableFuture<Void> sendOnTileLeaveEvent();
+ @NonNull ListenableFuture<Void> sendOnTileLeaveEvent();
}
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/TileRenderer.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/TileRenderer.java
index 89f6230..084841d 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/TileRenderer.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/renderer/TileRenderer.java
@@ -23,8 +23,6 @@
import android.view.View;
import android.view.ViewGroup;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.StyleRes;
import androidx.wear.protolayout.LayoutElementBuilders;
@@ -49,6 +47,9 @@
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -81,24 +82,23 @@
*
* @param nextState The state that the next tile should be in.
*/
- void onClick(@NonNull androidx.wear.tiles.StateBuilders.State nextState);
+ void onClick(androidx.wear.tiles.StateBuilders.@NonNull State nextState);
}
- @NonNull private final Context mUiContext;
- @NonNull private final Executor mLoadActionExecutor;
- @NonNull private final Consumer<StateBuilders.State> mLoadActionListener;
+ private final @NonNull Context mUiContext;
+ private final @NonNull Executor mLoadActionExecutor;
+ private final @NonNull Consumer<StateBuilders.State> mLoadActionListener;
@StyleRes int mTilesTheme = 0; // Default theme.
- @NonNull
- private final Map<PlatformDataProvider, Set<PlatformDataKey<?>>> mPlatformDataProviders =
- new ArrayMap<>();
+ private final @NonNull Map<PlatformDataProvider, Set<PlatformDataKey<?>>>
+ mPlatformDataProviders = new ArrayMap<>();
- @NonNull private final ProtoLayoutViewInstance mInstance;
- @Nullable private final LayoutElementProto.Layout mLayout;
- @Nullable private final ResourceProto.Resources mResources;
- @NonNull private final ListeningExecutorService mUiExecutor;
- @NonNull private final StateStore mStateStore = new StateStore(ImmutableMap.of());
+ private final @NonNull ProtoLayoutViewInstance mInstance;
+ private final LayoutElementProto.@Nullable Layout mLayout;
+ private final ResourceProto.@Nullable Resources mResources;
+ private final @NonNull ListeningExecutorService mUiExecutor;
+ private final @NonNull StateStore mStateStore = new StateStore(ImmutableMap.of());
/**
* Default constructor.
@@ -115,8 +115,8 @@
@Deprecated
public TileRenderer(
@NonNull Context uiContext,
- @NonNull androidx.wear.tiles.LayoutElementBuilders.Layout layout,
- @NonNull androidx.wear.tiles.ResourceBuilders.Resources resources,
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull Layout layout,
+ androidx.wear.tiles.ResourceBuilders.@NonNull Resources resources,
@NonNull Executor loadActionExecutor,
@NonNull LoadActionListener loadActionListener) {
this(
@@ -146,9 +146,9 @@
@Deprecated
public TileRenderer(
@NonNull Context uiContext,
- @NonNull androidx.wear.tiles.LayoutElementBuilders.Layout layout,
+ androidx.wear.tiles.LayoutElementBuilders.@NonNull Layout layout,
@StyleRes int tilesTheme,
- @NonNull androidx.wear.tiles.ResourceBuilders.Resources resources,
+ androidx.wear.tiles.ResourceBuilders.@NonNull Resources resources,
@NonNull Executor loadActionExecutor,
@NonNull LoadActionListener loadActionListener) {
this(
@@ -189,8 +189,8 @@
@StyleRes int tilesTheme,
@NonNull Executor loadActionExecutor,
@NonNull Consumer<StateBuilders.State> loadActionListener,
- @Nullable LayoutElementProto.Layout layout,
- @Nullable ResourceProto.Resources resources,
+ LayoutElementProto.@Nullable Layout layout,
+ ResourceProto.@Nullable Resources resources,
@Nullable Map<PlatformDataProvider, Set<PlatformDataKey<?>>> platformDataProviders) {
this.mUiContext = uiContext;
@@ -227,9 +227,8 @@
this.mInstance = new ProtoLayoutViewInstance(config.build());
}
- @NonNull
@SuppressWarnings("deprecation") // For backward compatibility
- private static Consumer<StateBuilders.State> toStateConsumer(
+ private static @NonNull Consumer<StateBuilders.State> toStateConsumer(
@NonNull LoadActionListener loadActionListener) {
return nextState ->
loadActionListener.onClick(
@@ -253,8 +252,7 @@
* deprecated constructors that accept Layout and Resources.
*/
@Deprecated
- @Nullable
- public View inflate(@NonNull ViewGroup parent) {
+ public @Nullable View inflate(@NonNull ViewGroup parent) {
String errorMessage =
"This method only works with the deprecated constructors that accept Layout and"
+ " Resources.";
@@ -298,38 +296,33 @@
* empty or the top-level LayoutElement has no inner set, or the top-level LayoutElement
* contains an unsupported inner type.
*/
- @NonNull
- public ListenableFuture<View> inflateAsync(
- @NonNull LayoutElementBuilders.Layout layout,
- @NonNull ResourceBuilders.Resources resources,
+ public @NonNull ListenableFuture<View> inflateAsync(
+ LayoutElementBuilders.@NonNull Layout layout,
+ ResourceBuilders.@NonNull Resources resources,
@NonNull ViewGroup parent) {
return inflateLayout(layout.toProto(), resources.toProto(), parent);
}
- @NonNull
- private ListenableFuture<View> inflateLayout(
- @NonNull LayoutElementProto.Layout layout,
- @NonNull ResourceProto.Resources resources,
+ private @NonNull ListenableFuture<View> inflateLayout(
+ LayoutElementProto.@NonNull Layout layout,
+ ResourceProto.@NonNull Resources resources,
@NonNull ViewGroup parent) {
ListenableFuture<Void> result = mInstance.renderAndAttach(layout, resources, parent);
return FluentFuture.from(result).transform(ignored -> parent.getChildAt(0), mUiExecutor);
}
/** Returns the {@link Context} suitable for interacting with the UI. */
- @NonNull
- public Context getUiContext() {
+ public @NonNull Context getUiContext() {
return mUiContext;
}
/** Returns the {@link Executor} for {@code loadActionListener}. */
- @NonNull
- public Executor getLoadActionExecutor() {
+ public @NonNull Executor getLoadActionExecutor() {
return mLoadActionExecutor;
}
/** Returns the Listener for clicks that will cause the contents to be reloaded. */
- @NonNull
- public Consumer<StateBuilders.State> getLoadActionListener() {
+ public @NonNull Consumer<StateBuilders.State> getLoadActionListener() {
return mLoadActionListener;
}
@@ -343,22 +336,20 @@
}
/** Returns the platform data providers that will be registered for this Tile instance. */
- @NonNull
- public Map<PlatformDataProvider, Set<PlatformDataKey<?>>> getPlatformDataProviders() {
+ public @NonNull Map<PlatformDataProvider, Set<PlatformDataKey<?>>> getPlatformDataProviders() {
return Collections.unmodifiableMap(mPlatformDataProviders);
}
/** Builder for {@link TileRenderer}. */
public static final class Builder {
- @NonNull private final Context mUiContext;
- @NonNull private final Executor mLoadActionExecutor;
- @NonNull private final Consumer<StateBuilders.State> mLoadActionListener;
+ private final @NonNull Context mUiContext;
+ private final @NonNull Executor mLoadActionExecutor;
+ private final @NonNull Consumer<StateBuilders.State> mLoadActionListener;
@StyleRes int mTilesTheme = 0; // Default theme.
- @NonNull
- private final Map<PlatformDataProvider, Set<PlatformDataKey<?>>> mPlatformDataProviders =
- new ArrayMap<>();
+ private final @NonNull Map<PlatformDataProvider, Set<PlatformDataKey<?>>>
+ mPlatformDataProviders = new ArrayMap<>();
/**
* Builder for the {@link TileRenderer} class.
@@ -381,8 +372,7 @@
* Sets the theme to use for this Tile instance. This can be used to customise things like
* the default font family. If not set, zero (default theme) will be used.
*/
- @NonNull
- public Builder setTilesTheme(@StyleRes int tilesTheme) {
+ public @NonNull Builder setTilesTheme(@StyleRes int tilesTheme) {
mTilesTheme = tilesTheme;
return this;
}
@@ -392,18 +382,16 @@
* supportedKeys}. Adding the same {@link PlatformDataProvider} several times will override
* previous entries instead of adding multiple entries.
*/
- @NonNull
- public Builder addPlatformDataProvider(
+ public @NonNull Builder addPlatformDataProvider(
@NonNull PlatformDataProvider platformDataProvider,
- @NonNull PlatformDataKey<?>... supportedKeys) {
+ PlatformDataKey<?> @NonNull ... supportedKeys) {
this.mPlatformDataProviders.put(
platformDataProvider, ImmutableSet.copyOf(supportedKeys));
return this;
}
/** Builds {@link TileRenderer} object. */
- @NonNull
- public TileRenderer build() {
+ public @NonNull TileRenderer build() {
return new TileRenderer(
mUiContext,
mTilesTheme,
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 edfd08b..8592cae 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
@@ -17,12 +17,13 @@
package androidx.wear.tiles.timeline;
import androidx.annotation.MainThread;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.wear.protolayout.TimelineBuilders;
import androidx.wear.protolayout.proto.TimelineProto.TimelineEntry;
import androidx.wear.tiles.timeline.internal.TilesTimelineCacheInternal;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Timeline cache for Wear Tiles. This will take in a full timeline, and return the appropriate
* entry for the given time from {@code findTimelineEntryForTime}.
@@ -36,12 +37,12 @@
* @deprecated Use {@link #TilesTimelineCache(TimelineBuilders.Timeline)} instead.
*/
@Deprecated
- public TilesTimelineCache(@NonNull androidx.wear.tiles.TimelineBuilders.Timeline timeline) {
+ public TilesTimelineCache(androidx.wear.tiles.TimelineBuilders.@NonNull Timeline timeline) {
mCache = new TilesTimelineCacheInternal(timeline.toProto());
}
/** Default constructor. */
- public TilesTimelineCache(@NonNull TimelineBuilders.Timeline timeline) {
+ public TilesTimelineCache(TimelineBuilders.@NonNull Timeline timeline) {
mCache = new TilesTimelineCacheInternal(timeline.toProto());
}
@@ -58,8 +59,7 @@
*/
@Deprecated
@MainThread
- @Nullable
- public androidx.wear.tiles.TimelineBuilders.TimelineEntry findTimelineEntryForTime(
+ public androidx.wear.tiles.TimelineBuilders.@Nullable TimelineEntry findTimelineEntryForTime(
long timeMillis) {
TimelineEntry entry = mCache.findTimelineEntryForTime(timeMillis);
@@ -81,8 +81,7 @@
* none are valid.
*/
@MainThread
- @Nullable
- public TimelineBuilders.TimelineEntry findTileTimelineEntryForTime(long timeMillis) {
+ public TimelineBuilders.@Nullable TimelineEntry findTileTimelineEntryForTime(long timeMillis) {
TimelineEntry entry = mCache.findTimelineEntryForTime(timeMillis);
if (entry == null) {
@@ -107,9 +106,8 @@
* @deprecated Use {@link #findClosestTileTimelineEntry(long)} instead.
*/
@MainThread
- @Nullable
@Deprecated
- public androidx.wear.tiles.TimelineBuilders.TimelineEntry findClosestTimelineEntry(
+ public androidx.wear.tiles.TimelineBuilders.@Nullable TimelineEntry findClosestTimelineEntry(
long timeMillis) {
TimelineEntry entry = mCache.findClosestTimelineEntry(timeMillis);
@@ -134,8 +132,7 @@
* @return The timeline entry with validity period closest to {@code timeMillis}.
*/
@MainThread
- @Nullable
- public TimelineBuilders.TimelineEntry findClosestTileTimelineEntry(long timeMillis) {
+ public TimelineBuilders.@Nullable TimelineEntry findClosestTileTimelineEntry(long timeMillis) {
TimelineEntry entry = mCache.findClosestTimelineEntry(timeMillis);
if (entry == null) {
@@ -161,7 +158,7 @@
@Deprecated
@MainThread
public long findCurrentTimelineEntryExpiry(
- @NonNull androidx.wear.tiles.TimelineBuilders.TimelineEntry entry,
+ androidx.wear.tiles.TimelineBuilders.@NonNull TimelineEntry entry,
long fromTimeMillis) {
return mCache.findCurrentTimelineEntryExpiry(entry.toProto(), fromTimeMillis);
}
@@ -179,7 +176,7 @@
*/
@MainThread
public long findCurrentTimelineEntryExpiry(
- @NonNull TimelineBuilders.TimelineEntry entry, long fromTimeMillis) {
+ TimelineBuilders.@NonNull TimelineEntry entry, long fromTimeMillis) {
return mCache.findCurrentTimelineEntryExpiry(entry.toProto(), fromTimeMillis);
}
}
diff --git a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/TilesTimelineManager.java b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/TilesTimelineManager.java
index d3ad277..85e601f 100644
--- a/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/TilesTimelineManager.java
+++ b/wear/tiles/tiles-renderer/src/main/java/androidx/wear/tiles/timeline/TilesTimelineManager.java
@@ -18,12 +18,13 @@
import android.app.AlarmManager;
-import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.wear.protolayout.LayoutElementBuilders;
import androidx.wear.protolayout.TimelineBuilders;
import androidx.wear.tiles.timeline.internal.TilesTimelineManagerInternal;
+import org.jspecify.annotations.NonNull;
+
import java.util.concurrent.Executor;
/**
@@ -61,7 +62,7 @@
*/
@Deprecated
void onLayoutUpdate(
- int token, @NonNull androidx.wear.tiles.LayoutElementBuilders.Layout layout);
+ int token, androidx.wear.tiles.LayoutElementBuilders.@NonNull Layout layout);
}
/** Type to listen for layout updates from a given timeline. */
@@ -73,7 +74,7 @@
* @param token The token originally passed to {@link TilesTimelineManager}.
* @param layout The new layout to use.
*/
- void onLayoutUpdate(int token, @NonNull LayoutElementBuilders.Layout layout);
+ void onLayoutUpdate(int token, LayoutElementBuilders.@NonNull Layout layout);
}
private final TilesTimelineManagerInternal mManager;
@@ -96,7 +97,7 @@
public TilesTimelineManager(
@NonNull AlarmManager alarmManager,
@NonNull Clock clock,
- @NonNull androidx.wear.tiles.TimelineBuilders.Timeline timeline,
+ androidx.wear.tiles.TimelineBuilders.@NonNull Timeline timeline,
int token,
@NonNull Executor listenerExecutor,
@NonNull Listener listener) {
@@ -128,7 +129,7 @@
public TilesTimelineManager(
@NonNull AlarmManager alarmManager,
@NonNull Clock clock,
- @NonNull TimelineBuilders.Timeline timeline,
+ TimelineBuilders.@NonNull Timeline timeline,
int token,
@NonNull Executor listenerExecutor,
@NonNull LayoutUpdateListener listener) {
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 4571ad5..fa20027 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
@@ -17,12 +17,13 @@
package androidx.wear.tiles.timeline.internal;
import androidx.annotation.MainThread;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.wear.protolayout.proto.TimelineProto.TimeInterval;
import androidx.wear.protolayout.proto.TimelineProto.Timeline;
import androidx.wear.protolayout.proto.TimelineProto.TimelineEntry;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Timeline cache for Tiles. This will take in a full timeline, and return the appropriate entry for
* the given time from {@code findTimelineEntryForTime}.
@@ -45,8 +46,7 @@
* none are valid.
*/
@MainThread
- @Nullable
- public TimelineEntry findTimelineEntryForTime(long timeMillis) {
+ public @Nullable TimelineEntry findTimelineEntryForTime(long timeMillis) {
TimelineEntry currentEntry = null;
long currentEntryLength = Long.MAX_VALUE;
@@ -93,8 +93,7 @@
* @return The timeline entry with validity period closest to {@code timeMillis}.
*/
@MainThread
- @Nullable
- public TimelineEntry findClosestTimelineEntry(long timeMillis) {
+ public @Nullable TimelineEntry findClosestTimelineEntry(long timeMillis) {
long currentEntryError = Long.MAX_VALUE;
TimelineEntry currentEntry = null;
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 d25e42d..4dc70ac 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
@@ -23,11 +23,12 @@
import android.app.AlarmManager.OnAlarmListener;
import android.util.Log;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.wear.protolayout.proto.TimelineProto.Timeline;
import androidx.wear.protolayout.proto.TimelineProto.TimelineEntry;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.util.concurrent.Executor;
/**
@@ -65,7 +66,7 @@
private final Executor mListenerExecutor;
private final Listener mListener;
private final int mToken;
- @Nullable private OnAlarmListener mAlarmListener = null;
+ private @Nullable OnAlarmListener mAlarmListener = null;
/**
* Default constructor.
diff --git a/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/timeline/TilesTimelineCacheTest.java b/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/timeline/TilesTimelineCacheTest.java
index e7a1782..5ef39ef 100644
--- a/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/timeline/TilesTimelineCacheTest.java
+++ b/wear/tiles/tiles-renderer/src/test/java/androidx/wear/tiles/timeline/TilesTimelineCacheTest.java
@@ -18,13 +18,13 @@
import static com.google.common.truth.Truth.assertThat;
-import androidx.annotation.Nullable;
import androidx.wear.protolayout.LayoutElementBuilders;
import androidx.wear.protolayout.TimelineBuilders;
import androidx.wear.tiles.TilesTestRunner;
import com.google.common.truth.Expect;
+import org.jspecify.annotations.Nullable;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -552,8 +552,8 @@
}
private void expectTimelineEntryEqual(
- @Nullable TimelineBuilders.TimelineEntry actual,
- @Nullable TimelineBuilders.TimelineEntry expected) {
+ TimelineBuilders.@Nullable TimelineEntry actual,
+ TimelineBuilders.@Nullable TimelineEntry expected) {
if (expected == null) {
expect.that(actual).isNull();
} else {
diff --git a/wear/tiles/tiles/build.gradle b/wear/tiles/tiles/build.gradle
index 316a1fa..a69618c 100644
--- a/wear/tiles/tiles/build.gradle
+++ b/wear/tiles/tiles/build.gradle
@@ -29,6 +29,7 @@
}
dependencies {
+ api(libs.jspecify)
api("androidx.annotation:annotation:1.8.1")
api(project(":wear:protolayout:protolayout"))
api(project(":wear:protolayout:protolayout-expression"))
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 37ad14f..85f81af 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
@@ -22,13 +22,14 @@
import android.annotation.SuppressLint;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.ActionProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.util.Collections;
import java.util.Map;
@@ -42,39 +43,34 @@
private ActionBuilders() {}
/** Shortcut for building an {@link AndroidStringExtra}. */
- @NonNull
- public static AndroidStringExtra stringExtra(@NonNull String value) {
+ public static @NonNull AndroidStringExtra stringExtra(@NonNull String value) {
return new AndroidStringExtra.Builder().setValue(value).build();
}
/** Shortcut for building an {@link AndroidIntExtra}. */
- @NonNull
- public static AndroidIntExtra intExtra(int value) {
+ public static @NonNull AndroidIntExtra intExtra(int value) {
return new AndroidIntExtra.Builder().setValue(value).build();
}
/** Shortcut for building an {@link AndroidLongExtra}. */
- @NonNull
- public static AndroidLongExtra longExtra(long value) {
+ public static @NonNull AndroidLongExtra longExtra(long value) {
return new AndroidLongExtra.Builder().setValue(value).build();
}
/** Shortcut for building an {@link AndroidDoubleExtra}. */
- @NonNull
- public static AndroidDoubleExtra doubleExtra(double value) {
+ public static @NonNull AndroidDoubleExtra doubleExtra(double value) {
return new AndroidDoubleExtra.Builder().setValue(value).build();
}
/** Shortcut for building an {@link AndroidBooleanExtra}. */
- @NonNull
- public static AndroidBooleanExtra booleanExtra(boolean value) {
+ public static @NonNull AndroidBooleanExtra booleanExtra(boolean value) {
return new AndroidBooleanExtra.Builder().setValue(value).build();
}
/** A string value that can be added to an Android intent's extras. */
public static final class AndroidStringExtra implements AndroidExtra {
private final ActionProto.AndroidStringExtra mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
AndroidStringExtra(ActionProto.AndroidStringExtra impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -82,32 +78,28 @@
}
/** Gets the value. Intended for testing purposes only. */
- @NonNull
- public String getValue() {
+ public @NonNull String getValue() {
return mImpl.getValue();
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static AndroidStringExtra fromProto(@NonNull ActionProto.AndroidStringExtra proto) {
+ static @NonNull AndroidStringExtra fromProto(
+ ActionProto.@NonNull AndroidStringExtra proto) {
return new AndroidStringExtra(proto, null);
}
- @NonNull
- ActionProto.AndroidStringExtra toProto() {
+ ActionProto.@NonNull AndroidStringExtra toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ActionProto.AndroidExtra toAndroidExtraProto() {
+ public ActionProto.@NonNull AndroidExtra toAndroidExtraProto() {
return ActionProto.AndroidExtra.newBuilder().setStringVal(mImpl).build();
}
@@ -120,16 +112,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@NonNull String value) {
+ public @NonNull Builder setValue(@NonNull String value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, value.hashCode());
return this;
}
@Override
- @NonNull
- public AndroidStringExtra build() {
+ public @NonNull AndroidStringExtra build() {
return new AndroidStringExtra(mImpl.build(), mFingerprint);
}
}
@@ -138,7 +128,7 @@
/** An integer value that can be added to an Android intent's extras. */
public static final class AndroidIntExtra implements AndroidExtra {
private final ActionProto.AndroidIntExtra mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
AndroidIntExtra(ActionProto.AndroidIntExtra impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -152,25 +142,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static AndroidIntExtra fromProto(@NonNull ActionProto.AndroidIntExtra proto) {
+ static @NonNull AndroidIntExtra fromProto(ActionProto.@NonNull AndroidIntExtra proto) {
return new AndroidIntExtra(proto, null);
}
- @NonNull
- ActionProto.AndroidIntExtra toProto() {
+ ActionProto.@NonNull AndroidIntExtra toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ActionProto.AndroidExtra toAndroidExtraProto() {
+ public ActionProto.@NonNull AndroidExtra toAndroidExtraProto() {
return ActionProto.AndroidExtra.newBuilder().setIntVal(mImpl).build();
}
@@ -183,16 +169,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(int value) {
+ public @NonNull Builder setValue(int value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
@Override
- @NonNull
- public AndroidIntExtra build() {
+ public @NonNull AndroidIntExtra build() {
return new AndroidIntExtra(mImpl.build(), mFingerprint);
}
}
@@ -201,7 +185,7 @@
/** A long value that can be added to an Android intent's extras. */
public static final class AndroidLongExtra implements AndroidExtra {
private final ActionProto.AndroidLongExtra mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
AndroidLongExtra(ActionProto.AndroidLongExtra impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -215,25 +199,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static AndroidLongExtra fromProto(@NonNull ActionProto.AndroidLongExtra proto) {
+ static @NonNull AndroidLongExtra fromProto(ActionProto.@NonNull AndroidLongExtra proto) {
return new AndroidLongExtra(proto, null);
}
- @NonNull
- ActionProto.AndroidLongExtra toProto() {
+ ActionProto.@NonNull AndroidLongExtra toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ActionProto.AndroidExtra toAndroidExtraProto() {
+ public ActionProto.@NonNull AndroidExtra toAndroidExtraProto() {
return ActionProto.AndroidExtra.newBuilder().setLongVal(mImpl).build();
}
@@ -246,16 +226,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(long value) {
+ public @NonNull Builder setValue(long value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, Long.hashCode(value));
return this;
}
@Override
- @NonNull
- public AndroidLongExtra build() {
+ public @NonNull AndroidLongExtra build() {
return new AndroidLongExtra(mImpl.build(), mFingerprint);
}
}
@@ -264,7 +242,7 @@
/** A double value that can be added to an Android intent's extras. */
public static final class AndroidDoubleExtra implements AndroidExtra {
private final ActionProto.AndroidDoubleExtra mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
AndroidDoubleExtra(ActionProto.AndroidDoubleExtra impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -278,25 +256,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static AndroidDoubleExtra fromProto(@NonNull ActionProto.AndroidDoubleExtra proto) {
+ static @NonNull AndroidDoubleExtra fromProto(
+ ActionProto.@NonNull AndroidDoubleExtra proto) {
return new AndroidDoubleExtra(proto, null);
}
- @NonNull
- ActionProto.AndroidDoubleExtra toProto() {
+ ActionProto.@NonNull AndroidDoubleExtra toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ActionProto.AndroidExtra toAndroidExtraProto() {
+ public ActionProto.@NonNull AndroidExtra toAndroidExtraProto() {
return ActionProto.AndroidExtra.newBuilder().setDoubleVal(mImpl).build();
}
@@ -309,16 +284,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(double value) {
+ public @NonNull Builder setValue(double value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, Double.hashCode(value));
return this;
}
@Override
- @NonNull
- public AndroidDoubleExtra build() {
+ public @NonNull AndroidDoubleExtra build() {
return new AndroidDoubleExtra(mImpl.build(), mFingerprint);
}
}
@@ -327,7 +300,7 @@
/** A boolean value that can be added to an Android intent's extras. */
public static final class AndroidBooleanExtra implements AndroidExtra {
private final ActionProto.AndroidBooleanExtra mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
AndroidBooleanExtra(
ActionProto.AndroidBooleanExtra impl, @Nullable Fingerprint fingerprint) {
@@ -342,25 +315,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static AndroidBooleanExtra fromProto(@NonNull ActionProto.AndroidBooleanExtra proto) {
+ static @NonNull AndroidBooleanExtra fromProto(
+ ActionProto.@NonNull AndroidBooleanExtra proto) {
return new AndroidBooleanExtra(proto, null);
}
- @NonNull
- ActionProto.AndroidBooleanExtra toProto() {
+ ActionProto.@NonNull AndroidBooleanExtra toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ActionProto.AndroidExtra toAndroidExtraProto() {
+ public ActionProto.@NonNull AndroidExtra toAndroidExtraProto() {
return ActionProto.AndroidExtra.newBuilder().setBooleanVal(mImpl).build();
}
@@ -374,16 +344,14 @@
/** Sets the value. */
@SuppressLint("MissingGetterMatchingBuilder")
- @NonNull
- public Builder setValue(boolean value) {
+ public @NonNull Builder setValue(boolean value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, Boolean.hashCode(value));
return this;
}
@Override
- @NonNull
- public AndroidBooleanExtra build() {
+ public @NonNull AndroidBooleanExtra build() {
return new AndroidBooleanExtra(mImpl.build(), mFingerprint);
}
}
@@ -396,29 +364,25 @@
public interface AndroidExtra {
/** Get the protocol buffer representation of this object. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- ActionProto.AndroidExtra toAndroidExtraProto();
+ ActionProto.@NonNull AndroidExtra toAndroidExtraProto();
/** Get the fingerprint for this object or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- Fingerprint getFingerprint();
+ @Nullable Fingerprint getFingerprint();
/** Builder to create {@link AndroidExtra} objects. */
@SuppressLint("StaticFinalBuilder")
interface Builder {
/** Builds an instance with values accumulated in this Builder. */
- @NonNull
- AndroidExtra build();
+ @NonNull AndroidExtra build();
}
}
/**
* Return an instance of one of this object's subtypes, from the protocol buffer representation.
*/
- @NonNull
- static AndroidExtra androidExtraFromProto(@NonNull ActionProto.AndroidExtra proto) {
+ static @NonNull AndroidExtra androidExtraFromProto(ActionProto.@NonNull AndroidExtra proto) {
if (proto.hasStringVal()) {
return AndroidStringExtra.fromProto(proto.getStringVal());
}
@@ -440,7 +404,7 @@
/** A launch action to send an intent to an Android activity. */
public static final class AndroidActivity {
private final ActionProto.AndroidActivity mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
AndroidActivity(ActionProto.AndroidActivity impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -451,8 +415,7 @@
* Gets the package name to send the intent to, for example, "com.google.weather". Intended
* for testing purposes only.
*/
- @NonNull
- public String getPackageName() {
+ public @NonNull String getPackageName() {
return mImpl.getPackageName();
}
@@ -461,14 +424,12 @@
* example, "com.google.weather.WeatherOverviewActivity". Intended for testing purposes
* only.
*/
- @NonNull
- public String getClassName() {
+ public @NonNull String getClassName() {
return mImpl.getClassName();
}
/** Gets the extras to be included in the intent. Intended for testing purposes only. */
- @NonNull
- public Map<String, AndroidExtra> getKeyToExtraMapping() {
+ public @NonNull Map<String, AndroidExtra> getKeyToExtraMapping() {
return Collections.unmodifiableMap(
mImpl.getKeyToExtraMap().entrySet().stream()
.collect(
@@ -479,18 +440,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static AndroidActivity fromProto(@NonNull ActionProto.AndroidActivity proto) {
+ static @NonNull AndroidActivity fromProto(ActionProto.@NonNull AndroidActivity proto) {
return new AndroidActivity(proto, null);
}
- @NonNull
- ActionProto.AndroidActivity toProto() {
+ ActionProto.@NonNull AndroidActivity toProto() {
return mImpl;
}
@@ -503,8 +461,7 @@
public Builder() {}
/** Sets the package name to send the intent to, for example, "com.google.weather". */
- @NonNull
- public Builder setPackageName(@NonNull String packageName) {
+ public @NonNull Builder setPackageName(@NonNull String packageName) {
mImpl.setPackageName(packageName);
mFingerprint.recordPropertyUpdate(1, packageName.hashCode());
return this;
@@ -514,8 +471,7 @@
* Sets the fully qualified class name (including the package) to send the intent to,
* for example, "com.google.weather.WeatherOverviewActivity".
*/
- @NonNull
- public Builder setClassName(@NonNull String className) {
+ public @NonNull Builder setClassName(@NonNull String className) {
mImpl.setClassName(className);
mFingerprint.recordPropertyUpdate(2, className.hashCode());
return this;
@@ -523,8 +479,8 @@
/** Adds an entry into the extras to be included in the intent. */
@SuppressLint("MissingGetterMatchingBuilder")
- @NonNull
- public Builder addKeyToExtraMapping(@NonNull String key, @NonNull AndroidExtra extra) {
+ public @NonNull Builder addKeyToExtraMapping(@NonNull String key,
+ @NonNull AndroidExtra extra) {
mImpl.putKeyToExtra(key, extra.toAndroidExtraProto());
mFingerprint.recordPropertyUpdate(
key.hashCode(), checkNotNull(extra.getFingerprint()).aggregateValueAsInt());
@@ -532,8 +488,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public AndroidActivity build() {
+ public @NonNull AndroidActivity build() {
return new AndroidActivity(mImpl.build(), mFingerprint);
}
}
@@ -546,7 +501,7 @@
*/
public static final class LaunchAction implements Action {
private final ActionProto.LaunchAction mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
LaunchAction(ActionProto.LaunchAction impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -554,8 +509,7 @@
}
/** Gets an action to launch an Android activity. Intended for testing purposes only. */
- @Nullable
- public AndroidActivity getAndroidActivity() {
+ public @Nullable AndroidActivity getAndroidActivity() {
if (mImpl.hasAndroidActivity()) {
return AndroidActivity.fromProto(mImpl.getAndroidActivity());
} else {
@@ -565,25 +519,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static LaunchAction fromProto(@NonNull ActionProto.LaunchAction proto) {
+ static @NonNull LaunchAction fromProto(ActionProto.@NonNull LaunchAction proto) {
return new LaunchAction(proto, null);
}
- @NonNull
- ActionProto.LaunchAction toProto() {
+ ActionProto.@NonNull LaunchAction toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ActionProto.Action toActionProto() {
+ public ActionProto.@NonNull Action toActionProto() {
return ActionProto.Action.newBuilder().setLaunchAction(mImpl).build();
}
@@ -596,8 +546,7 @@
public Builder() {}
/** Sets an action to launch an Android activity. */
- @NonNull
- public Builder setAndroidActivity(@NonNull AndroidActivity androidActivity) {
+ public @NonNull Builder setAndroidActivity(@NonNull AndroidActivity androidActivity) {
mImpl.setAndroidActivity(androidActivity.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(androidActivity.getFingerprint()).aggregateValueAsInt());
@@ -605,8 +554,7 @@
}
@Override
- @NonNull
- public LaunchAction build() {
+ public @NonNull LaunchAction build() {
return new LaunchAction(mImpl.build(), mFingerprint);
}
}
@@ -615,7 +563,7 @@
/** An action used to load (or reload) the tile contents. */
public static final class LoadAction implements Action {
private final ActionProto.LoadAction mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
LoadAction(ActionProto.LoadAction impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -628,8 +576,7 @@
* {@link androidx.wear.tiles.ModifiersBuilders.Clickable}. Intended for testing purposes
* only.
*/
- @Nullable
- public StateBuilders.State getRequestState() {
+ public StateBuilders.@Nullable State getRequestState() {
if (mImpl.hasRequestState()) {
return StateBuilders.State.fromProto(mImpl.getRequestState());
} else {
@@ -639,25 +586,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static LoadAction fromProto(@NonNull ActionProto.LoadAction proto) {
+ static @NonNull LoadAction fromProto(ActionProto.@NonNull LoadAction proto) {
return new LoadAction(proto, null);
}
- @NonNull
- ActionProto.LoadAction toProto() {
+ ActionProto.@NonNull LoadAction toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ActionProto.Action toActionProto() {
+ public ActionProto.@NonNull Action toActionProto() {
return ActionProto.Action.newBuilder().setLoadAction(mImpl).build();
}
@@ -674,8 +617,7 @@
* androidx.wear.tiles.RequestBuilders.TileRequest} sent after this action is invoked by
* a {@link androidx.wear.tiles.ModifiersBuilders.Clickable}.
*/
- @NonNull
- public Builder setRequestState(@NonNull StateBuilders.State requestState) {
+ public @NonNull Builder setRequestState(StateBuilders.@NonNull State requestState) {
mImpl.setRequestState(requestState.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(requestState.getFingerprint()).aggregateValueAsInt());
@@ -683,8 +625,7 @@
}
@Override
- @NonNull
- public LoadAction build() {
+ public @NonNull LoadAction build() {
return new LoadAction(mImpl.build(), mFingerprint);
}
}
@@ -694,29 +635,25 @@
public interface Action {
/** Get the protocol buffer representation of this object. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- ActionProto.Action toActionProto();
+ ActionProto.@NonNull Action toActionProto();
/** Get the fingerprint for this object or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- Fingerprint getFingerprint();
+ @Nullable Fingerprint getFingerprint();
/** Builder to create {@link Action} objects. */
@SuppressLint("StaticFinalBuilder")
interface Builder {
/** Builds an instance with values accumulated in this Builder. */
- @NonNull
- Action build();
+ @NonNull Action build();
}
}
/**
* Return an instance of one of this object's subtypes, from the protocol buffer representation.
*/
- @NonNull
- static Action actionFromProto(@NonNull ActionProto.Action proto) {
+ static @NonNull Action actionFromProto(ActionProto.@NonNull Action proto) {
if (proto.hasLaunchAction()) {
return LaunchAction.fromProto(proto.getLaunchAction());
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ActiveTileIdentifier.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ActiveTileIdentifier.java
index 419d8f9..9d53721 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ActiveTileIdentifier.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ActiveTileIdentifier.java
@@ -18,7 +18,7 @@
import android.content.ComponentName;
-import androidx.annotation.NonNull;
+import org.jspecify.annotations.NonNull;
/**
* Tile information containing the tile instance ID and component name for identifying a tile
@@ -34,8 +34,7 @@
}
/** Component name of the tile provider. */
- @NonNull
- public ComponentName getComponentName() {
+ public @NonNull ComponentName getComponentName() {
return mComponentName;
}
@@ -53,8 +52,7 @@
* represented as the tileId, concatenated with a ':' and then the component name flattened
* to string.
*/
- @NonNull
- String flattenToString() {
+ @NonNull String flattenToString() {
return mInstanceId + ":" + mComponentName.flattenToString();
}
@@ -67,8 +65,7 @@
* @return Returns a new ActiveTileIdentifier containing the tile id and component name that
* were encoded in {@code string}.
*/
- @NonNull
- static ActiveTileIdentifier unflattenFromString(@NonNull String string) {
+ static @NonNull ActiveTileIdentifier unflattenFromString(@NonNull String string) {
int delimiterIndex = string.indexOf(":");
return new ActiveTileIdentifier(
ComponentName.unflattenFromString(string.substring(delimiterIndex + 1)),
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 dd34db9..3e0526a 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
@@ -17,13 +17,14 @@
package androidx.wear.tiles;
import androidx.annotation.ColorInt;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.ColorProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Builders for color utilities for layout elements.
*
@@ -34,15 +35,14 @@
private ColorBuilders() {}
/** Shortcut for building a {@link ColorProp} using an ARGB value. */
- @NonNull
- public static ColorProp argb(@ColorInt int colorArgb) {
+ public static @NonNull ColorProp argb(@ColorInt int colorArgb) {
return new ColorProp.Builder().setArgb(colorArgb).build();
}
/** A property defining a color. */
public static final class ColorProp {
private final ColorProto.ColorProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ColorProp(ColorProto.ColorProp impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -57,18 +57,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ColorProp fromProto(@NonNull ColorProto.ColorProp proto) {
+ static @NonNull ColorProp fromProto(ColorProto.@NonNull ColorProp proto) {
return new ColorProp(proto, null);
}
- @NonNull
- ColorProto.ColorProp toProto() {
+ ColorProto.@NonNull ColorProp toProto() {
return mImpl;
}
@@ -80,16 +77,14 @@
public Builder() {}
/** Sets the color value, in ARGB format. */
- @NonNull
- public Builder setArgb(@ColorInt int argb) {
+ public @NonNull Builder setArgb(@ColorInt int argb) {
mImpl.setArgb(argb);
mFingerprint.recordPropertyUpdate(1, argb);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public ColorProp build() {
+ public @NonNull ColorProp build() {
return new ColorProp(mImpl.build(), mFingerprint);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/CompositeTileUpdateRequester.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/CompositeTileUpdateRequester.java
index 2233b74..3ac0640 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/CompositeTileUpdateRequester.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/CompositeTileUpdateRequester.java
@@ -16,7 +16,7 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
+import org.jspecify.annotations.NonNull;
import java.util.List;
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 662d045..fbd4755 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
@@ -21,10 +21,11 @@
import androidx.annotation.Dimension;
import androidx.annotation.FloatRange;
import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.wear.protolayout.proto.DeviceParametersProto;
+import org.jspecify.annotations.NonNull;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -108,13 +109,12 @@
return mImpl.getScreenShape().getNumber();
}
- @NonNull
- static DeviceParameters fromProto(@NonNull DeviceParametersProto.DeviceParameters proto) {
+ static @NonNull DeviceParameters fromProto(
+ DeviceParametersProto.@NonNull DeviceParameters proto) {
return new DeviceParameters(proto);
}
- @NonNull
- DeviceParametersProto.DeviceParameters toProto() {
+ DeviceParametersProto.@NonNull DeviceParameters toProto() {
return mImpl;
}
@@ -126,15 +126,13 @@
public Builder() {}
/** Sets width of the device's screen in DP. */
- @NonNull
- public Builder setScreenWidthDp(@Dimension(unit = DP) int screenWidthDp) {
+ public @NonNull Builder setScreenWidthDp(@Dimension(unit = DP) int screenWidthDp) {
mImpl.setScreenWidthDp(screenWidthDp);
return this;
}
/** Sets height of the device's screen in DP. */
- @NonNull
- public Builder setScreenHeightDp(@Dimension(unit = DP) int screenHeightDp) {
+ public @NonNull Builder setScreenHeightDp(@Dimension(unit = DP) int screenHeightDp) {
mImpl.setScreenHeightDp(screenHeightDp);
return this;
}
@@ -143,8 +141,7 @@
* Sets density of the display. This value is the scaling factor to get from DP to
* Pixels (px = dp * density).
*/
- @NonNull
- public Builder setScreenDensity(
+ public @NonNull Builder setScreenDensity(
@FloatRange(from = 0.0, fromInclusive = false, toInclusive = false)
float screenDensity) {
mImpl.setScreenDensity(screenDensity);
@@ -152,23 +149,20 @@
}
/** Sets the platform of the device. */
- @NonNull
- public Builder setDevicePlatform(@DevicePlatform int devicePlatform) {
+ public @NonNull Builder setDevicePlatform(@DevicePlatform int devicePlatform) {
mImpl.setDevicePlatform(
DeviceParametersProto.DevicePlatform.forNumber(devicePlatform));
return this;
}
/** Sets the shape of the device's screen. */
- @NonNull
- public Builder setScreenShape(@ScreenShape int screenShape) {
+ public @NonNull Builder setScreenShape(@ScreenShape int screenShape) {
mImpl.setScreenShape(DeviceParametersProto.ScreenShape.forNumber(screenShape));
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public DeviceParameters build() {
+ public @NonNull DeviceParameters build() {
return DeviceParameters.fromProto(mImpl.build());
}
}
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 e054a94..050de79 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
@@ -23,13 +23,14 @@
import androidx.annotation.Dimension;
import androidx.annotation.IntRange;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.DimensionProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Builders for dimensions for layout elements.
*
@@ -43,32 +44,27 @@
private static final WrappedDimensionProp WRAP = new WrappedDimensionProp.Builder().build();
/** Shortcut for building a {@link DpProp} using a measurement in DP. */
- @NonNull
- public static DpProp dp(@Dimension(unit = DP) float valueDp) {
+ public static @NonNull DpProp dp(@Dimension(unit = DP) float valueDp) {
return new DpProp.Builder().setValue(valueDp).build();
}
/** Shortcut for building a {@link SpProp} using a measurement in SP. */
- @NonNull
- public static SpProp sp(@Dimension(unit = SP) float valueSp) {
+ public static @NonNull SpProp sp(@Dimension(unit = SP) float valueSp) {
return new SpProp.Builder().setValue(valueSp).build();
}
/** Shortcut for building a {@link EmProp} using a measurement in EM. */
- @NonNull
- public static EmProp em(int valueEm) {
+ public static @NonNull EmProp em(int valueEm) {
return new EmProp.Builder().setValue(valueEm).build();
}
/** Shortcut for building a {@link EmProp} using a measurement in EM. */
- @NonNull
- public static EmProp em(float valueEm) {
+ public static @NonNull EmProp em(float valueEm) {
return new EmProp.Builder().setValue(valueEm).build();
}
/** Shortcut for building an {@link DegreesProp} using a measurement in degrees. */
- @NonNull
- public static DegreesProp degrees(float valueDegrees) {
+ public static @NonNull DegreesProp degrees(float valueDegrees) {
return new DegreesProp.Builder().setValue(valueDegrees).build();
}
@@ -76,8 +72,7 @@
* Shortcut for building an {@link ExpandedDimensionProp} that will expand to the size of its
* parent.
*/
- @NonNull
- public static ExpandedDimensionProp expand() {
+ public static @NonNull ExpandedDimensionProp expand() {
return EXPAND;
}
@@ -85,8 +80,7 @@
* Shortcut for building an {@link WrappedDimensionProp} that will shrink to the size of its
* children.
*/
- @NonNull
- public static WrappedDimensionProp wrap() {
+ public static @NonNull WrappedDimensionProp wrap() {
return WRAP;
}
@@ -94,7 +88,7 @@
public static final class DpProp
implements ContainerDimension, ImageDimension, SpacerDimension {
private final DimensionProto.DpProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
DpProp(DimensionProto.DpProp impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -109,39 +103,33 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static DpProp fromProto(@NonNull DimensionProto.DpProp proto) {
+ static @NonNull DpProp fromProto(DimensionProto.@NonNull DpProp proto) {
return new DpProp(proto, null);
}
- @NonNull
- DimensionProto.DpProp toProto() {
+ DimensionProto.@NonNull DpProp toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public DimensionProto.ContainerDimension toContainerDimensionProto() {
+ public DimensionProto.@NonNull ContainerDimension toContainerDimensionProto() {
return DimensionProto.ContainerDimension.newBuilder().setLinearDimension(mImpl).build();
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public DimensionProto.ImageDimension toImageDimensionProto() {
+ public DimensionProto.@NonNull ImageDimension toImageDimensionProto() {
return DimensionProto.ImageDimension.newBuilder().setLinearDimension(mImpl).build();
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public DimensionProto.SpacerDimension toSpacerDimensionProto() {
+ public DimensionProto.@NonNull SpacerDimension toSpacerDimensionProto() {
return DimensionProto.SpacerDimension.newBuilder().setLinearDimension(mImpl).build();
}
@@ -156,16 +144,14 @@
public Builder() {}
/** Sets the value, in dp. */
- @NonNull
- public Builder setValue(@Dimension(unit = DP) float value) {
+ public @NonNull Builder setValue(@Dimension(unit = DP) float value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, Float.floatToIntBits(value));
return this;
}
@Override
- @NonNull
- public DpProp build() {
+ public @NonNull DpProp build() {
return new DpProp(mImpl.build(), mFingerprint);
}
}
@@ -174,7 +160,7 @@
/** A type for font sizes, measured in sp. */
public static final class SpProp {
private final DimensionProto.SpProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
SpProp(DimensionProto.SpProp impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -189,18 +175,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static SpProp fromProto(@NonNull DimensionProto.SpProp proto) {
+ static @NonNull SpProp fromProto(DimensionProto.@NonNull SpProp proto) {
return new SpProp(proto, null);
}
- @NonNull
- DimensionProto.SpProp toProto() {
+ DimensionProto.@NonNull SpProp toProto() {
return mImpl;
}
@@ -212,16 +195,14 @@
public Builder() {}
/** Sets the value, in sp. */
- @NonNull
- public Builder setValue(@Dimension(unit = SP) float value) {
+ public @NonNull Builder setValue(@Dimension(unit = SP) float value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(2, Float.floatToIntBits(value));
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public SpProp build() {
+ public @NonNull SpProp build() {
return new SpProp(mImpl.build(), mFingerprint);
}
}
@@ -230,7 +211,7 @@
/** A type for font spacing, measured in em. */
public static final class EmProp {
private final DimensionProto.EmProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
EmProp(DimensionProto.EmProp impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -244,18 +225,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static EmProp fromProto(@NonNull DimensionProto.EmProp proto) {
+ static @NonNull EmProp fromProto(DimensionProto.@NonNull EmProp proto) {
return new EmProp(proto, null);
}
- @NonNull
- DimensionProto.EmProp toProto() {
+ DimensionProto.@NonNull EmProp toProto() {
return mImpl;
}
@@ -267,16 +245,14 @@
public Builder() {}
/** Sets the value, in em. */
- @NonNull
- public Builder setValue(float value) {
+ public @NonNull Builder setValue(float value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, Float.floatToIntBits(value));
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public EmProp build() {
+ public @NonNull EmProp build() {
return new EmProp(mImpl.build(), mFingerprint);
}
}
@@ -285,7 +261,7 @@
/** A type for angular dimensions, measured in degrees. */
public static final class DegreesProp {
private final DimensionProto.DegreesProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
DegreesProp(DimensionProto.DegreesProp impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -299,18 +275,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static DegreesProp fromProto(@NonNull DimensionProto.DegreesProp proto) {
+ static @NonNull DegreesProp fromProto(DimensionProto.@NonNull DegreesProp proto) {
return new DegreesProp(proto, null);
}
- @NonNull
- DimensionProto.DegreesProp toProto() {
+ DimensionProto.@NonNull DegreesProp toProto() {
return mImpl;
}
@@ -323,16 +296,14 @@
public Builder() {}
/** Sets the value, in degrees. */
- @NonNull
- public Builder setValue(float value) {
+ public @NonNull Builder setValue(float value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, Float.floatToIntBits(value));
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public DegreesProp build() {
+ public @NonNull DegreesProp build() {
return new DegreesProp(mImpl.build(), mFingerprint);
}
}
@@ -344,7 +315,7 @@
*/
public static final class ExpandedDimensionProp implements ContainerDimension, ImageDimension {
private final DimensionProto.ExpandedDimensionProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ExpandedDimensionProp(
DimensionProto.ExpandedDimensionProp impl, @Nullable Fingerprint fingerprint) {
@@ -354,26 +325,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ExpandedDimensionProp fromProto(
- @NonNull DimensionProto.ExpandedDimensionProp proto) {
+ static @NonNull ExpandedDimensionProp fromProto(
+ DimensionProto.@NonNull ExpandedDimensionProp proto) {
return new ExpandedDimensionProp(proto, null);
}
- @NonNull
- DimensionProto.ExpandedDimensionProp toProto() {
+ DimensionProto.@NonNull ExpandedDimensionProp toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public DimensionProto.ContainerDimension toContainerDimensionProto() {
+ public DimensionProto.@NonNull ContainerDimension toContainerDimensionProto() {
return DimensionProto.ContainerDimension.newBuilder()
.setExpandedDimension(mImpl)
.build();
@@ -381,8 +348,7 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public DimensionProto.ImageDimension toImageDimensionProto() {
+ public DimensionProto.@NonNull ImageDimension toImageDimensionProto() {
return DimensionProto.ImageDimension.newBuilder().setExpandedDimension(mImpl).build();
}
@@ -396,8 +362,7 @@
public Builder() {}
@Override
- @NonNull
- public ExpandedDimensionProp build() {
+ public @NonNull ExpandedDimensionProp build() {
return new ExpandedDimensionProp(mImpl.build(), mFingerprint);
}
}
@@ -409,7 +374,7 @@
*/
public static final class WrappedDimensionProp implements ContainerDimension {
private final DimensionProto.WrappedDimensionProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
WrappedDimensionProp(
DimensionProto.WrappedDimensionProp impl, @Nullable Fingerprint fingerprint) {
@@ -419,25 +384,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static WrappedDimensionProp fromProto(@NonNull DimensionProto.WrappedDimensionProp proto) {
+ static @NonNull WrappedDimensionProp fromProto(
+ DimensionProto.@NonNull WrappedDimensionProp proto) {
return new WrappedDimensionProp(proto, null);
}
- @NonNull
- DimensionProto.WrappedDimensionProp toProto() {
+ DimensionProto.@NonNull WrappedDimensionProp toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public DimensionProto.ContainerDimension toContainerDimensionProto() {
+ public DimensionProto.@NonNull ContainerDimension toContainerDimensionProto() {
return DimensionProto.ContainerDimension.newBuilder()
.setWrappedDimension(mImpl)
.build();
@@ -452,8 +414,7 @@
public Builder() {}
@Override
- @NonNull
- public WrappedDimensionProp build() {
+ public @NonNull WrappedDimensionProp build() {
return new WrappedDimensionProp(mImpl.build(), mFingerprint);
}
}
@@ -470,7 +431,7 @@
*/
public static final class ProportionalDimensionProp implements ImageDimension {
private final DimensionProto.ProportionalDimensionProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ProportionalDimensionProp(
DimensionProto.ProportionalDimensionProp impl, @Nullable Fingerprint fingerprint) {
@@ -498,26 +459,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ProportionalDimensionProp fromProto(
- @NonNull DimensionProto.ProportionalDimensionProp proto) {
+ static @NonNull ProportionalDimensionProp fromProto(
+ DimensionProto.@NonNull ProportionalDimensionProp proto) {
return new ProportionalDimensionProp(proto, null);
}
- @NonNull
- DimensionProto.ProportionalDimensionProp toProto() {
+ DimensionProto.@NonNull ProportionalDimensionProp toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public DimensionProto.ImageDimension toImageDimensionProto() {
+ public DimensionProto.@NonNull ImageDimension toImageDimensionProto() {
return DimensionProto.ImageDimension.newBuilder()
.setProportionalDimension(mImpl)
.build();
@@ -532,24 +489,22 @@
public Builder() {}
/** Sets the width to be used when calculating the aspect ratio to preserve. */
- @NonNull
- public Builder setAspectRatioWidth(@IntRange(from = 0) int aspectRatioWidth) {
+ public @NonNull Builder setAspectRatioWidth(@IntRange(from = 0) int aspectRatioWidth) {
mImpl.setAspectRatioWidth(aspectRatioWidth);
mFingerprint.recordPropertyUpdate(1, aspectRatioWidth);
return this;
}
/** Sets the height to be used when calculating the aspect ratio ratio to preserve. */
- @NonNull
- public Builder setAspectRatioHeight(@IntRange(from = 0) int aspectRatioHeight) {
+ public @NonNull Builder setAspectRatioHeight(
+ @IntRange(from = 0) int aspectRatioHeight) {
mImpl.setAspectRatioHeight(aspectRatioHeight);
mFingerprint.recordPropertyUpdate(2, aspectRatioHeight);
return this;
}
@Override
- @NonNull
- public ProportionalDimensionProp build() {
+ public @NonNull ProportionalDimensionProp build() {
return new ProportionalDimensionProp(mImpl.build(), mFingerprint);
}
}
@@ -559,30 +514,26 @@
public interface ContainerDimension {
/** Get the protocol buffer representation of this object. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- DimensionProto.ContainerDimension toContainerDimensionProto();
+ DimensionProto.@NonNull ContainerDimension toContainerDimensionProto();
/** Get the fingerprint for this object or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- Fingerprint getFingerprint();
+ @Nullable Fingerprint getFingerprint();
/** Builder to create {@link ContainerDimension} objects. */
@SuppressLint("StaticFinalBuilder")
interface Builder {
/** Builds an instance with values accumulated in this Builder. */
- @NonNull
- ContainerDimension build();
+ @NonNull ContainerDimension build();
}
}
/**
* Return an instance of one of this object's subtypes, from the protocol buffer representation.
*/
- @NonNull
- static ContainerDimension containerDimensionFromProto(
- @NonNull DimensionProto.ContainerDimension proto) {
+ static @NonNull ContainerDimension containerDimensionFromProto(
+ DimensionProto.@NonNull ContainerDimension proto) {
if (proto.hasLinearDimension()) {
return DpProp.fromProto(proto.getLinearDimension());
}
@@ -600,29 +551,26 @@
public interface ImageDimension {
/** Get the protocol buffer representation of this object. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- DimensionProto.ImageDimension toImageDimensionProto();
+ DimensionProto.@NonNull ImageDimension toImageDimensionProto();
/** Get the fingerprint for this object or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- Fingerprint getFingerprint();
+ @Nullable Fingerprint getFingerprint();
/** Builder to create {@link ImageDimension} objects. */
@SuppressLint("StaticFinalBuilder")
interface Builder {
/** Builds an instance with values accumulated in this Builder. */
- @NonNull
- ImageDimension build();
+ @NonNull ImageDimension build();
}
}
/**
* Return an instance of one of this object's subtypes, from the protocol buffer representation.
*/
- @NonNull
- static ImageDimension imageDimensionFromProto(@NonNull DimensionProto.ImageDimension proto) {
+ static @NonNull ImageDimension imageDimensionFromProto(
+ DimensionProto.@NonNull ImageDimension proto) {
if (proto.hasLinearDimension()) {
return DpProp.fromProto(proto.getLinearDimension());
}
@@ -639,26 +587,23 @@
public interface SpacerDimension {
/** Get the protocol buffer representation of this object. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- DimensionProto.SpacerDimension toSpacerDimensionProto();
+ DimensionProto.@NonNull SpacerDimension toSpacerDimensionProto();
/** Get the fingerprint for this object or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- Fingerprint getFingerprint();
+ @Nullable Fingerprint getFingerprint();
/** Builder to create {@link SpacerDimension} objects. */
@SuppressLint("StaticFinalBuilder")
interface Builder {
/** Builds an instance with values accumulated in this Builder. */
- @NonNull
- SpacerDimension build();
+ @NonNull SpacerDimension build();
}
}
- @NonNull
- static SpacerDimension spacerDimensionFromProto(@NonNull DimensionProto.SpacerDimension proto) {
+ static @NonNull SpacerDimension spacerDimensionFromProto(
+ DimensionProto.@NonNull SpacerDimension proto) {
if (proto.hasLinearDimension()) {
return DpProp.fromProto(proto.getLinearDimension());
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DiskAccessAllowedPrefs.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DiskAccessAllowedPrefs.java
index 7928651..884becd 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DiskAccessAllowedPrefs.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/DiskAccessAllowedPrefs.java
@@ -21,18 +21,19 @@
import android.os.StrictMode;
import android.os.StrictMode.ThreadPolicy;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.util.Map;
/** Get versions of shared prefs that ignore strict mode and allows disk reads and writes. */
@RestrictTo(Scope.LIBRARY_GROUP)
final class DiskAccessAllowedPrefs {
- @NonNull private final SharedPreferences preferences;
+ private final @NonNull SharedPreferences preferences;
private DiskAccessAllowedPrefs(@NonNull SharedPreferences preferences) {
this.preferences = preferences;
@@ -42,8 +43,7 @@
* Returns a simplified version of {@link SharedPreferences} wrapped to ignore disk read and
* write StrictMode violations.
*/
- @Nullable
- static DiskAccessAllowedPrefs wrap(@NonNull Context context, @NonNull String name) {
+ static @Nullable DiskAccessAllowedPrefs wrap(@NonNull Context context, @NonNull String name) {
ThreadPolicy policy = StrictMode.allowThreadDiskReads();
try {
SharedPreferences sharedPref = context.getSharedPreferences(name, Context.MODE_PRIVATE);
@@ -53,8 +53,7 @@
}
}
- @Nullable
- Map<String, ?> getAll() {
+ @Nullable Map<String, ?> getAll() {
ThreadPolicy policy = StrictMode.allowThreadDiskReads();
try {
return preferences.getAll();
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/EventBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/EventBuilders.java
index 7e72ffb..0e71b08 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/EventBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/EventBuilders.java
@@ -17,13 +17,14 @@
package androidx.wear.tiles;
import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.annotation.VisibleForTesting;
import androidx.wear.protolayout.expression.RequiresSchemaVersion;
import androidx.wear.tiles.proto.EventProto;
+import org.jspecify.annotations.NonNull;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.time.Instant;
@@ -52,21 +53,18 @@
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static TileAddEvent fromProto(@NonNull EventProto.TileAddEvent proto) {
+ public static @NonNull TileAddEvent fromProto(EventProto.@NonNull TileAddEvent proto) {
return new TileAddEvent(proto);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public EventProto.TileAddEvent toProto() {
+ public EventProto.@NonNull TileAddEvent toProto() {
return mImpl;
}
@Override
- @NonNull
- public String toString() {
+ public @NonNull String toString() {
return "TileAddEvent{" + "tileId=" + getTileId() + "}";
}
@@ -84,15 +82,13 @@
* carousel. This ID will remain the same for this tile instance as long it is not
* removed from the carousel.
*/
- @NonNull
- public Builder setTileId(int tileId) {
+ public @NonNull Builder setTileId(int tileId) {
mImpl.setTileId(tileId);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TileAddEvent build() {
+ public @NonNull TileAddEvent build() {
return TileAddEvent.fromProto(mImpl.build());
}
}
@@ -118,21 +114,19 @@
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static TileRemoveEvent fromProto(@NonNull EventProto.TileRemoveEvent proto) {
+ public static @NonNull TileRemoveEvent fromProto(
+ EventProto.@NonNull TileRemoveEvent proto) {
return new TileRemoveEvent(proto);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public EventProto.TileRemoveEvent toProto() {
+ public EventProto.@NonNull TileRemoveEvent toProto() {
return mImpl;
}
@Override
- @NonNull
- public String toString() {
+ public @NonNull String toString() {
return "TileRemoveEvent{" + "tileId=" + getTileId() + "}";
}
@@ -149,15 +143,13 @@
* Sets instance ID of the removed tile, allocated when the tile instance was added to
* the carousel.
*/
- @NonNull
- public Builder setTileId(int tileId) {
+ public @NonNull Builder setTileId(int tileId) {
mImpl.setTileId(tileId);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TileRemoveEvent build() {
+ public @NonNull TileRemoveEvent build() {
return TileRemoveEvent.fromProto(mImpl.build());
}
}
@@ -183,21 +175,18 @@
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static TileEnterEvent fromProto(@NonNull EventProto.TileEnterEvent proto) {
+ public static @NonNull TileEnterEvent fromProto(EventProto.@NonNull TileEnterEvent proto) {
return new TileEnterEvent(proto);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public EventProto.TileEnterEvent toProto() {
+ public EventProto.@NonNull TileEnterEvent toProto() {
return mImpl;
}
@Override
- @NonNull
- public String toString() {
+ public @NonNull String toString() {
return "TileEnterEvent{" + "tileId=" + getTileId() + "}";
}
@@ -215,15 +204,13 @@
* carousel. This ID will remain the same for this tile instance as long it is not
* removed from the carousel.
*/
- @NonNull
- public Builder setTileId(int tileId) {
+ public @NonNull Builder setTileId(int tileId) {
mImpl.setTileId(tileId);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TileEnterEvent build() {
+ public @NonNull TileEnterEvent build() {
return TileEnterEvent.fromProto(mImpl.build());
}
}
@@ -252,21 +239,18 @@
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static TileLeaveEvent fromProto(@NonNull EventProto.TileLeaveEvent proto) {
+ public static @NonNull TileLeaveEvent fromProto(EventProto.@NonNull TileLeaveEvent proto) {
return new TileLeaveEvent(proto);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public EventProto.TileLeaveEvent toProto() {
+ public EventProto.@NonNull TileLeaveEvent toProto() {
return mImpl;
}
@Override
- @NonNull
- public String toString() {
+ public @NonNull String toString() {
return "TileLeaveEvent{" + "tileId=" + getTileId() + "}";
}
@@ -284,15 +268,13 @@
* carousel. This ID will remain the same for this tile instance as long it is not
* removed from the carousel.
*/
- @NonNull
- public Builder setTileId(int tileId) {
+ public @NonNull Builder setTileId(int tileId) {
mImpl.setTileId(tileId);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TileLeaveEvent build() {
+ public @NonNull TileLeaveEvent build() {
return TileLeaveEvent.fromProto(mImpl.build());
}
}
@@ -347,29 +329,25 @@
* Instant#now()} (Created at the time of {@link
* TileInteractionEvent.Builder#Builder(int,int)} constructor call) if not provided.
*/
- @NonNull
- public Instant getTimestamp() {
+ public @NonNull Instant getTimestamp() {
return Instant.ofEpochMilli(mImpl.getTimestampEpochMillis());
}
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static TileInteractionEvent fromProto(
- @NonNull EventProto.TileInteractionEvent proto) {
+ public static @NonNull TileInteractionEvent fromProto(
+ EventProto.@NonNull TileInteractionEvent proto) {
return new TileInteractionEvent(proto);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public EventProto.TileInteractionEvent toProto() {
+ public EventProto.@NonNull TileInteractionEvent toProto() {
return mImpl;
}
@Override
- @NonNull
- public String toString() {
+ public @NonNull String toString() {
return "TileInteractionEvent{"
+ "tileId="
+ getTileId()
@@ -382,8 +360,7 @@
/** Builder for {@link TileInteractionEvent} */
public static final class Builder {
- @NonNull
- private final EventProto.TileInteractionEvent.Builder mImpl =
+ private final EventProto.TileInteractionEvent.@NonNull Builder mImpl =
EventProto.TileInteractionEvent.newBuilder();
/** Interface so this Builder can retrieve the current time. */
@@ -441,15 +418,13 @@
* call) if not provided.
*/
@RequiresSchemaVersion(major = 1, minor = 400)
- @NonNull
- public Builder setTimestamp(@NonNull Instant instant) {
+ public @NonNull Builder setTimestamp(@NonNull Instant instant) {
mImpl.setTimestampEpochMillis(instant.toEpochMilli());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TileInteractionEvent build() {
+ public @NonNull TileInteractionEvent build() {
return TileInteractionEvent.fromProto(mImpl.build());
}
}
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 259bddf..eca36c9 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
@@ -24,8 +24,6 @@
import androidx.annotation.IntDef;
import androidx.annotation.IntRange;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.OptIn;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
@@ -38,6 +36,9 @@
import androidx.wear.protolayout.proto.TypesProto;
import androidx.wear.protolayout.protobuf.InvalidProtocolBufferException;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Collections;
@@ -316,7 +317,7 @@
/** An extensible {@code HorizontalAlignment} property. */
public static final class HorizontalAlignmentProp {
private final AlignmentProto.HorizontalAlignmentProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
private HorizontalAlignmentProp(
AlignmentProto.HorizontalAlignmentProp impl, @Nullable Fingerprint fingerprint) {
@@ -332,19 +333,16 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static HorizontalAlignmentProp fromProto(
- @NonNull AlignmentProto.HorizontalAlignmentProp proto) {
+ static @NonNull HorizontalAlignmentProp fromProto(
+ AlignmentProto.@NonNull HorizontalAlignmentProp proto) {
return new HorizontalAlignmentProp(proto, null);
}
- @NonNull
- AlignmentProto.HorizontalAlignmentProp toProto() {
+ AlignmentProto.@NonNull HorizontalAlignmentProp toProto() {
return mImpl;
}
@@ -357,16 +355,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@HorizontalAlignment int value) {
+ public @NonNull Builder setValue(@HorizontalAlignment int value) {
mImpl.setValue(AlignmentProto.HorizontalAlignment.forNumber(value));
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public HorizontalAlignmentProp build() {
+ public @NonNull HorizontalAlignmentProp build() {
return HorizontalAlignmentProp.fromProto(mImpl.build());
}
}
@@ -375,7 +371,7 @@
/** An extensible {@code VerticalAlignment} property. */
public static final class VerticalAlignmentProp {
private final AlignmentProto.VerticalAlignmentProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
VerticalAlignmentProp(
AlignmentProto.VerticalAlignmentProp impl, @Nullable Fingerprint fingerprint) {
@@ -391,19 +387,16 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static VerticalAlignmentProp fromProto(
- @NonNull AlignmentProto.VerticalAlignmentProp proto) {
+ static @NonNull VerticalAlignmentProp fromProto(
+ AlignmentProto.@NonNull VerticalAlignmentProp proto) {
return new VerticalAlignmentProp(proto, null);
}
- @NonNull
- AlignmentProto.VerticalAlignmentProp toProto() {
+ AlignmentProto.@NonNull VerticalAlignmentProp toProto() {
return mImpl;
}
@@ -416,16 +409,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@VerticalAlignment int value) {
+ public @NonNull Builder setValue(@VerticalAlignment int value) {
mImpl.setValue(AlignmentProto.VerticalAlignment.forNumber(value));
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public VerticalAlignmentProp build() {
+ public @NonNull VerticalAlignmentProp build() {
return new VerticalAlignmentProp(mImpl.build(), mFingerprint);
}
}
@@ -434,7 +425,7 @@
/** An extensible {@code FontWeight} property. */
public static final class FontWeightProp {
private final LayoutElementProto.FontWeightProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
FontWeightProp(LayoutElementProto.FontWeightProp impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -449,18 +440,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static FontWeightProp fromProto(@NonNull LayoutElementProto.FontWeightProp proto) {
+ static @NonNull FontWeightProp fromProto(LayoutElementProto.@NonNull FontWeightProp proto) {
return new FontWeightProp(proto, null);
}
- @NonNull
- LayoutElementProto.FontWeightProp toProto() {
+ LayoutElementProto.@NonNull FontWeightProp toProto() {
return mImpl;
}
@@ -473,16 +461,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@FontWeight int value) {
+ public @NonNull Builder setValue(@FontWeight int value) {
mImpl.setValue(LayoutElementProto.FontWeight.forNumber(value));
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public FontWeightProp build() {
+ public @NonNull FontWeightProp build() {
return new FontWeightProp(mImpl.build(), mFingerprint);
}
}
@@ -492,7 +478,7 @@
@TilesExperimental
public static final class FontVariantProp {
private final LayoutElementProto.FontVariantProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
FontVariantProp(
LayoutElementProto.FontVariantProp impl, @Nullable Fingerprint fingerprint) {
@@ -508,18 +494,16 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static FontVariantProp fromProto(@NonNull LayoutElementProto.FontVariantProp proto) {
+ static @NonNull FontVariantProp fromProto(
+ LayoutElementProto.@NonNull FontVariantProp proto) {
return new FontVariantProp(proto, null);
}
- @NonNull
- LayoutElementProto.FontVariantProp toProto() {
+ LayoutElementProto.@NonNull FontVariantProp toProto() {
return mImpl;
}
@@ -532,16 +516,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@FontVariant int value) {
+ public @NonNull Builder setValue(@FontVariant int value) {
mImpl.setValue(LayoutElementProto.FontVariant.forNumber(value));
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public FontVariantProp build() {
+ public @NonNull FontVariantProp build() {
return new FontVariantProp(mImpl.build(), mFingerprint);
}
}
@@ -550,7 +532,7 @@
/** An extensible {@code SpanVerticalAlignment} property. */
public static final class SpanVerticalAlignmentProp {
private final LayoutElementProto.SpanVerticalAlignmentProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
SpanVerticalAlignmentProp(
LayoutElementProto.SpanVerticalAlignmentProp impl,
@@ -567,19 +549,16 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static SpanVerticalAlignmentProp fromProto(
- @NonNull LayoutElementProto.SpanVerticalAlignmentProp proto) {
+ static @NonNull SpanVerticalAlignmentProp fromProto(
+ LayoutElementProto.@NonNull SpanVerticalAlignmentProp proto) {
return new SpanVerticalAlignmentProp(proto, null);
}
- @NonNull
- LayoutElementProto.SpanVerticalAlignmentProp toProto() {
+ LayoutElementProto.@NonNull SpanVerticalAlignmentProp toProto() {
return mImpl;
}
@@ -592,16 +571,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@SpanVerticalAlignment int value) {
+ public @NonNull Builder setValue(@SpanVerticalAlignment int value) {
mImpl.setValue(LayoutElementProto.SpanVerticalAlignment.forNumber(value));
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public SpanVerticalAlignmentProp build() {
+ public @NonNull SpanVerticalAlignmentProp build() {
return new SpanVerticalAlignmentProp(mImpl.build(), mFingerprint);
}
}
@@ -610,7 +587,7 @@
/** The styling of a font (e.g. font size, and metrics). */
public static final class FontStyle {
private final LayoutElementProto.FontStyle mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
FontStyle(LayoutElementProto.FontStyle impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -621,8 +598,7 @@
* Gets the size of the font, in scaled pixels (sp). If not specified, defaults to the size
* of the system's "body" font. Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.SpProp getSize() {
+ public DimensionBuilders.@Nullable SpProp getSize() {
List<DimensionProto.SpProp> sizes = mImpl.getSizeList();
if (!sizes.isEmpty()) {
return DimensionBuilders.SpProp.fromProto(sizes.get(0));
@@ -635,8 +611,7 @@
* Gets whether the text should be rendered in a italic typeface. If not specified, defaults
* to "false". Intended for testing purposes only.
*/
- @Nullable
- public TypeBuilders.BoolProp getItalic() {
+ public TypeBuilders.@Nullable BoolProp getItalic() {
if (mImpl.hasItalic()) {
return TypeBuilders.BoolProp.fromProto(mImpl.getItalic());
} else {
@@ -648,8 +623,7 @@
* Gets whether the text should be rendered with an underline. If not specified, defaults to
* "false". Intended for testing purposes only.
*/
- @Nullable
- public TypeBuilders.BoolProp getUnderline() {
+ public TypeBuilders.@Nullable BoolProp getUnderline() {
if (mImpl.hasUnderline()) {
return TypeBuilders.BoolProp.fromProto(mImpl.getUnderline());
} else {
@@ -661,8 +635,7 @@
* Gets the text color. If not defined, defaults to white. Intended for testing purposes
* only.
*/
- @Nullable
- public ColorBuilders.ColorProp getColor() {
+ public ColorBuilders.@Nullable ColorProp getColor() {
if (mImpl.hasColor()) {
return ColorBuilders.ColorProp.fromProto(mImpl.getColor());
} else {
@@ -675,8 +648,7 @@
* nearest supported value will be used. If not defined, or when set to an invalid value,
* defaults to "normal". Intended for testing purposes only.
*/
- @Nullable
- public FontWeightProp getWeight() {
+ public @Nullable FontWeightProp getWeight() {
if (mImpl.hasWeight()) {
return FontWeightProp.fromProto(mImpl.getWeight());
} else {
@@ -689,8 +661,7 @@
* negative numbers tighten the space. If not specified, defaults to 0. Intended for testing
* purposes only.
*/
- @Nullable
- public DimensionBuilders.EmProp getLetterSpacing() {
+ public DimensionBuilders.@Nullable EmProp getLetterSpacing() {
if (mImpl.hasLetterSpacing()) {
return DimensionBuilders.EmProp.fromProto(mImpl.getLetterSpacing());
} else {
@@ -704,8 +675,7 @@
* Intended for testing purposes only.
*/
@TilesExperimental
- @Nullable
- public FontVariantProp getVariant() {
+ public @Nullable FontVariantProp getVariant() {
if (mImpl.hasVariant()) {
return FontVariantProp.fromProto(mImpl.getVariant());
} else {
@@ -715,20 +685,17 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static FontStyle fromProto(@NonNull LayoutElementProto.FontStyle proto) {
+ static @NonNull FontStyle fromProto(LayoutElementProto.@NonNull FontStyle proto) {
return new FontStyle(proto, null);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.FontStyle toProto() {
+ public LayoutElementProto.@NonNull FontStyle toProto() {
return mImpl;
}
@@ -744,8 +711,7 @@
* Sets the size of the font, in scaled pixels (sp). If not specified, defaults to the
* size of the system's "body" font.
*/
- @NonNull
- public Builder setSize(@NonNull DimensionBuilders.SpProp size) {
+ public @NonNull Builder setSize(DimensionBuilders.@NonNull SpProp size) {
mImpl.clearSize();
mImpl.addSize(size.toProto());
mFingerprint.recordPropertyUpdate(
@@ -757,8 +723,7 @@
* Sets whether the text should be rendered in a italic typeface. If not specified,
* defaults to "false".
*/
- @NonNull
- public Builder setItalic(@NonNull TypeBuilders.BoolProp italic) {
+ public @NonNull Builder setItalic(TypeBuilders.@NonNull BoolProp italic) {
mImpl.setItalic(italic.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(italic.getFingerprint()).aggregateValueAsInt());
@@ -770,8 +735,7 @@
* defaults to "false".
*/
@SuppressLint("MissingGetterMatchingBuilder")
- @NonNull
- public Builder setItalic(boolean italic) {
+ public @NonNull Builder setItalic(boolean italic) {
mImpl.setItalic(TypesProto.BoolProp.newBuilder().setValue(italic));
mFingerprint.recordPropertyUpdate(2, Boolean.hashCode(italic));
return this;
@@ -781,8 +745,7 @@
* Sets whether the text should be rendered with an underline. If not specified,
* defaults to "false".
*/
- @NonNull
- public Builder setUnderline(@NonNull TypeBuilders.BoolProp underline) {
+ public @NonNull Builder setUnderline(TypeBuilders.@NonNull BoolProp underline) {
mImpl.setUnderline(underline.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(underline.getFingerprint()).aggregateValueAsInt());
@@ -794,16 +757,14 @@
* defaults to "false".
*/
@SuppressLint("MissingGetterMatchingBuilder")
- @NonNull
- public Builder setUnderline(boolean underline) {
+ public @NonNull Builder setUnderline(boolean underline) {
mImpl.setUnderline(TypesProto.BoolProp.newBuilder().setValue(underline));
mFingerprint.recordPropertyUpdate(3, Boolean.hashCode(underline));
return this;
}
/** Sets the text color. If not defined, defaults to white. */
- @NonNull
- public Builder setColor(@NonNull ColorBuilders.ColorProp color) {
+ public @NonNull Builder setColor(ColorBuilders.@NonNull ColorProp color) {
mImpl.setColor(color.toProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(color.getFingerprint()).aggregateValueAsInt());
@@ -815,8 +776,7 @@
* the nearest supported value will be used. If not defined, or when set to an invalid
* value, defaults to "normal".
*/
- @NonNull
- public Builder setWeight(@NonNull FontWeightProp weight) {
+ public @NonNull Builder setWeight(@NonNull FontWeightProp weight) {
mImpl.setWeight(weight.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(weight.getFingerprint()).aggregateValueAsInt());
@@ -828,8 +788,7 @@
* the nearest supported value will be used. If not defined, or when set to an invalid
* value, defaults to "normal".
*/
- @NonNull
- public Builder setWeight(@FontWeight int weight) {
+ public @NonNull Builder setWeight(@FontWeight int weight) {
mImpl.setWeight(
LayoutElementProto.FontWeightProp.newBuilder()
.setValue(LayoutElementProto.FontWeight.forNumber(weight)));
@@ -841,8 +800,8 @@
* Sets the text letter-spacing. Positive numbers increase the space between letters
* while negative numbers tighten the space. If not specified, defaults to 0.
*/
- @NonNull
- public Builder setLetterSpacing(@NonNull DimensionBuilders.EmProp letterSpacing) {
+ public @NonNull Builder setLetterSpacing(
+ DimensionBuilders.@NonNull EmProp letterSpacing) {
mImpl.setLetterSpacing(letterSpacing.toProto());
mFingerprint.recordPropertyUpdate(
6, checkNotNull(letterSpacing.getFingerprint()).aggregateValueAsInt());
@@ -854,8 +813,7 @@
* text, which can be selected using this field. If not specified, defaults to "body".
*/
@TilesExperimental
- @NonNull
- public Builder setVariant(@NonNull FontVariantProp variant) {
+ public @NonNull Builder setVariant(@NonNull FontVariantProp variant) {
mImpl.setVariant(variant.toProto());
mFingerprint.recordPropertyUpdate(
7, checkNotNull(variant.getFingerprint()).aggregateValueAsInt());
@@ -867,8 +825,7 @@
* text, which can be selected using this field. If not specified, defaults to "body".
*/
@TilesExperimental
- @NonNull
- public Builder setVariant(@FontVariant int variant) {
+ public @NonNull Builder setVariant(@FontVariant int variant) {
mImpl.setVariant(
LayoutElementProto.FontVariantProp.newBuilder()
.setValue(LayoutElementProto.FontVariant.forNumber(variant)));
@@ -877,8 +834,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public FontStyle build() {
+ public @NonNull FontStyle build() {
return new FontStyle(mImpl.build(), mFingerprint);
}
}
@@ -887,7 +843,7 @@
/** An extensible {@code TextAlignment} property. */
public static final class TextAlignmentProp {
private final AlignmentProto.TextAlignmentProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
TextAlignmentProp(
AlignmentProto.TextAlignmentProp impl, @Nullable Fingerprint fingerprint) {
@@ -903,18 +859,16 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static TextAlignmentProp fromProto(@NonNull AlignmentProto.TextAlignmentProp proto) {
+ static @NonNull TextAlignmentProp fromProto(
+ AlignmentProto.@NonNull TextAlignmentProp proto) {
return new TextAlignmentProp(proto, null);
}
- @NonNull
- AlignmentProto.TextAlignmentProp toProto() {
+ AlignmentProto.@NonNull TextAlignmentProp toProto() {
return mImpl;
}
@@ -927,16 +881,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@TextAlignment int value) {
+ public @NonNull Builder setValue(@TextAlignment int value) {
mImpl.setValue(AlignmentProto.TextAlignment.forNumber(value));
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TextAlignmentProp build() {
+ public @NonNull TextAlignmentProp build() {
return new TextAlignmentProp(mImpl.build(), mFingerprint);
}
}
@@ -945,7 +897,7 @@
/** An extensible {@code TextOverflow} property. */
public static final class TextOverflowProp {
private final LayoutElementProto.TextOverflowProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
TextOverflowProp(
LayoutElementProto.TextOverflowProp impl, @Nullable Fingerprint fingerprint) {
@@ -961,18 +913,16 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static TextOverflowProp fromProto(@NonNull LayoutElementProto.TextOverflowProp proto) {
+ static @NonNull TextOverflowProp fromProto(
+ LayoutElementProto.@NonNull TextOverflowProp proto) {
return new TextOverflowProp(proto, null);
}
- @NonNull
- LayoutElementProto.TextOverflowProp toProto() {
+ LayoutElementProto.@NonNull TextOverflowProp toProto() {
return mImpl;
}
@@ -985,16 +935,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@TextOverflow int value) {
+ public @NonNull Builder setValue(@TextOverflow int value) {
mImpl.setValue(LayoutElementProto.TextOverflow.forNumber(value));
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TextOverflowProp build() {
+ public @NonNull TextOverflowProp build() {
return new TextOverflowProp(mImpl.build(), mFingerprint);
}
}
@@ -1003,7 +951,7 @@
/** An extensible {@code ArcAnchorType} property. */
public static final class ArcAnchorTypeProp {
private final AlignmentProto.ArcAnchorTypeProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ArcAnchorTypeProp(
AlignmentProto.ArcAnchorTypeProp impl, @Nullable Fingerprint fingerprint) {
@@ -1019,18 +967,16 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ArcAnchorTypeProp fromProto(@NonNull AlignmentProto.ArcAnchorTypeProp proto) {
+ static @NonNull ArcAnchorTypeProp fromProto(
+ AlignmentProto.@NonNull ArcAnchorTypeProp proto) {
return new ArcAnchorTypeProp(proto, null);
}
- @NonNull
- AlignmentProto.ArcAnchorTypeProp toProto() {
+ AlignmentProto.@NonNull ArcAnchorTypeProp toProto() {
return mImpl;
}
@@ -1043,16 +989,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@ArcAnchorType int value) {
+ public @NonNull Builder setValue(@ArcAnchorType int value) {
mImpl.setValue(AlignmentProto.ArcAnchorType.forNumber(value));
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public ArcAnchorTypeProp build() {
+ public @NonNull ArcAnchorTypeProp build() {
return new ArcAnchorTypeProp(mImpl.build(), mFingerprint);
}
}
@@ -1061,7 +1005,7 @@
/** A text string. */
public static final class Text implements LayoutElement {
private final LayoutElementProto.Text mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Text(LayoutElementProto.Text impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -1069,8 +1013,7 @@
}
/** Gets the text to render. Intended for testing purposes only. */
- @Nullable
- public TypeBuilders.StringProp getText() {
+ public TypeBuilders.@Nullable StringProp getText() {
if (mImpl.hasText()) {
return TypeBuilders.StringProp.fromProto(mImpl.getText());
} else {
@@ -1082,8 +1025,7 @@
* Gets the style of font to use (size, bold etc). If not specified, defaults to the
* platform's default body font. Intended for testing purposes only.
*/
- @Nullable
- public FontStyle getFontStyle() {
+ public @Nullable FontStyle getFontStyle() {
if (mImpl.hasFontStyle()) {
return FontStyle.fromProto(mImpl.getFontStyle());
} else {
@@ -1095,8 +1037,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.Modifiers getModifiers() {
+ public ModifiersBuilders.@Nullable Modifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.Modifiers.fromProto(mImpl.getModifiers());
} else {
@@ -1109,8 +1050,7 @@
* not defined, the {@link Text} element will be treated as a single-line element. Intended
* for testing purposes only.
*/
- @Nullable
- public TypeBuilders.Int32Prop getMaxLines() {
+ public TypeBuilders.@Nullable Int32Prop getMaxLines() {
if (mImpl.hasMaxLines()) {
return TypeBuilders.Int32Prop.fromProto(mImpl.getMaxLines());
} else {
@@ -1125,8 +1065,7 @@
* the alignment of lines relative to the {@link Text} element bounds. If not defined,
* defaults to TEXT_ALIGN_CENTER. Intended for testing purposes only.
*/
- @Nullable
- public TextAlignmentProp getMultilineAlignment() {
+ public @Nullable TextAlignmentProp getMultilineAlignment() {
if (mImpl.hasMultilineAlignment()) {
return TextAlignmentProp.fromProto(mImpl.getMultilineAlignment());
} else {
@@ -1141,8 +1080,7 @@
* which cannot fit inside its container will be truncated. If not defined, defaults to
* TEXT_OVERFLOW_TRUNCATE. Intended for testing purposes only.
*/
- @Nullable
- public TextOverflowProp getOverflow() {
+ public @Nullable TextOverflowProp getOverflow() {
if (mImpl.hasOverflow()) {
return TextOverflowProp.fromProto(mImpl.getOverflow());
} else {
@@ -1155,8 +1093,7 @@
* distance between subsequent baselines. If not specified, defaults the font's recommended
* interline spacing. Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.SpProp getLineHeight() {
+ public DimensionBuilders.@Nullable SpProp getLineHeight() {
if (mImpl.hasLineHeight()) {
return DimensionBuilders.SpProp.fromProto(mImpl.getLineHeight());
} else {
@@ -1166,26 +1103,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Text fromProto(
- @NonNull LayoutElementProto.Text proto, @Nullable Fingerprint fingerprint) {
+ static @NonNull Text fromProto(
+ LayoutElementProto.@NonNull Text proto, @Nullable Fingerprint fingerprint) {
return new Text(proto, fingerprint);
}
- @NonNull
- LayoutElementProto.Text toProto() {
+ LayoutElementProto.@NonNull Text toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return LayoutElementProto.LayoutElement.newBuilder().setText(mImpl).build();
}
@@ -1198,8 +1131,7 @@
public Builder() {}
/** Sets the text to render. */
- @NonNull
- public Builder setText(@NonNull TypeBuilders.StringProp text) {
+ public @NonNull Builder setText(TypeBuilders.@NonNull StringProp text) {
mImpl.setText(text.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(text.getFingerprint()).aggregateValueAsInt());
@@ -1207,8 +1139,7 @@
}
/** Sets the text to render. */
- @NonNull
- public Builder setText(@NonNull String text) {
+ public @NonNull Builder setText(@NonNull String text) {
mImpl.mergeText(TypesProto.StringProp.newBuilder().setValue(text).build());
mFingerprint.recordPropertyUpdate(1, text.hashCode());
return this;
@@ -1218,8 +1149,7 @@
* Sets the style of font to use (size, bold etc). If not specified, defaults to the
* platform's default body font.
*/
- @NonNull
- public Builder setFontStyle(@NonNull FontStyle fontStyle) {
+ public @NonNull Builder setFontStyle(@NonNull FontStyle fontStyle) {
mImpl.setFontStyle(fontStyle.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(fontStyle.getFingerprint()).aggregateValueAsInt());
@@ -1227,8 +1157,7 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.Modifiers modifiers) {
+ public @NonNull Builder setModifiers(ModifiersBuilders.@NonNull Modifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -1239,8 +1168,7 @@
* Sets the maximum number of lines that can be represented by the {@link Text} element.
* If not defined, the {@link Text} element will be treated as a single-line element.
*/
- @NonNull
- public Builder setMaxLines(@NonNull TypeBuilders.Int32Prop maxLines) {
+ public @NonNull Builder setMaxLines(TypeBuilders.@NonNull Int32Prop maxLines) {
mImpl.setMaxLines(maxLines.toProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(maxLines.getFingerprint()).aggregateValueAsInt());
@@ -1251,8 +1179,7 @@
* Sets the maximum number of lines that can be represented by the {@link Text} element.
* If not defined, the {@link Text} element will be treated as a single-line element.
*/
- @NonNull
- public Builder setMaxLines(@IntRange(from = 1) int maxLines) {
+ public @NonNull Builder setMaxLines(@IntRange(from = 1) int maxLines) {
mImpl.setMaxLines(TypesProto.Int32Prop.newBuilder().setValue(maxLines));
mFingerprint.recordPropertyUpdate(4, maxLines);
return this;
@@ -1265,8 +1192,8 @@
* will set the alignment of lines relative to the {@link Text} element bounds. If not
* defined, defaults to TEXT_ALIGN_CENTER.
*/
- @NonNull
- public Builder setMultilineAlignment(@NonNull TextAlignmentProp multilineAlignment) {
+ public @NonNull Builder setMultilineAlignment(
+ @NonNull TextAlignmentProp multilineAlignment) {
mImpl.setMultilineAlignment(multilineAlignment.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(multilineAlignment.getFingerprint()).aggregateValueAsInt());
@@ -1280,8 +1207,7 @@
* will set the alignment of lines relative to the {@link Text} element bounds. If not
* defined, defaults to TEXT_ALIGN_CENTER.
*/
- @NonNull
- public Builder setMultilineAlignment(@TextAlignment int multilineAlignment) {
+ public @NonNull Builder setMultilineAlignment(@TextAlignment int multilineAlignment) {
mImpl.setMultilineAlignment(
AlignmentProto.TextAlignmentProp.newBuilder()
.setValue(
@@ -1298,8 +1224,7 @@
* its text, the text which cannot fit inside its container will be truncated. If not
* defined, defaults to TEXT_OVERFLOW_TRUNCATE.
*/
- @NonNull
- public Builder setOverflow(@NonNull TextOverflowProp overflow) {
+ public @NonNull Builder setOverflow(@NonNull TextOverflowProp overflow) {
mImpl.setOverflow(overflow.toProto());
mFingerprint.recordPropertyUpdate(
6, checkNotNull(overflow.getFingerprint()).aggregateValueAsInt());
@@ -1313,8 +1238,7 @@
* its text, the text which cannot fit inside its container will be truncated. If not
* defined, defaults to TEXT_OVERFLOW_TRUNCATE.
*/
- @NonNull
- public Builder setOverflow(@TextOverflow int overflow) {
+ public @NonNull Builder setOverflow(@TextOverflow int overflow) {
mImpl.setOverflow(
LayoutElementProto.TextOverflowProp.newBuilder()
.setValue(LayoutElementProto.TextOverflow.forNumber(overflow)));
@@ -1327,8 +1251,7 @@
* distance between subsequent baselines. If not specified, defaults the font's
* recommended interline spacing.
*/
- @NonNull
- public Builder setLineHeight(@NonNull DimensionBuilders.SpProp lineHeight) {
+ public @NonNull Builder setLineHeight(DimensionBuilders.@NonNull SpProp lineHeight) {
mImpl.setLineHeight(lineHeight.toProto());
mFingerprint.recordPropertyUpdate(
7, checkNotNull(lineHeight.getFingerprint()).aggregateValueAsInt());
@@ -1336,8 +1259,7 @@
}
@Override
- @NonNull
- public Text build() {
+ public @NonNull Text build() {
return new Text(mImpl.build(), mFingerprint);
}
}
@@ -1346,7 +1268,7 @@
/** An extensible {@code ContentScaleMode} property. */
public static final class ContentScaleModeProp {
private final LayoutElementProto.ContentScaleModeProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ContentScaleModeProp(
LayoutElementProto.ContentScaleModeProp impl, @Nullable Fingerprint fingerprint) {
@@ -1362,19 +1284,16 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ContentScaleModeProp fromProto(
- @NonNull LayoutElementProto.ContentScaleModeProp proto) {
+ static @NonNull ContentScaleModeProp fromProto(
+ LayoutElementProto.@NonNull ContentScaleModeProp proto) {
return new ContentScaleModeProp(proto, null);
}
- @NonNull
- LayoutElementProto.ContentScaleModeProp toProto() {
+ LayoutElementProto.@NonNull ContentScaleModeProp toProto() {
return mImpl;
}
@@ -1387,16 +1306,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@ContentScaleMode int value) {
+ public @NonNull Builder setValue(@ContentScaleMode int value) {
mImpl.setValue(LayoutElementProto.ContentScaleMode.forNumber(value));
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public ContentScaleModeProp build() {
+ public @NonNull ContentScaleModeProp build() {
return new ContentScaleModeProp(mImpl.build(), mFingerprint);
}
}
@@ -1405,7 +1322,7 @@
/** Filtering parameters used for images. This can be used to apply a color tint to images. */
public static final class ColorFilter {
private final LayoutElementProto.ColorFilter mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ColorFilter(LayoutElementProto.ColorFilter impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -1420,8 +1337,7 @@
* <p>Note that only Android image resources can be tinted; Inline images will not be
* tinted, and this property will have no effect. Intended for testing purposes only.
*/
- @Nullable
- public ColorBuilders.ColorProp getTint() {
+ public ColorBuilders.@Nullable ColorProp getTint() {
if (mImpl.hasTint()) {
return ColorBuilders.ColorProp.fromProto(mImpl.getTint());
} else {
@@ -1431,18 +1347,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ColorFilter fromProto(@NonNull LayoutElementProto.ColorFilter proto) {
+ static @NonNull ColorFilter fromProto(LayoutElementProto.@NonNull ColorFilter proto) {
return new ColorFilter(proto, null);
}
- @NonNull
- LayoutElementProto.ColorFilter toProto() {
+ LayoutElementProto.@NonNull ColorFilter toProto() {
return mImpl;
}
@@ -1462,9 +1375,8 @@
* <p>Note that only Android image resources can be tinted; Inline images will not be
* tinted, and this property will have no effect.
*/
- @NonNull
- public LayoutElementBuilders.ColorFilter.Builder setTint(
- @NonNull ColorBuilders.ColorProp tint) {
+ public LayoutElementBuilders.ColorFilter.@NonNull Builder setTint(
+ ColorBuilders.@NonNull ColorProp tint) {
mImpl.setTint(tint.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(tint.getFingerprint()).aggregateValueAsInt());
@@ -1472,8 +1384,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public ColorFilter build() {
+ public @NonNull ColorFilter build() {
return new ColorFilter(mImpl.build(), mFingerprint);
}
}
@@ -1488,7 +1399,7 @@
*/
public static final class Image implements LayoutElement {
private final LayoutElementProto.Image mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Image(LayoutElementProto.Image impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -1499,8 +1410,7 @@
* Gets the resource_id of the image to render. This must exist in the supplied resource
* bundle. Intended for testing purposes only.
*/
- @Nullable
- public TypeBuilders.StringProp getResourceId() {
+ public TypeBuilders.@Nullable StringProp getResourceId() {
if (mImpl.hasResourceId()) {
return TypeBuilders.StringProp.fromProto(mImpl.getResourceId());
} else {
@@ -1512,8 +1422,7 @@
* Gets the width of this image. If not defined, the image will not be rendered. Intended
* for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.ImageDimension getWidth() {
+ public DimensionBuilders.@Nullable ImageDimension getWidth() {
if (mImpl.hasWidth()) {
return DimensionBuilders.imageDimensionFromProto(mImpl.getWidth());
} else {
@@ -1525,8 +1434,7 @@
* Gets the height of this image. If not defined, the image will not be rendered. Intended
* for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.ImageDimension getHeight() {
+ public DimensionBuilders.@Nullable ImageDimension getHeight() {
if (mImpl.hasHeight()) {
return DimensionBuilders.imageDimensionFromProto(mImpl.getHeight());
} else {
@@ -1539,8 +1447,7 @@
* size does not match those bounds. Defaults to CONTENT_SCALE_MODE_FIT. Intended for
* testing purposes only.
*/
- @Nullable
- public ContentScaleModeProp getContentScaleMode() {
+ public @Nullable ContentScaleModeProp getContentScaleMode() {
if (mImpl.hasContentScaleMode()) {
return ContentScaleModeProp.fromProto(mImpl.getContentScaleMode());
} else {
@@ -1552,8 +1459,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.Modifiers getModifiers() {
+ public ModifiersBuilders.@Nullable Modifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.Modifiers.fromProto(mImpl.getModifiers());
} else {
@@ -1562,8 +1468,7 @@
}
/** Gets filtering parameters for this image. If not specified, defaults to no filtering. */
- @Nullable
- public ColorFilter getColorFilter() {
+ public @Nullable ColorFilter getColorFilter() {
if (mImpl.hasColorFilter()) {
return ColorFilter.fromProto(mImpl.getColorFilter());
} else {
@@ -1573,26 +1478,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Image fromProto(
- @NonNull LayoutElementProto.Image proto, @Nullable Fingerprint fingerprint) {
+ static @NonNull Image fromProto(
+ LayoutElementProto.@NonNull Image proto, @Nullable Fingerprint fingerprint) {
return new Image(proto, fingerprint);
}
- @NonNull
- LayoutElementProto.Image toProto() {
+ LayoutElementProto.@NonNull Image toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return LayoutElementProto.LayoutElement.newBuilder().setImage(mImpl).build();
}
@@ -1608,8 +1509,7 @@
* Sets the resource_id of the image to render. This must exist in the supplied resource
* bundle.
*/
- @NonNull
- public Builder setResourceId(@NonNull TypeBuilders.StringProp resourceId) {
+ public @NonNull Builder setResourceId(TypeBuilders.@NonNull StringProp resourceId) {
mImpl.setResourceId(resourceId.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(resourceId.getFingerprint()).aggregateValueAsInt());
@@ -1620,16 +1520,14 @@
* Sets the resource_id of the image to render. This must exist in the supplied resource
* bundle.
*/
- @NonNull
- public Builder setResourceId(@NonNull String resourceId) {
+ public @NonNull Builder setResourceId(@NonNull String resourceId) {
mImpl.setResourceId(TypesProto.StringProp.newBuilder().setValue(resourceId));
mFingerprint.recordPropertyUpdate(1, resourceId.hashCode());
return this;
}
/** Sets the width of this image. If not defined, the image will not be rendered. */
- @NonNull
- public Builder setWidth(@NonNull DimensionBuilders.ImageDimension width) {
+ public @NonNull Builder setWidth(DimensionBuilders.@NonNull ImageDimension width) {
mImpl.setWidth(width.toImageDimensionProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(width.getFingerprint()).aggregateValueAsInt());
@@ -1637,8 +1535,7 @@
}
/** Sets the height of this image. If not defined, the image will not be rendered. */
- @NonNull
- public Builder setHeight(@NonNull DimensionBuilders.ImageDimension height) {
+ public @NonNull Builder setHeight(DimensionBuilders.@NonNull ImageDimension height) {
mImpl.setHeight(height.toImageDimensionProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(height.getFingerprint()).aggregateValueAsInt());
@@ -1649,8 +1546,8 @@
* Sets how to scale the image resource inside the bounds specified by width/height if
* its size does not match those bounds. Defaults to CONTENT_SCALE_MODE_FIT.
*/
- @NonNull
- public Builder setContentScaleMode(@NonNull ContentScaleModeProp contentScaleMode) {
+ public @NonNull Builder setContentScaleMode(
+ @NonNull ContentScaleModeProp contentScaleMode) {
mImpl.setContentScaleMode(contentScaleMode.toProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(contentScaleMode.getFingerprint()).aggregateValueAsInt());
@@ -1661,8 +1558,7 @@
* Sets how to scale the image resource inside the bounds specified by width/height if
* its size does not match those bounds. Defaults to CONTENT_SCALE_MODE_FIT.
*/
- @NonNull
- public Builder setContentScaleMode(@ContentScaleMode int contentScaleMode) {
+ public @NonNull Builder setContentScaleMode(@ContentScaleMode int contentScaleMode) {
mImpl.setContentScaleMode(
LayoutElementProto.ContentScaleModeProp.newBuilder()
.setValue(
@@ -1673,8 +1569,7 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.Modifiers modifiers) {
+ public @NonNull Builder setModifiers(ModifiersBuilders.@NonNull Modifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -1684,8 +1579,7 @@
/**
* Sets filtering parameters for this image. If not specified, defaults to no filtering.
*/
- @NonNull
- public Builder setColorFilter(@NonNull ColorFilter colorFilter) {
+ public @NonNull Builder setColorFilter(@NonNull ColorFilter colorFilter) {
mImpl.setColorFilter(colorFilter.toProto());
mFingerprint.recordPropertyUpdate(
6, checkNotNull(colorFilter.getFingerprint()).aggregateValueAsInt());
@@ -1693,8 +1587,7 @@
}
@Override
- @NonNull
- public Image build() {
+ public @NonNull Image build() {
return new Image(mImpl.build(), mFingerprint);
}
}
@@ -1703,7 +1596,7 @@
/** A simple spacer, typically used to provide padding between adjacent elements. */
public static final class Spacer implements LayoutElement {
private final LayoutElementProto.Spacer mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Spacer(LayoutElementProto.Spacer impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -1715,8 +1608,7 @@
* {@link Arc}, this must be specified as an angular dimension, otherwise a linear dimension
* must be used. If not defined, defaults to 0. Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.SpacerDimension getWidth() {
+ public DimensionBuilders.@Nullable SpacerDimension getWidth() {
if (mImpl.hasWidth()) {
return DimensionBuilders.spacerDimensionFromProto(mImpl.getWidth());
} else {
@@ -1728,8 +1620,7 @@
* Gets the height of this spacer. If not defined, defaults to 0. Intended for testing
* purposes only.
*/
- @Nullable
- public DimensionBuilders.SpacerDimension getHeight() {
+ public DimensionBuilders.@Nullable SpacerDimension getHeight() {
if (mImpl.hasHeight()) {
return DimensionBuilders.spacerDimensionFromProto(mImpl.getHeight());
} else {
@@ -1741,8 +1632,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.Modifiers getModifiers() {
+ public ModifiersBuilders.@Nullable Modifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.Modifiers.fromProto(mImpl.getModifiers());
} else {
@@ -1752,26 +1642,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Spacer fromProto(
- @NonNull LayoutElementProto.Spacer proto, @Nullable Fingerprint fingerprint) {
+ static @NonNull Spacer fromProto(
+ LayoutElementProto.@NonNull Spacer proto, @Nullable Fingerprint fingerprint) {
return new Spacer(proto, fingerprint);
}
- @NonNull
- LayoutElementProto.Spacer toProto() {
+ LayoutElementProto.@NonNull Spacer toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return LayoutElementProto.LayoutElement.newBuilder().setSpacer(mImpl).build();
}
@@ -1788,8 +1674,7 @@
* {@link Arc}, this must be specified as an angular dimension, otherwise a linear
* dimension must be used. If not defined, defaults to 0.
*/
- @NonNull
- public Builder setWidth(@NonNull DimensionBuilders.SpacerDimension width) {
+ public @NonNull Builder setWidth(DimensionBuilders.@NonNull SpacerDimension width) {
mImpl.setWidth(width.toSpacerDimensionProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(width.getFingerprint()).aggregateValueAsInt());
@@ -1797,8 +1682,7 @@
}
/** Sets the height of this spacer. If not defined, defaults to 0. */
- @NonNull
- public Builder setHeight(@NonNull DimensionBuilders.SpacerDimension height) {
+ public @NonNull Builder setHeight(DimensionBuilders.@NonNull SpacerDimension height) {
mImpl.setHeight(height.toSpacerDimensionProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(height.getFingerprint()).aggregateValueAsInt());
@@ -1806,8 +1690,7 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.Modifiers modifiers) {
+ public @NonNull Builder setModifiers(ModifiersBuilders.@NonNull Modifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -1815,8 +1698,7 @@
}
@Override
- @NonNull
- public Spacer build() {
+ public @NonNull Spacer build() {
return new Spacer(mImpl.build(), mFingerprint);
}
}
@@ -1828,7 +1710,7 @@
*/
public static final class Box implements LayoutElement {
private final LayoutElementProto.Box mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Box(LayoutElementProto.Box impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -1836,8 +1718,7 @@
}
/** Gets the child element(s) to wrap. Intended for testing purposes only. */
- @NonNull
- public List<LayoutElement> getContents() {
+ public @NonNull List<LayoutElement> getContents() {
return Collections.unmodifiableList(
mImpl.getContentsList().stream()
.map(LayoutElementBuilders::layoutElementFromProto)
@@ -1848,8 +1729,7 @@
* Gets the height of this {@link Box}. If not defined, this will size itself to fit all of
* its children (i.e. a WrappedDimension). Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.ContainerDimension getHeight() {
+ public DimensionBuilders.@Nullable ContainerDimension getHeight() {
if (mImpl.hasHeight()) {
return DimensionBuilders.containerDimensionFromProto(mImpl.getHeight());
} else {
@@ -1861,8 +1741,7 @@
* Gets the width of this {@link Box}. If not defined, this will size itself to fit all of
* its children (i.e. a WrappedDimension). Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.ContainerDimension getWidth() {
+ public DimensionBuilders.@Nullable ContainerDimension getWidth() {
if (mImpl.hasWidth()) {
return DimensionBuilders.containerDimensionFromProto(mImpl.getWidth());
} else {
@@ -1874,8 +1753,7 @@
* Gets the horizontal alignment of the element inside this {@link Box}. If not defined,
* defaults to HORIZONTAL_ALIGN_CENTER. Intended for testing purposes only.
*/
- @Nullable
- public HorizontalAlignmentProp getHorizontalAlignment() {
+ public @Nullable HorizontalAlignmentProp getHorizontalAlignment() {
if (mImpl.hasHorizontalAlignment()) {
return HorizontalAlignmentProp.fromProto(mImpl.getHorizontalAlignment());
} else {
@@ -1887,8 +1765,7 @@
* Gets the vertical alignment of the element inside this {@link Box}. If not defined,
* defaults to VERTICAL_ALIGN_CENTER. Intended for testing purposes only.
*/
- @Nullable
- public VerticalAlignmentProp getVerticalAlignment() {
+ public @Nullable VerticalAlignmentProp getVerticalAlignment() {
if (mImpl.hasVerticalAlignment()) {
return VerticalAlignmentProp.fromProto(mImpl.getVerticalAlignment());
} else {
@@ -1900,8 +1777,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.Modifiers getModifiers() {
+ public ModifiersBuilders.@Nullable Modifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.Modifiers.fromProto(mImpl.getModifiers());
} else {
@@ -1911,26 +1787,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Box fromProto(
- @NonNull LayoutElementProto.Box proto, @Nullable Fingerprint fingerprint) {
+ static @NonNull Box fromProto(
+ LayoutElementProto.@NonNull Box proto, @Nullable Fingerprint fingerprint) {
return new Box(proto, fingerprint);
}
- @NonNull
- LayoutElementProto.Box toProto() {
+ LayoutElementProto.@NonNull Box toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return LayoutElementProto.LayoutElement.newBuilder().setBox(mImpl).build();
}
@@ -1943,8 +1815,7 @@
public Builder() {}
/** Adds one item to the child element(s) to wrap. */
- @NonNull
- public Builder addContent(@NonNull LayoutElement content) {
+ public @NonNull Builder addContent(@NonNull LayoutElement content) {
mImpl.addContents(content.toLayoutElementProto());
mFingerprint.addChildNode(checkNotNull(content.getFingerprint()));
return this;
@@ -1954,8 +1825,8 @@
* Sets the height of this {@link Box}. If not defined, this will size itself to fit all
* of its children (i.e. a WrappedDimension).
*/
- @NonNull
- public Builder setHeight(@NonNull DimensionBuilders.ContainerDimension height) {
+ public @NonNull Builder setHeight(
+ DimensionBuilders.@NonNull ContainerDimension height) {
mImpl.setHeight(height.toContainerDimensionProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(height.getFingerprint()).aggregateValueAsInt());
@@ -1966,8 +1837,7 @@
* Sets the width of this {@link Box}. If not defined, this will size itself to fit all
* of its children (i.e. a WrappedDimension).
*/
- @NonNull
- public Builder setWidth(@NonNull DimensionBuilders.ContainerDimension width) {
+ public @NonNull Builder setWidth(DimensionBuilders.@NonNull ContainerDimension width) {
mImpl.setWidth(width.toContainerDimensionProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(width.getFingerprint()).aggregateValueAsInt());
@@ -1978,8 +1848,7 @@
* Sets the horizontal alignment of the element inside this {@link Box}. If not defined,
* defaults to HORIZONTAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setHorizontalAlignment(
+ public @NonNull Builder setHorizontalAlignment(
@NonNull HorizontalAlignmentProp horizontalAlignment) {
mImpl.setHorizontalAlignment(horizontalAlignment.toProto());
mFingerprint.recordPropertyUpdate(
@@ -1992,8 +1861,8 @@
* Sets the horizontal alignment of the element inside this {@link Box}. If not defined,
* defaults to HORIZONTAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setHorizontalAlignment(@HorizontalAlignment int horizontalAlignment) {
+ public @NonNull Builder setHorizontalAlignment(
+ @HorizontalAlignment int horizontalAlignment) {
mImpl.setHorizontalAlignment(
AlignmentProto.HorizontalAlignmentProp.newBuilder()
.setValue(
@@ -2007,8 +1876,8 @@
* Sets the vertical alignment of the element inside this {@link Box}. If not defined,
* defaults to VERTICAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setVerticalAlignment(@NonNull VerticalAlignmentProp verticalAlignment) {
+ public @NonNull Builder setVerticalAlignment(
+ @NonNull VerticalAlignmentProp verticalAlignment) {
mImpl.setVerticalAlignment(verticalAlignment.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(verticalAlignment.getFingerprint()).aggregateValueAsInt());
@@ -2019,8 +1888,7 @@
* Sets the vertical alignment of the element inside this {@link Box}. If not defined,
* defaults to VERTICAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setVerticalAlignment(@VerticalAlignment int verticalAlignment) {
+ public @NonNull Builder setVerticalAlignment(@VerticalAlignment int verticalAlignment) {
mImpl.setVerticalAlignment(
AlignmentProto.VerticalAlignmentProp.newBuilder()
.setValue(
@@ -2031,8 +1899,7 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.Modifiers modifiers) {
+ public @NonNull Builder setModifiers(ModifiersBuilders.@NonNull Modifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
6, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -2040,8 +1907,7 @@
}
@Override
- @NonNull
- public Box build() {
+ public @NonNull Box build() {
return new Box(mImpl.build(), mFingerprint);
}
}
@@ -2054,7 +1920,7 @@
*/
public static final class SpanText implements Span {
private final LayoutElementProto.SpanText mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
SpanText(LayoutElementProto.SpanText impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -2062,8 +1928,7 @@
}
/** Gets the text to render. Intended for testing purposes only. */
- @Nullable
- public TypeBuilders.StringProp getText() {
+ public TypeBuilders.@Nullable StringProp getText() {
if (mImpl.hasText()) {
return TypeBuilders.StringProp.fromProto(mImpl.getText());
} else {
@@ -2075,8 +1940,7 @@
* Gets the style of font to use (size, bold etc). If not specified, defaults to the
* platform's default body font. Intended for testing purposes only.
*/
- @Nullable
- public FontStyle getFontStyle() {
+ public @Nullable FontStyle getFontStyle() {
if (mImpl.hasFontStyle()) {
return FontStyle.fromProto(mImpl.getFontStyle());
} else {
@@ -2088,8 +1952,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.SpanModifiers getModifiers() {
+ public ModifiersBuilders.@Nullable SpanModifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.SpanModifiers.fromProto(mImpl.getModifiers());
} else {
@@ -2099,25 +1962,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static SpanText fromProto(@NonNull LayoutElementProto.SpanText proto) {
+ static @NonNull SpanText fromProto(LayoutElementProto.@NonNull SpanText proto) {
return new SpanText(proto, null);
}
- @NonNull
- LayoutElementProto.SpanText toProto() {
+ LayoutElementProto.@NonNull SpanText toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.Span toSpanProto() {
+ public LayoutElementProto.@NonNull Span toSpanProto() {
return LayoutElementProto.Span.newBuilder().setText(mImpl).build();
}
@@ -2130,8 +1989,7 @@
public Builder() {}
/** Sets the text to render. */
- @NonNull
- public Builder setText(@NonNull TypeBuilders.StringProp text) {
+ public @NonNull Builder setText(TypeBuilders.@NonNull StringProp text) {
mImpl.setText(text.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(text.getFingerprint()).aggregateValueAsInt());
@@ -2139,8 +1997,7 @@
}
/** Sets the text to render. */
- @NonNull
- public Builder setText(@NonNull String text) {
+ public @NonNull Builder setText(@NonNull String text) {
mImpl.setText(TypesProto.StringProp.newBuilder().setValue(text));
mFingerprint.recordPropertyUpdate(1, text.hashCode());
return this;
@@ -2150,8 +2007,7 @@
* Sets the style of font to use (size, bold etc). If not specified, defaults to the
* platform's default body font.
*/
- @NonNull
- public Builder setFontStyle(@NonNull FontStyle fontStyle) {
+ public @NonNull Builder setFontStyle(@NonNull FontStyle fontStyle) {
mImpl.setFontStyle(fontStyle.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(fontStyle.getFingerprint()).aggregateValueAsInt());
@@ -2159,8 +2015,8 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.SpanModifiers modifiers) {
+ public @NonNull Builder setModifiers(
+ ModifiersBuilders.@NonNull SpanModifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -2168,8 +2024,7 @@
}
@Override
- @NonNull
- public SpanText build() {
+ public @NonNull SpanText build() {
return new SpanText(mImpl.build(), mFingerprint);
}
}
@@ -2178,7 +2033,7 @@
/** An image which can be added to a {@link Span}. */
public static final class SpanImage implements Span {
private final LayoutElementProto.SpanImage mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
SpanImage(LayoutElementProto.SpanImage impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -2189,8 +2044,7 @@
* Gets the resource_id of the image to render. This must exist in the supplied resource
* bundle. Intended for testing purposes only.
*/
- @Nullable
- public TypeBuilders.StringProp getResourceId() {
+ public TypeBuilders.@Nullable StringProp getResourceId() {
if (mImpl.hasResourceId()) {
return TypeBuilders.StringProp.fromProto(mImpl.getResourceId());
} else {
@@ -2202,8 +2056,7 @@
* Gets the width of this image. If not defined, the image will not be rendered. Intended
* for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.DpProp getWidth() {
+ public DimensionBuilders.@Nullable DpProp getWidth() {
if (mImpl.hasWidth()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getWidth());
} else {
@@ -2215,8 +2068,7 @@
* Gets the height of this image. If not defined, the image will not be rendered. Intended
* for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.DpProp getHeight() {
+ public DimensionBuilders.@Nullable DpProp getHeight() {
if (mImpl.hasHeight()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getHeight());
} else {
@@ -2228,8 +2080,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.SpanModifiers getModifiers() {
+ public ModifiersBuilders.@Nullable SpanModifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.SpanModifiers.fromProto(mImpl.getModifiers());
} else {
@@ -2241,8 +2092,7 @@
* Gets alignment of this image within the line height of the surrounding {@link Spannable}.
* If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM. Intended for testing purposes only.
*/
- @Nullable
- public SpanVerticalAlignmentProp getAlignment() {
+ public @Nullable SpanVerticalAlignmentProp getAlignment() {
if (mImpl.hasAlignment()) {
return SpanVerticalAlignmentProp.fromProto(mImpl.getAlignment());
} else {
@@ -2252,25 +2102,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static SpanImage fromProto(@NonNull LayoutElementProto.SpanImage proto) {
+ static @NonNull SpanImage fromProto(LayoutElementProto.@NonNull SpanImage proto) {
return new SpanImage(proto, null);
}
- @NonNull
- LayoutElementProto.SpanImage toProto() {
+ LayoutElementProto.@NonNull SpanImage toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.Span toSpanProto() {
+ public LayoutElementProto.@NonNull Span toSpanProto() {
return LayoutElementProto.Span.newBuilder().setImage(mImpl).build();
}
@@ -2286,8 +2132,7 @@
* Sets the resource_id of the image to render. This must exist in the supplied resource
* bundle.
*/
- @NonNull
- public Builder setResourceId(@NonNull TypeBuilders.StringProp resourceId) {
+ public @NonNull Builder setResourceId(TypeBuilders.@NonNull StringProp resourceId) {
mImpl.setResourceId(resourceId.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(resourceId.getFingerprint()).aggregateValueAsInt());
@@ -2298,16 +2143,14 @@
* Sets the resource_id of the image to render. This must exist in the supplied resource
* bundle.
*/
- @NonNull
- public Builder setResourceId(@NonNull String resourceId) {
+ public @NonNull Builder setResourceId(@NonNull String resourceId) {
mImpl.setResourceId(TypesProto.StringProp.newBuilder().setValue(resourceId));
mFingerprint.recordPropertyUpdate(1, resourceId.hashCode());
return this;
}
/** Sets the width of this image. If not defined, the image will not be rendered. */
- @NonNull
- public Builder setWidth(@NonNull DimensionBuilders.DpProp width) {
+ public @NonNull Builder setWidth(DimensionBuilders.@NonNull DpProp width) {
mImpl.setWidth(width.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(width.getFingerprint()).aggregateValueAsInt());
@@ -2315,8 +2158,7 @@
}
/** Sets the height of this image. If not defined, the image will not be rendered. */
- @NonNull
- public Builder setHeight(@NonNull DimensionBuilders.DpProp height) {
+ public @NonNull Builder setHeight(DimensionBuilders.@NonNull DpProp height) {
mImpl.setHeight(height.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(height.getFingerprint()).aggregateValueAsInt());
@@ -2324,8 +2166,8 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.SpanModifiers modifiers) {
+ public @NonNull Builder setModifiers(
+ ModifiersBuilders.@NonNull SpanModifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -2336,8 +2178,7 @@
* Sets alignment of this image within the line height of the surrounding {@link
* Spannable}. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
*/
- @NonNull
- public Builder setAlignment(@NonNull SpanVerticalAlignmentProp alignment) {
+ public @NonNull Builder setAlignment(@NonNull SpanVerticalAlignmentProp alignment) {
mImpl.setAlignment(alignment.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(alignment.getFingerprint()).aggregateValueAsInt());
@@ -2348,8 +2189,7 @@
* Sets alignment of this image within the line height of the surrounding {@link
* Spannable}. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
*/
- @NonNull
- public Builder setAlignment(@SpanVerticalAlignment int alignment) {
+ public @NonNull Builder setAlignment(@SpanVerticalAlignment int alignment) {
mImpl.setAlignment(
LayoutElementProto.SpanVerticalAlignmentProp.newBuilder()
.setValue(
@@ -2360,8 +2200,7 @@
}
@Override
- @NonNull
- public SpanImage build() {
+ public @NonNull SpanImage build() {
return new SpanImage(mImpl.build(), mFingerprint);
}
}
@@ -2375,29 +2214,25 @@
public interface Span {
/** Get the protocol buffer representation of this object. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- LayoutElementProto.Span toSpanProto();
+ LayoutElementProto.@NonNull Span toSpanProto();
/** Get the fingerprint for this object or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- Fingerprint getFingerprint();
+ @Nullable Fingerprint getFingerprint();
/** Builder to create {@link Span} objects. */
@SuppressLint("StaticFinalBuilder")
interface Builder {
/** Builds an instance with values accumulated in this Builder. */
- @NonNull
- Span build();
+ @NonNull Span build();
}
}
/**
* Return an instance of one of this object's subtypes, from the protocol buffer representation.
*/
- @NonNull
- static Span spanFromProto(@NonNull LayoutElementProto.Span proto) {
+ static @NonNull Span spanFromProto(LayoutElementProto.@NonNull Span proto) {
if (proto.hasText()) {
return SpanText.fromProto(proto.getText());
}
@@ -2415,7 +2250,7 @@
*/
public static final class Spannable implements LayoutElement {
private final LayoutElementProto.Spannable mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Spannable(LayoutElementProto.Spannable impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -2426,8 +2261,7 @@
* Gets the {@link Span} elements that form this {@link Spannable}. Intended for testing
* purposes only.
*/
- @NonNull
- public List<Span> getSpans() {
+ public @NonNull List<Span> getSpans() {
return Collections.unmodifiableList(
mImpl.getSpansList().stream()
.map(LayoutElementBuilders::spanFromProto)
@@ -2438,8 +2272,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.Modifiers getModifiers() {
+ public ModifiersBuilders.@Nullable Modifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.Modifiers.fromProto(mImpl.getModifiers());
} else {
@@ -2452,8 +2285,7 @@
* element. If not defined, the {@link Spannable} element will be treated as a single-line
* element. Intended for testing purposes only.
*/
- @Nullable
- public TypeBuilders.Int32Prop getMaxLines() {
+ public TypeBuilders.@Nullable Int32Prop getMaxLines() {
if (mImpl.hasMaxLines()) {
return TypeBuilders.Int32Prop.fromProto(mImpl.getMaxLines());
} else {
@@ -2469,8 +2301,7 @@
* element bounds. If not defined, defaults to TEXT_ALIGN_CENTER. Intended for testing
* purposes only.
*/
- @Nullable
- public HorizontalAlignmentProp getMultilineAlignment() {
+ public @Nullable HorizontalAlignmentProp getMultilineAlignment() {
if (mImpl.hasMultilineAlignment()) {
return HorizontalAlignmentProp.fromProto(mImpl.getMultilineAlignment());
} else {
@@ -2485,8 +2316,7 @@
* content, the content which cannot fit inside its container will be truncated. If not
* defined, defaults to TEXT_OVERFLOW_TRUNCATE. Intended for testing purposes only.
*/
- @Nullable
- public TextOverflowProp getOverflow() {
+ public @Nullable TextOverflowProp getOverflow() {
if (mImpl.hasOverflow()) {
return TextOverflowProp.fromProto(mImpl.getOverflow());
} else {
@@ -2499,8 +2329,7 @@
* distance between subsequent baselines. If not specified, defaults the font's recommended
* interline spacing. Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.SpProp getLineHeight() {
+ public DimensionBuilders.@Nullable SpProp getLineHeight() {
if (mImpl.hasLineHeight()) {
return DimensionBuilders.SpProp.fromProto(mImpl.getLineHeight());
} else {
@@ -2510,26 +2339,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Spannable fromProto(
- @NonNull LayoutElementProto.Spannable proto, @Nullable Fingerprint fingerprint) {
+ static @NonNull Spannable fromProto(
+ LayoutElementProto.@NonNull Spannable proto, @Nullable Fingerprint fingerprint) {
return new Spannable(proto, fingerprint);
}
- @NonNull
- LayoutElementProto.Spannable toProto() {
+ LayoutElementProto.@NonNull Spannable toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return LayoutElementProto.LayoutElement.newBuilder().setSpannable(mImpl).build();
}
@@ -2542,8 +2367,7 @@
public Builder() {}
/** Adds one item to the {@link Span} elements that form this {@link Spannable}. */
- @NonNull
- public Builder addSpan(@NonNull Span span) {
+ public @NonNull Builder addSpan(@NonNull Span span) {
mImpl.addSpans(span.toSpanProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(span.getFingerprint()).aggregateValueAsInt());
@@ -2551,8 +2375,7 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.Modifiers modifiers) {
+ public @NonNull Builder setModifiers(ModifiersBuilders.@NonNull Modifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -2564,8 +2387,7 @@
* element. If not defined, the {@link Spannable} element will be treated as a
* single-line element.
*/
- @NonNull
- public Builder setMaxLines(@NonNull TypeBuilders.Int32Prop maxLines) {
+ public @NonNull Builder setMaxLines(TypeBuilders.@NonNull Int32Prop maxLines) {
mImpl.setMaxLines(maxLines.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(maxLines.getFingerprint()).aggregateValueAsInt());
@@ -2577,8 +2399,7 @@
* element. If not defined, the {@link Spannable} element will be treated as a
* single-line element.
*/
- @NonNull
- public Builder setMaxLines(@IntRange(from = 1) int maxLines) {
+ public @NonNull Builder setMaxLines(@IntRange(from = 1) int maxLines) {
mImpl.setMaxLines(TypesProto.Int32Prop.newBuilder().setValue(maxLines));
mFingerprint.recordPropertyUpdate(3, maxLines);
return this;
@@ -2591,8 +2412,7 @@
* For multi-line content, however, this will set the alignment of lines relative to the
* {@link Spannable} element bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
*/
- @NonNull
- public Builder setMultilineAlignment(
+ public @NonNull Builder setMultilineAlignment(
@NonNull HorizontalAlignmentProp multilineAlignment) {
mImpl.setMultilineAlignment(multilineAlignment.toProto());
mFingerprint.recordPropertyUpdate(
@@ -2607,8 +2427,8 @@
* For multi-line content, however, this will set the alignment of lines relative to the
* {@link Spannable} element bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
*/
- @NonNull
- public Builder setMultilineAlignment(@HorizontalAlignment int multilineAlignment) {
+ public @NonNull Builder setMultilineAlignment(
+ @HorizontalAlignment int multilineAlignment) {
mImpl.setMultilineAlignment(
AlignmentProto.HorizontalAlignmentProp.newBuilder()
.setValue(
@@ -2625,8 +2445,7 @@
* render all of its content, the content which cannot fit inside its container will be
* truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
*/
- @NonNull
- public Builder setOverflow(@NonNull TextOverflowProp overflow) {
+ public @NonNull Builder setOverflow(@NonNull TextOverflowProp overflow) {
mImpl.setOverflow(overflow.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(overflow.getFingerprint()).aggregateValueAsInt());
@@ -2640,8 +2459,7 @@
* render all of its content, the content which cannot fit inside its container will be
* truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
*/
- @NonNull
- public Builder setOverflow(@TextOverflow int overflow) {
+ public @NonNull Builder setOverflow(@TextOverflow int overflow) {
mImpl.setOverflow(
LayoutElementProto.TextOverflowProp.newBuilder()
.setValue(LayoutElementProto.TextOverflow.forNumber(overflow)));
@@ -2654,8 +2472,7 @@
* distance between subsequent baselines. If not specified, defaults the font's
* recommended interline spacing.
*/
- @NonNull
- public Builder setLineHeight(@NonNull DimensionBuilders.SpProp lineHeight) {
+ public @NonNull Builder setLineHeight(DimensionBuilders.@NonNull SpProp lineHeight) {
mImpl.setLineHeight(lineHeight.toProto());
mFingerprint.recordPropertyUpdate(
7, checkNotNull(lineHeight.getFingerprint()).aggregateValueAsInt());
@@ -2663,8 +2480,7 @@
}
@Override
- @NonNull
- public Spannable build() {
+ public @NonNull Spannable build() {
return new Spannable(mImpl.build(), mFingerprint);
}
}
@@ -2682,7 +2498,7 @@
*/
public static final class Column implements LayoutElement {
private final LayoutElementProto.Column mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Column(LayoutElementProto.Column impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -2693,8 +2509,7 @@
* Gets the list of child elements to place inside this {@link Column}. Intended for testing
* purposes only.
*/
- @NonNull
- public List<LayoutElement> getContents() {
+ public @NonNull List<LayoutElement> getContents() {
return Collections.unmodifiableList(
mImpl.getContentsList().stream()
.map(LayoutElementBuilders::layoutElementFromProto)
@@ -2706,8 +2521,7 @@
* the resulting width of the column. If not defined, defaults to HORIZONTAL_ALIGN_CENTER.
* Intended for testing purposes only.
*/
- @Nullable
- public HorizontalAlignmentProp getHorizontalAlignment() {
+ public @Nullable HorizontalAlignmentProp getHorizontalAlignment() {
if (mImpl.hasHorizontalAlignment()) {
return HorizontalAlignmentProp.fromProto(mImpl.getHorizontalAlignment());
} else {
@@ -2719,8 +2533,7 @@
* Gets the width of this column. If not defined, this will size itself to fit all of its
* children (i.e. a WrappedDimension). Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.ContainerDimension getWidth() {
+ public DimensionBuilders.@Nullable ContainerDimension getWidth() {
if (mImpl.hasWidth()) {
return DimensionBuilders.containerDimensionFromProto(mImpl.getWidth());
} else {
@@ -2732,8 +2545,7 @@
* Gets the height of this column. If not defined, this will size itself to fit all of its
* children (i.e. a WrappedDimension). Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.ContainerDimension getHeight() {
+ public DimensionBuilders.@Nullable ContainerDimension getHeight() {
if (mImpl.hasHeight()) {
return DimensionBuilders.containerDimensionFromProto(mImpl.getHeight());
} else {
@@ -2745,8 +2557,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.Modifiers getModifiers() {
+ public ModifiersBuilders.@Nullable Modifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.Modifiers.fromProto(mImpl.getModifiers());
} else {
@@ -2756,26 +2567,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Column fromProto(
- @NonNull LayoutElementProto.Column proto, @Nullable Fingerprint fingerprint) {
+ static @NonNull Column fromProto(
+ LayoutElementProto.@NonNull Column proto, @Nullable Fingerprint fingerprint) {
return new Column(proto, fingerprint);
}
- @NonNull
- LayoutElementProto.Column toProto() {
+ LayoutElementProto.@NonNull Column toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return LayoutElementProto.LayoutElement.newBuilder().setColumn(mImpl).build();
}
@@ -2788,8 +2595,7 @@
public Builder() {}
/** Adds one item to the list of child elements to place inside this {@link Column}. */
- @NonNull
- public Builder addContent(@NonNull LayoutElement content) {
+ public @NonNull Builder addContent(@NonNull LayoutElement content) {
mImpl.addContents(content.toLayoutElementProto());
mFingerprint.addChildNode(checkNotNull(content.getFingerprint()));
return this;
@@ -2800,8 +2606,7 @@
* than the resulting width of the column. If not defined, defaults to
* HORIZONTAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setHorizontalAlignment(
+ public @NonNull Builder setHorizontalAlignment(
@NonNull HorizontalAlignmentProp horizontalAlignment) {
mImpl.setHorizontalAlignment(horizontalAlignment.toProto());
mFingerprint.recordPropertyUpdate(
@@ -2815,8 +2620,8 @@
* than the resulting width of the column. If not defined, defaults to
* HORIZONTAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setHorizontalAlignment(@HorizontalAlignment int horizontalAlignment) {
+ public @NonNull Builder setHorizontalAlignment(
+ @HorizontalAlignment int horizontalAlignment) {
mImpl.setHorizontalAlignment(
AlignmentProto.HorizontalAlignmentProp.newBuilder()
.setValue(
@@ -2830,8 +2635,7 @@
* Sets the width of this column. If not defined, this will size itself to fit all of
* its children (i.e. a WrappedDimension).
*/
- @NonNull
- public Builder setWidth(@NonNull DimensionBuilders.ContainerDimension width) {
+ public @NonNull Builder setWidth(DimensionBuilders.@NonNull ContainerDimension width) {
mImpl.setWidth(width.toContainerDimensionProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(width.getFingerprint()).aggregateValueAsInt());
@@ -2842,8 +2646,8 @@
* Sets the height of this column. If not defined, this will size itself to fit all of
* its children (i.e. a WrappedDimension).
*/
- @NonNull
- public Builder setHeight(@NonNull DimensionBuilders.ContainerDimension height) {
+ public @NonNull Builder setHeight(
+ DimensionBuilders.@NonNull ContainerDimension height) {
mImpl.setHeight(height.toContainerDimensionProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(height.getFingerprint()).aggregateValueAsInt());
@@ -2851,8 +2655,7 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.Modifiers modifiers) {
+ public @NonNull Builder setModifiers(ModifiersBuilders.@NonNull Modifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -2860,8 +2663,7 @@
}
@Override
- @NonNull
- public Column build() {
+ public @NonNull Column build() {
return new Column(mImpl.build(), mFingerprint);
}
}
@@ -2879,7 +2681,7 @@
*/
public static final class Row implements LayoutElement {
private final LayoutElementProto.Row mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Row(LayoutElementProto.Row impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -2890,8 +2692,7 @@
* Gets the list of child elements to place inside this {@link Row}. Intended for testing
* purposes only.
*/
- @NonNull
- public List<LayoutElement> getContents() {
+ public @NonNull List<LayoutElement> getContents() {
return Collections.unmodifiableList(
mImpl.getContentsList().stream()
.map(LayoutElementBuilders::layoutElementFromProto)
@@ -2903,8 +2704,7 @@
* resulting height of the row. If not defined, defaults to VERTICAL_ALIGN_CENTER. Intended
* for testing purposes only.
*/
- @Nullable
- public VerticalAlignmentProp getVerticalAlignment() {
+ public @Nullable VerticalAlignmentProp getVerticalAlignment() {
if (mImpl.hasVerticalAlignment()) {
return VerticalAlignmentProp.fromProto(mImpl.getVerticalAlignment());
} else {
@@ -2916,8 +2716,7 @@
* Gets the width of this row. If not defined, this will size itself to fit all of its
* children (i.e. a WrappedDimension). Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.ContainerDimension getWidth() {
+ public DimensionBuilders.@Nullable ContainerDimension getWidth() {
if (mImpl.hasWidth()) {
return DimensionBuilders.containerDimensionFromProto(mImpl.getWidth());
} else {
@@ -2929,8 +2728,7 @@
* Gets the height of this row. If not defined, this will size itself to fit all of its
* children (i.e. a WrappedDimension). Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.ContainerDimension getHeight() {
+ public DimensionBuilders.@Nullable ContainerDimension getHeight() {
if (mImpl.hasHeight()) {
return DimensionBuilders.containerDimensionFromProto(mImpl.getHeight());
} else {
@@ -2942,8 +2740,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.Modifiers getModifiers() {
+ public ModifiersBuilders.@Nullable Modifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.Modifiers.fromProto(mImpl.getModifiers());
} else {
@@ -2953,26 +2750,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Row fromProto(
- @NonNull LayoutElementProto.Row proto, @Nullable Fingerprint fingerprint) {
+ static @NonNull Row fromProto(
+ LayoutElementProto.@NonNull Row proto, @Nullable Fingerprint fingerprint) {
return new Row(proto, fingerprint);
}
- @NonNull
- LayoutElementProto.Row toProto() {
+ LayoutElementProto.@NonNull Row toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return LayoutElementProto.LayoutElement.newBuilder().setRow(mImpl).build();
}
@@ -2985,8 +2778,7 @@
public Builder() {}
/** Adds one item to the list of child elements to place inside this {@link Row}. */
- @NonNull
- public Builder addContent(@NonNull LayoutElement content) {
+ public @NonNull Builder addContent(@NonNull LayoutElement content) {
mImpl.addContents(content.toLayoutElementProto());
mFingerprint.addChildNode(checkNotNull(content.getFingerprint()));
return this;
@@ -2996,8 +2788,8 @@
* Sets the vertical alignment of elements inside this row, if they are narrower than
* the resulting height of the row. If not defined, defaults to VERTICAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setVerticalAlignment(@NonNull VerticalAlignmentProp verticalAlignment) {
+ public @NonNull Builder setVerticalAlignment(
+ @NonNull VerticalAlignmentProp verticalAlignment) {
mImpl.setVerticalAlignment(verticalAlignment.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(verticalAlignment.getFingerprint()).aggregateValueAsInt());
@@ -3008,8 +2800,7 @@
* Sets the vertical alignment of elements inside this row, if they are narrower than
* the resulting height of the row. If not defined, defaults to VERTICAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setVerticalAlignment(@VerticalAlignment int verticalAlignment) {
+ public @NonNull Builder setVerticalAlignment(@VerticalAlignment int verticalAlignment) {
mImpl.setVerticalAlignment(
AlignmentProto.VerticalAlignmentProp.newBuilder()
.setValue(
@@ -3023,8 +2814,7 @@
* Sets the width of this row. If not defined, this will size itself to fit all of its
* children (i.e. a WrappedDimension).
*/
- @NonNull
- public Builder setWidth(@NonNull DimensionBuilders.ContainerDimension width) {
+ public @NonNull Builder setWidth(DimensionBuilders.@NonNull ContainerDimension width) {
mImpl.setWidth(width.toContainerDimensionProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(width.getFingerprint()).aggregateValueAsInt());
@@ -3035,8 +2825,8 @@
* Sets the height of this row. If not defined, this will size itself to fit all of its
* children (i.e. a WrappedDimension).
*/
- @NonNull
- public Builder setHeight(@NonNull DimensionBuilders.ContainerDimension height) {
+ public @NonNull Builder setHeight(
+ DimensionBuilders.@NonNull ContainerDimension height) {
mImpl.setHeight(height.toContainerDimensionProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(height.getFingerprint()).aggregateValueAsInt());
@@ -3044,8 +2834,7 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.Modifiers modifiers) {
+ public @NonNull Builder setModifiers(ModifiersBuilders.@NonNull Modifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -3053,8 +2842,7 @@
}
@Override
- @NonNull
- public Row build() {
+ public @NonNull Row build() {
return new Row(mImpl.build(), mFingerprint);
}
}
@@ -3067,7 +2855,7 @@
*/
public static final class Arc implements LayoutElement {
private final LayoutElementProto.Arc mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Arc(LayoutElementProto.Arc impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -3075,8 +2863,7 @@
}
/** Gets contents of this container. Intended for testing purposes only. */
- @NonNull
- public List<ArcLayoutElement> getContents() {
+ public @NonNull List<ArcLayoutElement> getContents() {
return Collections.unmodifiableList(
mImpl.getContentsList().stream()
.map(LayoutElementBuilders::arcLayoutElementFromProto)
@@ -3092,8 +2879,7 @@
* sweep anti-clockwise (i.e. -90 degrees is equivalent to 270 degrees), and values >360
* will be be placed at X mod 360 degrees. Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.DegreesProp getAnchorAngle() {
+ public DimensionBuilders.@Nullable DegreesProp getAnchorAngle() {
if (mImpl.hasAnchorAngle()) {
return DimensionBuilders.DegreesProp.fromProto(mImpl.getAnchorAngle());
} else {
@@ -3105,8 +2891,7 @@
* Gets how to align the contents of this container relative to anchor_angle. If not
* defined, defaults to ARC_ANCHOR_CENTER. Intended for testing purposes only.
*/
- @Nullable
- public ArcAnchorTypeProp getAnchorType() {
+ public @Nullable ArcAnchorTypeProp getAnchorType() {
if (mImpl.hasAnchorType()) {
return ArcAnchorTypeProp.fromProto(mImpl.getAnchorType());
} else {
@@ -3120,8 +2905,7 @@
* should be drawn towards the inner or outer edge of the arc, or drawn in the center. If
* not defined, defaults to VERTICAL_ALIGN_CENTER. Intended for testing purposes only.
*/
- @Nullable
- public VerticalAlignmentProp getVerticalAlign() {
+ public @Nullable VerticalAlignmentProp getVerticalAlign() {
if (mImpl.hasVerticalAlign()) {
return VerticalAlignmentProp.fromProto(mImpl.getVerticalAlign());
} else {
@@ -3133,8 +2917,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.Modifiers getModifiers() {
+ public ModifiersBuilders.@Nullable Modifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.Modifiers.fromProto(mImpl.getModifiers());
} else {
@@ -3144,26 +2927,22 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Arc fromProto(
- @NonNull LayoutElementProto.Arc proto, @Nullable Fingerprint fingerprint) {
+ static @NonNull Arc fromProto(
+ LayoutElementProto.@NonNull Arc proto, @Nullable Fingerprint fingerprint) {
return new Arc(proto, fingerprint);
}
- @NonNull
- LayoutElementProto.Arc toProto() {
+ LayoutElementProto.@NonNull Arc toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.LayoutElement toLayoutElementProto() {
+ public LayoutElementProto.@NonNull LayoutElement toLayoutElementProto() {
return LayoutElementProto.LayoutElement.newBuilder().setArc(mImpl).build();
}
@@ -3176,8 +2955,7 @@
public Builder() {}
/** Adds one item to contents of this container. */
- @NonNull
- public Builder addContent(@NonNull ArcLayoutElement content) {
+ public @NonNull Builder addContent(@NonNull ArcLayoutElement content) {
mImpl.addContents(content.toArcLayoutElementProto());
mFingerprint.addChildNode(checkNotNull(content.getFingerprint()));
return this;
@@ -3192,8 +2970,8 @@
* will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270 degrees), and values
* >360 will be be placed at X mod 360 degrees.
*/
- @NonNull
- public Builder setAnchorAngle(@NonNull DimensionBuilders.DegreesProp anchorAngle) {
+ public @NonNull Builder setAnchorAngle(
+ DimensionBuilders.@NonNull DegreesProp anchorAngle) {
mImpl.setAnchorAngle(anchorAngle.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(anchorAngle.getFingerprint()).aggregateValueAsInt());
@@ -3204,8 +2982,7 @@
* Sets how to align the contents of this container relative to anchor_angle. If not
* defined, defaults to ARC_ANCHOR_CENTER.
*/
- @NonNull
- public Builder setAnchorType(@NonNull ArcAnchorTypeProp anchorType) {
+ public @NonNull Builder setAnchorType(@NonNull ArcAnchorTypeProp anchorType) {
mImpl.setAnchorType(anchorType.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(anchorType.getFingerprint()).aggregateValueAsInt());
@@ -3216,8 +2993,7 @@
* Sets how to align the contents of this container relative to anchor_angle. If not
* defined, defaults to ARC_ANCHOR_CENTER.
*/
- @NonNull
- public Builder setAnchorType(@ArcAnchorType int anchorType) {
+ public @NonNull Builder setAnchorType(@ArcAnchorType int anchorType) {
mImpl.setAnchorType(
AlignmentProto.ArcAnchorTypeProp.newBuilder()
.setValue(AlignmentProto.ArcAnchorType.forNumber(anchorType)));
@@ -3231,8 +3007,7 @@
* element should be drawn towards the inner or outer edge of the arc, or drawn in the
* center. If not defined, defaults to VERTICAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setVerticalAlign(@NonNull VerticalAlignmentProp verticalAlign) {
+ public @NonNull Builder setVerticalAlign(@NonNull VerticalAlignmentProp verticalAlign) {
mImpl.setVerticalAlign(verticalAlign.toProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(verticalAlign.getFingerprint()).aggregateValueAsInt());
@@ -3245,8 +3020,7 @@
* element should be drawn towards the inner or outer edge of the arc, or drawn in the
* center. If not defined, defaults to VERTICAL_ALIGN_CENTER.
*/
- @NonNull
- public Builder setVerticalAlign(@VerticalAlignment int verticalAlign) {
+ public @NonNull Builder setVerticalAlign(@VerticalAlignment int verticalAlign) {
mImpl.setVerticalAlign(
AlignmentProto.VerticalAlignmentProp.newBuilder()
.setValue(
@@ -3256,8 +3030,7 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.Modifiers modifiers) {
+ public @NonNull Builder setModifiers(ModifiersBuilders.@NonNull Modifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -3265,8 +3038,7 @@
}
@Override
- @NonNull
- public Arc build() {
+ public @NonNull Arc build() {
return new Arc(mImpl.build(), mFingerprint);
}
}
@@ -3275,7 +3047,7 @@
/** A text element that can be used in an {@link Arc}. */
public static final class ArcText implements ArcLayoutElement {
private final LayoutElementProto.ArcText mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ArcText(LayoutElementProto.ArcText impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -3283,8 +3055,7 @@
}
/** Gets the text to render. Intended for testing purposes only. */
- @Nullable
- public TypeBuilders.StringProp getText() {
+ public TypeBuilders.@Nullable StringProp getText() {
if (mImpl.hasText()) {
return TypeBuilders.StringProp.fromProto(mImpl.getText());
} else {
@@ -3296,8 +3067,7 @@
* Gets the style of font to use (size, bold etc). If not specified, defaults to the
* platform's default body font. Intended for testing purposes only.
*/
- @Nullable
- public FontStyle getFontStyle() {
+ public @Nullable FontStyle getFontStyle() {
if (mImpl.hasFontStyle()) {
return FontStyle.fromProto(mImpl.getFontStyle());
} else {
@@ -3309,8 +3079,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.ArcModifiers getModifiers() {
+ public ModifiersBuilders.@Nullable ArcModifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.ArcModifiers.fromProto(mImpl.getModifiers());
} else {
@@ -3320,25 +3089,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ArcText fromProto(@NonNull LayoutElementProto.ArcText proto) {
+ static @NonNull ArcText fromProto(LayoutElementProto.@NonNull ArcText proto) {
return new ArcText(proto, null);
}
- @NonNull
- LayoutElementProto.ArcText toProto() {
+ LayoutElementProto.@NonNull ArcText toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.ArcLayoutElement toArcLayoutElementProto() {
+ public LayoutElementProto.@NonNull ArcLayoutElement toArcLayoutElementProto() {
return LayoutElementProto.ArcLayoutElement.newBuilder().setText(mImpl).build();
}
@@ -3351,8 +3116,7 @@
public Builder() {}
/** Sets the text to render. */
- @NonNull
- public Builder setText(@NonNull TypeBuilders.StringProp text) {
+ public @NonNull Builder setText(TypeBuilders.@NonNull StringProp text) {
mImpl.setText(text.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(text.getFingerprint()).aggregateValueAsInt());
@@ -3360,8 +3124,7 @@
}
/** Sets the text to render. */
- @NonNull
- public Builder setText(@NonNull String text) {
+ public @NonNull Builder setText(@NonNull String text) {
mImpl.setText(TypesProto.StringProp.newBuilder().setValue(text));
mFingerprint.recordPropertyUpdate(1, text.hashCode());
return this;
@@ -3371,8 +3134,7 @@
* Sets the style of font to use (size, bold etc). If not specified, defaults to the
* platform's default body font.
*/
- @NonNull
- public Builder setFontStyle(@NonNull FontStyle fontStyle) {
+ public @NonNull Builder setFontStyle(@NonNull FontStyle fontStyle) {
mImpl.setFontStyle(fontStyle.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(fontStyle.getFingerprint()).aggregateValueAsInt());
@@ -3380,8 +3142,8 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.ArcModifiers modifiers) {
+ public @NonNull Builder setModifiers(
+ ModifiersBuilders.@NonNull ArcModifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -3389,8 +3151,7 @@
}
@Override
- @NonNull
- public ArcText build() {
+ public @NonNull ArcText build() {
return new ArcText(mImpl.build(), mFingerprint);
}
}
@@ -3399,7 +3160,7 @@
/** A line that can be used in an {@link Arc} and renders as a round progress bar. */
public static final class ArcLine implements ArcLayoutElement {
private final LayoutElementProto.ArcLine mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ArcLine(LayoutElementProto.ArcLine impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -3410,8 +3171,7 @@
* Gets the length of this line, in degrees. If not defined, defaults to 0. Intended for
* testing purposes only.
*/
- @Nullable
- public DimensionBuilders.DegreesProp getLength() {
+ public DimensionBuilders.@Nullable DegreesProp getLength() {
if (mImpl.hasLength()) {
return DimensionBuilders.DegreesProp.fromProto(mImpl.getLength());
} else {
@@ -3423,8 +3183,7 @@
* Gets the thickness of this line. If not defined, defaults to 0. Intended for testing
* purposes only.
*/
- @Nullable
- public DimensionBuilders.DpProp getThickness() {
+ public DimensionBuilders.@Nullable DpProp getThickness() {
if (mImpl.hasThickness()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getThickness());
} else {
@@ -3433,8 +3192,7 @@
}
/** Gets the color of this line. Intended for testing purposes only. */
- @Nullable
- public ColorBuilders.ColorProp getColor() {
+ public ColorBuilders.@Nullable ColorProp getColor() {
if (mImpl.hasColor()) {
return ColorBuilders.ColorProp.fromProto(mImpl.getColor());
} else {
@@ -3446,8 +3204,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.ArcModifiers getModifiers() {
+ public ModifiersBuilders.@Nullable ArcModifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.ArcModifiers.fromProto(mImpl.getModifiers());
} else {
@@ -3457,25 +3214,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ArcLine fromProto(@NonNull LayoutElementProto.ArcLine proto) {
+ static @NonNull ArcLine fromProto(LayoutElementProto.@NonNull ArcLine proto) {
return new ArcLine(proto, null);
}
- @NonNull
- LayoutElementProto.ArcLine toProto() {
+ LayoutElementProto.@NonNull ArcLine toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.ArcLayoutElement toArcLayoutElementProto() {
+ public LayoutElementProto.@NonNull ArcLayoutElement toArcLayoutElementProto() {
return LayoutElementProto.ArcLayoutElement.newBuilder().setLine(mImpl).build();
}
@@ -3488,8 +3241,7 @@
public Builder() {}
/** Sets the length of this line, in degrees. If not defined, defaults to 0. */
- @NonNull
- public Builder setLength(@NonNull DimensionBuilders.DegreesProp length) {
+ public @NonNull Builder setLength(DimensionBuilders.@NonNull DegreesProp length) {
mImpl.setLength(length.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(length.getFingerprint()).aggregateValueAsInt());
@@ -3497,8 +3249,7 @@
}
/** Sets the thickness of this line. If not defined, defaults to 0. */
- @NonNull
- public Builder setThickness(@NonNull DimensionBuilders.DpProp thickness) {
+ public @NonNull Builder setThickness(DimensionBuilders.@NonNull DpProp thickness) {
mImpl.setThickness(thickness.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(thickness.getFingerprint()).aggregateValueAsInt());
@@ -3506,8 +3257,7 @@
}
/** Sets the color of this line. */
- @NonNull
- public Builder setColor(@NonNull ColorBuilders.ColorProp color) {
+ public @NonNull Builder setColor(ColorBuilders.@NonNull ColorProp color) {
mImpl.setColor(color.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(color.getFingerprint()).aggregateValueAsInt());
@@ -3515,8 +3265,8 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.ArcModifiers modifiers) {
+ public @NonNull Builder setModifiers(
+ ModifiersBuilders.@NonNull ArcModifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -3524,8 +3274,7 @@
}
@Override
- @NonNull
- public ArcLine build() {
+ public @NonNull ArcLine build() {
return new ArcLine(mImpl.build(), mFingerprint);
}
}
@@ -3534,7 +3283,7 @@
/** A simple spacer used to provide padding between adjacent elements in an {@link Arc}. */
public static final class ArcSpacer implements ArcLayoutElement {
private final LayoutElementProto.ArcSpacer mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ArcSpacer(LayoutElementProto.ArcSpacer impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -3545,8 +3294,7 @@
* Gets the length of this spacer, in degrees. If not defined, defaults to 0. Intended for
* testing purposes only.
*/
- @Nullable
- public DimensionBuilders.DegreesProp getLength() {
+ public DimensionBuilders.@Nullable DegreesProp getLength() {
if (mImpl.hasLength()) {
return DimensionBuilders.DegreesProp.fromProto(mImpl.getLength());
} else {
@@ -3558,8 +3306,7 @@
* Gets the thickness of this spacer, in DP. If not defined, defaults to 0. Intended for
* testing purposes only.
*/
- @Nullable
- public DimensionBuilders.DpProp getThickness() {
+ public DimensionBuilders.@Nullable DpProp getThickness() {
if (mImpl.hasThickness()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getThickness());
} else {
@@ -3571,8 +3318,7 @@
* Gets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. Intended
* for testing purposes only.
*/
- @Nullable
- public ModifiersBuilders.ArcModifiers getModifiers() {
+ public ModifiersBuilders.@Nullable ArcModifiers getModifiers() {
if (mImpl.hasModifiers()) {
return ModifiersBuilders.ArcModifiers.fromProto(mImpl.getModifiers());
} else {
@@ -3582,25 +3328,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ArcSpacer fromProto(@NonNull LayoutElementProto.ArcSpacer proto) {
+ static @NonNull ArcSpacer fromProto(LayoutElementProto.@NonNull ArcSpacer proto) {
return new ArcSpacer(proto, null);
}
- @NonNull
- LayoutElementProto.ArcSpacer toProto() {
+ LayoutElementProto.@NonNull ArcSpacer toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.ArcLayoutElement toArcLayoutElementProto() {
+ public LayoutElementProto.@NonNull ArcLayoutElement toArcLayoutElementProto() {
return LayoutElementProto.ArcLayoutElement.newBuilder().setSpacer(mImpl).build();
}
@@ -3613,8 +3355,7 @@
public Builder() {}
/** Sets the length of this spacer, in degrees. If not defined, defaults to 0. */
- @NonNull
- public Builder setLength(@NonNull DimensionBuilders.DegreesProp length) {
+ public @NonNull Builder setLength(DimensionBuilders.@NonNull DegreesProp length) {
mImpl.setLength(length.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(length.getFingerprint()).aggregateValueAsInt());
@@ -3622,8 +3363,7 @@
}
/** Sets the thickness of this spacer, in DP. If not defined, defaults to 0. */
- @NonNull
- public Builder setThickness(@NonNull DimensionBuilders.DpProp thickness) {
+ public @NonNull Builder setThickness(DimensionBuilders.@NonNull DpProp thickness) {
mFingerprint.recordPropertyUpdate(
2, checkNotNull(thickness.getFingerprint()).aggregateValueAsInt());
mImpl.setThickness(thickness.toProto());
@@ -3631,8 +3371,8 @@
}
/** Sets {@link androidx.wear.tiles.ModifiersBuilders.Modifiers} for this element. */
- @NonNull
- public Builder setModifiers(@NonNull ModifiersBuilders.ArcModifiers modifiers) {
+ public @NonNull Builder setModifiers(
+ ModifiersBuilders.@NonNull ArcModifiers modifiers) {
mImpl.setModifiers(modifiers.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(modifiers.getFingerprint()).aggregateValueAsInt());
@@ -3640,8 +3380,7 @@
}
@Override
- @NonNull
- public ArcSpacer build() {
+ public @NonNull ArcSpacer build() {
return new ArcSpacer(mImpl.build(), mFingerprint);
}
}
@@ -3650,7 +3389,7 @@
/** A container that allows a standard {@link LayoutElement} to be added to an {@link Arc}. */
public static final class ArcAdapter implements ArcLayoutElement {
private final LayoutElementProto.ArcAdapter mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ArcAdapter(LayoutElementProto.ArcAdapter impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -3658,8 +3397,7 @@
}
/** Gets the element to adapt to an {@link Arc}. Intended for testing purposes only. */
- @Nullable
- public LayoutElement getContent() {
+ public @Nullable LayoutElement getContent() {
if (mImpl.hasContent()) {
return LayoutElementBuilders.layoutElementFromProto(mImpl.getContent());
} else {
@@ -3676,8 +3414,7 @@
* will not be rotated. If not defined, defaults to false. Intended for testing purposes
* only.
*/
- @Nullable
- public TypeBuilders.BoolProp getRotateContents() {
+ public TypeBuilders.@Nullable BoolProp getRotateContents() {
if (mImpl.hasRotateContents()) {
return TypeBuilders.BoolProp.fromProto(mImpl.getRotateContents());
} else {
@@ -3687,25 +3424,21 @@
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ArcAdapter fromProto(@NonNull LayoutElementProto.ArcAdapter proto) {
+ static @NonNull ArcAdapter fromProto(LayoutElementProto.@NonNull ArcAdapter proto) {
return new ArcAdapter(proto, null);
}
- @NonNull
- LayoutElementProto.ArcAdapter toProto() {
+ LayoutElementProto.@NonNull ArcAdapter toProto() {
return mImpl;
}
@Override
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.ArcLayoutElement toArcLayoutElementProto() {
+ public LayoutElementProto.@NonNull ArcLayoutElement toArcLayoutElementProto() {
return LayoutElementProto.ArcLayoutElement.newBuilder().setAdapter(mImpl).build();
}
@@ -3718,8 +3451,7 @@
public Builder() {}
/** Sets the element to adapt to an {@link Arc}. */
- @NonNull
- public Builder setContent(@NonNull LayoutElement content) {
+ public @NonNull Builder setContent(@NonNull LayoutElement content) {
mImpl.setContent(content.toLayoutElementProto());
mFingerprint.addChildNode(checkNotNull(content.getFingerprint()));
return this;
@@ -3733,8 +3465,8 @@
* degrees. If rotate_contents = false, the image will be placed at the 3 o clock
* position, but itself will not be rotated. If not defined, defaults to false.
*/
- @NonNull
- public Builder setRotateContents(@NonNull TypeBuilders.BoolProp rotateContents) {
+ public @NonNull Builder setRotateContents(
+ TypeBuilders.@NonNull BoolProp rotateContents) {
mImpl.setRotateContents(rotateContents.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(rotateContents.getFingerprint()).aggregateValueAsInt());
@@ -3750,16 +3482,14 @@
* position, but itself will not be rotated. If not defined, defaults to false.
*/
@SuppressLint("MissingGetterMatchingBuilder")
- @NonNull
- public Builder setRotateContents(boolean rotateContents) {
+ public @NonNull Builder setRotateContents(boolean rotateContents) {
mImpl.setRotateContents(TypesProto.BoolProp.newBuilder().setValue(rotateContents));
mFingerprint.recordPropertyUpdate(2, Boolean.hashCode(rotateContents));
return this;
}
@Override
- @NonNull
- public ArcAdapter build() {
+ public @NonNull ArcAdapter build() {
return new ArcAdapter(mImpl.build(), mFingerprint);
}
}
@@ -3772,29 +3502,25 @@
public interface LayoutElement {
/** Get the protocol buffer representation of this object. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- LayoutElementProto.LayoutElement toLayoutElementProto();
+ LayoutElementProto.@NonNull LayoutElement toLayoutElementProto();
/** Get the fingerprint for this object or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- Fingerprint getFingerprint();
+ @Nullable Fingerprint getFingerprint();
/** Builder to create {@link LayoutElement} objects. */
@SuppressLint("StaticFinalBuilder")
interface Builder {
/** Builds an instance with values accumulated in this Builder. */
- @NonNull
- LayoutElement build();
+ @NonNull LayoutElement build();
}
}
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static LayoutElement layoutElementFromProto(
- @NonNull LayoutElementProto.LayoutElement proto, @Nullable Fingerprint fingerprint) {
+ public static @NonNull LayoutElement layoutElementFromProto(
+ LayoutElementProto.@NonNull LayoutElement proto, @Nullable Fingerprint fingerprint) {
if (proto.hasColumn()) {
return Column.fromProto(proto.getColumn(), fingerprint);
}
@@ -3822,8 +3548,8 @@
throw new IllegalStateException("Proto was not a recognised instance of LayoutElement");
}
- @NonNull
- static LayoutElement layoutElementFromProto(@NonNull LayoutElementProto.LayoutElement proto) {
+ static @NonNull LayoutElement layoutElementFromProto(
+ LayoutElementProto.@NonNull LayoutElement proto) {
return layoutElementFromProto(proto, null);
}
@@ -3834,27 +3560,23 @@
public interface ArcLayoutElement {
/** Get the protocol buffer representation of this object. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- LayoutElementProto.ArcLayoutElement toArcLayoutElementProto();
+ LayoutElementProto.@NonNull ArcLayoutElement toArcLayoutElementProto();
/** Get the fingerprint for this object or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- Fingerprint getFingerprint();
+ @Nullable Fingerprint getFingerprint();
/** Builder to create {@link ArcLayoutElement} objects. */
@SuppressLint("StaticFinalBuilder")
interface Builder {
/** Builds an instance with values accumulated in this Builder. */
- @NonNull
- ArcLayoutElement build();
+ @NonNull ArcLayoutElement build();
}
}
- @NonNull
- static ArcLayoutElement arcLayoutElementFromProto(
- @NonNull LayoutElementProto.ArcLayoutElement proto) {
+ static @NonNull ArcLayoutElement arcLayoutElementFromProto(
+ LayoutElementProto.@NonNull ArcLayoutElement proto) {
if (proto.hasText()) {
return ArcText.fromProto(proto.getText());
}
@@ -3879,8 +3601,7 @@
}
/** Gets the root element in the layout. Intended for testing purposes only. */
- @Nullable
- public LayoutElement getRoot() {
+ public @Nullable LayoutElement getRoot() {
if (mImpl.hasRoot()) {
return LayoutElementBuilders.layoutElementFromProto(mImpl.getRoot());
} else {
@@ -3889,35 +3610,30 @@
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static Layout fromProto(@NonNull LayoutElementProto.Layout proto) {
+ public static @NonNull Layout fromProto(LayoutElementProto.@NonNull Layout proto) {
return new Layout(proto);
}
/** Creates a {@link Layout} object containing the given layout element. */
- @NonNull
- public static Layout fromLayoutElement(@NonNull LayoutElement layoutElement) {
+ public static @NonNull Layout fromLayoutElement(@NonNull LayoutElement layoutElement) {
return new Builder().setRoot(layoutElement).build();
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public LayoutElementProto.Layout toProto() {
+ public LayoutElementProto.@NonNull Layout toProto() {
return mImpl;
}
/** Converts to byte array representation. */
@TilesExperimental
- @NonNull
- public byte[] toByteArray() {
+ public byte @NonNull [] toByteArray() {
return mImpl.toByteArray();
}
/** Converts from byte array representation. */
@TilesExperimental
- @Nullable
- public static Layout fromByteArray(@NonNull byte[] byteArray) {
+ public static @Nullable Layout fromByteArray(byte @NonNull [] byteArray) {
try {
return fromProto(LayoutElementProto.Layout.parseFrom(byteArray));
} catch (InvalidProtocolBufferException e) {
@@ -3933,10 +3649,9 @@
public Builder() {}
/** Sets the root element in the layout. */
- @NonNull
- public Builder setRoot(@NonNull LayoutElement root) {
+ public @NonNull Builder setRoot(@NonNull LayoutElement root) {
mImpl.setRoot(root.toLayoutElementProto());
- @Nullable Fingerprint fingerprint = root.getFingerprint();
+ Fingerprint fingerprint = root.getFingerprint();
if (fingerprint != null) {
mImpl.setFingerprint(
TreeFingerprint.newBuilder().setRoot(fingerprintToProto(fingerprint)));
@@ -3964,8 +3679,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Layout build() {
+ public @NonNull Layout build() {
return Layout.fromProto(mImpl.build());
}
}
@@ -3978,101 +3692,90 @@
private FontStyles() {}
private static boolean isLargeScreen(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return deviceParameters.getScreenWidthDp() >= LARGE_SCREEN_WIDTH_DP;
}
/** Font style for large display text. */
- @NonNull
- public static FontStyle.Builder display1(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder display1(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setWeight(FONT_WEIGHT_BOLD)
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 54 : 50));
}
/** Font style for medium display text. */
- @NonNull
- public static FontStyle.Builder display2(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder display2(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setWeight(FONT_WEIGHT_BOLD)
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 44 : 40));
}
/** Font style for small display text. */
- @NonNull
- public static FontStyle.Builder display3(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder display3(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setWeight(FONT_WEIGHT_BOLD)
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 34 : 30));
}
/** Font style for large title text. */
- @NonNull
- public static FontStyle.Builder title1(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder title1(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setWeight(FONT_WEIGHT_BOLD)
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 26 : 24));
}
/** Font style for medium title text. */
- @NonNull
- public static FontStyle.Builder title2(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder title2(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setWeight(FONT_WEIGHT_BOLD)
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 22 : 20));
}
/** Font style for small title text. */
- @NonNull
- public static FontStyle.Builder title3(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder title3(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setWeight(FONT_WEIGHT_BOLD)
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 18 : 16));
}
/** Font style for large body text. */
- @NonNull
- public static FontStyle.Builder body1(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder body1(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 18 : 16));
}
/** Font style for medium body text. */
- @NonNull
- public static FontStyle.Builder body2(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder body2(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 16 : 14));
}
/** Font style for button text. */
- @NonNull
- public static FontStyle.Builder button(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder button(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setWeight(FONT_WEIGHT_BOLD)
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 16 : 14));
}
/** Font style for large caption text. */
- @NonNull
- public static FontStyle.Builder caption1(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder caption1(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 16 : 14));
}
/** Font style for medium caption text. */
- @NonNull
- public static FontStyle.Builder caption2(
- @NonNull DeviceParametersBuilders.DeviceParameters deviceParameters) {
+ public static FontStyle.@NonNull Builder caption2(
+ DeviceParametersBuilders.@NonNull DeviceParameters deviceParameters) {
return new FontStyle.Builder()
.setSize(DimensionBuilders.sp(isLargeScreen(deviceParameters) ? 14 : 12));
}
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 a92e6a1..c697106 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
@@ -20,8 +20,6 @@
import android.annotation.SuppressLint;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
@@ -29,6 +27,9 @@
import androidx.wear.protolayout.proto.TypesProto;
import androidx.wear.protolayout.protobuf.ByteString;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.util.Arrays;
/**
@@ -46,7 +47,7 @@
*/
public static final class Clickable {
private final ModifiersProto.Clickable mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Clickable(ModifiersProto.Clickable impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -54,8 +55,7 @@
}
/** Gets the ID associated with this action. Intended for testing purposes only. */
- @NonNull
- public String getId() {
+ public @NonNull String getId() {
return mImpl.getId();
}
@@ -63,8 +63,7 @@
* Gets the action to perform when the element this modifier is attached to is clicked.
* Intended for testing purposes only.
*/
- @Nullable
- public ActionBuilders.Action getOnClick() {
+ public ActionBuilders.@Nullable Action getOnClick() {
if (mImpl.hasOnClick()) {
return ActionBuilders.actionFromProto(mImpl.getOnClick());
} else {
@@ -74,20 +73,17 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Clickable fromProto(@NonNull ModifiersProto.Clickable proto) {
+ static @NonNull Clickable fromProto(ModifiersProto.@NonNull Clickable proto) {
return new Clickable(proto, null);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ModifiersProto.Clickable toProto() {
+ public ModifiersProto.@NonNull Clickable toProto() {
return mImpl;
}
@@ -100,8 +96,7 @@
public Builder() {}
/** Sets the ID associated with this action. */
- @NonNull
- public Builder setId(@NonNull String id) {
+ public @NonNull Builder setId(@NonNull String id) {
mImpl.setId(id);
mFingerprint.recordPropertyUpdate(1, id.hashCode());
return this;
@@ -110,8 +105,7 @@
/**
* Sets the action to perform when the element this modifier is attached to is clicked.
*/
- @NonNull
- public Builder setOnClick(@NonNull ActionBuilders.Action onClick) {
+ public @NonNull Builder setOnClick(ActionBuilders.@NonNull Action onClick) {
mImpl.setOnClick(onClick.toActionProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(onClick.getFingerprint()).aggregateValueAsInt());
@@ -119,8 +113,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Clickable build() {
+ public @NonNull Clickable build() {
return new Clickable(mImpl.build(), mFingerprint);
}
}
@@ -133,7 +126,7 @@
*/
public static final class Semantics {
private final ModifiersProto.Semantics mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Semantics(ModifiersProto.Semantics impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -144,25 +137,21 @@
* Gets the content description associated with this element. This will be dictated when the
* element is focused by the screen reader. Intended for testing purposes only.
*/
- @NonNull
- public String getContentDescription() {
+ public @NonNull String getContentDescription() {
return mImpl.getObsoleteContentDescription();
}
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Semantics fromProto(@NonNull ModifiersProto.Semantics proto) {
+ static @NonNull Semantics fromProto(ModifiersProto.@NonNull Semantics proto) {
return new Semantics(proto, null);
}
- @NonNull
- ModifiersProto.Semantics toProto() {
+ ModifiersProto.@NonNull Semantics toProto() {
return mImpl;
}
@@ -178,18 +167,16 @@
* Sets the content description associated with this element. This will be dictated when
* the element is focused by the screen reader.
*/
- @NonNull
@SuppressWarnings(
"deprecation") // Updating a deprecated field for backward compatibility
- public Builder setContentDescription(@NonNull String contentDescription) {
+ public @NonNull Builder setContentDescription(@NonNull String contentDescription) {
mImpl.setObsoleteContentDescription(contentDescription);
mFingerprint.recordPropertyUpdate(4, contentDescription.hashCode());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Semantics build() {
+ public @NonNull Semantics build() {
return new Semantics(mImpl.build(), mFingerprint);
}
}
@@ -198,7 +185,7 @@
/** A modifier to apply padding around an element. */
public static final class Padding {
private final ModifiersProto.Padding mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Padding(ModifiersProto.Padding impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -209,8 +196,7 @@
* Gets the padding on the end of the content, depending on the layout direction, in DP and
* the value of "rtl_aware". Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.DpProp getEnd() {
+ public DimensionBuilders.@Nullable DpProp getEnd() {
if (mImpl.hasEnd()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getEnd());
} else {
@@ -222,8 +208,7 @@
* Gets the padding on the start of the content, depending on the layout direction, in DP
* and the value of "rtl_aware". Intended for testing purposes only.
*/
- @Nullable
- public DimensionBuilders.DpProp getStart() {
+ public DimensionBuilders.@Nullable DpProp getStart() {
if (mImpl.hasStart()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getStart());
} else {
@@ -232,8 +217,7 @@
}
/** Gets the padding at the top, in DP. Intended for testing purposes only. */
- @Nullable
- public DimensionBuilders.DpProp getTop() {
+ public DimensionBuilders.@Nullable DpProp getTop() {
if (mImpl.hasTop()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getTop());
} else {
@@ -242,8 +226,7 @@
}
/** Gets the padding at the bottom, in DP. Intended for testing purposes only. */
- @Nullable
- public DimensionBuilders.DpProp getBottom() {
+ public DimensionBuilders.@Nullable DpProp getBottom() {
if (mImpl.hasBottom()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getBottom());
} else {
@@ -257,8 +240,7 @@
* of the container if the device is using an RTL locale). If false, start/end will always
* map to left/right, accordingly. Intended for testing purposes only.
*/
- @Nullable
- public TypeBuilders.BoolProp getRtlAware() {
+ public TypeBuilders.@Nullable BoolProp getRtlAware() {
if (mImpl.hasRtlAware()) {
return TypeBuilders.BoolProp.fromProto(mImpl.getRtlAware());
} else {
@@ -268,18 +250,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Padding fromProto(@NonNull ModifiersProto.Padding proto) {
+ static @NonNull Padding fromProto(ModifiersProto.@NonNull Padding proto) {
return new Padding(proto, null);
}
- @NonNull
- ModifiersProto.Padding toProto() {
+ ModifiersProto.@NonNull Padding toProto() {
return mImpl;
}
@@ -295,8 +274,7 @@
* Sets the padding on the end of the content, depending on the layout direction, in DP
* and the value of "rtl_aware".
*/
- @NonNull
- public Builder setEnd(@NonNull DimensionBuilders.DpProp end) {
+ public @NonNull Builder setEnd(DimensionBuilders.@NonNull DpProp end) {
mImpl.setEnd(end.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(end.getFingerprint()).aggregateValueAsInt());
@@ -307,8 +285,7 @@
* Sets the padding on the start of the content, depending on the layout direction, in
* DP and the value of "rtl_aware".
*/
- @NonNull
- public Builder setStart(@NonNull DimensionBuilders.DpProp start) {
+ public @NonNull Builder setStart(DimensionBuilders.@NonNull DpProp start) {
mImpl.setStart(start.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(start.getFingerprint()).aggregateValueAsInt());
@@ -316,8 +293,7 @@
}
/** Sets the padding at the top, in DP. */
- @NonNull
- public Builder setTop(@NonNull DimensionBuilders.DpProp top) {
+ public @NonNull Builder setTop(DimensionBuilders.@NonNull DpProp top) {
mImpl.setTop(top.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(top.getFingerprint()).aggregateValueAsInt());
@@ -325,8 +301,7 @@
}
/** Sets the padding at the bottom, in DP. */
- @NonNull
- public Builder setBottom(@NonNull DimensionBuilders.DpProp bottom) {
+ public @NonNull Builder setBottom(DimensionBuilders.@NonNull DpProp bottom) {
mImpl.setBottom(bottom.toProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(bottom.getFingerprint()).aggregateValueAsInt());
@@ -339,8 +314,7 @@
* side of the container if the device is using an RTL locale). If false, start/end will
* always map to left/right, accordingly.
*/
- @NonNull
- public Builder setRtlAware(@NonNull TypeBuilders.BoolProp rtlAware) {
+ public @NonNull Builder setRtlAware(TypeBuilders.@NonNull BoolProp rtlAware) {
mImpl.setRtlAware(rtlAware.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(rtlAware.getFingerprint()).aggregateValueAsInt());
@@ -354,23 +328,20 @@
* always map to left/right, accordingly.
*/
@SuppressLint("MissingGetterMatchingBuilder")
- @NonNull
- public Builder setRtlAware(boolean rtlAware) {
+ public @NonNull Builder setRtlAware(boolean rtlAware) {
mImpl.setRtlAware(TypesProto.BoolProp.newBuilder().setValue(rtlAware));
mFingerprint.recordPropertyUpdate(5, Boolean.hashCode(rtlAware));
return this;
}
/** Sets the padding for all sides of the content, in DP. */
- @NonNull
@SuppressLint("MissingGetterMatchingBuilder")
- public Builder setAll(@NonNull DimensionBuilders.DpProp value) {
+ public @NonNull Builder setAll(DimensionBuilders.@NonNull DpProp value) {
return setStart(value).setEnd(value).setTop(value).setBottom(value);
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Padding build() {
+ public @NonNull Padding build() {
return new Padding(mImpl.build(), mFingerprint);
}
}
@@ -379,7 +350,7 @@
/** A modifier to apply a border around an element. */
public static final class Border {
private final ModifiersProto.Border mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Border(ModifiersProto.Border impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -387,8 +358,7 @@
}
/** Gets the width of the border, in DP. Intended for testing purposes only. */
- @Nullable
- public DimensionBuilders.DpProp getWidth() {
+ public DimensionBuilders.@Nullable DpProp getWidth() {
if (mImpl.hasWidth()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getWidth());
} else {
@@ -397,8 +367,7 @@
}
/** Gets the color of the border. Intended for testing purposes only. */
- @Nullable
- public ColorBuilders.ColorProp getColor() {
+ public ColorBuilders.@Nullable ColorProp getColor() {
if (mImpl.hasColor()) {
return ColorBuilders.ColorProp.fromProto(mImpl.getColor());
} else {
@@ -408,18 +377,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Border fromProto(@NonNull ModifiersProto.Border proto) {
+ static @NonNull Border fromProto(ModifiersProto.@NonNull Border proto) {
return new Border(proto, null);
}
- @NonNull
- ModifiersProto.Border toProto() {
+ ModifiersProto.@NonNull Border toProto() {
return mImpl;
}
@@ -431,8 +397,7 @@
public Builder() {}
/** Sets the width of the border, in DP. */
- @NonNull
- public Builder setWidth(@NonNull DimensionBuilders.DpProp width) {
+ public @NonNull Builder setWidth(DimensionBuilders.@NonNull DpProp width) {
mImpl.setWidth(width.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(width.getFingerprint()).aggregateValueAsInt());
@@ -440,8 +405,7 @@
}
/** Sets the color of the border. */
- @NonNull
- public Builder setColor(@NonNull ColorBuilders.ColorProp color) {
+ public @NonNull Builder setColor(ColorBuilders.@NonNull ColorProp color) {
mImpl.setColor(color.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(color.getFingerprint()).aggregateValueAsInt());
@@ -449,8 +413,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Border build() {
+ public @NonNull Border build() {
return new Border(mImpl.build(), mFingerprint);
}
}
@@ -459,7 +422,7 @@
/** The corner of a {@link androidx.wear.tiles.LayoutElementBuilders.Box} element. */
public static final class Corner {
private final ModifiersProto.Corner mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Corner(ModifiersProto.Corner impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -467,8 +430,7 @@
}
/** Gets the radius of the corner in DP. Intended for testing purposes only. */
- @Nullable
- public DimensionBuilders.DpProp getRadius() {
+ public DimensionBuilders.@Nullable DpProp getRadius() {
if (mImpl.hasRadius()) {
return DimensionBuilders.DpProp.fromProto(mImpl.getRadius());
} else {
@@ -478,18 +440,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Corner fromProto(@NonNull ModifiersProto.Corner proto) {
+ static @NonNull Corner fromProto(ModifiersProto.@NonNull Corner proto) {
return new Corner(proto, null);
}
- @NonNull
- ModifiersProto.Corner toProto() {
+ ModifiersProto.@NonNull Corner toProto() {
return mImpl;
}
@@ -501,8 +460,7 @@
public Builder() {}
/** Sets the radius of the corner in DP. */
- @NonNull
- public Builder setRadius(@NonNull DimensionBuilders.DpProp radius) {
+ public @NonNull Builder setRadius(DimensionBuilders.@NonNull DpProp radius) {
mImpl.setRadius(radius.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(radius.getFingerprint()).aggregateValueAsInt());
@@ -510,8 +468,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Corner build() {
+ public @NonNull Corner build() {
return new Corner(mImpl.build(), mFingerprint);
}
}
@@ -520,7 +477,7 @@
/** A modifier to apply a background to an element. */
public static final class Background {
private final ModifiersProto.Background mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Background(ModifiersProto.Background impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -531,8 +488,7 @@
* Gets the background color for this element. If not defined, defaults to being
* transparent. Intended for testing purposes only.
*/
- @Nullable
- public ColorBuilders.ColorProp getColor() {
+ public ColorBuilders.@Nullable ColorProp getColor() {
if (mImpl.hasColor()) {
return ColorBuilders.ColorProp.fromProto(mImpl.getColor());
} else {
@@ -545,8 +501,7 @@
* if it has a background color or border. If not defined, defaults to having a square
* corner. Intended for testing purposes only.
*/
- @Nullable
- public Corner getCorner() {
+ public @Nullable Corner getCorner() {
if (mImpl.hasCorner()) {
return Corner.fromProto(mImpl.getCorner());
} else {
@@ -556,18 +511,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Background fromProto(@NonNull ModifiersProto.Background proto) {
+ static @NonNull Background fromProto(ModifiersProto.@NonNull Background proto) {
return new Background(proto, null);
}
- @NonNull
- ModifiersProto.Background toProto() {
+ ModifiersProto.@NonNull Background toProto() {
return mImpl;
}
@@ -583,8 +535,7 @@
* Sets the background color for this element. If not defined, defaults to being
* transparent.
*/
- @NonNull
- public Builder setColor(@NonNull ColorBuilders.ColorProp color) {
+ public @NonNull Builder setColor(ColorBuilders.@NonNull ColorProp color) {
mImpl.setColor(color.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(color.getFingerprint()).aggregateValueAsInt());
@@ -596,8 +547,7 @@
* element if it has a background color or border. If not defined, defaults to having a
* square corner.
*/
- @NonNull
- public Builder setCorner(@NonNull Corner corner) {
+ public @NonNull Builder setCorner(@NonNull Corner corner) {
mImpl.setCorner(corner.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(corner.getFingerprint()).aggregateValueAsInt());
@@ -605,8 +555,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Background build() {
+ public @NonNull Background build() {
return new Background(mImpl.build(), mFingerprint);
}
}
@@ -618,7 +567,7 @@
*/
public static final class ElementMetadata {
private final ModifiersProto.ElementMetadata mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ElementMetadata(ModifiersProto.ElementMetadata impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -629,27 +578,23 @@
* Gets property describing the element with which it is associated. For use by libraries
* building higher-level components only. This can be used to track component metadata.
*/
- @NonNull
- public byte[] getTagData() {
+ public byte @NonNull [] getTagData() {
return mImpl.getTagData().toByteArray();
}
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ElementMetadata fromProto(@NonNull ModifiersProto.ElementMetadata proto) {
+ static @NonNull ElementMetadata fromProto(ModifiersProto.@NonNull ElementMetadata proto) {
return new ElementMetadata(proto, null);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ModifiersProto.ElementMetadata toProto() {
+ public ModifiersProto.@NonNull ElementMetadata toProto() {
return mImpl;
}
@@ -666,16 +611,14 @@
* libraries building higher-level components only. This can be used to track component
* metadata.
*/
- @NonNull
- public Builder setTagData(@NonNull byte[] tagData) {
+ public @NonNull Builder setTagData(byte @NonNull [] tagData) {
mImpl.setTagData(ByteString.copyFrom(tagData));
mFingerprint.recordPropertyUpdate(1, Arrays.hashCode(tagData));
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public ElementMetadata build() {
+ public @NonNull ElementMetadata build() {
return new ElementMetadata(mImpl.build(), mFingerprint);
}
}
@@ -688,7 +631,7 @@
*/
public static final class Modifiers {
private final ModifiersProto.Modifiers mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Modifiers(ModifiersProto.Modifiers impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -700,8 +643,7 @@
* have actions associated with it, which will be executed when the element is tapped.
* Intended for testing purposes only.
*/
- @Nullable
- public Clickable getClickable() {
+ public @Nullable Clickable getClickable() {
if (mImpl.hasClickable()) {
return Clickable.fromProto(mImpl.getClickable());
} else {
@@ -714,8 +656,7 @@
* modified element (eg. screen reader content descriptions). Intended for testing purposes
* only.
*/
- @Nullable
- public Semantics getSemantics() {
+ public @Nullable Semantics getSemantics() {
if (mImpl.hasSemantics()) {
return Semantics.fromProto(mImpl.getSemantics());
} else {
@@ -724,8 +665,7 @@
}
/** Gets the padding of the modified element. Intended for testing purposes only. */
- @Nullable
- public Padding getPadding() {
+ public @Nullable Padding getPadding() {
if (mImpl.hasPadding()) {
return Padding.fromProto(mImpl.getPadding());
} else {
@@ -734,8 +674,7 @@
}
/** Gets the border of the modified element. Intended for testing purposes only. */
- @Nullable
- public Border getBorder() {
+ public @Nullable Border getBorder() {
if (mImpl.hasBorder()) {
return Border.fromProto(mImpl.getBorder());
} else {
@@ -747,8 +686,7 @@
* Gets the background (with optional corner radius) of the modified element. Intended for
* testing purposes only.
*/
- @Nullable
- public Background getBackground() {
+ public @Nullable Background getBackground() {
if (mImpl.hasBackground()) {
return Background.fromProto(mImpl.getBackground());
} else {
@@ -760,8 +698,7 @@
* Gets metadata about an element. For use by libraries building higher-level components
* only. This can be used to track component metadata.
*/
- @Nullable
- public ElementMetadata getMetadata() {
+ public @Nullable ElementMetadata getMetadata() {
if (mImpl.hasMetadata()) {
return ElementMetadata.fromProto(mImpl.getMetadata());
} else {
@@ -771,16 +708,14 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static Modifiers fromProto(
- @NonNull ModifiersProto.Modifiers proto, @Nullable Fingerprint fingerprint) {
+ public static @NonNull Modifiers fromProto(
+ ModifiersProto.@NonNull Modifiers proto, @Nullable Fingerprint fingerprint) {
return new Modifiers(proto, fingerprint);
}
@@ -789,15 +724,13 @@
* object created using this method can't be added to any other wrapper.
*/
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static Modifiers fromProto(@NonNull ModifiersProto.Modifiers proto) {
+ public static @NonNull Modifiers fromProto(ModifiersProto.@NonNull Modifiers proto) {
return fromProto(proto, null);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ModifiersProto.Modifiers toProto() {
+ public ModifiersProto.@NonNull Modifiers toProto() {
return mImpl;
}
@@ -813,8 +746,7 @@
* Sets the clickable property of the modified element. It allows its wrapped element to
* have actions associated with it, which will be executed when the element is tapped.
*/
- @NonNull
- public Builder setClickable(@NonNull Clickable clickable) {
+ public @NonNull Builder setClickable(@NonNull Clickable clickable) {
mImpl.setClickable(clickable.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(clickable.getFingerprint()).aggregateValueAsInt());
@@ -825,8 +757,7 @@
* Sets the semantics of the modified element. This can be used to add metadata to the
* modified element (eg. screen reader content descriptions).
*/
- @NonNull
- public Builder setSemantics(@NonNull Semantics semantics) {
+ public @NonNull Builder setSemantics(@NonNull Semantics semantics) {
mImpl.setSemantics(semantics.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(semantics.getFingerprint()).aggregateValueAsInt());
@@ -834,8 +765,7 @@
}
/** Sets the padding of the modified element. */
- @NonNull
- public Builder setPadding(@NonNull Padding padding) {
+ public @NonNull Builder setPadding(@NonNull Padding padding) {
mImpl.setPadding(padding.toProto());
mFingerprint.recordPropertyUpdate(
3, checkNotNull(padding.getFingerprint()).aggregateValueAsInt());
@@ -843,8 +773,7 @@
}
/** Sets the border of the modified element. */
- @NonNull
- public Builder setBorder(@NonNull Border border) {
+ public @NonNull Builder setBorder(@NonNull Border border) {
mImpl.setBorder(border.toProto());
mFingerprint.recordPropertyUpdate(
4, checkNotNull(border.getFingerprint()).aggregateValueAsInt());
@@ -852,8 +781,7 @@
}
/** Sets the background (with optional corner radius) of the modified element. */
- @NonNull
- public Builder setBackground(@NonNull Background background) {
+ public @NonNull Builder setBackground(@NonNull Background background) {
mImpl.setBackground(background.toProto());
mFingerprint.recordPropertyUpdate(
5, checkNotNull(background.getFingerprint()).aggregateValueAsInt());
@@ -864,8 +792,7 @@
* Sets metadata about an element. For use by libraries building higher-level components
* only. This can be used to track component metadata.
*/
- @NonNull
- public Builder setMetadata(@NonNull ElementMetadata metadata) {
+ public @NonNull Builder setMetadata(@NonNull ElementMetadata metadata) {
mImpl.setMetadata(metadata.toProto());
mFingerprint.recordPropertyUpdate(
6, checkNotNull(metadata.getFingerprint()).aggregateValueAsInt());
@@ -873,8 +800,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Modifiers build() {
+ public @NonNull Modifiers build() {
return new Modifiers(mImpl.build(), mFingerprint);
}
}
@@ -886,7 +812,7 @@
*/
public static final class ArcModifiers {
private final ModifiersProto.ArcModifiers mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
ArcModifiers(ModifiersProto.ArcModifiers impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -897,8 +823,7 @@
* Gets allows its wrapped element to have actions associated with it, which will be
* executed when the element is tapped. Intended for testing purposes only.
*/
- @Nullable
- public Clickable getClickable() {
+ public @Nullable Clickable getClickable() {
if (mImpl.hasClickable()) {
return Clickable.fromProto(mImpl.getClickable());
} else {
@@ -910,8 +835,7 @@
* Gets adds metadata for the modified element, for example, screen reader content
* descriptions. Intended for testing purposes only.
*/
- @Nullable
- public Semantics getSemantics() {
+ public @Nullable Semantics getSemantics() {
if (mImpl.hasSemantics()) {
return Semantics.fromProto(mImpl.getSemantics());
} else {
@@ -921,20 +845,17 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static ArcModifiers fromProto(@NonNull ModifiersProto.ArcModifiers proto) {
+ static @NonNull ArcModifiers fromProto(ModifiersProto.@NonNull ArcModifiers proto) {
return new ArcModifiers(proto, null);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ModifiersProto.ArcModifiers toProto() {
+ public ModifiersProto.@NonNull ArcModifiers toProto() {
return mImpl;
}
@@ -950,8 +871,7 @@
* Sets allows its wrapped element to have actions associated with it, which will be
* executed when the element is tapped.
*/
- @NonNull
- public Builder setClickable(@NonNull Clickable clickable) {
+ public @NonNull Builder setClickable(@NonNull Clickable clickable) {
mImpl.setClickable(clickable.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(clickable.getFingerprint()).aggregateValueAsInt());
@@ -962,8 +882,7 @@
* Sets adds metadata for the modified element, for example, screen reader content
* descriptions.
*/
- @NonNull
- public Builder setSemantics(@NonNull Semantics semantics) {
+ public @NonNull Builder setSemantics(@NonNull Semantics semantics) {
mImpl.setSemantics(semantics.toProto());
mFingerprint.recordPropertyUpdate(
2, checkNotNull(semantics.getFingerprint()).aggregateValueAsInt());
@@ -971,8 +890,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public ArcModifiers build() {
+ public @NonNull ArcModifiers build() {
return new ArcModifiers(mImpl.build(), mFingerprint);
}
}
@@ -985,7 +903,7 @@
*/
public static final class SpanModifiers {
private final ModifiersProto.SpanModifiers mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
SpanModifiers(ModifiersProto.SpanModifiers impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -996,8 +914,7 @@
* Gets allows its wrapped element to have actions associated with it, which will be
* executed when the element is tapped. Intended for testing purposes only.
*/
- @Nullable
- public Clickable getClickable() {
+ public @Nullable Clickable getClickable() {
if (mImpl.hasClickable()) {
return Clickable.fromProto(mImpl.getClickable());
} else {
@@ -1007,20 +924,17 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static SpanModifiers fromProto(@NonNull ModifiersProto.SpanModifiers proto) {
+ static @NonNull SpanModifiers fromProto(ModifiersProto.@NonNull SpanModifiers proto) {
return new SpanModifiers(proto, null);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ModifiersProto.SpanModifiers toProto() {
+ public ModifiersProto.@NonNull SpanModifiers toProto() {
return mImpl;
}
@@ -1036,8 +950,7 @@
* Sets allows its wrapped element to have actions associated with it, which will be
* executed when the element is tapped.
*/
- @NonNull
- public Builder setClickable(@NonNull Clickable clickable) {
+ public @NonNull Builder setClickable(@NonNull Clickable clickable) {
mImpl.setClickable(clickable.toProto());
mFingerprint.recordPropertyUpdate(
1, checkNotNull(clickable.getFingerprint()).aggregateValueAsInt());
@@ -1045,8 +958,7 @@
}
/** Builds an instance from accumulated values. */
- @NonNull
- public SpanModifiers build() {
+ public @NonNull SpanModifiers build() {
return new SpanModifiers(mImpl.build(), mFingerprint);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ProtoParcelable.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ProtoParcelable.java
index 04413bd..0b0acd8 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ProtoParcelable.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ProtoParcelable.java
@@ -20,9 +20,10 @@
import android.os.Parcel;
import android.os.Parcelable;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.function.BiFunction;
@@ -57,14 +58,13 @@
};
}
- protected ProtoParcelable(@NonNull byte[] contents, int version) {
+ protected ProtoParcelable(byte @NonNull [] contents, int version) {
this.mContents = contents;
this.mVersion = version;
}
/** Get the payload contained within this ProtoParcelable. */
- @NonNull
- public byte[] getContents() {
+ public byte @NonNull [] getContents() {
return mContents;
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/RequestBuilders.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/RequestBuilders.java
index b12b8ff2..708bf5a 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/RequestBuilders.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/RequestBuilders.java
@@ -16,8 +16,6 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters;
@@ -27,6 +25,9 @@
import androidx.wear.protolayout.proto.StateProto;
import androidx.wear.tiles.proto.RequestProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.util.List;
/** Builders for request messages used to fetch tiles and resources. */
@@ -50,8 +51,7 @@
* object describing the device requesting the tile update. If not set, a default empty
* instance is used.
*/
- @NonNull
- public DeviceParameters getDeviceConfiguration() {
+ public @NonNull DeviceParameters getDeviceConfiguration() {
if (mImpl.hasDeviceConfiguration()) {
return DeviceParameters.fromProto(mImpl.getDeviceConfiguration());
} else {
@@ -64,8 +64,7 @@
* Gets the {@link androidx.wear.protolayout.StateBuilders.State} that should be used when
* building the tile.
*/
- @NonNull
- public State getCurrentState() {
+ public @NonNull State getCurrentState() {
if (mImpl.hasCurrentState()) {
return State.fromProto(mImpl.getCurrentState());
} else {
@@ -89,9 +88,9 @@
* @deprecated Use {@link #getDeviceConfiguration()} instead.
*/
@Deprecated
- @Nullable
@SuppressWarnings("deprecation") // for backward compatibility
- public androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters getDeviceParameters() {
+ public androidx.wear.tiles.DeviceParametersBuilders.@Nullable DeviceParameters
+ getDeviceParameters() {
if (mImpl.hasDeviceConfiguration()) {
return androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters.fromProto(
mImpl.getDeviceConfiguration());
@@ -107,9 +106,8 @@
* @deprecated Use {@link #getCurrentState()} instead.
*/
@Deprecated
- @Nullable
@SuppressWarnings("deprecation") // for backward compatibility
- public androidx.wear.tiles.StateBuilders.State getState() {
+ public androidx.wear.tiles.StateBuilders.@Nullable State getState() {
if (mImpl.hasCurrentState()) {
return androidx.wear.tiles.StateBuilders.State.fromProto(mImpl.getCurrentState());
} else {
@@ -119,21 +117,18 @@
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static TileRequest fromProto(@NonNull RequestProto.TileRequest proto) {
+ public static @NonNull TileRequest fromProto(RequestProto.@NonNull TileRequest proto) {
return new TileRequest(proto);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public RequestProto.TileRequest toProto() {
+ public RequestProto.@NonNull TileRequest toProto() {
return mImpl;
}
@Override
- @NonNull
- public String toString() {
+ public @NonNull String toString() {
return "TileRequest{"
+ "deviceConfiguration="
+ getDeviceConfiguration()
@@ -159,8 +154,8 @@
* instance is used.
*/
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder setDeviceConfiguration(@NonNull DeviceParameters deviceConfiguration) {
+ public @NonNull Builder setDeviceConfiguration(
+ @NonNull DeviceParameters deviceConfiguration) {
mImpl.setDeviceConfiguration(deviceConfiguration.toProto());
return this;
}
@@ -170,16 +165,14 @@
* when building the tile.
*/
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder setCurrentState(@NonNull State currentState) {
+ public @NonNull Builder setCurrentState(@NonNull State currentState) {
mImpl.setCurrentState(currentState.toProto());
return this;
}
/** Sets the ID of the tile being requested. */
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder setTileId(int tileId) {
+ public @NonNull Builder setTileId(int tileId) {
mImpl.setTileId(tileId);
return this;
}
@@ -191,10 +184,8 @@
* @deprecated Use {@link setDeviceConfiguration(DeviceParameters)} instead.
*/
@Deprecated
- @NonNull
- public Builder setDeviceParameters(
- @NonNull
- androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ public @NonNull Builder setDeviceParameters(
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
deviceParameters) {
mImpl.setDeviceConfiguration(deviceParameters.toProto());
return this;
@@ -207,15 +198,14 @@
* @deprecated Use {@link setCurrentState(State)} instead.
*/
@Deprecated
- @NonNull
- public Builder setState(@NonNull androidx.wear.tiles.StateBuilders.State state) {
+ public @NonNull Builder setState(
+ androidx.wear.tiles.StateBuilders.@NonNull State state) {
mImpl.setCurrentState(state.toProto());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TileRequest build() {
+ public @NonNull TileRequest build() {
return TileRequest.fromProto(mImpl.build());
}
}
@@ -237,8 +227,7 @@
* Gets the version of the resources being fetched. This is the same as the requested
* resource version, passed in {@link androidx.wear.tiles.TileBuilders.Tile}.
*/
- @NonNull
- public String getVersion() {
+ public @NonNull String getVersion() {
return mImpl.getVersion();
}
@@ -251,8 +240,7 @@
* in {@link androidx.wear.protolayout.ResourceBuilders.Resources}.idToImage), not Android
* resource names or similar.
*/
- @NonNull
- public List<String> getResourceIds() {
+ public @NonNull List<String> getResourceIds() {
return mImpl.getResourceIdsList();
}
@@ -260,8 +248,7 @@
* Gets the {@link androidx.wear.protolayout.DeviceParametersBuilders.DeviceParameters}
* object describing the device requesting the resources.
*/
- @NonNull
- public DeviceParameters getDeviceConfiguration() {
+ public @NonNull DeviceParameters getDeviceConfiguration() {
if (mImpl.hasDeviceConfiguration()) {
return DeviceParameters.fromProto(mImpl.getDeviceConfiguration());
} else {
@@ -286,9 +273,9 @@
* @deprecated Use {@link #getDeviceConfiguration()} instead.
*/
@Deprecated
- @Nullable
@SuppressWarnings("deprecation") // for backward compatibility
- public androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters getDeviceParameters() {
+ public androidx.wear.tiles.DeviceParametersBuilders.@Nullable DeviceParameters
+ getDeviceParameters() {
if (mImpl.hasDeviceConfiguration()) {
return androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters.fromProto(
mImpl.getDeviceConfiguration());
@@ -299,21 +286,19 @@
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static ResourcesRequest fromProto(@NonNull RequestProto.ResourcesRequest proto) {
+ public static @NonNull ResourcesRequest fromProto(
+ RequestProto.@NonNull ResourcesRequest proto) {
return new ResourcesRequest(proto);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public RequestProto.ResourcesRequest toProto() {
+ public RequestProto.@NonNull ResourcesRequest toProto() {
return mImpl;
}
@Override
- @NonNull
- public String toString() {
+ public @NonNull String toString() {
return "ResourcesRequest{"
+ "version="
+ getVersion()
@@ -340,8 +325,7 @@
* resource version, passed in {@link androidx.wear.tiles.TileBuilders.Tile}.
*/
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder setVersion(@NonNull String version) {
+ public @NonNull Builder setVersion(@NonNull String version) {
mImpl.setVersion(version);
return this;
}
@@ -357,8 +341,7 @@
* Android resource names or similar.
*/
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder addResourceId(@NonNull String resourceId) {
+ public @NonNull Builder addResourceId(@NonNull String resourceId) {
mImpl.addResourceIds(resourceId);
return this;
}
@@ -368,16 +351,15 @@
* object describing the device requesting the resources.
*/
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder setDeviceConfiguration(@NonNull DeviceParameters deviceConfiguration) {
+ public @NonNull Builder setDeviceConfiguration(
+ @NonNull DeviceParameters deviceConfiguration) {
mImpl.setDeviceConfiguration(deviceConfiguration.toProto());
return this;
}
/** Sets the ID of the tile for which resources are being requested. */
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder setTileId(int tileId) {
+ public @NonNull Builder setTileId(int tileId) {
mImpl.setTileId(tileId);
return this;
}
@@ -389,19 +371,16 @@
* @deprecated Use {@link setDeviceConfiguration(DeviceParameters)} instead.
*/
@Deprecated
- @NonNull
@SuppressWarnings("deprecation") // for backward compatibility
- public Builder setDeviceParameters(
- @NonNull
- androidx.wear.tiles.DeviceParametersBuilders.DeviceParameters
+ public @NonNull Builder setDeviceParameters(
+ androidx.wear.tiles.DeviceParametersBuilders.@NonNull DeviceParameters
deviceParameters) {
mImpl.setDeviceConfiguration(deviceParameters.toProto());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public ResourcesRequest build() {
+ public @NonNull ResourcesRequest build() {
return ResourcesRequest.fromProto(mImpl.build());
}
}
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 8979d32..846cf7d 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
@@ -23,14 +23,15 @@
import androidx.annotation.Dimension;
import androidx.annotation.DrawableRes;
import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.proto.ResourceProto;
import androidx.wear.protolayout.protobuf.ByteString;
import androidx.wear.protolayout.protobuf.InvalidProtocolBufferException;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Collections;
@@ -79,14 +80,12 @@
return mImpl.getResourceId();
}
- @NonNull
- static AndroidImageResourceByResId fromProto(
- @NonNull ResourceProto.AndroidImageResourceByResId proto) {
+ static @NonNull AndroidImageResourceByResId fromProto(
+ ResourceProto.@NonNull AndroidImageResourceByResId proto) {
return new AndroidImageResourceByResId(proto);
}
- @NonNull
- ResourceProto.AndroidImageResourceByResId toProto() {
+ ResourceProto.@NonNull AndroidImageResourceByResId toProto() {
return mImpl;
}
@@ -101,15 +100,13 @@
* Sets the Android resource ID of this image. This must refer to a drawable under
* R.drawable.
*/
- @NonNull
- public Builder setResourceId(@DrawableRes int resourceId) {
+ public @NonNull Builder setResourceId(@DrawableRes int resourceId) {
mImpl.setResourceId(resourceId);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public AndroidImageResourceByResId build() {
+ public @NonNull AndroidImageResourceByResId build() {
return AndroidImageResourceByResId.fromProto(mImpl.build());
}
}
@@ -127,8 +124,7 @@
}
/** Gets the byte array representing the image. Intended for testing purposes only. */
- @NonNull
- public byte[] getData() {
+ public byte @NonNull [] getData() {
return mImpl.getData().toByteArray();
}
@@ -163,13 +159,12 @@
return mImpl.getFormat().getNumber();
}
- @NonNull
- static InlineImageResource fromProto(@NonNull ResourceProto.InlineImageResource proto) {
+ static @NonNull InlineImageResource fromProto(
+ ResourceProto.@NonNull InlineImageResource proto) {
return new InlineImageResource(proto);
}
- @NonNull
- ResourceProto.InlineImageResource toProto() {
+ ResourceProto.@NonNull InlineImageResource toProto() {
return mImpl;
}
@@ -181,8 +176,7 @@
public Builder() {}
/** Sets the byte array representing the image. */
- @NonNull
- public Builder setData(@NonNull byte[] data) {
+ public @NonNull Builder setData(byte @NonNull [] data) {
mImpl.setData(ByteString.copyFrom(data));
return this;
}
@@ -191,8 +185,7 @@
* Sets the native width of the image, in pixels. Only required for formats (e.g.
* IMAGE_FORMAT_RGB_565) where the image data does not include size.
*/
- @NonNull
- public Builder setWidthPx(@Dimension(unit = PX) int widthPx) {
+ public @NonNull Builder setWidthPx(@Dimension(unit = PX) int widthPx) {
mImpl.setWidthPx(widthPx);
return this;
}
@@ -201,8 +194,7 @@
* Sets the native height of the image, in pixels. Only required for formats (e.g.
* IMAGE_FORMAT_RGB_565) where the image data does not include size.
*/
- @NonNull
- public Builder setHeightPx(@Dimension(unit = PX) int heightPx) {
+ public @NonNull Builder setHeightPx(@Dimension(unit = PX) int heightPx) {
mImpl.setHeightPx(heightPx);
return this;
}
@@ -213,15 +205,13 @@
* to extract this from the raw image data. If the platform does not support the format,
* the image will not be decoded or displayed.
*/
- @NonNull
- public Builder setFormat(@ImageFormat int format) {
+ public @NonNull Builder setFormat(@ImageFormat int format) {
mImpl.setFormat(ResourceProto.ImageFormat.forNumber(format));
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public InlineImageResource build() {
+ public @NonNull InlineImageResource build() {
return InlineImageResource.fromProto(mImpl.build());
}
}
@@ -242,8 +232,7 @@
* Gets an image resource that maps to an Android drawable by resource ID. Intended for
* testing purposes only.
*/
- @Nullable
- public AndroidImageResourceByResId getAndroidResourceByResId() {
+ public @Nullable AndroidImageResourceByResId getAndroidResourceByResId() {
if (mImpl.hasAndroidResourceByResId()) {
return AndroidImageResourceByResId.fromProto(mImpl.getAndroidResourceByResId());
} else {
@@ -255,8 +244,7 @@
* Gets an image resource that contains the image data inline. Intended for testing purposes
* only.
*/
- @Nullable
- public InlineImageResource getInlineResource() {
+ public @Nullable InlineImageResource getInlineResource() {
if (mImpl.hasInlineResource()) {
return InlineImageResource.fromProto(mImpl.getInlineResource());
} else {
@@ -264,13 +252,11 @@
}
}
- @NonNull
- static ImageResource fromProto(@NonNull ResourceProto.ImageResource proto) {
+ static @NonNull ImageResource fromProto(ResourceProto.@NonNull ImageResource proto) {
return new ImageResource(proto);
}
- @NonNull
- ResourceProto.ImageResource toProto() {
+ ResourceProto.@NonNull ImageResource toProto() {
return mImpl;
}
@@ -282,23 +268,20 @@
public Builder() {}
/** Sets an image resource that maps to an Android drawable by resource ID. */
- @NonNull
- public Builder setAndroidResourceByResId(
+ public @NonNull Builder setAndroidResourceByResId(
@NonNull AndroidImageResourceByResId androidResourceByResId) {
mImpl.setAndroidResourceByResId(androidResourceByResId.toProto());
return this;
}
/** Sets an image resource that contains the image data inline. */
- @NonNull
- public Builder setInlineResource(@NonNull InlineImageResource inlineResource) {
+ public @NonNull Builder setInlineResource(@NonNull InlineImageResource inlineResource) {
mImpl.setInlineResource(inlineResource.toProto());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public ImageResource build() {
+ public @NonNull ImageResource build() {
return ImageResource.fromProto(mImpl.build());
}
}
@@ -324,8 +307,7 @@
* androidx.wear.tiles.RequestBuilders.ResourcesRequest} which triggered this request.
* Intended for testing purposes only.
*/
- @NonNull
- public String getVersion() {
+ public @NonNull String getVersion() {
return mImpl.getVersion();
}
@@ -333,8 +315,7 @@
* Gets a map of resource_ids to images, which can be used by layouts. Intended for testing
* purposes only.
*/
- @NonNull
- public Map<String, ImageResource> getIdToImageMapping() {
+ public @NonNull Map<String, ImageResource> getIdToImageMapping() {
Map<String, ImageResource> map = new HashMap<>();
for (Entry<String, ResourceProto.ImageResource> entry :
mImpl.getIdToImageMap().entrySet()) {
@@ -344,17 +325,15 @@
}
/** Converts to byte array representation. */
- @NonNull
@TilesExperimental
- public byte[] toByteArray() {
+ public byte @NonNull [] toByteArray() {
return mImpl.toByteArray();
}
/** Converts from byte array representation. */
@SuppressWarnings("ProtoParseWithRegistry")
- @Nullable
@TilesExperimental
- public static Resources fromByteArray(@NonNull byte[] byteArray) {
+ public static @Nullable Resources fromByteArray(byte @NonNull [] byteArray) {
try {
return fromProto(ResourceProto.Resources.parseFrom(byteArray));
} catch (InvalidProtocolBufferException e) {
@@ -363,15 +342,13 @@
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static Resources fromProto(@NonNull ResourceProto.Resources proto) {
+ public static @NonNull Resources fromProto(ResourceProto.@NonNull Resources proto) {
return new Resources(proto);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public ResourceProto.Resources toProto() {
+ public ResourceProto.@NonNull Resources toProto() {
return mImpl;
}
@@ -393,23 +370,21 @@
* tile to render successfully, and must match the resource version specified in {@link
* androidx.wear.tiles.RequestBuilders.ResourcesRequest} which triggered this request.
*/
- @NonNull
- public Builder setVersion(@NonNull String version) {
+ public @NonNull Builder setVersion(@NonNull String version) {
mImpl.setVersion(version);
return this;
}
/** Adds an entry into a map of resource_ids to images, which can be used by layouts. */
@SuppressLint("MissingGetterMatchingBuilder")
- @NonNull
- public Builder addIdToImageMapping(@NonNull String id, @NonNull ImageResource image) {
+ public @NonNull Builder addIdToImageMapping(@NonNull String id,
+ @NonNull ImageResource image) {
mImpl.putIdToImage(id, image.toProto());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Resources build() {
+ public @NonNull Resources build() {
return Resources.fromProto(mImpl.build());
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourcesData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourcesData.java
index d103204..98839a0 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourcesData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourcesData.java
@@ -16,9 +16,10 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for Tiles' Resources class, to be parceled and transferred to Wear.
*
@@ -31,7 +32,7 @@
public static final Creator<ResourcesData> CREATOR =
newCreator(ResourcesData.class, ResourcesData::new);
- public ResourcesData(@NonNull byte[] payload, int version) {
+ public ResourcesData(byte @NonNull [] payload, int version) {
super(payload, version);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourcesRequestData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourcesRequestData.java
index c314400..665d180 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourcesRequestData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ResourcesRequestData.java
@@ -16,9 +16,10 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for Tiles' ResourceRequest class, to be parceled and transferred to a Tile Service.
*
@@ -30,7 +31,7 @@
public static final Creator<ResourcesRequestData> CREATOR =
newCreator(ResourcesRequestData.class, ResourcesRequestData::new);
- public ResourcesRequestData(@NonNull byte[] params, int version) {
+ public ResourcesRequestData(byte @NonNull [] params, int version) {
super(params, version);
}
}
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 3798263..48fa917 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
@@ -16,13 +16,14 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.StateProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Builders for state of a tile.
*
@@ -35,7 +36,7 @@
/** {@link State} information. */
public static final class State {
private final StateProto.State mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
State(StateProto.State impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -43,27 +44,23 @@
}
/** Gets the ID of the clickable that was last clicked. */
- @NonNull
- public String getLastClickableId() {
+ public @NonNull String getLastClickableId() {
return mImpl.getLastClickableId();
}
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static State fromProto(@NonNull StateProto.State proto) {
+ public static @NonNull State fromProto(StateProto.@NonNull State proto) {
return new State(proto, null);
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public StateProto.State toProto() {
+ public StateProto.@NonNull State toProto() {
return mImpl;
}
@@ -75,8 +72,7 @@
public Builder() {}
/** Builds an instance from accumulated values. */
- @NonNull
- public State build() {
+ public @NonNull State build() {
return new State(mImpl.build(), mFingerprint);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/SysUiTileUpdateRequester.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/SysUiTileUpdateRequester.java
index b2f3ab5..c24a580 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/SysUiTileUpdateRequester.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/SysUiTileUpdateRequester.java
@@ -35,8 +35,9 @@
import android.util.Log;
import androidx.annotation.GuardedBy;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
+
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import java.util.ArrayList;
import java.util.HashSet;
@@ -128,8 +129,7 @@
}
}
- @Nullable
- private Intent buildUpdateBindIntent() {
+ private @Nullable Intent buildUpdateBindIntent() {
Intent bindIntent = new Intent(ACTION_BIND_UPDATE_REQUESTER);
bindIntent.setPackage(getSysUiPackageName());
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileAddEventData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileAddEventData.java
index 517a473..220c401 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileAddEventData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileAddEventData.java
@@ -16,9 +16,10 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for Tiles' TileAddEvent class, to be parceled and transferred to a Tile Service.
*
@@ -30,7 +31,7 @@
public static final Creator<TileAddEventData> CREATOR =
newCreator(TileAddEventData.class, TileAddEventData::new);
- public TileAddEventData(@NonNull byte[] params, int version) {
+ public TileAddEventData(byte @NonNull [] params, int version) {
super(params, version);
}
}
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 bf1dcec..d8607e9 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
@@ -16,8 +16,6 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.StateBuilders.State;
@@ -26,6 +24,9 @@
import androidx.wear.protolayout.expression.proto.VersionProto.VersionInfo;
import androidx.wear.tiles.proto.TileProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/** Builders for the components of a tile that can be rendered by a tile renderer. */
public final class TileBuilders {
private TileBuilders() {}
@@ -48,8 +49,7 @@
* androidx.wear.tiles.RequestBuilders.ResourcesRequest} if the system does not have a copy
* of the specified resource version.
*/
- @NonNull
- public String getResourcesVersion() {
+ public @NonNull String getResourcesVersion() {
return mImpl.getResourcesVersion();
}
@@ -57,8 +57,7 @@
* Gets the {@link androidx.wear.protolayout.TimelineBuilders.Timeline} containing the
* layouts for the tiles to show in the carousel, along with their validity periods.
*/
- @Nullable
- public Timeline getTileTimeline() {
+ public @Nullable Timeline getTileTimeline() {
if (mImpl.hasTileTimeline()) {
return Timeline.fromProto(mImpl.getTileTimeline());
} else {
@@ -84,8 +83,7 @@
}
/** Gets {@link androidx.wear.protolayout.StateBuilders.State} for this tile. */
- @Nullable
- public State getState() {
+ public @Nullable State getState() {
if (mImpl.hasState()) {
return State.fromProto(mImpl.getState());
} else {
@@ -100,9 +98,8 @@
* @deprecated Use {@link #getTileTimeline()} instead.
*/
@Deprecated
- @Nullable
@SuppressWarnings("deprecation") // for backward compatibility
- public androidx.wear.tiles.TimelineBuilders.Timeline getTimeline() {
+ public androidx.wear.tiles.TimelineBuilders.@Nullable Timeline getTimeline() {
if (mImpl.hasTileTimeline()) {
return androidx.wear.tiles.TimelineBuilders.Timeline.fromProto(
mImpl.getTileTimeline());
@@ -113,21 +110,18 @@
/** Creates a new wrapper instance from the proto. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static Tile fromProto(@NonNull TileProto.Tile proto) {
+ public static @NonNull Tile fromProto(TileProto.@NonNull Tile proto) {
return new Tile(proto);
}
/** Returns the internal proto instance. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public TileProto.Tile toProto() {
+ public TileProto.@NonNull Tile toProto() {
return mImpl;
}
@Override
- @NonNull
- public String toString() {
+ public @NonNull String toString() {
return "Tile{"
+ "resourcesVersion="
+ getResourcesVersion()
@@ -155,8 +149,7 @@
* copy of the specified resource version.
*/
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder setResourcesVersion(@NonNull String resourcesVersion) {
+ public @NonNull Builder setResourcesVersion(@NonNull String resourcesVersion) {
mImpl.setResourcesVersion(resourcesVersion);
return this;
}
@@ -166,8 +159,7 @@
* layouts for the tiles to show in the carousel, along with their validity periods.
*/
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder setTileTimeline(@NonNull Timeline tileTimeline) {
+ public @NonNull Builder setTileTimeline(@NonNull Timeline tileTimeline) {
mImpl.setTileTimeline(tileTimeline.toProto());
return this;
}
@@ -186,16 +178,14 @@
* due to system-level optimizations.
*/
@RequiresSchemaVersion(major = 1, minor = 0)
- @NonNull
- public Builder setFreshnessIntervalMillis(long freshnessIntervalMillis) {
+ public @NonNull Builder setFreshnessIntervalMillis(long freshnessIntervalMillis) {
mImpl.setFreshnessIntervalMillis(freshnessIntervalMillis);
return this;
}
/** Sets {@link androidx.wear.protolayout.StateBuilders.State} for this tile. */
@RequiresSchemaVersion(major = 1, minor = 200)
- @NonNull
- public Builder setState(@NonNull State state) {
+ public @NonNull Builder setState(@NonNull State state) {
mImpl.setState(state.toProto());
return this;
}
@@ -207,16 +197,14 @@
* @deprecated Use {@link #setTileTimeline(Timeline)} instead.
*/
@Deprecated
- @NonNull
- public Builder setTimeline(
- @NonNull androidx.wear.tiles.TimelineBuilders.Timeline timeline) {
+ public @NonNull Builder setTimeline(
+ androidx.wear.tiles.TimelineBuilders.@NonNull Timeline timeline) {
mImpl.setTileTimeline(timeline.toProto());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Tile build() {
+ public @NonNull Tile build() {
return Tile.fromProto(mImpl.build());
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileData.java
index d6dbca0..beb1a7d 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileData.java
@@ -16,9 +16,10 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for Tiles' Tile class, to be parceled and transferred to Wear.
*
@@ -29,7 +30,7 @@
public static final int VERSION_PROTOBUF = 1;
public static final Creator<TileData> CREATOR = newCreator(TileData.class, TileData::new);
- public TileData(@NonNull byte[] tile, int version) {
+ public TileData(byte @NonNull [] tile, int version) {
super(tile, version);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileEnterEventData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileEnterEventData.java
index 052dd79..f2cba65 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileEnterEventData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileEnterEventData.java
@@ -16,9 +16,10 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for Tiles' TileEnterEvent class, to be parceled and transferred to a Tile Service.
*
@@ -30,7 +31,7 @@
public static final Creator<TileEnterEventData> CREATOR =
newCreator(TileEnterEventData.class, TileEnterEventData::new);
- public TileEnterEventData(@NonNull byte[] params, int version) {
+ public TileEnterEventData(byte @NonNull [] params, int version) {
super(params, version);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileInteractionEventData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileInteractionEventData.java
index 53f32ff..2ca9682 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileInteractionEventData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileInteractionEventData.java
@@ -15,9 +15,10 @@
*/
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for Tiles' TileInteractionEvent class, to be parceled and transferred to a Tile Service.
*
@@ -29,7 +30,7 @@
public static final Creator<TileInteractionEventData> CREATOR =
newCreator(TileInteractionEventData.class, TileInteractionEventData::new);
- public TileInteractionEventData(@NonNull byte[] params, int version) {
+ public TileInteractionEventData(byte @NonNull [] params, int version) {
super(params, version);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileLeaveEventData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileLeaveEventData.java
index 476cd9a..0edd237 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileLeaveEventData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileLeaveEventData.java
@@ -16,9 +16,10 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for Tiles' TileLeaveEvent class, to be parceled and transferred to a Tile Service.
*
@@ -30,7 +31,7 @@
public static final Creator<TileLeaveEventData> CREATOR =
newCreator(TileLeaveEventData.class, TileLeaveEventData::new);
- public TileLeaveEventData(@NonNull byte[] params, int version) {
+ public TileLeaveEventData(byte @NonNull [] params, int version) {
super(params, version);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileRemoveEventData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileRemoveEventData.java
index fc6152c..6d97a2c 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileRemoveEventData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileRemoveEventData.java
@@ -16,9 +16,10 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for Tiles' TileRemoveEvent class, to be parceled and transferred to a Tile Service.
*
@@ -30,7 +31,7 @@
public static final Creator<TileRemoveEventData> CREATOR =
newCreator(TileRemoveEventData.class, TileRemoveEventData::new);
- public TileRemoveEventData(@NonNull byte[] params, int version) {
+ public TileRemoveEventData(byte @NonNull [] params, int version) {
super(params, version);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileRequestData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileRequestData.java
index e4d83ae..352e188 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileRequestData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileRequestData.java
@@ -16,9 +16,10 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for Tiles' TileRequest class, to be parceled and transferred to a Tile Service.
*
@@ -30,7 +31,7 @@
public static final Creator<TileRequestData> CREATOR =
newCreator(TileRequestData.class, TileRequestData::new);
- public TileRequestData(@NonNull byte[] params, int version) {
+ public TileRequestData(byte @NonNull [] params, int version) {
super(params, version);
}
}
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 e85f9ae..37c203e 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
@@ -29,8 +29,6 @@
import android.util.Log;
import androidx.annotation.MainThread;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.annotation.VisibleForTesting;
import androidx.concurrent.futures.CallbackToFutureAdapter;
@@ -57,6 +55,9 @@
import com.google.wear.services.tiles.TileInstance;
import com.google.wear.services.tiles.TilesManager;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.lang.ref.WeakReference;
import java.time.Duration;
import java.util.ArrayList;
@@ -152,8 +153,8 @@
* @param requestParams Parameters about the request. See {@link TileRequest} for more info.
*/
@MainThread
- @NonNull
- protected abstract ListenableFuture<Tile> onTileRequest(@NonNull TileRequest requestParams);
+ protected abstract @NonNull ListenableFuture<Tile> onTileRequest(
+ @NonNull TileRequest requestParams);
/**
* Called when the system is requesting a resource bundle from this Tile Provider. The returned
@@ -167,10 +168,9 @@
* @deprecated Use {@link #onTileResourcesRequest} instead.
*/
@MainThread
- @NonNull
@Deprecated
- protected ListenableFuture<androidx.wear.tiles.ResourceBuilders.Resources> onResourcesRequest(
- @NonNull ResourcesRequest requestParams) {
+ protected @NonNull ListenableFuture<androidx.wear.tiles.ResourceBuilders.Resources>
+ onResourcesRequest(@NonNull ResourcesRequest requestParams) {
return ON_RESOURCES_REQUEST_NOT_IMPLEMENTED;
}
@@ -190,9 +190,8 @@
* info.
*/
@MainThread
- @NonNull
@SuppressWarnings({"AsyncSuffixFuture", "deprecation"}) // For backward compatibility
- protected ListenableFuture<Resources> onTileResourcesRequest(
+ protected @NonNull ListenableFuture<Resources> onTileResourcesRequest(
@NonNull ResourcesRequest requestParams) {
// We are offering a default implementation for onTileResourcesRequest for backward
// compatibility as older clients are overriding onResourcesRequest.
@@ -280,8 +279,7 @@
*
* @param context The application context.
*/
- @NonNull
- public static TileUpdateRequester getUpdater(@NonNull Context context) {
+ public static @NonNull TileUpdateRequester getUpdater(@NonNull Context context) {
List<TileUpdateRequester> requesters = new ArrayList<>();
requesters.add(new SysUiTileUpdateRequester(context));
@@ -313,8 +311,7 @@
* context} present in the carousel, or a value based on platform-specific fallback
* behavior.
*/
- @NonNull
- public static ListenableFuture<List<ActiveTileIdentifier>> getActiveTilesAsync(
+ public static @NonNull ListenableFuture<List<ActiveTileIdentifier>> getActiveTilesAsync(
@NonNull Context context, @NonNull Executor executor) {
if (useWearSdkImpl(context)
&& Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
@@ -325,8 +322,7 @@
}
@VisibleForTesting
- @NonNull
- static ListenableFuture<List<ActiveTileIdentifier>> getActiveTilesAsyncLegacy(
+ static @NonNull ListenableFuture<List<ActiveTileIdentifier>> getActiveTilesAsyncLegacy(
@NonNull Context context,
@NonNull Executor executor,
@NonNull TimeSourceClock timeSourceClock) {
@@ -344,8 +340,7 @@
private TileProvider.Stub mBinder;
@Override
- @Nullable
- public IBinder onBind(@NonNull Intent intent) {
+ public @Nullable IBinder onBind(@NonNull Intent intent) {
if (ACTION_BIND_TILE_PROVIDER.equals(intent.getAction())) {
if (mBinder == null) {
mBinder = new TileProviderWrapper(this, new Handler(getMainLooper()));
@@ -697,8 +692,7 @@
});
}
- @NonNull
- private static Optional<TileInteractionEvent> tileInteractionEventFromProto(
+ private static @NonNull Optional<TileInteractionEvent> tileInteractionEventFromProto(
TileInteractionEventData data) {
try {
return Optional.of(
@@ -755,8 +749,7 @@
@RequiresApi(34)
private static class Api34Impl {
- @NonNull
- static ListenableFuture<List<ActiveTileIdentifier>> getActiveTilesAsync(
+ static @NonNull ListenableFuture<List<ActiveTileIdentifier>> getActiveTilesAsync(
@NonNull TilesManager tilesManager, @NonNull Executor executor) {
return CallbackToFutureAdapter.getFuture(
completer -> {
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileUpdateRequestData.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileUpdateRequestData.java
index 1907b70..d2e7c82 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileUpdateRequestData.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileUpdateRequestData.java
@@ -16,9 +16,10 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import org.jspecify.annotations.NonNull;
+
/**
* Holder for parameters, used when a Tile update request is triggered. This is currently a
* placeholder to allow for future expansion, and should be filled in with an empty byte array.
@@ -30,7 +31,7 @@
public static final Creator<TileUpdateRequestData> CREATOR =
newCreator(TileUpdateRequestData.class, TileUpdateRequestData::new);
- private TileUpdateRequestData(@NonNull byte[] params, int version) {
+ private TileUpdateRequestData(byte @NonNull [] params, int version) {
super(params, version);
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileUpdateRequester.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileUpdateRequester.java
index 23f8def..bf0a573 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileUpdateRequester.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileUpdateRequester.java
@@ -16,7 +16,7 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
+import org.jspecify.annotations.NonNull;
/**
* Interface used for a Tile Service to notify a Tile Renderer that it should fetch a new Timeline
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 9ec8f9e..d5da952 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
@@ -16,12 +16,13 @@
package androidx.wear.tiles;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.proto.TimelineProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -62,13 +63,11 @@
return mImpl.getEndMillis();
}
- @NonNull
- static TimeInterval fromProto(@NonNull TimelineProto.TimeInterval proto) {
+ static @NonNull TimeInterval fromProto(TimelineProto.@NonNull TimeInterval proto) {
return new TimeInterval(proto);
}
- @NonNull
- TimelineProto.TimeInterval toProto() {
+ TimelineProto.@NonNull TimeInterval toProto() {
return mImpl;
}
@@ -80,22 +79,19 @@
public Builder() {}
/** Sets starting point of the time interval, in milliseconds since the Unix epoch. */
- @NonNull
- public Builder setStartMillis(long startMillis) {
+ public @NonNull Builder setStartMillis(long startMillis) {
mImpl.setStartMillis(startMillis);
return this;
}
/** Sets end point of the time interval, in milliseconds since the Unix epoch. */
- @NonNull
- public Builder setEndMillis(long endMillis) {
+ public @NonNull Builder setEndMillis(long endMillis) {
mImpl.setEndMillis(endMillis);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TimeInterval build() {
+ public @NonNull TimeInterval build() {
return TimeInterval.fromProto(mImpl.build());
}
}
@@ -110,8 +106,7 @@
}
/** Gets the validity period for this timeline entry. Intended for testing purposes only. */
- @Nullable
- public TimeInterval getValidity() {
+ public @Nullable TimeInterval getValidity() {
if (mImpl.hasValidity()) {
return TimeInterval.fromProto(mImpl.getValidity());
} else {
@@ -120,8 +115,7 @@
}
/** Gets the contents of this timeline entry. Intended for testing purposes only. */
- @Nullable
- public LayoutElementBuilders.Layout getLayout() {
+ public LayoutElementBuilders.@Nullable Layout getLayout() {
if (mImpl.hasLayout()) {
return LayoutElementBuilders.Layout.fromProto(mImpl.getLayout());
} else {
@@ -130,23 +124,20 @@
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static TimelineEntry fromProto(@NonNull TimelineProto.TimelineEntry proto) {
+ public static @NonNull TimelineEntry fromProto(TimelineProto.@NonNull TimelineEntry proto) {
return new TimelineEntry(proto);
}
/** Returns the {@link TimelineEntry} object containing the given layout element. */
- @NonNull
- public static TimelineEntry fromLayoutElement(
- @NonNull LayoutElementBuilders.LayoutElement layoutElement) {
+ public static @NonNull TimelineEntry fromLayoutElement(
+ LayoutElementBuilders.@NonNull LayoutElement layoutElement) {
return new Builder()
.setLayout(LayoutElementBuilders.Layout.fromLayoutElement(layoutElement))
.build();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public TimelineProto.TimelineEntry toProto() {
+ public TimelineProto.@NonNull TimelineEntry toProto() {
return mImpl;
}
@@ -158,22 +149,19 @@
public Builder() {}
/** Sets the validity period for this timeline entry. */
- @NonNull
- public Builder setValidity(@NonNull TimeInterval validity) {
+ public @NonNull Builder setValidity(@NonNull TimeInterval validity) {
mImpl.setValidity(validity.toProto());
return this;
}
/** Sets the contents of this timeline entry. */
- @NonNull
- public Builder setLayout(@NonNull LayoutElementBuilders.Layout layout) {
+ public @NonNull Builder setLayout(LayoutElementBuilders.@NonNull Layout layout) {
mImpl.setLayout(layout.toProto());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public TimelineEntry build() {
+ public @NonNull TimelineEntry build() {
return TimelineEntry.fromProto(mImpl.build());
}
}
@@ -201,8 +189,7 @@
}
/** Gets the entries in a timeline. Intended for testing purposes only. */
- @NonNull
- public List<TimelineEntry> getTimelineEntries() {
+ public @NonNull List<TimelineEntry> getTimelineEntries() {
List<TimelineEntry> list = new ArrayList<>();
for (TimelineProto.TimelineEntry item : mImpl.getTimelineEntriesList()) {
list.add(TimelineEntry.fromProto(item));
@@ -211,23 +198,20 @@
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public static Timeline fromProto(@NonNull TimelineProto.Timeline proto) {
+ public static @NonNull Timeline fromProto(TimelineProto.@NonNull Timeline proto) {
return new Timeline(proto);
}
/** Returns the {@link Timeline} object containing the given layout element. */
- @NonNull
- public static Timeline fromLayoutElement(
- @NonNull LayoutElementBuilders.LayoutElement layoutElement) {
+ public static @NonNull Timeline fromLayoutElement(
+ LayoutElementBuilders.@NonNull LayoutElement layoutElement) {
return new Builder()
.addTimelineEntry(TimelineEntry.fromLayoutElement(layoutElement))
.build();
}
@RestrictTo(Scope.LIBRARY_GROUP)
- @NonNull
- public TimelineProto.Timeline toProto() {
+ public TimelineProto.@NonNull Timeline toProto() {
return mImpl;
}
@@ -239,15 +223,13 @@
public Builder() {}
/** Adds one item to the entries in a timeline. */
- @NonNull
- public Builder addTimelineEntry(@NonNull TimelineEntry timelineEntry) {
+ public @NonNull Builder addTimelineEntry(@NonNull TimelineEntry timelineEntry) {
mImpl.addTimelineEntries(timelineEntry.toProto());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Timeline build() {
+ public @NonNull Timeline build() {
return Timeline.fromProto(mImpl.build());
}
}
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 60c066c..a0f0a19 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
@@ -18,13 +18,14 @@
import android.annotation.SuppressLint;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
import androidx.wear.protolayout.expression.Fingerprint;
import androidx.wear.protolayout.proto.TypesProto;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
/**
* Builders for extensible primitive types used by layout elements.
*
@@ -37,7 +38,7 @@
/** An int32 type. */
public static final class Int32Prop {
private final TypesProto.Int32Prop mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
Int32Prop(TypesProto.Int32Prop impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -51,18 +52,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static Int32Prop fromProto(@NonNull TypesProto.Int32Prop proto) {
+ static @NonNull Int32Prop fromProto(TypesProto.@NonNull Int32Prop proto) {
return new Int32Prop(proto, null);
}
- @NonNull
- TypesProto.Int32Prop toProto() {
+ TypesProto.@NonNull Int32Prop toProto() {
return mImpl;
}
@@ -74,16 +72,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(int value) {
+ public @NonNull Builder setValue(int value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, value);
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public Int32Prop build() {
+ public @NonNull Int32Prop build() {
return new Int32Prop(mImpl.build(), mFingerprint);
}
}
@@ -92,7 +88,7 @@
/** A string type. */
public static final class StringProp {
private final TypesProto.StringProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
StringProp(TypesProto.StringProp impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -100,25 +96,21 @@
}
/** Gets the value. Intended for testing purposes only. */
- @NonNull
- public String getValue() {
+ public @NonNull String getValue() {
return mImpl.getValue();
}
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static StringProp fromProto(@NonNull TypesProto.StringProp proto) {
+ static @NonNull StringProp fromProto(TypesProto.@NonNull StringProp proto) {
return new StringProp(proto, null);
}
- @NonNull
- TypesProto.StringProp toProto() {
+ TypesProto.@NonNull StringProp toProto() {
return mImpl;
}
@@ -130,16 +122,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(@NonNull String value) {
+ public @NonNull Builder setValue(@NonNull String value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, value.hashCode());
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public StringProp build() {
+ public @NonNull StringProp build() {
return new StringProp(mImpl.build(), mFingerprint);
}
}
@@ -148,7 +138,7 @@
/** A float type. */
public static final class FloatProp {
private final TypesProto.FloatProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
FloatProp(TypesProto.FloatProp impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -162,18 +152,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static FloatProp fromProto(@NonNull TypesProto.FloatProp proto) {
+ static @NonNull FloatProp fromProto(TypesProto.@NonNull FloatProp proto) {
return new FloatProp(proto, null);
}
- @NonNull
- TypesProto.FloatProp toProto() {
+ TypesProto.@NonNull FloatProp toProto() {
return mImpl;
}
@@ -185,16 +172,14 @@
public Builder() {}
/** Sets the value. */
- @NonNull
- public Builder setValue(float value) {
+ public @NonNull Builder setValue(float value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, Float.floatToIntBits(value));
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public FloatProp build() {
+ public @NonNull FloatProp build() {
return new FloatProp(mImpl.build(), mFingerprint);
}
}
@@ -203,7 +188,7 @@
/** A boolean type. */
public static final class BoolProp {
private final TypesProto.BoolProp mImpl;
- @Nullable private final Fingerprint mFingerprint;
+ private final @Nullable Fingerprint mFingerprint;
BoolProp(TypesProto.BoolProp impl, @Nullable Fingerprint fingerprint) {
this.mImpl = impl;
@@ -217,18 +202,15 @@
/** Get the fingerprint for this object, or null if unknown. */
@RestrictTo(Scope.LIBRARY_GROUP)
- @Nullable
- public Fingerprint getFingerprint() {
+ public @Nullable Fingerprint getFingerprint() {
return mFingerprint;
}
- @NonNull
- static BoolProp fromProto(@NonNull TypesProto.BoolProp proto) {
+ static @NonNull BoolProp fromProto(TypesProto.@NonNull BoolProp proto) {
return new BoolProp(proto, null);
}
- @NonNull
- TypesProto.BoolProp toProto() {
+ TypesProto.@NonNull BoolProp toProto() {
return mImpl;
}
@@ -241,16 +223,14 @@
/** Sets the value. */
@SuppressLint("MissingGetterMatchingBuilder")
- @NonNull
- public Builder setValue(boolean value) {
+ public @NonNull Builder setValue(boolean value) {
mImpl.setValue(value);
mFingerprint.recordPropertyUpdate(1, Boolean.hashCode(value));
return this;
}
/** Builds an instance from accumulated values. */
- @NonNull
- public BoolProp build() {
+ public @NonNull BoolProp build() {
return new BoolProp(mImpl.build(), mFingerprint);
}
}
diff --git a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ViewerTileUpdateRequester.java b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ViewerTileUpdateRequester.java
index cffb82d..a18a073 100644
--- a/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ViewerTileUpdateRequester.java
+++ b/wear/tiles/tiles/src/main/java/androidx/wear/tiles/ViewerTileUpdateRequester.java
@@ -19,7 +19,7 @@
import android.content.Context;
import android.content.Intent;
-import androidx.annotation.NonNull;
+import org.jspecify.annotations.NonNull;
/**
* {@link TileUpdateRequester} which notifies the viewer that it should fetch a new version of the
diff --git a/wear/tiles/tiles/src/test/java/androidx/wear/tiles/CompositeTileUpdateRequesterTest.java b/wear/tiles/tiles/src/test/java/androidx/wear/tiles/CompositeTileUpdateRequesterTest.java
index 5c0133e..5d62133 100644
--- a/wear/tiles/tiles/src/test/java/androidx/wear/tiles/CompositeTileUpdateRequesterTest.java
+++ b/wear/tiles/tiles/src/test/java/androidx/wear/tiles/CompositeTileUpdateRequesterTest.java
@@ -21,8 +21,6 @@
import android.content.Intent;
import android.os.IBinder;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.concurrent.futures.ResolvableFuture;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.wear.protolayout.ResourceBuilders;
@@ -30,6 +28,8 @@
import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.ListenableFuture;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -71,27 +71,24 @@
}
private static class FakeService extends TileService {
- @NonNull
@Override
- protected ListenableFuture<TileBuilders.Tile> onTileRequest(
- @NonNull RequestBuilders.TileRequest requestParams) {
+ protected @NonNull ListenableFuture<TileBuilders.Tile> onTileRequest(
+ RequestBuilders.@NonNull TileRequest requestParams) {
ResolvableFuture<TileBuilders.Tile> f = ResolvableFuture.create();
f.set(null);
return f;
}
- @NonNull
@Override
- protected ListenableFuture<ResourceBuilders.Resources> onTileResourcesRequest(
- @NonNull RequestBuilders.ResourcesRequest requestParams) {
+ protected @NonNull ListenableFuture<ResourceBuilders.Resources> onTileResourcesRequest(
+ RequestBuilders.@NonNull ResourcesRequest requestParams) {
ResolvableFuture<ResourceBuilders.Resources> f = ResolvableFuture.create();
f.set(null);
return f;
}
- @Nullable
@Override
- public IBinder onBind(Intent intent) {
+ public @Nullable IBinder onBind(Intent intent) {
return null;
}
}
diff --git a/wear/tiles/tiles/src/test/java/androidx/wear/tiles/ProtoParcelableTest.java b/wear/tiles/tiles/src/test/java/androidx/wear/tiles/ProtoParcelableTest.java
index d0032c7..92e0dc8 100644
--- a/wear/tiles/tiles/src/test/java/androidx/wear/tiles/ProtoParcelableTest.java
+++ b/wear/tiles/tiles/src/test/java/androidx/wear/tiles/ProtoParcelableTest.java
@@ -27,7 +27,6 @@
import org.junit.runner.RunWith;
import org.robolectric.annotation.internal.DoNotInstrument;
-
@RunWith(AndroidJUnit4.class)
@DoNotInstrument // See http://g/robolectric-users/fTi2FRXgyGA/m/PkB0wYuwBgAJ
public final class ProtoParcelableTest {
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 5db6074..2b87fe2 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
@@ -39,8 +39,6 @@
import android.os.Looper;
import android.os.RemoteException;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.wear.protolayout.ResourceBuilders.Resources;
@@ -66,6 +64,8 @@
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -1000,8 +1000,7 @@
}
@Override
- @NonNull
- protected ListenableFuture<TileBuilders.Tile> onTileRequest(
+ protected @NonNull ListenableFuture<TileBuilders.Tile> onTileRequest(
@NonNull TileRequest requestParams) {
mTileRequestParams = requestParams;
mTileId = requestParams.getTileId();
@@ -1012,8 +1011,7 @@
}
@Override
- @NonNull
- protected ListenableFuture<Resources> onTileResourcesRequest(
+ protected @NonNull ListenableFuture<Resources> onTileResourcesRequest(
@NonNull ResourcesRequest requestParams) {
mResourcesRequestParams = requestParams;
mTileId = requestParams.getTileId();
@@ -1051,16 +1049,14 @@
protected void onTileLeaveEvent(@NonNull TileLeaveEvent requestParams) {}
@Override
- @NonNull
- protected ListenableFuture<TileBuilders.Tile> onTileRequest(
+ protected @NonNull ListenableFuture<TileBuilders.Tile> onTileRequest(
@NonNull TileRequest requestParams) {
return Futures.immediateFuture(DUMMY_TILE_TO_RETURN);
}
@Override
- @NonNull
@SuppressWarnings("deprecation") // for backward compatibility
- protected ListenableFuture<androidx.wear.tiles.ResourceBuilders.Resources>
+ protected @NonNull ListenableFuture<androidx.wear.tiles.ResourceBuilders.Resources>
onResourcesRequest(@NonNull ResourcesRequest requestParams) {
androidx.wear.tiles.ResourceBuilders.Resources resources =
new androidx.wear.tiles.ResourceBuilders.Resources.Builder()