diff --git a/README.md b/README.md index 3a4966def..ebf0a75f7 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Инструкция по сборке: Требуется: - 1) Android Studio Electric Eel (2022.1.1) или выше. Kotlin 1.8.* + 1) Android Studio Flamingo (2022.2.1) или выше. Kotlin 1.8.* 2) Android SDK 33 3) Android NDK 25.1.8937393 diff --git a/build.gradle b/build.gradle index b5f0c63e3..0362227e0 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { ext.appCompileSDK = 33 ext.appBuildTools = "33.0.1" - ext.appNdk = "25.1.8937393" + ext.appNdk = "25.2.9519653" ext.appMinSDK = is_developer_build ? 29 : 21 ext.appTargetSDK = 31 ext.appFenrirVersionCode = 999 diff --git a/compiled_native/libfenrir-release.aar b/compiled_native/libfenrir-release.aar deleted file mode 100644 index 22de22720..000000000 Binary files a/compiled_native/libfenrir-release.aar and /dev/null differ diff --git a/libfenrir/ffmpeg.sh b/libfenrir/ffmpeg.sh index e99dcaea2..73cfa2712 100644 --- a/libfenrir/ffmpeg.sh +++ b/libfenrir/ffmpeg.sh @@ -8,7 +8,7 @@ rm -r -f ".git" ENABLED_DECODERS=(gif mpeg4 h264 hevc mp3 aac ac3 eac3 flac vorbis alac) HOST_PLATFORM="linux-x86_64" -NDK_PATH="/home/umerov/Android/Sdk/ndk/25.1.8937393" +NDK_PATH="/home/umerov/Android/Sdk/ndk/25.2.9519653" echo 'Please input platform version (Example 21 - Android 5.0): ' read ANDROID_PLATFORM diff --git a/libfenrir/src/main/jni/compress/zstd/compress/zstd_compress.c b/libfenrir/src/main/jni/compress/zstd/compress/zstd_compress.c index 579044dc9..de2db8221 100644 --- a/libfenrir/src/main/jni/compress/zstd/compress/zstd_compress.c +++ b/libfenrir/src/main/jni/compress/zstd/compress/zstd_compress.c @@ -277,14 +277,8 @@ static ZSTD_paramSwitch_e ZSTD_resolveEnableLdm(ZSTD_paramSwitch_e mode, return (cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 27) ? ZSTD_ps_enable : ZSTD_ps_disable; } -/* Enables validation for external sequences in debug builds. */ static int ZSTD_resolveExternalSequenceValidation(int mode) { -#if defined(DEBUGLEVEL) && (DEBUGLEVEL>=2) - (void)mode; - return 1; -#else return mode; -#endif } /* Resolves maxBlockSize to the default if no value is present. */ @@ -3050,6 +3044,23 @@ static size_t ZSTD_postProcessExternalMatchFinderResult( } } +/* ZSTD_fastSequenceLengthSum() : + * Returns sum(litLen) + sum(matchLen) + lastLits for *seqBuf*. + * Similar to another function in zstd_compress.c (determine_blockSize), + * except it doesn't check for a block delimiter to end summation. + * Removing the early exit allows the compiler to auto-vectorize (https://godbolt.org/z/cY1cajz9P). + * This function can be deleted and replaced by determine_blockSize after we resolve issue #3456. */ +static size_t ZSTD_fastSequenceLengthSum(ZSTD_Sequence const* seqBuf, size_t seqBufSize) { + size_t matchLenSum, litLenSum, i; + matchLenSum = 0; + litLenSum = 0; + for (i = 0; i < seqBufSize; i++) { + litLenSum += seqBuf[i].litLength; + matchLenSum += seqBuf[i].matchLength; + } + return litLenSum + matchLenSum; +} + typedef enum { ZSTDbss_compress, ZSTDbss_noCompress } ZSTD_buildSeqStore_e; static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize) @@ -3167,8 +3178,15 @@ static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize) /* Return early if there is no error, since we don't need to worry about last literals */ if (!ZSTD_isError(nbPostProcessedSeqs)) { ZSTD_sequencePosition seqPos = {0,0,0}; - ZSTD_copySequencesToSeqStoreExplicitBlockDelim( - zc, &seqPos, zc->externalMatchCtx.seqBuffer, nbPostProcessedSeqs, src, srcSize + size_t const seqLenSum = ZSTD_fastSequenceLengthSum(zc->externalMatchCtx.seqBuffer, nbPostProcessedSeqs); + RETURN_ERROR_IF(seqLenSum > srcSize, externalSequences_invalid, "External sequences imply too large a block!"); + FORWARD_IF_ERROR( + ZSTD_copySequencesToSeqStoreExplicitBlockDelim( + zc, &seqPos, + zc->externalMatchCtx.seqBuffer, nbPostProcessedSeqs, + src, srcSize + ), + "Failed to copy external sequences to seqStore!" ); ms->ldmSeqStore = NULL; DEBUGLOG(5, "Copied %lu sequences from external matchfinder to internal seqStore.", (unsigned long)nbExternalSeqs); @@ -6286,7 +6304,7 @@ ZSTD_copySequencesToSeqStoreExplicitBlockDelim(ZSTD_CCtx* cctx, ip += inSeqs[idx].litLength; seqPos->posInSrc += inSeqs[idx].litLength; } - RETURN_ERROR_IF(ip != iend, corruption_detected, "Blocksize doesn't agree with block delimiter!"); + RETURN_ERROR_IF(ip != iend, externalSequences_invalid, "Blocksize doesn't agree with block delimiter!"); seqPos->idx = idx+1; return 0; } @@ -6444,13 +6462,13 @@ blockSize_explicitDelimiter(const ZSTD_Sequence* inSeqs, size_t inSeqsSize, ZSTD blockSize += inSeqs[spos].litLength + inSeqs[spos].matchLength; if (end) { if (inSeqs[spos].matchLength != 0) - RETURN_ERROR(corruption_detected, "delimiter format error : both matchlength and offset must be == 0"); + RETURN_ERROR(externalSequences_invalid, "delimiter format error : both matchlength and offset must be == 0"); break; } spos++; } if (!end) - RETURN_ERROR(corruption_detected, "Reached end of sequences without finding a block delimiter"); + RETURN_ERROR(externalSequences_invalid, "Reached end of sequences without finding a block delimiter"); return blockSize; } @@ -6471,9 +6489,9 @@ static size_t determine_blockSize(ZSTD_sequenceFormat_e mode, { size_t const explicitBlockSize = blockSize_explicitDelimiter(inSeqs, inSeqsSize, seqPos); FORWARD_IF_ERROR(explicitBlockSize, "Error while determining block size with explicit delimiters"); if (explicitBlockSize > blockSize) - RETURN_ERROR(corruption_detected, "sequences incorrectly define a too large block"); + RETURN_ERROR(externalSequences_invalid, "sequences incorrectly define a too large block"); if (explicitBlockSize > remaining) - RETURN_ERROR(srcSize_wrong, "sequences define a frame longer than source"); + RETURN_ERROR(externalSequences_invalid, "sequences define a frame longer than source"); return explicitBlockSize; } } diff --git a/material/java/com/google/android/material/appbar/MaterialToolbar.java b/material/java/com/google/android/material/appbar/MaterialToolbar.java index fe102714b..2e919f5aa 100644 --- a/material/java/com/google/android/material/appbar/MaterialToolbar.java +++ b/material/java/com/google/android/material/appbar/MaterialToolbar.java @@ -28,9 +28,11 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Build.VERSION_CODES; +import androidx.appcompat.view.menu.MenuBuilder; import androidx.appcompat.widget.Toolbar; import android.util.AttributeSet; import android.util.Pair; +import android.view.Menu; import android.view.View; import android.view.View.MeasureSpec; import android.widget.ImageView; @@ -127,6 +129,19 @@ public MaterialToolbar(@NonNull Context context, @Nullable AttributeSet attrs, i initBackground(context); } + @Override + public void inflateMenu(int i) { + // Pause dispatching item changes during inflation to improve performance. + Menu menu = getMenu(); + if (menu instanceof MenuBuilder) { + ((MenuBuilder) menu).stopDispatchingItemsChanged(); + } + super.inflateMenu(i); + if (menu instanceof MenuBuilder) { + ((MenuBuilder) menu).startDispatchingItemsChanged(); + } + } + @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); diff --git a/material/java/com/google/android/material/appbar/res/animator-v21/m3_appbar_state_list_animator.xml b/material/java/com/google/android/material/appbar/res/animator-v21/m3_appbar_state_list_animator.xml new file mode 100644 index 000000000..b1805e1e4 --- /dev/null +++ b/material/java/com/google/android/material/appbar/res/animator-v21/m3_appbar_state_list_animator.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + diff --git a/material/java/com/google/android/material/appbar/res/values/dimens.xml b/material/java/com/google/android/material/appbar/res/values/dimens.xml index d677f62e5..4184e1d68 100644 --- a/material/java/com/google/android/material/appbar/res/values/dimens.xml +++ b/material/java/com/google/android/material/appbar/res/values/dimens.xml @@ -20,9 +20,9 @@ 56dp - 64dp - 112dp - 152dp + @dimen/m3_comp_top_app_bar_small_container_height + @dimen/m3_comp_top_app_bar_medium_container_height + @dimen/m3_comp_top_app_bar_large_container_height 16dp 16dp diff --git a/material/java/com/google/android/material/appbar/res/values/styles.xml b/material/java/com/google/android/material/appbar/res/values/styles.xml index fdcf809f2..adb807f87 100644 --- a/material/java/com/google/android/material/appbar/res/values/styles.xml +++ b/material/java/com/google/android/material/appbar/res/values/styles.xml @@ -149,6 +149,10 @@ @@ -214,12 +222,12 @@ colors for text and iconography). Use with MaterialToolbar to get navigation icon and menu icon coloring. --> + + + + + + + + ?attr/colorSurface + 64dp + @dimen/m3_sys_elevation_level0 + + ?attr/colorOnSurface + + ?attr/colorOnSurfaceVariant + + ?attr/textAppearanceTitleLarge + ?attr/colorOnSurface + + @dimen/m3_sys_elevation_level2 + + + + 112dp + + ?attr/textAppearanceHeadlineSmall + ?attr/colorOnSurface + + + + 152dp + + ?attr/textAppearanceHeadlineMedium + ?attr/colorOnSurface + + diff --git a/material/java/com/google/android/material/badge/BadgeDrawable.java b/material/java/com/google/android/material/badge/BadgeDrawable.java index 51871c7b5..067da172d 100644 --- a/material/java/com/google/android/material/badge/BadgeDrawable.java +++ b/material/java/com/google/android/material/badge/BadgeDrawable.java @@ -155,6 +155,27 @@ public class BadgeDrawable extends Drawable implements TextDrawableDelegate { */ static final String DEFAULT_EXCEED_MAX_BADGE_NUMBER_SUFFIX = "+"; + /** + * The badge offset begins at the edge of the anchor. + */ + static final int OFFSET_ALIGNMENT_MODE_EDGE = 0; + + /** + * Follows the legacy offset alignment behavior. The horizontal offset begins at a variable + * permanent inset from the edge of the anchor, and the vertical offset begins at the center + * of the badge aligned with the edge of the anchor. + */ + static final int OFFSET_ALIGNMENT_MODE_LEGACY = 1; + + /** + * Determines where the badge offsets begin in reference to the anchor. + * + * @hide + */ + @IntDef({OFFSET_ALIGNMENT_MODE_EDGE, OFFSET_ALIGNMENT_MODE_LEGACY}) + @Retention(RetentionPolicy.SOURCE) + @interface OffsetAlignmentMode {} + @NonNull private final WeakReference contextRef; @NonNull private final MaterialShapeDrawable shapeDrawable; @NonNull private final TextDrawableHelper textDrawableHelper; @@ -168,6 +189,8 @@ public class BadgeDrawable extends Drawable implements TextDrawableDelegate { private float cornerRadius; private float halfBadgeWidth; private float halfBadgeHeight; + private final int horizontalInset; + private final int horizontalInsetWithText; // Need to keep a local reference in order to support updating badge gravity. @Nullable private WeakReference anchorViewRef; @@ -259,6 +282,16 @@ private BadgeDrawable( this.state = new BadgeState(context, badgeResId, defStyleAttr, defStyleRes, savedState); + horizontalInset = + context + .getResources() + .getDimensionPixelSize(R.dimen.mtrl_badge_horizontal_edge_offset); + + horizontalInsetWithText = + context + .getResources() + .getDimensionPixelSize(R.dimen.mtrl_badge_text_horizontal_edge_offset); + restoreState(); } @@ -878,7 +911,7 @@ private void updateCenterAndBounds() { viewGroup.offsetDescendantRectToMyCoords(anchorView, anchorRect); } - calculateCenterAndBounds(context, anchorRect, anchorView); + calculateCenterAndBounds(anchorRect, anchorView); updateBadgeBounds(badgeBounds, badgeCenterX, badgeCenterY, halfBadgeWidth, halfBadgeHeight); @@ -891,18 +924,38 @@ private void updateCenterAndBounds() { private int getTotalVerticalOffsetForState() { int vOffset = hasNumber() ? state.getVerticalOffsetWithText() : state.getVerticalOffsetWithoutText(); + // If the offset alignment mode is at the edge of the anchor, we want to move the badge + // so that its origin is at the edge. + if (state.offsetAlignmentMode == OFFSET_ALIGNMENT_MODE_EDGE) { + vOffset -= Math.round(halfBadgeHeight); + } return vOffset + state.getAdditionalVerticalOffset(); } private int getTotalHorizontalOffsetForState() { int hOffset = hasNumber() ? state.getHorizontalOffsetWithText() : state.getHorizontalOffsetWithoutText(); + // If the offset alignment mode is legacy, then we want to add the legacy inset to the offset. + if (state.offsetAlignmentMode == OFFSET_ALIGNMENT_MODE_LEGACY) { + hOffset += hasNumber() ? horizontalInsetWithText : horizontalInset; + } return hOffset + state.getAdditionalHorizontalOffset(); } - private void calculateCenterAndBounds( - @NonNull Context context, @NonNull Rect anchorRect, @NonNull View anchorView) { + private void calculateCenterAndBounds(@NonNull Rect anchorRect, @NonNull View anchorView) { + if (getNumber() <= MAX_CIRCULAR_BADGE_NUMBER_COUNT) { + cornerRadius = !hasNumber() ? state.badgeRadius : state.badgeWithTextRadius; + halfBadgeHeight = cornerRadius; + halfBadgeWidth = cornerRadius; + } else { + cornerRadius = state.badgeWithTextRadius; + halfBadgeHeight = cornerRadius; + String badgeText = getBadgeText(); + halfBadgeWidth = textDrawableHelper.getTextWidth(badgeText) / 2f + state.badgeWidePadding; + } + int totalVerticalOffset = getTotalVerticalOffsetForState(); + switch (state.getBadgeGravity()) { case BOTTOM_END: case BOTTOM_START: @@ -915,43 +968,24 @@ private void calculateCenterAndBounds( break; } - if (getNumber() <= MAX_CIRCULAR_BADGE_NUMBER_COUNT) { - cornerRadius = !hasNumber() ? state.badgeRadius : state.badgeWithTextRadius; - halfBadgeHeight = cornerRadius; - halfBadgeWidth = cornerRadius; - } else { - cornerRadius = state.badgeWithTextRadius; - halfBadgeHeight = cornerRadius; - String badgeText = getBadgeText(); - halfBadgeWidth = textDrawableHelper.getTextWidth(badgeText) / 2f + state.badgeWidePadding; - } - - int inset = - context - .getResources() - .getDimensionPixelSize( - hasNumber() - ? R.dimen.mtrl_badge_text_horizontal_edge_offset - : R.dimen.mtrl_badge_horizontal_edge_offset); - int totalHorizontalOffset = getTotalHorizontalOffsetForState(); - // Update the centerX based on the badge width and 'inset' from start or end boundary of anchor. + // Update the centerX based on the badge width and offset from start or end boundary of anchor. switch (state.getBadgeGravity()) { case BOTTOM_START: case TOP_START: badgeCenterX = ViewCompat.getLayoutDirection(anchorView) == View.LAYOUT_DIRECTION_LTR - ? anchorRect.left - halfBadgeWidth + inset + totalHorizontalOffset - : anchorRect.right + halfBadgeWidth - inset - totalHorizontalOffset; + ? anchorRect.left - halfBadgeWidth + totalHorizontalOffset + : anchorRect.right + halfBadgeWidth - totalHorizontalOffset; break; case BOTTOM_END: case TOP_END: default: badgeCenterX = ViewCompat.getLayoutDirection(anchorView) == View.LAYOUT_DIRECTION_LTR - ? anchorRect.right + halfBadgeWidth - inset - totalHorizontalOffset - : anchorRect.left - halfBadgeWidth + inset + totalHorizontalOffset; + ? anchorRect.right + halfBadgeWidth - totalHorizontalOffset + : anchorRect.left - halfBadgeWidth + totalHorizontalOffset; break; } } diff --git a/material/java/com/google/android/material/badge/BadgeState.java b/material/java/com/google/android/material/badge/BadgeState.java index 4a5ed5e0c..d63f4b2d0 100644 --- a/material/java/com/google/android/material/badge/BadgeState.java +++ b/material/java/com/google/android/material/badge/BadgeState.java @@ -19,6 +19,7 @@ import com.google.android.material.R; import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP; +import static com.google.android.material.badge.BadgeDrawable.OFFSET_ALIGNMENT_MODE_LEGACY; import static com.google.android.material.badge.BadgeDrawable.TOP_END; import android.content.Context; @@ -41,6 +42,7 @@ import androidx.annotation.StyleableRes; import androidx.annotation.XmlRes; import com.google.android.material.badge.BadgeDrawable.BadgeGravity; +import com.google.android.material.badge.BadgeDrawable.OffsetAlignmentMode; import com.google.android.material.drawable.DrawableUtils; import com.google.android.material.internal.ThemeEnforcement; import com.google.android.material.resources.MaterialResources; @@ -71,6 +73,9 @@ public final class BadgeState { final float badgeWithTextRadius; final float badgeWidePadding; + @OffsetAlignmentMode + int offsetAlignmentMode; + BadgeState( Context context, @XmlRes int badgeResId, @@ -98,6 +103,8 @@ public final class BadgeState { a.getDimensionPixelSize( R.styleable.Badge_badgeWithTextRadius, res.getDimensionPixelSize(R.dimen.mtrl_badge_with_text_radius)); + offsetAlignmentMode = + a.getInt(R.styleable.Badge_offsetAlignmentMode, OFFSET_ALIGNMENT_MODE_LEGACY); currentState.alpha = storedState.alpha == State.NOT_SET ? 255 : storedState.alpha; diff --git a/material/java/com/google/android/material/badge/res-public/values/public.xml b/material/java/com/google/android/material/badge/res-public/values/public.xml index 4dc0a2b90..decd68a3b 100644 --- a/material/java/com/google/android/material/badge/res-public/values/public.xml +++ b/material/java/com/google/android/material/badge/res-public/values/public.xml @@ -23,6 +23,7 @@ + diff --git a/material/java/com/google/android/material/badge/res/values/attrs.xml b/material/java/com/google/android/material/badge/res/values/attrs.xml index 829479857..197a313a4 100644 --- a/material/java/com/google/android/material/badge/res/values/attrs.xml +++ b/material/java/com/google/android/material/badge/res/values/attrs.xml @@ -42,6 +42,16 @@ + + + + + + + + diff --git a/material/java/com/google/android/material/badge/res/values/styles.xml b/material/java/com/google/android/material/badge/res/values/styles.xml index af17f8315..63aa42df4 100644 --- a/material/java/com/google/android/material/badge/res/values/styles.xml +++ b/material/java/com/google/android/material/badge/res/values/styles.xml @@ -23,6 +23,7 @@ ?attr/colorError @integer/mtrl_badge_max_character_count TOP_END + legacy diff --git a/material/java/com/google/android/material/bottomnavigation/res/values/tokens.xml b/material/java/com/google/android/material/bottomnavigation/res/values/tokens.xml new file mode 100644 index 000000000..d63a90ae7 --- /dev/null +++ b/material/java/com/google/android/material/bottomnavigation/res/values/tokens.xml @@ -0,0 +1,63 @@ + + + + + + + + + + ?attr/colorSurface + 80dp + @dimen/m3_sys_elevation_level2 + + ?attr/textAppearanceLabelMedium + ?attr/colorOnSurface + ?attr/colorOnSurfaceVariant + ?attr/colorOnSurface + ?attr/colorOnSurface + ?attr/colorOnSurface + ?attr/colorOnSurface + ?attr/colorOnSurface + ?attr/colorOnSurface + + 24dp + ?attr/colorOnSecondaryContainer + ?attr/colorOnSurfaceVariant + ?attr/colorOnSecondaryContainer + ?attr/colorOnSurface + ?attr/colorOnSecondaryContainer + ?attr/colorOnSurface + ?attr/colorOnSecondaryContainer + ?attr/colorOnSurface + + ?attr/colorSecondaryContainer + 32dp + 64dp + diff --git a/material/java/com/google/android/material/sidesheet/res/values/tokens.xml b/material/java/com/google/android/material/sidesheet/res/values/tokens.xml index a2aa15c1d..80c2108c4 100644 --- a/material/java/com/google/android/material/sidesheet/res/values/tokens.xml +++ b/material/java/com/google/android/material/sidesheet/res/values/tokens.xml @@ -15,12 +15,15 @@ ~ limitations under the License. --> - + + + ?attr/shapeAppearanceCornerLarge ?attr/colorSurface @dimen/m3_sys_elevation_level1 @dimen/m3_sys_elevation_level0 diff --git a/material/java/com/google/android/material/slider/res/values/tokens.xml b/material/java/com/google/android/material/slider/res/values/tokens.xml index 444b45d5d..86723e603 100644 --- a/material/java/com/google/android/material/slider/res/values/tokens.xml +++ b/material/java/com/google/android/material/slider/res/values/tokens.xml @@ -15,7 +15,7 @@ ~ limitations under the License. --> - + diff --git a/material/java/com/google/android/material/snackbar/res/values/tokens.xml b/material/java/com/google/android/material/snackbar/res/values/tokens.xml index d8f463361..b19c01377 100644 --- a/material/java/com/google/android/material/snackbar/res/values/tokens.xml +++ b/material/java/com/google/android/material/snackbar/res/values/tokens.xml @@ -15,7 +15,7 @@ ~ limitations under the License. --> - + diff --git a/material/java/com/google/android/material/tabs/res/values/tokens.xml b/material/java/com/google/android/material/tabs/res/values/tokens.xml index 6742e1f9c..b962f2beb 100644 --- a/material/java/com/google/android/material/tabs/res/values/tokens.xml +++ b/material/java/com/google/android/material/tabs/res/values/tokens.xml @@ -15,7 +15,7 @@ ~ limitations under the License. --> - + diff --git a/material/java/com/google/android/material/timepicker/MaterialTimePicker.java b/material/java/com/google/android/material/timepicker/MaterialTimePicker.java index 6f9b2a3fd..daaa6a8fc 100644 --- a/material/java/com/google/android/material/timepicker/MaterialTimePicker.java +++ b/material/java/com/google/android/material/timepicker/MaterialTimePicker.java @@ -327,9 +327,15 @@ public void onClick(View v) { @Override public void onViewCreated(@NonNull View view, @Nullable Bundle bundle) { super.onViewCreated(view, bundle); + // TODO(b/246354286): Investigate issue with keyboard not showing on Android 12+ if (activePresenter instanceof TimePickerTextInputPresenter) { - // TODO(b/246354286): Investigate issue with keyboard not showing on Android 12+ - view.postDelayed(() -> ((TimePickerTextInputPresenter) activePresenter).resetChecked(), 100); + view.postDelayed( + () -> { + if (activePresenter instanceof TimePickerTextInputPresenter) { + ((TimePickerTextInputPresenter) activePresenter).resetChecked(); + } + }, + 100); } } diff --git a/material/java/com/google/android/material/timepicker/res/values/tokens.xml b/material/java/com/google/android/material/timepicker/res/values/tokens.xml index 059850bba..17aeda0f9 100644 --- a/material/java/com/google/android/material/timepicker/res/values/tokens.xml +++ b/material/java/com/google/android/material/timepicker/res/values/tokens.xml @@ -15,7 +15,7 @@ ~ limitations under the License. --> - + diff --git a/material/java/com/google/android/material/tooltip/res/values/tokens.xml b/material/java/com/google/android/material/tooltip/res/values/tokens.xml index 391acbce1..33648b52c 100644 --- a/material/java/com/google/android/material/tooltip/res/values/tokens.xml +++ b/material/java/com/google/android/material/tooltip/res/values/tokens.xml @@ -15,7 +15,7 @@ ~ limitations under the License. --> - + diff --git a/material/java/com/google/android/material/typography/res/values-v21/tokens.xml b/material/java/com/google/android/material/typography/res/values-v21/tokens.xml index 8f9ff5c01..7a8504b92 100644 --- a/material/java/com/google/android/material/typography/res/values-v21/tokens.xml +++ b/material/java/com/google/android/material/typography/res/values-v21/tokens.xml @@ -15,7 +15,7 @@ ~ limitations under the License. --> - + diff --git a/material/java/com/google/android/material/typography/res/values/tokens.xml b/material/java/com/google/android/material/typography/res/values/tokens.xml index 35cf0f089..0627ebc5c 100644 --- a/material/java/com/google/android/material/typography/res/values/tokens.xml +++ b/material/java/com/google/android/material/typography/res/values/tokens.xml @@ -15,7 +15,7 @@ ~ limitations under the License. --> - +