public final class

DimensionProto

extends java.lang.Object

 java.lang.Object

↳androidx.wear.protolayout.proto.DimensionProto

Gradle dependencies

compile group: 'androidx.wear.protolayout', name: 'protolayout-proto', version: '1.2.0'

  • groupId: androidx.wear.protolayout
  • artifactId: protolayout-proto
  • version: 1.2.0

Artifact androidx.wear.protolayout:protolayout-proto:1.2.0 it located at Google repository (https://maven.google.com/)

Summary

Methods
public static voidregisterAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods

public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)

Source

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: dimension.proto

package androidx.wear.protolayout.proto;

public final class DimensionProto {
  private DimensionProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface DpPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.DpProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The static value, in dp. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * The static value, in dp. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return The value.
     */
    float getValue();

    /**
     * <pre>
     * The dynamic value, in dp. Note that when setting this value, the static
     * value is still required to be set to support older renderers that only read
     * the static value. If {&#64;code dynamicValue} has an invalid result, the
     * provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     * @return Whether the dynamicValue field is set.
     */
    boolean hasDynamicValue();
    /**
     * <pre>
     * The dynamic value, in dp. Note that when setting this value, the static
     * value is still required to be set to support older renderers that only read
     * the static value. If {&#64;code dynamicValue} has an invalid result, the
     * provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     * @return The dynamicValue.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDynamicValue();

    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @return Whether the valueForLayout field is set.
     */
    boolean hasValueForLayout();
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @return The valueForLayout.
     */
    float getValueForLayout();

    /**
     * <pre>
     * Vertical alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for vertical
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
     * @return Whether the verticalAlignmentForLayout field is set.
     */
    boolean hasVerticalAlignmentForLayout();
    /**
     * <pre>
     * Vertical alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for vertical
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
     * @return The enum numeric value on the wire for verticalAlignmentForLayout.
     */
    int getVerticalAlignmentForLayoutValue();
    /**
     * <pre>
     * Vertical alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for vertical
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
     * @return The verticalAlignmentForLayout.
     */
    androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignment getVerticalAlignmentForLayout();

    /**
     * <pre>
     * Horizontal alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for horizontal
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
     * @return Whether the horizontalAlignmentForLayout field is set.
     */
    boolean hasHorizontalAlignmentForLayout();
    /**
     * <pre>
     * Horizontal alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for horizontal
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
     * @return The enum numeric value on the wire for horizontalAlignmentForLayout.
     */
    int getHorizontalAlignmentForLayoutValue();
    /**
     * <pre>
     * Horizontal alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for horizontal
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
     * @return The horizontalAlignmentForLayout.
     */
    androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignment getHorizontalAlignmentForLayout();

    public androidx.wear.protolayout.proto.DimensionProto.DpProp.OptionalValueCase getOptionalValueCase();

    public androidx.wear.protolayout.proto.DimensionProto.DpProp.OptionalValueForLayoutCase getOptionalValueForLayoutCase();

    public androidx.wear.protolayout.proto.DimensionProto.DpProp.AlignCase getAlignCase();
  }
  /**
   * <pre>
   * A type for linear dimensions, measured in dp.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.DpProp}
   */
  public  static final class DpProp extends
      com.google.protobuf.GeneratedMessageLite<
          DpProp, DpProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.DpProp)
      DpPropOrBuilder {
    private DpProp() {
    }
    private int optionalValueCase_ = 0;
    private java.lang.Object optionalValue_;
    public enum OptionalValueCase {
      VALUE(1),
      OPTIONALVALUE_NOT_SET(0);
      private final int value;
      private OptionalValueCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalValueCase forNumber(int value) {
        switch (value) {
          case 1: return VALUE;
          case 0: return OPTIONALVALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalValueCase
    getOptionalValueCase() {
      return OptionalValueCase.forNumber(
          optionalValueCase_);
    }

    private void clearOptionalValue() {
      optionalValueCase_ = 0;
      optionalValue_ = null;
    }

    private int optionalValueForLayoutCase_ = 0;
    private java.lang.Object optionalValueForLayout_;
    public enum OptionalValueForLayoutCase {
      VALUE_FOR_LAYOUT(3),
      OPTIONALVALUEFORLAYOUT_NOT_SET(0);
      private final int value;
      private OptionalValueForLayoutCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalValueForLayoutCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalValueForLayoutCase forNumber(int value) {
        switch (value) {
          case 3: return VALUE_FOR_LAYOUT;
          case 0: return OPTIONALVALUEFORLAYOUT_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalValueForLayoutCase
    getOptionalValueForLayoutCase() {
      return OptionalValueForLayoutCase.forNumber(
          optionalValueForLayoutCase_);
    }

    private void clearOptionalValueForLayout() {
      optionalValueForLayoutCase_ = 0;
      optionalValueForLayout_ = null;
    }

    private int alignCase_ = 0;
    private java.lang.Object align_;
    public enum AlignCase {
      VERTICAL_ALIGNMENT_FOR_LAYOUT(4),
      HORIZONTAL_ALIGNMENT_FOR_LAYOUT(5),
      ALIGN_NOT_SET(0);
      private final int value;
      private AlignCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AlignCase valueOf(int value) {
        return forNumber(value);
      }

      public static AlignCase forNumber(int value) {
        switch (value) {
          case 4: return VERTICAL_ALIGNMENT_FOR_LAYOUT;
          case 5: return HORIZONTAL_ALIGNMENT_FOR_LAYOUT;
          case 0: return ALIGN_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public AlignCase
    getAlignCase() {
      return AlignCase.forNumber(
          alignCase_);
    }

    private void clearAlign() {
      alignCase_ = 0;
      align_ = null;
    }

    public static final int VALUE_FIELD_NUMBER = 1;
    /**
     * <pre>
     * The static value, in dp. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return optionalValueCase_ == 1;
    }
    /**
     * <pre>
     * The static value, in dp. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public float getValue() {
      if (optionalValueCase_ == 1) {
        return (java.lang.Float) optionalValue_;
      }
      return 0F;
    }
    /**
     * <pre>
     * The static value, in dp. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(float value) {
      optionalValueCase_ = 1;
      optionalValue_ = value;
    }
    /**
     * <pre>
     * The static value, in dp. If a dynamic value is also set and the renderer
     * supports dynamic values for the corresponding field, this static value
     * will be ignored. If the static value is not specified, zero will be used
     * instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     */
    private void clearValue() {
      if (optionalValueCase_ == 1) {
        optionalValueCase_ = 0;
        optionalValue_ = null;
      }
    }

    public static final int DYNAMIC_VALUE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat dynamicValue_;
    /**
     * <pre>
     * The dynamic value, in dp. Note that when setting this value, the static
     * value is still required to be set to support older renderers that only read
     * the static value. If {&#64;code dynamicValue} has an invalid result, the
     * provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    @java.lang.Override
    public boolean hasDynamicValue() {
      return dynamicValue_ != null;
    }
    /**
     * <pre>
     * The dynamic value, in dp. Note that when setting this value, the static
     * value is still required to be set to support older renderers that only read
     * the static value. If {&#64;code dynamicValue} has an invalid result, the
     * provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDynamicValue() {
      return dynamicValue_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : dynamicValue_;
    }
    /**
     * <pre>
     * The dynamic value, in dp. Note that when setting this value, the static
     * value is still required to be set to support older renderers that only read
     * the static value. If {&#64;code dynamicValue} has an invalid result, the
     * provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    private void setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  dynamicValue_ = value;

      }
    /**
     * <pre>
     * The dynamic value, in dp. Note that when setting this value, the static
     * value is still required to be set to support older renderers that only read
     * the static value. If {&#64;code dynamicValue} has an invalid result, the
     * provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (dynamicValue_ != null &&
          dynamicValue_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        dynamicValue_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(dynamicValue_).mergeFrom(value).buildPartial();
      } else {
        dynamicValue_ = value;
      }

    }
    /**
     * <pre>
     * The dynamic value, in dp. Note that when setting this value, the static
     * value is still required to be set to support older renderers that only read
     * the static value. If {&#64;code dynamicValue} has an invalid result, the
     * provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    private void clearDynamicValue() {  dynamicValue_ = null;

    }

    public static final int VALUE_FOR_LAYOUT_FIELD_NUMBER = 3;
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @return Whether the valueForLayout field is set.
     */
    @java.lang.Override
    public boolean hasValueForLayout() {
      return optionalValueForLayoutCase_ == 3;
    }
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @return The valueForLayout.
     */
    @java.lang.Override
    public float getValueForLayout() {
      if (optionalValueForLayoutCase_ == 3) {
        return (java.lang.Float) optionalValueForLayout_;
      }
      return 0F;
    }
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @param value The valueForLayout to set.
     */
    private void setValueForLayout(float value) {
      optionalValueForLayoutCase_ = 3;
      optionalValueForLayout_ = value;
    }
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     */
    private void clearValueForLayout() {
      if (optionalValueForLayoutCase_ == 3) {
        optionalValueForLayoutCase_ = 0;
        optionalValueForLayout_ = null;
      }
    }

    public static final int VERTICAL_ALIGNMENT_FOR_LAYOUT_FIELD_NUMBER = 4;
    /**
     * <pre>
     * Vertical alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for vertical
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
     * @return Whether the verticalAlignmentForLayout field is set.
     */
    @java.lang.Override
    public boolean hasVerticalAlignmentForLayout() {
      return alignCase_ == 4;
    }
    /**
     * <pre>
     * Vertical alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for vertical
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
     * @return The enum numeric value on the wire for verticalAlignmentForLayout.
     */
    @java.lang.Override
    public int getVerticalAlignmentForLayoutValue() {
      if (alignCase_ == 4) {
        return (java.lang.Integer) align_;
      }
      return 0;
    }
    /**
     * <pre>
     * Vertical alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for vertical
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
     * @return The verticalAlignmentForLayout.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignment getVerticalAlignmentForLayout() {
      if (alignCase_ == 4) {
        androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignment result = androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignment.forNumber((java.lang.Integer) align_);
        return result == null ? androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignment.UNRECOGNIZED : result;
      }
      return androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignment.VERTICAL_ALIGN_UNDEFINED;
    }
    /**
     * <pre>
     * Vertical alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for vertical
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
     * @param value The enum numeric value on the wire for verticalAlignmentForLayout to set.
     */
    private void setVerticalAlignmentForLayoutValue(int value) {
      alignCase_ = 4;
      align_ = value;
    }
    /**
     * <pre>
     * Vertical alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for vertical
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
     * @param value The verticalAlignmentForLayout to set.
     */
    private void setVerticalAlignmentForLayout(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignment value) {
      align_ = value.getNumber();
      alignCase_ = 4;
    }
    /**
     * <pre>
     * Vertical alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for vertical
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
     */
    private void clearVerticalAlignmentForLayout() {
      if (alignCase_ == 4) {
        alignCase_ = 0;
        align_ = null;
      }
    }

    public static final int HORIZONTAL_ALIGNMENT_FOR_LAYOUT_FIELD_NUMBER = 5;
    /**
     * <pre>
     * Horizontal alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for horizontal
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
     * @return Whether the horizontalAlignmentForLayout field is set.
     */
    @java.lang.Override
    public boolean hasHorizontalAlignmentForLayout() {
      return alignCase_ == 5;
    }
    /**
     * <pre>
     * Horizontal alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for horizontal
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
     * @return The enum numeric value on the wire for horizontalAlignmentForLayout.
     */
    @java.lang.Override
    public int getHorizontalAlignmentForLayoutValue() {
      if (alignCase_ == 5) {
        return (java.lang.Integer) align_;
      }
      return 0;
    }
    /**
     * <pre>
     * Horizontal alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for horizontal
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
     * @return The horizontalAlignmentForLayout.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignment getHorizontalAlignmentForLayout() {
      if (alignCase_ == 5) {
        androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignment result = androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignment.forNumber((java.lang.Integer) align_);
        return result == null ? androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignment.UNRECOGNIZED : result;
      }
      return androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignment.HORIZONTAL_ALIGN_UNDEFINED;
    }
    /**
     * <pre>
     * Horizontal alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for horizontal
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
     * @param value The enum numeric value on the wire for horizontalAlignmentForLayout to set.
     */
    private void setHorizontalAlignmentForLayoutValue(int value) {
      alignCase_ = 5;
      align_ = value;
    }
    /**
     * <pre>
     * Horizontal alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for horizontal
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
     * @param value The horizontalAlignmentForLayout to set.
     */
    private void setHorizontalAlignmentForLayout(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignment value) {
      align_ = value.getNumber();
      alignCase_ = 5;
    }
    /**
     * <pre>
     * Horizontal alignment of the actual content within the space reserved by
     * value_for_layout. Only valid when this DpProp is used for horizontal
     * sizing. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
     */
    private void clearHorizontalAlignmentForLayout() {
      if (alignCase_ == 5) {
        alignCase_ = 0;
        align_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DpProp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.DpProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A type for linear dimensions, measured in dp.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.DpProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.DpProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.DpProp)
        androidx.wear.protolayout.proto.DimensionProto.DpPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public OptionalValueCase
          getOptionalValueCase() {
        return instance.getOptionalValueCase();
      }

      public Builder clearOptionalValue() {
        copyOnWrite();
        instance.clearOptionalValue();
        return this;
      }

      @java.lang.Override
      public OptionalValueForLayoutCase
          getOptionalValueForLayoutCase() {
        return instance.getOptionalValueForLayoutCase();
      }

      public Builder clearOptionalValueForLayout() {
        copyOnWrite();
        instance.clearOptionalValueForLayout();
        return this;
      }

      @java.lang.Override
      public AlignCase
          getAlignCase() {
        return instance.getAlignCase();
      }

      public Builder clearAlign() {
        copyOnWrite();
        instance.clearAlign();
        return this;
      }


      /**
       * <pre>
       * The static value, in dp. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, zero will be used
       * instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return Whether the value field is set.
       */
      @java.lang.Override
      public boolean hasValue() {
        return instance.hasValue();
      }
      /**
       * <pre>
       * The static value, in dp. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, zero will be used
       * instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public float getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The static value, in dp. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, zero will be used
       * instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(float value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The static value, in dp. If a dynamic value is also set and the renderer
       * supports dynamic values for the corresponding field, this static value
       * will be ignored. If the static value is not specified, zero will be used
       * instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      /**
       * <pre>
       * The dynamic value, in dp. Note that when setting this value, the static
       * value is still required to be set to support older renderers that only read
       * the static value. If {&#64;code dynamicValue} has an invalid result, the
       * provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      @java.lang.Override
      public boolean hasDynamicValue() {
        return instance.hasDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value, in dp. Note that when setting this value, the static
       * value is still required to be set to support older renderers that only read
       * the static value. If {&#64;code dynamicValue} has an invalid result, the
       * provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDynamicValue() {
        return instance.getDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value, in dp. Note that when setting this value, the static
       * value is still required to be set to support older renderers that only read
       * the static value. If {&#64;code dynamicValue} has an invalid result, the
       * provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setDynamicValue(value);
        return this;
        }
      /**
       * <pre>
       * The dynamic value, in dp. Note that when setting this value, the static
       * value is still required to be set to support older renderers that only read
       * the static value. If {&#64;code dynamicValue} has an invalid result, the
       * provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setDynamicValue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The dynamic value, in dp. Note that when setting this value, the static
       * value is still required to be set to support older renderers that only read
       * the static value. If {&#64;code dynamicValue} has an invalid result, the
       * provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeDynamicValue(value);
        return this;
      }
      /**
       * <pre>
       * The dynamic value, in dp. Note that when setting this value, the static
       * value is still required to be set to support older renderers that only read
       * the static value. If {&#64;code dynamicValue} has an invalid result, the
       * provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder clearDynamicValue() {  copyOnWrite();
        instance.clearDynamicValue();
        return this;
      }

      /**
       * <pre>
       * The fixed value to reserve the space when used on a layout-changing data
       * bind.
       * </pre>
       *
       * <code>float value_for_layout = 3;</code>
       * @return Whether the valueForLayout field is set.
       */
      @java.lang.Override
      public boolean hasValueForLayout() {
        return instance.hasValueForLayout();
      }
      /**
       * <pre>
       * The fixed value to reserve the space when used on a layout-changing data
       * bind.
       * </pre>
       *
       * <code>float value_for_layout = 3;</code>
       * @return The valueForLayout.
       */
      @java.lang.Override
      public float getValueForLayout() {
        return instance.getValueForLayout();
      }
      /**
       * <pre>
       * The fixed value to reserve the space when used on a layout-changing data
       * bind.
       * </pre>
       *
       * <code>float value_for_layout = 3;</code>
       * @param value The valueForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setValueForLayout(float value) {
        copyOnWrite();
        instance.setValueForLayout(value);
        return this;
      }
      /**
       * <pre>
       * The fixed value to reserve the space when used on a layout-changing data
       * bind.
       * </pre>
       *
       * <code>float value_for_layout = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueForLayout() {
        copyOnWrite();
        instance.clearValueForLayout();
        return this;
      }

      /**
       * <pre>
       * Vertical alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for vertical
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
       * @return Whether the verticalAlignmentForLayout field is set.
       */
      @java.lang.Override
      public boolean hasVerticalAlignmentForLayout() {
        return instance.hasVerticalAlignmentForLayout();
      }
      /**
       * <pre>
       * Vertical alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for vertical
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
       * @return The enum numeric value on the wire for verticalAlignmentForLayout.
       */
      @java.lang.Override
      public int getVerticalAlignmentForLayoutValue() {
        return instance.getVerticalAlignmentForLayoutValue();
      }
      /**
       * <pre>
       * Vertical alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for vertical
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
       * @param value The enum numeric value on the wire for verticalAlignmentForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setVerticalAlignmentForLayoutValue(int value) {
        copyOnWrite();
        instance.setVerticalAlignmentForLayoutValue(value);
        return this;
      }
      /**
       * <pre>
       * Vertical alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for vertical
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
       * @return The verticalAlignmentForLayout.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignment getVerticalAlignmentForLayout() {
        return instance.getVerticalAlignmentForLayout();
      }
      /**
       * <pre>
       * Vertical alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for vertical
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
       * @param value The verticalAlignmentForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setVerticalAlignmentForLayout(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignment value) {
        copyOnWrite();
        instance.setVerticalAlignmentForLayout(value);
        return this;
      }
      /**
       * <pre>
       * Vertical alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for vertical
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignment vertical_alignment_for_layout = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearVerticalAlignmentForLayout() {
        copyOnWrite();
        instance.clearVerticalAlignmentForLayout();
        return this;
      }

      /**
       * <pre>
       * Horizontal alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for horizontal
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
       * @return Whether the horizontalAlignmentForLayout field is set.
       */
      @java.lang.Override
      public boolean hasHorizontalAlignmentForLayout() {
        return instance.hasHorizontalAlignmentForLayout();
      }
      /**
       * <pre>
       * Horizontal alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for horizontal
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
       * @return The enum numeric value on the wire for horizontalAlignmentForLayout.
       */
      @java.lang.Override
      public int getHorizontalAlignmentForLayoutValue() {
        return instance.getHorizontalAlignmentForLayoutValue();
      }
      /**
       * <pre>
       * Horizontal alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for horizontal
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
       * @param value The enum numeric value on the wire for horizontalAlignmentForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setHorizontalAlignmentForLayoutValue(int value) {
        copyOnWrite();
        instance.setHorizontalAlignmentForLayoutValue(value);
        return this;
      }
      /**
       * <pre>
       * Horizontal alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for horizontal
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
       * @return The horizontalAlignmentForLayout.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignment getHorizontalAlignmentForLayout() {
        return instance.getHorizontalAlignmentForLayout();
      }
      /**
       * <pre>
       * Horizontal alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for horizontal
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
       * @param value The horizontalAlignmentForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setHorizontalAlignmentForLayout(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignment value) {
        copyOnWrite();
        instance.setHorizontalAlignmentForLayout(value);
        return this;
      }
      /**
       * <pre>
       * Horizontal alignment of the actual content within the space reserved by
       * value_for_layout. Only valid when this DpProp is used for horizontal
       * sizing. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignment horizontal_alignment_for_layout = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearHorizontalAlignmentForLayout() {
        copyOnWrite();
        instance.clearHorizontalAlignmentForLayout();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.DpProp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.DpProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "optionalValue_",
              "optionalValueCase_",
              "optionalValueForLayout_",
              "optionalValueForLayoutCase_",
              "align_",
              "alignCase_",
              "dynamicValue_",
            };
            java.lang.String info =
                "\u0000\u0005\u0003\u0000\u0001\u0005\u0005\u0000\u0000\u0000\u00014\u0000\u0002\t" +
                "\u00034\u0001\u0004?\u0002\u0005?\u0002";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.DpProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.DpProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.DpProp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.DpProp)
    private static final androidx.wear.protolayout.proto.DimensionProto.DpProp DEFAULT_INSTANCE;
    static {
      DpProp defaultInstance = new DpProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DpProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.DpProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DpProp> PARSER;

    public static com.google.protobuf.Parser<DpProp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SpPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SpProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value, in sp.
     * </pre>
     *
     * <code>float value = 2;</code>
     * @return The value.
     */
    float getValue();
  }
  /**
   * <pre>
   * A type for font sizes, measured in sp.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SpProp}
   */
  public  static final class SpProp extends
      com.google.protobuf.GeneratedMessageLite<
          SpProp, SpProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SpProp)
      SpPropOrBuilder {
    private SpProp() {
    }
    public static final int VALUE_FIELD_NUMBER = 2;
    private float value_;
    /**
     * <pre>
     * The value, in sp.
     * </pre>
     *
     * <code>float value = 2;</code>
     * @return The value.
     */
    @java.lang.Override
    public float getValue() {
      return value_;
    }
    /**
     * <pre>
     * The value, in sp.
     * </pre>
     *
     * <code>float value = 2;</code>
     * @param value The value to set.
     */
    private void setValue(float value) {
      
      value_ = value;
    }
    /**
     * <pre>
     * The value, in sp.
     * </pre>
     *
     * <code>float value = 2;</code>
     */
    private void clearValue() {

      value_ = 0F;
    }

    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpProp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.SpProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A type for font sizes, measured in sp.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SpProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.SpProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SpProp)
        androidx.wear.protolayout.proto.DimensionProto.SpPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.SpProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value, in sp.
       * </pre>
       *
       * <code>float value = 2;</code>
       * @return The value.
       */
      @java.lang.Override
      public float getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The value, in sp.
       * </pre>
       *
       * <code>float value = 2;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(float value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The value, in sp.
       * </pre>
       *
       * <code>float value = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SpProp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.SpProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0002\u0002\u0001\u0000\u0000\u0000\u0002\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.SpProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.SpProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.SpProp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.SpProp)
    private static final androidx.wear.protolayout.proto.DimensionProto.SpProp DEFAULT_INSTANCE;
    static {
      SpProp defaultInstance = new SpProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SpProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.SpProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SpProp> PARSER;

    public static com.google.protobuf.Parser<SpProp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface EmPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.EmProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value, in em.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return The value.
     */
    float getValue();
  }
  /**
   * <pre>
   * A type for font spacing, measured in em.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.EmProp}
   */
  public  static final class EmProp extends
      com.google.protobuf.GeneratedMessageLite<
          EmProp, EmProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.EmProp)
      EmPropOrBuilder {
    private EmProp() {
    }
    public static final int VALUE_FIELD_NUMBER = 1;
    private float value_;
    /**
     * <pre>
     * The value, in em.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public float getValue() {
      return value_;
    }
    /**
     * <pre>
     * The value, in em.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(float value) {
      
      value_ = value;
    }
    /**
     * <pre>
     * The value, in em.
     * </pre>
     *
     * <code>float value = 1;</code>
     */
    private void clearValue() {

      value_ = 0F;
    }

    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.EmProp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.EmProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A type for font spacing, measured in em.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.EmProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.EmProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.EmProp)
        androidx.wear.protolayout.proto.DimensionProto.EmPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.EmProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value, in em.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public float getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The value, in em.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(float value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The value, in em.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.EmProp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.EmProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.EmProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.EmProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.EmProp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.EmProp)
    private static final androidx.wear.protolayout.proto.DimensionProto.EmProp DEFAULT_INSTANCE;
    static {
      EmProp defaultInstance = new EmProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        EmProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.EmProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<EmProp> PARSER;

    public static com.google.protobuf.Parser<EmProp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ArcLineLengthOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ArcLineLength)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     * @return Whether the degrees field is set.
     */
    boolean hasDegrees();
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     * @return The degrees.
     */
    androidx.wear.protolayout.proto.DimensionProto.DegreesProp getDegrees();

    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     * @return Whether the expandedAngularDimension field is set.
     */
    boolean hasExpandedAngularDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     * @return The expandedAngularDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp getExpandedAngularDimension();

    public androidx.wear.protolayout.proto.DimensionProto.ArcLineLength.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * The length of an ArcLine.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ArcLineLength}
   */
  public  static final class ArcLineLength extends
      com.google.protobuf.GeneratedMessageLite<
          ArcLineLength, ArcLineLength.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ArcLineLength)
      ArcLineLengthOrBuilder {
    private ArcLineLength() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      DEGREES(1),
      EXPANDED_ANGULAR_DIMENSION(2),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return DEGREES;
          case 2: return EXPANDED_ANGULAR_DIMENSION;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int DEGREES_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    @java.lang.Override
    public boolean hasDegrees() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getDegrees() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.DimensionProto.DegreesProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    private void setDegrees(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    private void mergeDegrees(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.DegreesProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.DegreesProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    private void clearDegrees() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int EXPANDED_ANGULAR_DIMENSION_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    @java.lang.Override
    public boolean hasExpandedAngularDimension() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp getExpandedAngularDimension() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    private void setExpandedAngularDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    private void mergeExpandedAngularDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    private void clearExpandedAngularDimension() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.ArcLineLength prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The length of an ArcLine.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ArcLineLength}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.ArcLineLength, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ArcLineLength)
        androidx.wear.protolayout.proto.DimensionProto.ArcLineLengthOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.ArcLineLength.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      @java.lang.Override
      public boolean hasDegrees() {
        return instance.hasDegrees();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getDegrees() {
        return instance.getDegrees();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      public Builder setDegrees(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.setDegrees(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      public Builder setDegrees(
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.Builder builderForValue) {
        copyOnWrite();
        instance.setDegrees(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      public Builder mergeDegrees(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.mergeDegrees(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      public Builder clearDegrees() {
        copyOnWrite();
        instance.clearDegrees();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      @java.lang.Override
      public boolean hasExpandedAngularDimension() {
        return instance.hasExpandedAngularDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp getExpandedAngularDimension() {
        return instance.getExpandedAngularDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      public Builder setExpandedAngularDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp value) {
        copyOnWrite();
        instance.setExpandedAngularDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      public Builder setExpandedAngularDimension(
          androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.Builder builderForValue) {
        copyOnWrite();
        instance.setExpandedAngularDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      public Builder mergeExpandedAngularDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp value) {
        copyOnWrite();
        instance.mergeExpandedAngularDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      public Builder clearExpandedAngularDimension() {
        copyOnWrite();
        instance.clearExpandedAngularDimension();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ArcLineLength)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.ArcLineLength();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.DimensionProto.DegreesProp.class,
              androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.ArcLineLength> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.ArcLineLength.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.ArcLineLength>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ArcLineLength)
    private static final androidx.wear.protolayout.proto.DimensionProto.ArcLineLength DEFAULT_INSTANCE;
    static {
      ArcLineLength defaultInstance = new ArcLineLength();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArcLineLength.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ArcLineLength getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ArcLineLength> PARSER;

    public static com.google.protobuf.Parser<ArcLineLength> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ArcSpacerLengthOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ArcSpacerLength)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     * @return Whether the degrees field is set.
     */
    boolean hasDegrees();
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     * @return The degrees.
     */
    androidx.wear.protolayout.proto.DimensionProto.DegreesProp getDegrees();

    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     * @return Whether the expandedAngularDimension field is set.
     */
    boolean hasExpandedAngularDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     * @return The expandedAngularDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp getExpandedAngularDimension();

    public androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * The length of an ArcSpacer.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ArcSpacerLength}
   */
  public  static final class ArcSpacerLength extends
      com.google.protobuf.GeneratedMessageLite<
          ArcSpacerLength, ArcSpacerLength.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ArcSpacerLength)
      ArcSpacerLengthOrBuilder {
    private ArcSpacerLength() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      DEGREES(1),
      EXPANDED_ANGULAR_DIMENSION(2),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return DEGREES;
          case 2: return EXPANDED_ANGULAR_DIMENSION;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int DEGREES_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    @java.lang.Override
    public boolean hasDegrees() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getDegrees() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.DimensionProto.DegreesProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    private void setDegrees(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    private void mergeDegrees(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.DegreesProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.DegreesProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
     */
    private void clearDegrees() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int EXPANDED_ANGULAR_DIMENSION_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    @java.lang.Override
    public boolean hasExpandedAngularDimension() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp getExpandedAngularDimension() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    private void setExpandedAngularDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    private void mergeExpandedAngularDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
     */
    private void clearExpandedAngularDimension() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The length of an ArcSpacer.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ArcSpacerLength}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ArcSpacerLength)
        androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLengthOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      @java.lang.Override
      public boolean hasDegrees() {
        return instance.hasDegrees();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getDegrees() {
        return instance.getDegrees();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      public Builder setDegrees(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.setDegrees(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      public Builder setDegrees(
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.Builder builderForValue) {
        copyOnWrite();
        instance.setDegrees(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      public Builder mergeDegrees(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.mergeDegrees(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DegreesProp degrees = 1;</code>
       */
      public Builder clearDegrees() {
        copyOnWrite();
        instance.clearDegrees();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      @java.lang.Override
      public boolean hasExpandedAngularDimension() {
        return instance.hasExpandedAngularDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp getExpandedAngularDimension() {
        return instance.getExpandedAngularDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      public Builder setExpandedAngularDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp value) {
        copyOnWrite();
        instance.setExpandedAngularDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      public Builder setExpandedAngularDimension(
          androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.Builder builderForValue) {
        copyOnWrite();
        instance.setExpandedAngularDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      public Builder mergeExpandedAngularDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp value) {
        copyOnWrite();
        instance.mergeExpandedAngularDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedAngularDimensionProp expanded_angular_dimension = 2;</code>
       */
      public Builder clearExpandedAngularDimension() {
        copyOnWrite();
        instance.clearExpandedAngularDimension();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ArcSpacerLength)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.DimensionProto.DegreesProp.class,
              androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ArcSpacerLength)
    private static final androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength DEFAULT_INSTANCE;
    static {
      ArcSpacerLength defaultInstance = new ArcSpacerLength();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArcSpacerLength.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ArcSpacerLength> PARSER;

    public static com.google.protobuf.Parser<ArcSpacerLength> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ExpandedAngularDimensionPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ExpandedAngularDimensionProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. The
     * angular dimension for this element will be layout_weight times the
     * available space divided by the sum of the layout_weights. If not set this
     * defaults to 1.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     * @return Whether the layoutWeight field is set.
     */
    boolean hasLayoutWeight();
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. The
     * angular dimension for this element will be layout_weight times the
     * available space divided by the sum of the layout_weights. If not set this
     * defaults to 1.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     * @return The layoutWeight.
     */
    androidx.wear.protolayout.proto.TypesProto.FloatProp getLayoutWeight();
  }
  /**
   * <pre>
   * A type for an angular dimension that fills all the space it can
   * (i.e. MATCH_PARENT in Android parlance)
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ExpandedAngularDimensionProp}
   */
  public  static final class ExpandedAngularDimensionProp extends
      com.google.protobuf.GeneratedMessageLite<
          ExpandedAngularDimensionProp, ExpandedAngularDimensionProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ExpandedAngularDimensionProp)
      ExpandedAngularDimensionPropOrBuilder {
    private ExpandedAngularDimensionProp() {
    }
    public static final int LAYOUT_WEIGHT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.TypesProto.FloatProp layoutWeight_;
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. The
     * angular dimension for this element will be layout_weight times the
     * available space divided by the sum of the layout_weights. If not set this
     * defaults to 1.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    @java.lang.Override
    public boolean hasLayoutWeight() {
      return layoutWeight_ != null;
    }
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. The
     * angular dimension for this element will be layout_weight times the
     * available space divided by the sum of the layout_weights. If not set this
     * defaults to 1.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.FloatProp getLayoutWeight() {
      return layoutWeight_ == null ? androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance() : layoutWeight_;
    }
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. The
     * angular dimension for this element will be layout_weight times the
     * available space divided by the sum of the layout_weights. If not set this
     * defaults to 1.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    private void setLayoutWeight(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  layoutWeight_ = value;

      }
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. The
     * angular dimension for this element will be layout_weight times the
     * available space divided by the sum of the layout_weights. If not set this
     * defaults to 1.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeLayoutWeight(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  if (layoutWeight_ != null &&
          layoutWeight_ != androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance()) {
        layoutWeight_ =
          androidx.wear.protolayout.proto.TypesProto.FloatProp.newBuilder(layoutWeight_).mergeFrom(value).buildPartial();
      } else {
        layoutWeight_ = value;
      }

    }
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. The
     * angular dimension for this element will be layout_weight times the
     * available space divided by the sum of the layout_weights. If not set this
     * defaults to 1.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    private void clearLayoutWeight() {  layoutWeight_ = null;

    }

    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A type for an angular dimension that fills all the space it can
     * (i.e. MATCH_PARENT in Android parlance)
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ExpandedAngularDimensionProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ExpandedAngularDimensionProp)
        androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. The
       * angular dimension for this element will be layout_weight times the
       * available space divided by the sum of the layout_weights. If not set this
       * defaults to 1.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      @java.lang.Override
      public boolean hasLayoutWeight() {
        return instance.hasLayoutWeight();
      }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. The
       * angular dimension for this element will be layout_weight times the
       * available space divided by the sum of the layout_weights. If not set this
       * defaults to 1.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.FloatProp getLayoutWeight() {
        return instance.getLayoutWeight();
      }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. The
       * angular dimension for this element will be layout_weight times the
       * available space divided by the sum of the layout_weights. If not set this
       * defaults to 1.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      public Builder setLayoutWeight(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.setLayoutWeight(value);
        return this;
        }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. The
       * angular dimension for this element will be layout_weight times the
       * available space divided by the sum of the layout_weights. If not set this
       * defaults to 1.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      public Builder setLayoutWeight(
          androidx.wear.protolayout.proto.TypesProto.FloatProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLayoutWeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. The
       * angular dimension for this element will be layout_weight times the
       * available space divided by the sum of the layout_weights. If not set this
       * defaults to 1.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      public Builder mergeLayoutWeight(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.mergeLayoutWeight(value);
        return this;
      }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. The
       * angular dimension for this element will be layout_weight times the
       * available space divided by the sum of the layout_weights. If not set this
       * defaults to 1.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      public Builder clearLayoutWeight() {  copyOnWrite();
        instance.clearLayoutWeight();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ExpandedAngularDimensionProp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "layoutWeight_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ExpandedAngularDimensionProp)
    private static final androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp DEFAULT_INSTANCE;
    static {
      ExpandedAngularDimensionProp defaultInstance = new ExpandedAngularDimensionProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ExpandedAngularDimensionProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedAngularDimensionProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ExpandedAngularDimensionProp> PARSER;

    public static com.google.protobuf.Parser<ExpandedAngularDimensionProp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DegreesPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.DegreesProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The static value, in degrees. If a dynamic value is also set and the
     * renderer supports dynamic values for the corresponding field, this static
     * value will be ignored. If the static value is not specified, zero will be
     * used instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * The static value, in degrees. If a dynamic value is also set and the
     * renderer supports dynamic values for the corresponding field, this static
     * value will be ignored. If the static value is not specified, zero will be
     * used instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return The value.
     */
    float getValue();

    /**
     * <pre>
     * The dynamic value, in degrees. Note that when setting this value, the
     * static value is still required to be set to support older renderers that
     * only read the static value. If {&#64;code dynamicValue} has an invalid result,
     * the provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     * @return Whether the dynamicValue field is set.
     */
    boolean hasDynamicValue();
    /**
     * <pre>
     * The dynamic value, in degrees. Note that when setting this value, the
     * static value is still required to be set to support older renderers that
     * only read the static value. If {&#64;code dynamicValue} has an invalid result,
     * the provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     * @return The dynamicValue.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDynamicValue();

    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @return Whether the valueForLayout field is set.
     */
    boolean hasValueForLayout();
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @return The valueForLayout.
     */
    float getValueForLayout();

    /**
     * <pre>
     * Angular alignment of the actual content within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
     * @return The enum numeric value on the wire for angularAlignmentForLayout.
     */
    int getAngularAlignmentForLayoutValue();
    /**
     * <pre>
     * Angular alignment of the actual content within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
     * @return The angularAlignmentForLayout.
     */
    androidx.wear.protolayout.proto.AlignmentProto.AngularAlignment getAngularAlignmentForLayout();

    public androidx.wear.protolayout.proto.DimensionProto.DegreesProp.OptionalValueCase getOptionalValueCase();

    public androidx.wear.protolayout.proto.DimensionProto.DegreesProp.OptionalValueForLayoutCase getOptionalValueForLayoutCase();
  }
  /**
   * <pre>
   * A type for angular dimensions, measured in degrees.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.DegreesProp}
   */
  public  static final class DegreesProp extends
      com.google.protobuf.GeneratedMessageLite<
          DegreesProp, DegreesProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.DegreesProp)
      DegreesPropOrBuilder {
    private DegreesProp() {
    }
    private int optionalValueCase_ = 0;
    private java.lang.Object optionalValue_;
    public enum OptionalValueCase {
      VALUE(1),
      OPTIONALVALUE_NOT_SET(0);
      private final int value;
      private OptionalValueCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalValueCase forNumber(int value) {
        switch (value) {
          case 1: return VALUE;
          case 0: return OPTIONALVALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalValueCase
    getOptionalValueCase() {
      return OptionalValueCase.forNumber(
          optionalValueCase_);
    }

    private void clearOptionalValue() {
      optionalValueCase_ = 0;
      optionalValue_ = null;
    }

    private int optionalValueForLayoutCase_ = 0;
    private java.lang.Object optionalValueForLayout_;
    public enum OptionalValueForLayoutCase {
      VALUE_FOR_LAYOUT(3),
      OPTIONALVALUEFORLAYOUT_NOT_SET(0);
      private final int value;
      private OptionalValueForLayoutCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalValueForLayoutCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalValueForLayoutCase forNumber(int value) {
        switch (value) {
          case 3: return VALUE_FOR_LAYOUT;
          case 0: return OPTIONALVALUEFORLAYOUT_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalValueForLayoutCase
    getOptionalValueForLayoutCase() {
      return OptionalValueForLayoutCase.forNumber(
          optionalValueForLayoutCase_);
    }

    private void clearOptionalValueForLayout() {
      optionalValueForLayoutCase_ = 0;
      optionalValueForLayout_ = null;
    }

    public static final int VALUE_FIELD_NUMBER = 1;
    /**
     * <pre>
     * The static value, in degrees. If a dynamic value is also set and the
     * renderer supports dynamic values for the corresponding field, this static
     * value will be ignored. If the static value is not specified, zero will be
     * used instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return optionalValueCase_ == 1;
    }
    /**
     * <pre>
     * The static value, in degrees. If a dynamic value is also set and the
     * renderer supports dynamic values for the corresponding field, this static
     * value will be ignored. If the static value is not specified, zero will be
     * used instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public float getValue() {
      if (optionalValueCase_ == 1) {
        return (java.lang.Float) optionalValue_;
      }
      return 0F;
    }
    /**
     * <pre>
     * The static value, in degrees. If a dynamic value is also set and the
     * renderer supports dynamic values for the corresponding field, this static
     * value will be ignored. If the static value is not specified, zero will be
     * used instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(float value) {
      optionalValueCase_ = 1;
      optionalValue_ = value;
    }
    /**
     * <pre>
     * The static value, in degrees. If a dynamic value is also set and the
     * renderer supports dynamic values for the corresponding field, this static
     * value will be ignored. If the static value is not specified, zero will be
     * used instead.
     * </pre>
     *
     * <code>float value = 1;</code>
     */
    private void clearValue() {
      if (optionalValueCase_ == 1) {
        optionalValueCase_ = 0;
        optionalValue_ = null;
      }
    }

    public static final int DYNAMIC_VALUE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat dynamicValue_;
    /**
     * <pre>
     * The dynamic value, in degrees. Note that when setting this value, the
     * static value is still required to be set to support older renderers that
     * only read the static value. If {&#64;code dynamicValue} has an invalid result,
     * the provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    @java.lang.Override
    public boolean hasDynamicValue() {
      return dynamicValue_ != null;
    }
    /**
     * <pre>
     * The dynamic value, in degrees. Note that when setting this value, the
     * static value is still required to be set to support older renderers that
     * only read the static value. If {&#64;code dynamicValue} has an invalid result,
     * the provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDynamicValue() {
      return dynamicValue_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : dynamicValue_;
    }
    /**
     * <pre>
     * The dynamic value, in degrees. Note that when setting this value, the
     * static value is still required to be set to support older renderers that
     * only read the static value. If {&#64;code dynamicValue} has an invalid result,
     * the provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    private void setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  dynamicValue_ = value;

      }
    /**
     * <pre>
     * The dynamic value, in degrees. Note that when setting this value, the
     * static value is still required to be set to support older renderers that
     * only read the static value. If {&#64;code dynamicValue} has an invalid result,
     * the provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (dynamicValue_ != null &&
          dynamicValue_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        dynamicValue_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(dynamicValue_).mergeFrom(value).buildPartial();
      } else {
        dynamicValue_ = value;
      }

    }
    /**
     * <pre>
     * The dynamic value, in degrees. Note that when setting this value, the
     * static value is still required to be set to support older renderers that
     * only read the static value. If {&#64;code dynamicValue} has an invalid result,
     * the provided static value will be used instead.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
     */
    private void clearDynamicValue() {  dynamicValue_ = null;

    }

    public static final int VALUE_FOR_LAYOUT_FIELD_NUMBER = 3;
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @return Whether the valueForLayout field is set.
     */
    @java.lang.Override
    public boolean hasValueForLayout() {
      return optionalValueForLayoutCase_ == 3;
    }
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @return The valueForLayout.
     */
    @java.lang.Override
    public float getValueForLayout() {
      if (optionalValueForLayoutCase_ == 3) {
        return (java.lang.Float) optionalValueForLayout_;
      }
      return 0F;
    }
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     * @param value The valueForLayout to set.
     */
    private void setValueForLayout(float value) {
      optionalValueForLayoutCase_ = 3;
      optionalValueForLayout_ = value;
    }
    /**
     * <pre>
     * The fixed value to reserve the space when used on a layout-changing data
     * bind.
     * </pre>
     *
     * <code>float value_for_layout = 3;</code>
     */
    private void clearValueForLayout() {
      if (optionalValueForLayoutCase_ == 3) {
        optionalValueForLayoutCase_ = 0;
        optionalValueForLayout_ = null;
      }
    }

    public static final int ANGULAR_ALIGNMENT_FOR_LAYOUT_FIELD_NUMBER = 4;
    private int angularAlignmentForLayout_;
    /**
     * <pre>
     * Angular alignment of the actual content within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
     * @return The enum numeric value on the wire for angularAlignmentForLayout.
     */
    @java.lang.Override
    public int getAngularAlignmentForLayoutValue() {
      return angularAlignmentForLayout_;
    }
    /**
     * <pre>
     * Angular alignment of the actual content within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
     * @return The angularAlignmentForLayout.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.AngularAlignment getAngularAlignmentForLayout() {
      androidx.wear.protolayout.proto.AlignmentProto.AngularAlignment result = androidx.wear.protolayout.proto.AlignmentProto.AngularAlignment.forNumber(angularAlignmentForLayout_);
      return result == null ? androidx.wear.protolayout.proto.AlignmentProto.AngularAlignment.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Angular alignment of the actual content within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
     * @param value The enum numeric value on the wire for angularAlignmentForLayout to set.
     */
    private void setAngularAlignmentForLayoutValue(int value) {
        angularAlignmentForLayout_ = value;
    }
    /**
     * <pre>
     * Angular alignment of the actual content within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
     * @param value The angularAlignmentForLayout to set.
     */
    private void setAngularAlignmentForLayout(androidx.wear.protolayout.proto.AlignmentProto.AngularAlignment value) {
      angularAlignmentForLayout_ = value.getNumber();

    }
    /**
     * <pre>
     * Angular alignment of the actual content within the space reserved by
     * value_for_layout. If not specified, defaults to center alignment.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
     */
    private void clearAngularAlignmentForLayout() {

      angularAlignmentForLayout_ = 0;
    }

    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.DegreesProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A type for angular dimensions, measured in degrees.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.DegreesProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.DegreesProp)
        androidx.wear.protolayout.proto.DimensionProto.DegreesPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.DegreesProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public OptionalValueCase
          getOptionalValueCase() {
        return instance.getOptionalValueCase();
      }

      public Builder clearOptionalValue() {
        copyOnWrite();
        instance.clearOptionalValue();
        return this;
      }

      @java.lang.Override
      public OptionalValueForLayoutCase
          getOptionalValueForLayoutCase() {
        return instance.getOptionalValueForLayoutCase();
      }

      public Builder clearOptionalValueForLayout() {
        copyOnWrite();
        instance.clearOptionalValueForLayout();
        return this;
      }


      /**
       * <pre>
       * The static value, in degrees. If a dynamic value is also set and the
       * renderer supports dynamic values for the corresponding field, this static
       * value will be ignored. If the static value is not specified, zero will be
       * used instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return Whether the value field is set.
       */
      @java.lang.Override
      public boolean hasValue() {
        return instance.hasValue();
      }
      /**
       * <pre>
       * The static value, in degrees. If a dynamic value is also set and the
       * renderer supports dynamic values for the corresponding field, this static
       * value will be ignored. If the static value is not specified, zero will be
       * used instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public float getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The static value, in degrees. If a dynamic value is also set and the
       * renderer supports dynamic values for the corresponding field, this static
       * value will be ignored. If the static value is not specified, zero will be
       * used instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(float value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The static value, in degrees. If a dynamic value is also set and the
       * renderer supports dynamic values for the corresponding field, this static
       * value will be ignored. If the static value is not specified, zero will be
       * used instead.
       * </pre>
       *
       * <code>float value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      /**
       * <pre>
       * The dynamic value, in degrees. Note that when setting this value, the
       * static value is still required to be set to support older renderers that
       * only read the static value. If {&#64;code dynamicValue} has an invalid result,
       * the provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      @java.lang.Override
      public boolean hasDynamicValue() {
        return instance.hasDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value, in degrees. Note that when setting this value, the
       * static value is still required to be set to support older renderers that
       * only read the static value. If {&#64;code dynamicValue} has an invalid result,
       * the provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDynamicValue() {
        return instance.getDynamicValue();
      }
      /**
       * <pre>
       * The dynamic value, in degrees. Note that when setting this value, the
       * static value is still required to be set to support older renderers that
       * only read the static value. If {&#64;code dynamicValue} has an invalid result,
       * the provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setDynamicValue(value);
        return this;
        }
      /**
       * <pre>
       * The dynamic value, in degrees. Note that when setting this value, the
       * static value is still required to be set to support older renderers that
       * only read the static value. If {&#64;code dynamicValue} has an invalid result,
       * the provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder setDynamicValue(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setDynamicValue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The dynamic value, in degrees. Note that when setting this value, the
       * static value is still required to be set to support older renderers that
       * only read the static value. If {&#64;code dynamicValue} has an invalid result,
       * the provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder mergeDynamicValue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeDynamicValue(value);
        return this;
      }
      /**
       * <pre>
       * The dynamic value, in degrees. Note that when setting this value, the
       * static value is still required to be set to support older renderers that
       * only read the static value. If {&#64;code dynamicValue} has an invalid result,
       * the provided static value will be used instead.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat dynamic_value = 2;</code>
       */
      public Builder clearDynamicValue() {  copyOnWrite();
        instance.clearDynamicValue();
        return this;
      }

      /**
       * <pre>
       * The fixed value to reserve the space when used on a layout-changing data
       * bind.
       * </pre>
       *
       * <code>float value_for_layout = 3;</code>
       * @return Whether the valueForLayout field is set.
       */
      @java.lang.Override
      public boolean hasValueForLayout() {
        return instance.hasValueForLayout();
      }
      /**
       * <pre>
       * The fixed value to reserve the space when used on a layout-changing data
       * bind.
       * </pre>
       *
       * <code>float value_for_layout = 3;</code>
       * @return The valueForLayout.
       */
      @java.lang.Override
      public float getValueForLayout() {
        return instance.getValueForLayout();
      }
      /**
       * <pre>
       * The fixed value to reserve the space when used on a layout-changing data
       * bind.
       * </pre>
       *
       * <code>float value_for_layout = 3;</code>
       * @param value The valueForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setValueForLayout(float value) {
        copyOnWrite();
        instance.setValueForLayout(value);
        return this;
      }
      /**
       * <pre>
       * The fixed value to reserve the space when used on a layout-changing data
       * bind.
       * </pre>
       *
       * <code>float value_for_layout = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueForLayout() {
        copyOnWrite();
        instance.clearValueForLayout();
        return this;
      }

      /**
       * <pre>
       * Angular alignment of the actual content within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
       * @return The enum numeric value on the wire for angularAlignmentForLayout.
       */
      @java.lang.Override
      public int getAngularAlignmentForLayoutValue() {
        return instance.getAngularAlignmentForLayoutValue();
      }
      /**
       * <pre>
       * Angular alignment of the actual content within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
       * @param value The angularAlignmentForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setAngularAlignmentForLayoutValue(int value) {
        copyOnWrite();
        instance.setAngularAlignmentForLayoutValue(value);
        return this;
      }
      /**
       * <pre>
       * Angular alignment of the actual content within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
       * @return The angularAlignmentForLayout.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.AngularAlignment getAngularAlignmentForLayout() {
        return instance.getAngularAlignmentForLayout();
      }
      /**
       * <pre>
       * Angular alignment of the actual content within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
       * @param value The enum numeric value on the wire for angularAlignmentForLayout to set.
       * @return This builder for chaining.
       */
      public Builder setAngularAlignmentForLayout(androidx.wear.protolayout.proto.AlignmentProto.AngularAlignment value) {
        copyOnWrite();
        instance.setAngularAlignmentForLayout(value);
        return this;
      }
      /**
       * <pre>
       * Angular alignment of the actual content within the space reserved by
       * value_for_layout. If not specified, defaults to center alignment.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AngularAlignment angular_alignment_for_layout = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAngularAlignmentForLayout() {
        copyOnWrite();
        instance.clearAngularAlignmentForLayout();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.DegreesProp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.DegreesProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "optionalValue_",
              "optionalValueCase_",
              "optionalValueForLayout_",
              "optionalValueForLayoutCase_",
              "dynamicValue_",
              "angularAlignmentForLayout_",
            };
            java.lang.String info =
                "\u0000\u0004\u0002\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u00014\u0000\u0002\t" +
                "\u00034\u0001\u0004\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.DegreesProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.DegreesProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.DegreesProp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.DegreesProp)
    private static final androidx.wear.protolayout.proto.DimensionProto.DegreesProp DEFAULT_INSTANCE;
    static {
      DegreesProp defaultInstance = new DegreesProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DegreesProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.DegreesProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DegreesProp> PARSER;

    public static com.google.protobuf.Parser<DegreesProp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ExpandedDimensionPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ExpandedDimensionProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. This
     * will only affect the width of children of a Row or the height of children
     * of a Column. By default, all children have equal weight. Where applicable,
     * the width or height of the element is proportional to the sum of the
     * weights of its siblings.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     * @return Whether the layoutWeight field is set.
     */
    boolean hasLayoutWeight();
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. This
     * will only affect the width of children of a Row or the height of children
     * of a Column. By default, all children have equal weight. Where applicable,
     * the width or height of the element is proportional to the sum of the
     * weights of its siblings.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     * @return The layoutWeight.
     */
    androidx.wear.protolayout.proto.TypesProto.FloatProp getLayoutWeight();
  }
  /**
   * <pre>
   * A type for a dimension that fills all the space it can (i.e. MATCH_PARENT in
   * Android parlance)
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ExpandedDimensionProp}
   */
  public  static final class ExpandedDimensionProp extends
      com.google.protobuf.GeneratedMessageLite<
          ExpandedDimensionProp, ExpandedDimensionProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ExpandedDimensionProp)
      ExpandedDimensionPropOrBuilder {
    private ExpandedDimensionProp() {
    }
    public static final int LAYOUT_WEIGHT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.TypesProto.FloatProp layoutWeight_;
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. This
     * will only affect the width of children of a Row or the height of children
     * of a Column. By default, all children have equal weight. Where applicable,
     * the width or height of the element is proportional to the sum of the
     * weights of its siblings.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    @java.lang.Override
    public boolean hasLayoutWeight() {
      return layoutWeight_ != null;
    }
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. This
     * will only affect the width of children of a Row or the height of children
     * of a Column. By default, all children have equal weight. Where applicable,
     * the width or height of the element is proportional to the sum of the
     * weights of its siblings.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.FloatProp getLayoutWeight() {
      return layoutWeight_ == null ? androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance() : layoutWeight_;
    }
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. This
     * will only affect the width of children of a Row or the height of children
     * of a Column. By default, all children have equal weight. Where applicable,
     * the width or height of the element is proportional to the sum of the
     * weights of its siblings.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    private void setLayoutWeight(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  layoutWeight_ = value;

      }
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. This
     * will only affect the width of children of a Row or the height of children
     * of a Column. By default, all children have equal weight. Where applicable,
     * the width or height of the element is proportional to the sum of the
     * weights of its siblings.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeLayoutWeight(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  if (layoutWeight_ != null &&
          layoutWeight_ != androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance()) {
        layoutWeight_ =
          androidx.wear.protolayout.proto.TypesProto.FloatProp.newBuilder(layoutWeight_).mergeFrom(value).buildPartial();
      } else {
        layoutWeight_ = value;
      }

    }
    /**
     * <pre>
     * The layout weight (a dimensionless scalar value) for this element. This
     * will only affect the width of children of a Row or the height of children
     * of a Column. By default, all children have equal weight. Where applicable,
     * the width or height of the element is proportional to the sum of the
     * weights of its siblings.
     *
     * &lt;p&gt;Note that negative values are not supported and it can lead to
     * unexpected behaviour.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
     */
    private void clearLayoutWeight() {  layoutWeight_ = null;

    }

    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A type for a dimension that fills all the space it can (i.e. MATCH_PARENT in
     * Android parlance)
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ExpandedDimensionProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ExpandedDimensionProp)
        androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. This
       * will only affect the width of children of a Row or the height of children
       * of a Column. By default, all children have equal weight. Where applicable,
       * the width or height of the element is proportional to the sum of the
       * weights of its siblings.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      @java.lang.Override
      public boolean hasLayoutWeight() {
        return instance.hasLayoutWeight();
      }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. This
       * will only affect the width of children of a Row or the height of children
       * of a Column. By default, all children have equal weight. Where applicable,
       * the width or height of the element is proportional to the sum of the
       * weights of its siblings.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.FloatProp getLayoutWeight() {
        return instance.getLayoutWeight();
      }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. This
       * will only affect the width of children of a Row or the height of children
       * of a Column. By default, all children have equal weight. Where applicable,
       * the width or height of the element is proportional to the sum of the
       * weights of its siblings.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      public Builder setLayoutWeight(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.setLayoutWeight(value);
        return this;
        }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. This
       * will only affect the width of children of a Row or the height of children
       * of a Column. By default, all children have equal weight. Where applicable,
       * the width or height of the element is proportional to the sum of the
       * weights of its siblings.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      public Builder setLayoutWeight(
          androidx.wear.protolayout.proto.TypesProto.FloatProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLayoutWeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. This
       * will only affect the width of children of a Row or the height of children
       * of a Column. By default, all children have equal weight. Where applicable,
       * the width or height of the element is proportional to the sum of the
       * weights of its siblings.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      public Builder mergeLayoutWeight(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.mergeLayoutWeight(value);
        return this;
      }
      /**
       * <pre>
       * The layout weight (a dimensionless scalar value) for this element. This
       * will only affect the width of children of a Row or the height of children
       * of a Column. By default, all children have equal weight. Where applicable,
       * the width or height of the element is proportional to the sum of the
       * weights of its siblings.
       *
       * &lt;p&gt;Note that negative values are not supported and it can lead to
       * unexpected behaviour.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp layout_weight = 1;</code>
       */
      public Builder clearLayoutWeight() {  copyOnWrite();
        instance.clearLayoutWeight();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ExpandedDimensionProp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "layoutWeight_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ExpandedDimensionProp)
    private static final androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp DEFAULT_INSTANCE;
    static {
      ExpandedDimensionProp defaultInstance = new ExpandedDimensionProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ExpandedDimensionProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ExpandedDimensionProp> PARSER;

    public static com.google.protobuf.Parser<ExpandedDimensionProp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface WrappedDimensionPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.WrappedDimensionProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The minimum size of this dimension. If not set, then there is no minimum
     * size.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
     * @return Whether the minimumSize field is set.
     */
    boolean hasMinimumSize();
    /**
     * <pre>
     * The minimum size of this dimension. If not set, then there is no minimum
     * size.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
     * @return The minimumSize.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getMinimumSize();
  }
  /**
   * <pre>
   * A type for a dimension that sizes itself to the size of its children (i.e.
   * WRAP_CONTENT in Android parlance)
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.WrappedDimensionProp}
   */
  public  static final class WrappedDimensionProp extends
      com.google.protobuf.GeneratedMessageLite<
          WrappedDimensionProp, WrappedDimensionProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.WrappedDimensionProp)
      WrappedDimensionPropOrBuilder {
    private WrappedDimensionProp() {
    }
    public static final int MINIMUM_SIZE_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp minimumSize_;
    /**
     * <pre>
     * The minimum size of this dimension. If not set, then there is no minimum
     * size.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
     */
    @java.lang.Override
    public boolean hasMinimumSize() {
      return minimumSize_ != null;
    }
    /**
     * <pre>
     * The minimum size of this dimension. If not set, then there is no minimum
     * size.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getMinimumSize() {
      return minimumSize_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : minimumSize_;
    }
    /**
     * <pre>
     * The minimum size of this dimension. If not set, then there is no minimum
     * size.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
     */
    private void setMinimumSize(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  minimumSize_ = value;

      }
    /**
     * <pre>
     * The minimum size of this dimension. If not set, then there is no minimum
     * size.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMinimumSize(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (minimumSize_ != null &&
          minimumSize_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        minimumSize_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(minimumSize_).mergeFrom(value).buildPartial();
      } else {
        minimumSize_ = value;
      }

    }
    /**
     * <pre>
     * The minimum size of this dimension. If not set, then there is no minimum
     * size.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
     */
    private void clearMinimumSize() {  minimumSize_ = null;

    }

    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A type for a dimension that sizes itself to the size of its children (i.e.
     * WRAP_CONTENT in Android parlance)
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.WrappedDimensionProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.WrappedDimensionProp)
        androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The minimum size of this dimension. If not set, then there is no minimum
       * size.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
       */
      @java.lang.Override
      public boolean hasMinimumSize() {
        return instance.hasMinimumSize();
      }
      /**
       * <pre>
       * The minimum size of this dimension. If not set, then there is no minimum
       * size.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getMinimumSize() {
        return instance.getMinimumSize();
      }
      /**
       * <pre>
       * The minimum size of this dimension. If not set, then there is no minimum
       * size.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
       */
      public Builder setMinimumSize(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setMinimumSize(value);
        return this;
        }
      /**
       * <pre>
       * The minimum size of this dimension. If not set, then there is no minimum
       * size.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
       */
      public Builder setMinimumSize(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setMinimumSize(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The minimum size of this dimension. If not set, then there is no minimum
       * size.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
       */
      public Builder mergeMinimumSize(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeMinimumSize(value);
        return this;
      }
      /**
       * <pre>
       * The minimum size of this dimension. If not set, then there is no minimum
       * size.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_size = 1;</code>
       */
      public Builder clearMinimumSize() {  copyOnWrite();
        instance.clearMinimumSize();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.WrappedDimensionProp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "minimumSize_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.WrappedDimensionProp)
    private static final androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp DEFAULT_INSTANCE;
    static {
      WrappedDimensionProp defaultInstance = new WrappedDimensionProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        WrappedDimensionProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<WrappedDimensionProp> PARSER;

    public static com.google.protobuf.Parser<WrappedDimensionProp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ProportionalDimensionPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ProportionalDimensionProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The width to be used when calculating the aspect ratio to preserve.
     * </pre>
     *
     * <code>uint32 aspect_ratio_width = 1;</code>
     * @return The aspectRatioWidth.
     */
    int getAspectRatioWidth();

    /**
     * <pre>
     * The height to be used when calculating the aspect ratio ratio to preserve.
     * </pre>
     *
     * <code>uint32 aspect_ratio_height = 2;</code>
     * @return The aspectRatioHeight.
     */
    int getAspectRatioHeight();
  }
  /**
   * <pre>
   * A type for a dimension that scales itself proportionally to another dimension
   * such that the aspect ratio defined by the given width and height values is
   * preserved.
   *
   * Note that the width and height are unitless; only their ratio is relevant.
   * This allows for specifying an element's size using common ratios (e.g.
   * width=4, height=3), or to allow an element to be resized proportionally based
   * on the size of an underlying asset (e.g. an 800x600 image being added to a
   * smaller container and resized accordingly).
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ProportionalDimensionProp}
   */
  public  static final class ProportionalDimensionProp extends
      com.google.protobuf.GeneratedMessageLite<
          ProportionalDimensionProp, ProportionalDimensionProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ProportionalDimensionProp)
      ProportionalDimensionPropOrBuilder {
    private ProportionalDimensionProp() {
    }
    public static final int ASPECT_RATIO_WIDTH_FIELD_NUMBER = 1;
    private int aspectRatioWidth_;
    /**
     * <pre>
     * The width to be used when calculating the aspect ratio to preserve.
     * </pre>
     *
     * <code>uint32 aspect_ratio_width = 1;</code>
     * @return The aspectRatioWidth.
     */
    @java.lang.Override
    public int getAspectRatioWidth() {
      return aspectRatioWidth_;
    }
    /**
     * <pre>
     * The width to be used when calculating the aspect ratio to preserve.
     * </pre>
     *
     * <code>uint32 aspect_ratio_width = 1;</code>
     * @param value The aspectRatioWidth to set.
     */
    private void setAspectRatioWidth(int value) {
      
      aspectRatioWidth_ = value;
    }
    /**
     * <pre>
     * The width to be used when calculating the aspect ratio to preserve.
     * </pre>
     *
     * <code>uint32 aspect_ratio_width = 1;</code>
     */
    private void clearAspectRatioWidth() {

      aspectRatioWidth_ = 0;
    }

    public static final int ASPECT_RATIO_HEIGHT_FIELD_NUMBER = 2;
    private int aspectRatioHeight_;
    /**
     * <pre>
     * The height to be used when calculating the aspect ratio ratio to preserve.
     * </pre>
     *
     * <code>uint32 aspect_ratio_height = 2;</code>
     * @return The aspectRatioHeight.
     */
    @java.lang.Override
    public int getAspectRatioHeight() {
      return aspectRatioHeight_;
    }
    /**
     * <pre>
     * The height to be used when calculating the aspect ratio ratio to preserve.
     * </pre>
     *
     * <code>uint32 aspect_ratio_height = 2;</code>
     * @param value The aspectRatioHeight to set.
     */
    private void setAspectRatioHeight(int value) {
      
      aspectRatioHeight_ = value;
    }
    /**
     * <pre>
     * The height to be used when calculating the aspect ratio ratio to preserve.
     * </pre>
     *
     * <code>uint32 aspect_ratio_height = 2;</code>
     */
    private void clearAspectRatioHeight() {

      aspectRatioHeight_ = 0;
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A type for a dimension that scales itself proportionally to another dimension
     * such that the aspect ratio defined by the given width and height values is
     * preserved.
     *
     * Note that the width and height are unitless; only their ratio is relevant.
     * This allows for specifying an element's size using common ratios (e.g.
     * width=4, height=3), or to allow an element to be resized proportionally based
     * on the size of an underlying asset (e.g. an 800x600 image being added to a
     * smaller container and resized accordingly).
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ProportionalDimensionProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ProportionalDimensionProp)
        androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The width to be used when calculating the aspect ratio to preserve.
       * </pre>
       *
       * <code>uint32 aspect_ratio_width = 1;</code>
       * @return The aspectRatioWidth.
       */
      @java.lang.Override
      public int getAspectRatioWidth() {
        return instance.getAspectRatioWidth();
      }
      /**
       * <pre>
       * The width to be used when calculating the aspect ratio to preserve.
       * </pre>
       *
       * <code>uint32 aspect_ratio_width = 1;</code>
       * @param value The aspectRatioWidth to set.
       * @return This builder for chaining.
       */
      public Builder setAspectRatioWidth(int value) {
        copyOnWrite();
        instance.setAspectRatioWidth(value);
        return this;
      }
      /**
       * <pre>
       * The width to be used when calculating the aspect ratio to preserve.
       * </pre>
       *
       * <code>uint32 aspect_ratio_width = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAspectRatioWidth() {
        copyOnWrite();
        instance.clearAspectRatioWidth();
        return this;
      }

      /**
       * <pre>
       * The height to be used when calculating the aspect ratio ratio to preserve.
       * </pre>
       *
       * <code>uint32 aspect_ratio_height = 2;</code>
       * @return The aspectRatioHeight.
       */
      @java.lang.Override
      public int getAspectRatioHeight() {
        return instance.getAspectRatioHeight();
      }
      /**
       * <pre>
       * The height to be used when calculating the aspect ratio ratio to preserve.
       * </pre>
       *
       * <code>uint32 aspect_ratio_height = 2;</code>
       * @param value The aspectRatioHeight to set.
       * @return This builder for chaining.
       */
      public Builder setAspectRatioHeight(int value) {
        copyOnWrite();
        instance.setAspectRatioHeight(value);
        return this;
      }
      /**
       * <pre>
       * The height to be used when calculating the aspect ratio ratio to preserve.
       * </pre>
       *
       * <code>uint32 aspect_ratio_height = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAspectRatioHeight() {
        copyOnWrite();
        instance.clearAspectRatioHeight();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ProportionalDimensionProp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "aspectRatioWidth_",
              "aspectRatioHeight_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u000b\u0002\u000b" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ProportionalDimensionProp)
    private static final androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp DEFAULT_INSTANCE;
    static {
      ProportionalDimensionProp defaultInstance = new ProportionalDimensionProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ProportionalDimensionProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ProportionalDimensionProp> PARSER;

    public static com.google.protobuf.Parser<ProportionalDimensionProp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ContainerDimensionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ContainerDimension)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     * @return Whether the linearDimension field is set.
     */
    boolean hasLinearDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     * @return The linearDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension();

    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     * @return Whether the expandedDimension field is set.
     */
    boolean hasExpandedDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     * @return The expandedDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getExpandedDimension();

    /**
     * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
     * @return Whether the wrappedDimension field is set.
     */
    boolean hasWrappedDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
     * @return The wrappedDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp getWrappedDimension();

    public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dimension that can be applied to a container.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ContainerDimension}
   */
  public  static final class ContainerDimension extends
      com.google.protobuf.GeneratedMessageLite<
          ContainerDimension, ContainerDimension.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ContainerDimension)
      ContainerDimensionOrBuilder {
    private ContainerDimension() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      LINEAR_DIMENSION(1),
      EXPANDED_DIMENSION(2),
      WRAPPED_DIMENSION(3),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return LINEAR_DIMENSION;
          case 2: return EXPANDED_DIMENSION;
          case 3: return WRAPPED_DIMENSION;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int LINEAR_DIMENSION_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    @java.lang.Override
    public boolean hasLinearDimension() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void setLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void mergeLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void clearLinearDimension() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int EXPANDED_DIMENSION_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    @java.lang.Override
    public boolean hasExpandedDimension() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getExpandedDimension() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    private void setExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    private void mergeExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    private void clearExpandedDimension() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int WRAPPED_DIMENSION_FIELD_NUMBER = 3;
    /**
     * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
     */
    @java.lang.Override
    public boolean hasWrappedDimension() {
      return innerCase_ == 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp getWrappedDimension() {
      if (innerCase_ == 3) {
         return (androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
     */
    private void setWrappedDimension(androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
     */
    private void mergeWrappedDimension(androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp value) {
      value.getClass();
  if (innerCase_ == 3 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
     */
    private void clearWrappedDimension() {
      if (innerCase_ == 3) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dimension that can be applied to a container.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ContainerDimension}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ContainerDimension)
        androidx.wear.protolayout.proto.DimensionProto.ContainerDimensionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      @java.lang.Override
      public boolean hasLinearDimension() {
        return instance.hasLinearDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension() {
        return instance.getLinearDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder setLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setLinearDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder setLinearDimension(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLinearDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder mergeLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeLinearDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder clearLinearDimension() {
        copyOnWrite();
        instance.clearLinearDimension();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      @java.lang.Override
      public boolean hasExpandedDimension() {
        return instance.hasExpandedDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getExpandedDimension() {
        return instance.getExpandedDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder setExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
        copyOnWrite();
        instance.setExpandedDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder setExpandedDimension(
          androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.Builder builderForValue) {
        copyOnWrite();
        instance.setExpandedDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder mergeExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
        copyOnWrite();
        instance.mergeExpandedDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder clearExpandedDimension() {
        copyOnWrite();
        instance.clearExpandedDimension();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
       */
      @java.lang.Override
      public boolean hasWrappedDimension() {
        return instance.hasWrappedDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp getWrappedDimension() {
        return instance.getWrappedDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
       */
      public Builder setWrappedDimension(androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp value) {
        copyOnWrite();
        instance.setWrappedDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
       */
      public Builder setWrappedDimension(
          androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp.Builder builderForValue) {
        copyOnWrite();
        instance.setWrappedDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
       */
      public Builder mergeWrappedDimension(androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp value) {
        copyOnWrite();
        instance.mergeWrappedDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.WrappedDimensionProp wrapped_dimension = 3;</code>
       */
      public Builder clearWrappedDimension() {
        copyOnWrite();
        instance.clearWrappedDimension();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ContainerDimension)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.ContainerDimension();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.DimensionProto.DpProp.class,
              androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.class,
              androidx.wear.protolayout.proto.DimensionProto.WrappedDimensionProp.class,
            };
            java.lang.String info =
                "\u0000\u0003\u0001\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000\u0003<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.ContainerDimension> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.ContainerDimension>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ContainerDimension)
    private static final androidx.wear.protolayout.proto.DimensionProto.ContainerDimension DEFAULT_INSTANCE;
    static {
      ContainerDimension defaultInstance = new ContainerDimension();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ContainerDimension.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ContainerDimension> PARSER;

    public static com.google.protobuf.Parser<ContainerDimension> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ImageDimensionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ImageDimension)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     * @return Whether the linearDimension field is set.
     */
    boolean hasLinearDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     * @return The linearDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension();

    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     * @return Whether the expandedDimension field is set.
     */
    boolean hasExpandedDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     * @return The expandedDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getExpandedDimension();

    /**
     * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
     * @return Whether the proportionalDimension field is set.
     */
    boolean hasProportionalDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
     * @return The proportionalDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp getProportionalDimension();

    public androidx.wear.protolayout.proto.DimensionProto.ImageDimension.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dimension that can be applied to an image.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ImageDimension}
   */
  public  static final class ImageDimension extends
      com.google.protobuf.GeneratedMessageLite<
          ImageDimension, ImageDimension.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ImageDimension)
      ImageDimensionOrBuilder {
    private ImageDimension() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      LINEAR_DIMENSION(1),
      EXPANDED_DIMENSION(2),
      PROPORTIONAL_DIMENSION(3),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return LINEAR_DIMENSION;
          case 2: return EXPANDED_DIMENSION;
          case 3: return PROPORTIONAL_DIMENSION;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int LINEAR_DIMENSION_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    @java.lang.Override
    public boolean hasLinearDimension() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void setLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void mergeLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void clearLinearDimension() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int EXPANDED_DIMENSION_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    @java.lang.Override
    public boolean hasExpandedDimension() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getExpandedDimension() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    private void setExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    private void mergeExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    private void clearExpandedDimension() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int PROPORTIONAL_DIMENSION_FIELD_NUMBER = 3;
    /**
     * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
     */
    @java.lang.Override
    public boolean hasProportionalDimension() {
      return innerCase_ == 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp getProportionalDimension() {
      if (innerCase_ == 3) {
         return (androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
     */
    private void setProportionalDimension(androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
     */
    private void mergeProportionalDimension(androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp value) {
      value.getClass();
  if (innerCase_ == 3 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
     */
    private void clearProportionalDimension() {
      if (innerCase_ == 3) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.ImageDimension prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dimension that can be applied to an image.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ImageDimension}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.ImageDimension, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ImageDimension)
        androidx.wear.protolayout.proto.DimensionProto.ImageDimensionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.ImageDimension.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      @java.lang.Override
      public boolean hasLinearDimension() {
        return instance.hasLinearDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension() {
        return instance.getLinearDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder setLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setLinearDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder setLinearDimension(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLinearDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder mergeLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeLinearDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder clearLinearDimension() {
        copyOnWrite();
        instance.clearLinearDimension();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      @java.lang.Override
      public boolean hasExpandedDimension() {
        return instance.hasExpandedDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getExpandedDimension() {
        return instance.getExpandedDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder setExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
        copyOnWrite();
        instance.setExpandedDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder setExpandedDimension(
          androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.Builder builderForValue) {
        copyOnWrite();
        instance.setExpandedDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder mergeExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
        copyOnWrite();
        instance.mergeExpandedDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder clearExpandedDimension() {
        copyOnWrite();
        instance.clearExpandedDimension();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
       */
      @java.lang.Override
      public boolean hasProportionalDimension() {
        return instance.hasProportionalDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp getProportionalDimension() {
        return instance.getProportionalDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
       */
      public Builder setProportionalDimension(androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp value) {
        copyOnWrite();
        instance.setProportionalDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
       */
      public Builder setProportionalDimension(
          androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp.Builder builderForValue) {
        copyOnWrite();
        instance.setProportionalDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
       */
      public Builder mergeProportionalDimension(androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp value) {
        copyOnWrite();
        instance.mergeProportionalDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ProportionalDimensionProp proportional_dimension = 3;</code>
       */
      public Builder clearProportionalDimension() {
        copyOnWrite();
        instance.clearProportionalDimension();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ImageDimension)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.ImageDimension();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.DimensionProto.DpProp.class,
              androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.class,
              androidx.wear.protolayout.proto.DimensionProto.ProportionalDimensionProp.class,
            };
            java.lang.String info =
                "\u0000\u0003\u0001\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000\u0003<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.ImageDimension> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.ImageDimension.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.ImageDimension>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ImageDimension)
    private static final androidx.wear.protolayout.proto.DimensionProto.ImageDimension DEFAULT_INSTANCE;
    static {
      ImageDimension defaultInstance = new ImageDimension();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ImageDimension.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ImageDimension getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ImageDimension> PARSER;

    public static com.google.protobuf.Parser<ImageDimension> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SpacerDimensionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SpacerDimension)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     * @return Whether the linearDimension field is set.
     */
    boolean hasLinearDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     * @return The linearDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension();

    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     * @return Whether the expandedDimension field is set.
     */
    boolean hasExpandedDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     * @return The expandedDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getExpandedDimension();

    public androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dimension that can be applied to a spacer.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SpacerDimension}
   */
  public  static final class SpacerDimension extends
      com.google.protobuf.GeneratedMessageLite<
          SpacerDimension, SpacerDimension.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SpacerDimension)
      SpacerDimensionOrBuilder {
    private SpacerDimension() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      LINEAR_DIMENSION(1),
      EXPANDED_DIMENSION(2),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return LINEAR_DIMENSION;
          case 2: return EXPANDED_DIMENSION;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int LINEAR_DIMENSION_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    @java.lang.Override
    public boolean hasLinearDimension() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void setLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void mergeLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void clearLinearDimension() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int EXPANDED_DIMENSION_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    @java.lang.Override
    public boolean hasExpandedDimension() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getExpandedDimension() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    private void setExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    private void mergeExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
     */
    private void clearExpandedDimension() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.SpacerDimension prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dimension that can be applied to a spacer.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SpacerDimension}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.SpacerDimension, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SpacerDimension)
        androidx.wear.protolayout.proto.DimensionProto.SpacerDimensionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      @java.lang.Override
      public boolean hasLinearDimension() {
        return instance.hasLinearDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension() {
        return instance.getLinearDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder setLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setLinearDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder setLinearDimension(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLinearDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder mergeLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeLinearDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder clearLinearDimension() {
        copyOnWrite();
        instance.clearLinearDimension();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      @java.lang.Override
      public boolean hasExpandedDimension() {
        return instance.hasExpandedDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp getExpandedDimension() {
        return instance.getExpandedDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder setExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
        copyOnWrite();
        instance.setExpandedDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder setExpandedDimension(
          androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.Builder builderForValue) {
        copyOnWrite();
        instance.setExpandedDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder mergeExpandedDimension(androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp value) {
        copyOnWrite();
        instance.mergeExpandedDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ExpandedDimensionProp expanded_dimension = 2;</code>
       */
      public Builder clearExpandedDimension() {
        copyOnWrite();
        instance.clearExpandedDimension();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SpacerDimension)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.SpacerDimension();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.DimensionProto.DpProp.class,
              androidx.wear.protolayout.proto.DimensionProto.ExpandedDimensionProp.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.SpacerDimension> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.SpacerDimension>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.SpacerDimension)
    private static final androidx.wear.protolayout.proto.DimensionProto.SpacerDimension DEFAULT_INSTANCE;
    static {
      SpacerDimension defaultInstance = new SpacerDimension();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SpacerDimension.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.SpacerDimension getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SpacerDimension> PARSER;

    public static com.google.protobuf.Parser<SpacerDimension> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ExtensionDimensionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ExtensionDimension)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     * @return Whether the linearDimension field is set.
     */
    boolean hasLinearDimension();
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     * @return The linearDimension.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension();

    public androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dimension that can be applied to a ExtensionLayoutElement element.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ExtensionDimension}
   */
  public  static final class ExtensionDimension extends
      com.google.protobuf.GeneratedMessageLite<
          ExtensionDimension, ExtensionDimension.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ExtensionDimension)
      ExtensionDimensionOrBuilder {
    private ExtensionDimension() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      LINEAR_DIMENSION(1),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return LINEAR_DIMENSION;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int LINEAR_DIMENSION_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    @java.lang.Override
    public boolean hasLinearDimension() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void setLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void mergeLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
     */
    private void clearLinearDimension() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dimension that can be applied to a ExtensionLayoutElement element.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ExtensionDimension}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ExtensionDimension)
        androidx.wear.protolayout.proto.DimensionProto.ExtensionDimensionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      @java.lang.Override
      public boolean hasLinearDimension() {
        return instance.hasLinearDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getLinearDimension() {
        return instance.getLinearDimension();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder setLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setLinearDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder setLinearDimension(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLinearDimension(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder mergeLinearDimension(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeLinearDimension(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.DpProp linear_dimension = 1;</code>
       */
      public Builder clearLinearDimension() {
        copyOnWrite();
        instance.clearLinearDimension();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ExtensionDimension)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.DimensionProto.DpProp.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ExtensionDimension)
    private static final androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension DEFAULT_INSTANCE;
    static {
      ExtensionDimension defaultInstance = new ExtensionDimension();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ExtensionDimension.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.ExtensionDimension getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ExtensionDimension> PARSER;

    public static com.google.protobuf.Parser<ExtensionDimension> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BoundingBoxRatioOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.BoundingBoxRatio)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The ratio proportional to the bounding box width/height. value 0 represents the location at the
     * top / left of the bounding box and value 1 represents the location at the bottom / end of the
     * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
     * outside [0, 1] are also valid. Dynamic value is supported.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
     * @return Whether the ratio field is set.
     */
    boolean hasRatio();
    /**
     * <pre>
     * The ratio proportional to the bounding box width/height. value 0 represents the location at the
     * top / left of the bounding box and value 1 represents the location at the bottom / end of the
     * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
     * outside [0, 1] are also valid. Dynamic value is supported.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
     * @return The ratio.
     */
    androidx.wear.protolayout.proto.TypesProto.FloatProp getRatio();
  }
  /**
   * <pre>
   * Provide a position representation proportional to the bounding box width/height.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.BoundingBoxRatio}
   */
  public  static final class BoundingBoxRatio extends
      com.google.protobuf.GeneratedMessageLite<
          BoundingBoxRatio, BoundingBoxRatio.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.BoundingBoxRatio)
      BoundingBoxRatioOrBuilder {
    private BoundingBoxRatio() {
    }
    public static final int RATIO_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.TypesProto.FloatProp ratio_;
    /**
     * <pre>
     * The ratio proportional to the bounding box width/height. value 0 represents the location at the
     * top / left of the bounding box and value 1 represents the location at the bottom / end of the
     * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
     * outside [0, 1] are also valid. Dynamic value is supported.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
     */
    @java.lang.Override
    public boolean hasRatio() {
      return ratio_ != null;
    }
    /**
     * <pre>
     * The ratio proportional to the bounding box width/height. value 0 represents the location at the
     * top / left of the bounding box and value 1 represents the location at the bottom / end of the
     * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
     * outside [0, 1] are also valid. Dynamic value is supported.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.FloatProp getRatio() {
      return ratio_ == null ? androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance() : ratio_;
    }
    /**
     * <pre>
     * The ratio proportional to the bounding box width/height. value 0 represents the location at the
     * top / left of the bounding box and value 1 represents the location at the bottom / end of the
     * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
     * outside [0, 1] are also valid. Dynamic value is supported.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
     */
    private void setRatio(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  ratio_ = value;

      }
    /**
     * <pre>
     * The ratio proportional to the bounding box width/height. value 0 represents the location at the
     * top / left of the bounding box and value 1 represents the location at the bottom / end of the
     * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
     * outside [0, 1] are also valid. Dynamic value is supported.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRatio(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  if (ratio_ != null &&
          ratio_ != androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance()) {
        ratio_ =
          androidx.wear.protolayout.proto.TypesProto.FloatProp.newBuilder(ratio_).mergeFrom(value).buildPartial();
      } else {
        ratio_ = value;
      }

    }
    /**
     * <pre>
     * The ratio proportional to the bounding box width/height. value 0 represents the location at the
     * top / left of the bounding box and value 1 represents the location at the bottom / end of the
     * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
     * outside [0, 1] are also valid. Dynamic value is supported.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
     */
    private void clearRatio() {  ratio_ = null;

    }

    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Provide a position representation proportional to the bounding box width/height.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.BoundingBoxRatio}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.BoundingBoxRatio)
        androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatioOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The ratio proportional to the bounding box width/height. value 0 represents the location at the
       * top / left of the bounding box and value 1 represents the location at the bottom / end of the
       * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
       * outside [0, 1] are also valid. Dynamic value is supported.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
       */
      @java.lang.Override
      public boolean hasRatio() {
        return instance.hasRatio();
      }
      /**
       * <pre>
       * The ratio proportional to the bounding box width/height. value 0 represents the location at the
       * top / left of the bounding box and value 1 represents the location at the bottom / end of the
       * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
       * outside [0, 1] are also valid. Dynamic value is supported.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.FloatProp getRatio() {
        return instance.getRatio();
      }
      /**
       * <pre>
       * The ratio proportional to the bounding box width/height. value 0 represents the location at the
       * top / left of the bounding box and value 1 represents the location at the bottom / end of the
       * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
       * outside [0, 1] are also valid. Dynamic value is supported.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
       */
      public Builder setRatio(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.setRatio(value);
        return this;
        }
      /**
       * <pre>
       * The ratio proportional to the bounding box width/height. value 0 represents the location at the
       * top / left of the bounding box and value 1 represents the location at the bottom / end of the
       * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
       * outside [0, 1] are also valid. Dynamic value is supported.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
       */
      public Builder setRatio(
          androidx.wear.protolayout.proto.TypesProto.FloatProp.Builder builderForValue) {
        copyOnWrite();
        instance.setRatio(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The ratio proportional to the bounding box width/height. value 0 represents the location at the
       * top / left of the bounding box and value 1 represents the location at the bottom / end of the
       * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
       * outside [0, 1] are also valid. Dynamic value is supported.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
       */
      public Builder mergeRatio(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.mergeRatio(value);
        return this;
      }
      /**
       * <pre>
       * The ratio proportional to the bounding box width/height. value 0 represents the location at the
       * top / left of the bounding box and value 1 represents the location at the bottom / end of the
       * bounding box. Its default value 0.5 represents the middle of the bounding box. Values
       * outside [0, 1] are also valid. Dynamic value is supported.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp ratio = 1;</code>
       */
      public Builder clearRatio() {  copyOnWrite();
        instance.clearRatio();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.BoundingBoxRatio)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "ratio_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.BoundingBoxRatio)
    private static final androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio DEFAULT_INSTANCE;
    static {
      BoundingBoxRatio defaultInstance = new BoundingBoxRatio();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BoundingBoxRatio.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BoundingBoxRatio> PARSER;

    public static com.google.protobuf.Parser<BoundingBoxRatio> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface PivotDimensionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.PivotDimension)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Location in dp, with the default pivot (view center) as 0
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
     * @return Whether the offsetDp field is set.
     */
    boolean hasOffsetDp();
    /**
     * <pre>
     * Location in dp, with the default pivot (view center) as 0
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
     * @return The offsetDp.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getOffsetDp();

    /**
     * <pre>
     * Location proportion to bounding box, with the bounding box top / start as
     * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
     * @return Whether the locationRatio field is set.
     */
    boolean hasLocationRatio();
    /**
     * <pre>
     * Location proportion to bounding box, with the bounding box top / start as
     * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
     * @return The locationRatio.
     */
    androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio getLocationRatio();

    public androidx.wear.protolayout.proto.DimensionProto.PivotDimension.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dimension that can be applied to a pivot location for scale and rotate transformations.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.PivotDimension}
   */
  public  static final class PivotDimension extends
      com.google.protobuf.GeneratedMessageLite<
          PivotDimension, PivotDimension.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.PivotDimension)
      PivotDimensionOrBuilder {
    private PivotDimension() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      OFFSET_DP(1),
      LOCATION_RATIO(2),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return OFFSET_DP;
          case 2: return LOCATION_RATIO;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int OFFSET_DP_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Location in dp, with the default pivot (view center) as 0
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
     */
    @java.lang.Override
    public boolean hasOffsetDp() {
      return innerCase_ == 1;
    }
    /**
     * <pre>
     * Location in dp, with the default pivot (view center) as 0
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getOffsetDp() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance();
    }
    /**
     * <pre>
     * Location in dp, with the default pivot (view center) as 0
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
     */
    private void setOffsetDp(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <pre>
     * Location in dp, with the default pivot (view center) as 0
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
     */
    private void mergeOffsetDp(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder((androidx.wear.protolayout.proto.DimensionProto.DpProp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <pre>
     * Location in dp, with the default pivot (view center) as 0
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
     */
    private void clearOffsetDp() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int LOCATION_RATIO_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Location proportion to bounding box, with the bounding box top / start as
     * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
     */
    @java.lang.Override
    public boolean hasLocationRatio() {
      return innerCase_ == 2;
    }
    /**
     * <pre>
     * Location proportion to bounding box, with the bounding box top / start as
     * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio getLocationRatio() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio) inner_;
      }
      return androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio.getDefaultInstance();
    }
    /**
     * <pre>
     * Location proportion to bounding box, with the bounding box top / start as
     * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
     */
    private void setLocationRatio(androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <pre>
     * Location proportion to bounding box, with the bounding box top / start as
     * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
     */
    private void mergeLocationRatio(androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio.newBuilder((androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <pre>
     * Location proportion to bounding box, with the bounding box top / start as
     * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
     */
    private void clearLocationRatio() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.DimensionProto.PivotDimension prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dimension that can be applied to a pivot location for scale and rotate transformations.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.PivotDimension}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.DimensionProto.PivotDimension, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.PivotDimension)
        androidx.wear.protolayout.proto.DimensionProto.PivotDimensionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.DimensionProto.PivotDimension.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <pre>
       * Location in dp, with the default pivot (view center) as 0
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
       */
      @java.lang.Override
      public boolean hasOffsetDp() {
        return instance.hasOffsetDp();
      }
      /**
       * <pre>
       * Location in dp, with the default pivot (view center) as 0
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getOffsetDp() {
        return instance.getOffsetDp();
      }
      /**
       * <pre>
       * Location in dp, with the default pivot (view center) as 0
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
       */
      public Builder setOffsetDp(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setOffsetDp(value);
        return this;
      }
      /**
       * <pre>
       * Location in dp, with the default pivot (view center) as 0
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
       */
      public Builder setOffsetDp(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setOffsetDp(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Location in dp, with the default pivot (view center) as 0
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
       */
      public Builder mergeOffsetDp(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeOffsetDp(value);
        return this;
      }
      /**
       * <pre>
       * Location in dp, with the default pivot (view center) as 0
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp offset_dp = 1;</code>
       */
      public Builder clearOffsetDp() {
        copyOnWrite();
        instance.clearOffsetDp();
        return this;
      }

      /**
       * <pre>
       * Location proportion to bounding box, with the bounding box top / start as
       * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
       */
      @java.lang.Override
      public boolean hasLocationRatio() {
        return instance.hasLocationRatio();
      }
      /**
       * <pre>
       * Location proportion to bounding box, with the bounding box top / start as
       * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio getLocationRatio() {
        return instance.getLocationRatio();
      }
      /**
       * <pre>
       * Location proportion to bounding box, with the bounding box top / start as
       * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
       */
      public Builder setLocationRatio(androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio value) {
        copyOnWrite();
        instance.setLocationRatio(value);
        return this;
      }
      /**
       * <pre>
       * Location proportion to bounding box, with the bounding box top / start as
       * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
       */
      public Builder setLocationRatio(
          androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio.Builder builderForValue) {
        copyOnWrite();
        instance.setLocationRatio(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Location proportion to bounding box, with the bounding box top / start as
       * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
       */
      public Builder mergeLocationRatio(androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio value) {
        copyOnWrite();
        instance.mergeLocationRatio(value);
        return this;
      }
      /**
       * <pre>
       * Location proportion to bounding box, with the bounding box top / start as
       * 0 and bottom / end as 1. Values outside [0, 1] are also valid.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoundingBoxRatio location_ratio = 2;</code>
       */
      public Builder clearLocationRatio() {
        copyOnWrite();
        instance.clearLocationRatio();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.PivotDimension)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.DimensionProto.PivotDimension();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.DimensionProto.DpProp.class,
              androidx.wear.protolayout.proto.DimensionProto.BoundingBoxRatio.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.DimensionProto.PivotDimension> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.DimensionProto.PivotDimension.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.DimensionProto.PivotDimension>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.PivotDimension)
    private static final androidx.wear.protolayout.proto.DimensionProto.PivotDimension DEFAULT_INSTANCE;
    static {
      PivotDimension defaultInstance = new PivotDimension();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PivotDimension.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.DimensionProto.PivotDimension getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<PivotDimension> PARSER;

    public static com.google.protobuf.Parser<PivotDimension> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}