From 0651d9dde681fc54d41365925a675c700c0c0b22 Mon Sep 17 00:00:00 2001 From: Ben Weiss Date: Tue, 10 May 2022 15:50:28 +0100 Subject: [PATCH 01/35] Update benchmarking & baseline profiles Uses newest versions from I/O release Also updates baseline profile to match latest changes Change-Id: I83c709338ea37d2187d1e8437f5b5d8e98a42f22 --- app/benchmark-rules.pro | 6 +- app/src/main/baseline-prof.txt | 100 +++++++++--------- .../nowinandroid/navigation/NiaNavHost.kt | 23 ---- gradle/libs.versions.toml | 4 +- 4 files changed, 56 insertions(+), 77 deletions(-) diff --git a/app/benchmark-rules.pro b/app/benchmark-rules.pro index 335c5b289..ddecd591b 100644 --- a/app/benchmark-rules.pro +++ b/app/benchmark-rules.pro @@ -1,2 +1,6 @@ -#Proguard rules for the `benchmark` build type. +# Proguard rules for the `benchmark` build type. +# +# Obsfuscation must be disabled for the build variant that generates Baseline Profile, otherwise +# wrong symbols would be generated. The generated Baseline Profile will be properly applied when generated +# without obfuscation and your app is being obfuscated. -dontobfuscate \ No newline at end of file diff --git a/app/src/main/baseline-prof.txt b/app/src/main/baseline-prof.txt index b1d1eb989..2e677c394 100644 --- a/app/src/main/baseline-prof.txt +++ b/app/src/main/baseline-prof.txt @@ -73,7 +73,6 @@ HSPLandroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility HSPLandroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility;->compareTo(II)I HSPLandroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility;->ordinal(I)I HSPLandroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility;->values(I)[I -HSPLandroidx/compose/animation/core/AnimationResult;->(Landroidx/compose/animation/core/AnimationState;I)V HSPLandroidx/compose/animation/core/AnimationScope;->(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationVector;JLjava/lang/Object;JZLkotlin/jvm/functions/Function0;)V HSPLandroidx/compose/animation/core/AnimationScope;->getValue()Ljava/lang/Object; HSPLandroidx/compose/animation/core/AnimationScope;->setRunning$animation_core_release(Z)V @@ -115,6 +114,8 @@ HSPLandroidx/compose/animation/core/AnimationVector;->getSize$animation_core_rel HSPLandroidx/compose/animation/core/AnimationVector;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector; HSPLandroidx/compose/animation/core/AnimationVector;->reset$animation_core_release()V HSPLandroidx/compose/animation/core/AnimationVector;->set$animation_core_release(IF)V +HSPLandroidx/compose/animation/core/AnimationVectorsKt;->copy(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector; +HSPLandroidx/compose/animation/core/AnimationVectorsKt;->newInstance(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector; HSPLandroidx/compose/animation/core/Animations;->get(I)Landroidx/compose/animation/core/FloatAnimationSpec; HSPLandroidx/compose/animation/core/ComplexDouble;->(DD)V HSPLandroidx/compose/animation/core/ComplexDouble;->equals(Ljava/lang/Object;)Z @@ -446,7 +447,6 @@ HSPLandroidx/compose/foundation/Background;->foldOut(Ljava/lang/Object;Lkotlin/j HSPLandroidx/compose/foundation/Background;->hashCode()I HSPLandroidx/compose/foundation/Background;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/Background;->toString()Ljava/lang/String; -HSPLandroidx/compose/foundation/BackgroundKt;->background$default(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Shape;FI)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/BackgroundKt;->background-bw27NRU$default(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;I)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/BackgroundKt;->background-bw27NRU(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/BorderKt$border$2$1;->(FLandroidx/compose/ui/graphics/Shape;Landroidx/compose/ui/node/Ref;Landroidx/compose/ui/graphics/Brush;)V @@ -1330,6 +1330,7 @@ HSPLandroidx/compose/foundation/layout/SizeModifier;->foldOut(Ljava/lang/Object; HSPLandroidx/compose/foundation/layout/SizeModifier;->hashCode()I HSPLandroidx/compose/foundation/layout/SizeModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult; HSPLandroidx/compose/foundation/layout/SizeModifier;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; +HSPLandroidx/compose/foundation/layout/SpacerKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/Composer;Landroidx/compose/ui/platform/ViewConfiguration;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/SkippableUpdater; HSPLandroidx/compose/foundation/layout/SpacerKt;->Spacer(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V HSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;->()V HSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;->()V @@ -1388,14 +1389,12 @@ HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsum HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;->()V HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;->invoke()Ljava/lang/Object; HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->()V +HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->consumedWindowInsets(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->windowInsetsPadding(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/WindowInsets;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/layout/WindowInsetsPadding_androidKt$safeDrawingPadding$$inlined$windowInsetsPadding$1;->()V HSPLandroidx/compose/foundation/layout/WindowInsetsPadding_androidKt$safeDrawingPadding$$inlined$windowInsetsPadding$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroidx/compose/foundation/layout/WindowInsetsSides;->hasAny-bkgdKaI$foundation_layout_release(II)Z HSPLandroidx/compose/foundation/layout/WindowInsetsSides;->valueToString_impl$lambda-0$appendPlus(Ljava/lang/StringBuilder;Ljava/lang/String;)V -HSPLandroidx/compose/foundation/layout/WindowInsets_androidKt;->ValueInsets(Landroidx/core/graphics/Insets;Ljava/lang/String;)Landroidx/compose/foundation/layout/ValueInsets; -HSPLandroidx/compose/foundation/layout/WindowInsets_androidKt;->getSafeDrawing(Landroidx/compose/foundation/layout/WindowInsets$Companion;Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/WindowInsets; -HSPLandroidx/compose/foundation/layout/WindowInsets_androidKt;->toInsetsValues(Landroidx/core/graphics/Insets;)Landroidx/compose/foundation/layout/InsetsValues; HSPLandroidx/compose/foundation/layout/WrapContentModifier$measure$1;->(Landroidx/compose/foundation/layout/WrapContentModifier;ILandroidx/compose/ui/layout/Placeable;ILandroidx/compose/ui/layout/MeasureScope;)V HSPLandroidx/compose/foundation/layout/WrapContentModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroidx/compose/foundation/layout/WrapContentModifier;->(IZLkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V @@ -1781,6 +1780,7 @@ HSPLandroidx/compose/foundation/lazy/layout/DummyHandle;->cancel()V HSPLandroidx/compose/foundation/lazy/layout/IntervalHolder;->(IILjava/lang/Object;)V HSPLandroidx/compose/foundation/lazy/layout/IntervalList;->getIntervals()Ljava/util/List; HSPLandroidx/compose/foundation/lazy/layout/IntervalList;->getTotalSize()I +HSPLandroidx/compose/foundation/lazy/layout/IntervalListKt;->intervalIndexForItemIndex(Landroidx/compose/foundation/lazy/layout/IntervalList;I)I HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1$invoke$$inlined$onDispose$1;->(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;)V HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1$invoke$$inlined$onDispose$1;->dispose()V HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1;->(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;)V @@ -1839,7 +1839,6 @@ HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher;->schedulePrefe HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt$LazyLayoutPrefetcher$2;->(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/ui/layout/SubcomposeLayoutState;I)V HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt$LazyLayoutPrefetcher$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt;->LazyLayoutPrefetcher(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/runtime/Composer;I)V -HSPLandroidx/compose/foundation/lazy/layout/Lazy_androidKt;->throwSubtypeNotRegistered(Ljava/lang/String;Lkotlin/reflect/KClass;)Ljava/lang/Void; HSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->()V HSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->add(ILjava/lang/Object;)V HSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->getIntervals()Ljava/util/List; @@ -2734,6 +2733,7 @@ HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementati HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;)V HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->add(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentSet; HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->getSize()I +HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/EndOfChain;->()V HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/ListImplementation;->checkElementIndex$runtime_release(II)V HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/MutabilityOwnership;->()V HSPLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$1;->(Landroidx/compose/runtime/internal/ComposableLambdaImpl;Ljava/lang/Object;I)V @@ -2873,6 +2873,8 @@ HSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->iterator()Ljava/util/Iter HSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->or(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/SnapshotIdSet; HSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->set(I)Landroidx/compose/runtime/snapshots/SnapshotIdSet; HSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->toString()Ljava/lang/String; +HSPLandroidx/compose/runtime/snapshots/SnapshotIdSetKt;->access$lowestBitOf(J)I +HSPLandroidx/compose/runtime/snapshots/SnapshotIdSetKt;->binarySearch([II)I HSPLandroidx/compose/runtime/snapshots/SnapshotKt$advanceGlobalSnapshot$2;->()V HSPLandroidx/compose/runtime/snapshots/SnapshotKt$advanceGlobalSnapshot$2;->()V HSPLandroidx/compose/runtime/snapshots/SnapshotKt$advanceGlobalSnapshot$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object; @@ -3119,8 +3121,6 @@ HSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->(Landroid/graphics/B HSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getHeight()I HSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getWidth()I HSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->prepareToDraw()V -HSPLandroidx/compose/ui/graphics/AndroidImageBitmap_androidKt;->asAndroidBitmap(Landroidx/compose/ui/graphics/ImageBitmap;)Landroid/graphics/Bitmap; -HSPLandroidx/compose/ui/graphics/AndroidImageBitmap_androidKt;->toBitmapConfig-1JJdX4A(I)Landroid/graphics/Bitmap$Config; HSPLandroidx/compose/ui/graphics/AndroidMatrixConversions_androidKt;->setFrom-tU-YjHk([FLandroid/graphics/Matrix;)V HSPLandroidx/compose/ui/graphics/AndroidPaint;->()V HSPLandroidx/compose/ui/graphics/AndroidPaint;->asFrameworkPaint()Landroid/graphics/Paint; @@ -3185,12 +3185,14 @@ HSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier;->hashCode()I HSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult; HSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier;->toString()Ljava/lang/String; +HSPLandroidx/compose/ui/graphics/Brush;->()V HSPLandroidx/compose/ui/graphics/Brush;->()V HSPLandroidx/compose/ui/graphics/Brush;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/graphics/Brush;->applyTo-Pq9zytI(JLandroidx/compose/ui/graphics/Paint;F)V HSPLandroidx/compose/ui/graphics/Canvas$DefaultImpls;->clipPath-mtrdD-E$default(Landroidx/compose/ui/graphics/Canvas;Landroidx/compose/ui/graphics/Path;IILjava/lang/Object;)V HSPLandroidx/compose/ui/graphics/Canvas$DefaultImpls;->drawRect(Landroidx/compose/ui/graphics/Canvas;Landroidx/compose/ui/geometry/Rect;Landroidx/compose/ui/graphics/Paint;)V HSPLandroidx/compose/ui/graphics/CanvasHolder;->()V +HSPLandroidx/compose/ui/graphics/CanvasKt;->Canvas(Landroidx/compose/ui/graphics/ImageBitmap;)Landroidx/compose/ui/graphics/Canvas; HSPLandroidx/compose/ui/graphics/Color$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/graphics/Color;->()V HSPLandroidx/compose/ui/graphics/Color;->(J)V @@ -3328,15 +3330,6 @@ HSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->hashCode()I HSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->isSrgb()Z HSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->toString()Ljava/lang/String; HSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->toXyz([F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->adapt$default(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/Adaptation;I)Landroidx/compose/ui/graphics/colorspace/ColorSpace; -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->chromaticAdaptation([F[F[F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->compare(Landroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/WhitePoint;)Z -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->connect-YBCOT_4$default(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/ColorSpace;II)Landroidx/compose/ui/graphics/colorspace/Connector; -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->inverse3x3([F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->mul3x3([F[F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->mul3x3Diag([F[F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->mul3x3Float3([F[F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->rcpResponse(DDDDDD)D HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$1;->()V HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$1;->()V HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; @@ -3800,6 +3793,7 @@ HSPLandroidx/compose/ui/graphics/vector/VectorPainterKt;->rememberVectorPainter( HSPLandroidx/compose/ui/graphics/vector/VectorPath;->(Ljava/lang/String;Ljava/util/List;ILandroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/Brush;FFIIFFFFLkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/graphics/vector/VectorPath;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/graphics/vector/VectorPath;->hashCode()I +HSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->()V HSPLandroidx/compose/ui/graphics/vector/compat/XmlVectorParser_androidKt;->obtainBrushFromComplexColor(Landroidx/core/content/res/ComplexColorCompat;)Landroidx/compose/ui/graphics/Brush; HSPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher$calculateNestedScrollScope$1;->(Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)V HSPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher$calculateNestedScrollScope$1;->invoke()Ljava/lang/Object; @@ -3860,6 +3854,14 @@ HSPLandroidx/compose/ui/input/pointer/NodeParent;->dispatchMainEventPass(Ljava/u HSPLandroidx/compose/ui/input/pointer/NodeParent;->removeDetachedPointerInputFilters()V HSPLandroidx/compose/ui/input/pointer/PointerEvent;->(Ljava/util/List;Landroidx/compose/ui/input/pointer/InternalPointerEvent;)V HSPLandroidx/compose/ui/input/pointer/PointerEvent;->getMotionEvent$ui_release()Landroid/view/MotionEvent; +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->changedToDown(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->changedToDownIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->changedToUp(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->changedToUpIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->isOutOfBounds-O0kMr_c(Landroidx/compose/ui/input/pointer/PointerInputChange;J)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->isOutOfBounds-jwHxaWs(Landroidx/compose/ui/input/pointer/PointerInputChange;JJ)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->positionChangeInternal(Landroidx/compose/ui/input/pointer/PointerInputChange;Z)J +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->positionChangedIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z HSPLandroidx/compose/ui/input/pointer/PointerEventPass;->()V HSPLandroidx/compose/ui/input/pointer/PointerEventPass;->(Ljava/lang/String;I)V HSPLandroidx/compose/ui/input/pointer/PointerEventPass;->valueOf(Ljava/lang/String;)Landroidx/compose/ui/input/pointer/PointerEventPass; @@ -3888,6 +3890,9 @@ HSPLandroidx/compose/ui/input/pointer/PointerInputEventProcessor;->process-BIzXf HSPLandroidx/compose/ui/input/pointer/PointerInputFilter;->()V HSPLandroidx/compose/ui/input/pointer/PointerInputFilter;->onCancel()V HSPLandroidx/compose/ui/input/pointer/PointerInputFilter;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V +HSPLandroidx/compose/ui/input/pointer/PointerType;->equals-impl0(II)Z +HSPLandroidx/compose/ui/input/pointer/PointerType;->toString-impl(I)Ljava/lang/String; +HSPLandroidx/compose/ui/input/pointer/ProcessResult;->getDispatchedToAPointerInputModifier-impl(I)Z HSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilter$PointerEventHandlerCoroutine;->(Landroidx/compose/ui/input/pointer/SuspendingPointerInputFilter;Lkotlin/coroutines/Continuation;)V HSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilter$PointerEventHandlerCoroutine;->awaitPointerEvent(Landroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; HSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilter$PointerEventHandlerCoroutine;->getContext()Lkotlin/coroutines/CoroutineContext; @@ -3997,6 +4002,8 @@ HSPLandroidx/compose/ui/layout/ContentScale$Companion$Inside$1;->computeScaleFac HSPLandroidx/compose/ui/layout/ContentScale$Companion;->()V HSPLandroidx/compose/ui/layout/ContentScale$Companion;->()V HSPLandroidx/compose/ui/layout/ContentScale;->computeScaleFactor-H7hwNQA(JJ)J +HSPLandroidx/compose/ui/layout/ContentScaleKt;->computeFillHeight-iLBOSCw(JJ)F +HSPLandroidx/compose/ui/layout/ContentScaleKt;->computeFillWidth-iLBOSCw(JJ)F HSPLandroidx/compose/ui/layout/HorizontalAlignmentLine;->(Lkotlin/jvm/functions/Function2;)V HSPLandroidx/compose/ui/layout/IntrinsicMeasurable;->getParentData()Ljava/lang/Object; HSPLandroidx/compose/ui/layout/IntrinsicMeasureScope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection; @@ -4008,10 +4015,6 @@ HSPLandroidx/compose/ui/layout/LayoutCoordinates;->localBoundingBoxOf(Landroidx/ HSPLandroidx/compose/ui/layout/LayoutCoordinates;->localPositionOf-R5De75A(Landroidx/compose/ui/layout/LayoutCoordinates;J)J HSPLandroidx/compose/ui/layout/LayoutCoordinates;->localToRoot-MK-Hz9U(J)J HSPLandroidx/compose/ui/layout/LayoutCoordinates;->localToWindow-MK-Hz9U(J)J -HSPLandroidx/compose/ui/layout/LayoutCoordinatesKt;->boundsInParent(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/geometry/Rect; -HSPLandroidx/compose/ui/layout/LayoutCoordinatesKt;->boundsInRoot(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/geometry/Rect; -HSPLandroidx/compose/ui/layout/LayoutCoordinatesKt;->findRoot(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/layout/LayoutCoordinates; -HSPLandroidx/compose/ui/layout/LayoutCoordinatesKt;->positionInRoot(Landroidx/compose/ui/layout/LayoutCoordinates;)J HSPLandroidx/compose/ui/layout/LayoutId;->(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V HSPLandroidx/compose/ui/layout/LayoutId;->all(Lkotlin/jvm/functions/Function1;)Z HSPLandroidx/compose/ui/layout/LayoutId;->equals(Ljava/lang/Object;)Z @@ -4305,7 +4308,6 @@ HSPLandroidx/compose/ui/node/HitTestResult;->sort(Ljava/util/Comparator;)V HSPLandroidx/compose/ui/node/HitTestResult;->subList(II)Ljava/util/List; HSPLandroidx/compose/ui/node/HitTestResult;->toArray()[Ljava/lang/Object; HSPLandroidx/compose/ui/node/HitTestResult;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLandroidx/compose/ui/node/HitTestResultKt;->access$DistanceAndInLayer(FZ)J HSPLandroidx/compose/ui/node/InnerPlaceable;->()V HSPLandroidx/compose/ui/node/InnerPlaceable;->(Landroidx/compose/ui/node/LayoutNode;)V HSPLandroidx/compose/ui/node/InnerPlaceable;->calculateAlignmentLine(Landroidx/compose/ui/layout/AlignmentLine;)I @@ -4949,7 +4951,6 @@ HSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageV HSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->()V HSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->ProvideAndroidCompositionLocals(Landroidx/compose/ui/platform/AndroidComposeView;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V HSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->access$noLocalProvidedFor(Ljava/lang/String;)Ljava/lang/Void; -HSPLandroidx/compose/ui/platform/AndroidFontResourceLoader;->(Landroid/content/Context;)V HSPLandroidx/compose/ui/platform/AndroidUiDispatcher$Companion$Main$2$dispatcher$1;->(Lkotlin/coroutines/Continuation;)V HSPLandroidx/compose/ui/platform/AndroidUiDispatcher$Companion$Main$2$dispatcher$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; HSPLandroidx/compose/ui/platform/AndroidUiDispatcher$Companion$Main$2$dispatcher$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; @@ -5366,13 +5367,13 @@ HSPLandroidx/compose/ui/text/ParagraphIntrinsicInfo;->(Landroidx/compose/u HSPLandroidx/compose/ui/text/ParagraphIntrinsicInfo;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/ParagraphIntrinsicInfo;->hashCode()I HSPLandroidx/compose/ui/text/ParagraphIntrinsicInfo;->toString()Ljava/lang/String; -HSPLandroidx/compose/ui/text/ParagraphStyle;->(Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Lkotlinx/coroutines/SupervisorKt;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +HSPLandroidx/compose/ui/text/ParagraphStyle;->(Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Lcoil/util/-FileSystems;Lkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/text/ParagraphStyle;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/ParagraphStyle;->hashCode()I HSPLandroidx/compose/ui/text/ParagraphStyle;->merge(Landroidx/compose/ui/text/ParagraphStyle;)Landroidx/compose/ui/text/ParagraphStyle; HSPLandroidx/compose/ui/text/ParagraphStyle;->toString()Ljava/lang/String; HSPLandroidx/compose/ui/text/SpanStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;I)V -HSPLandroidx/compose/ui/text/SpanStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +HSPLandroidx/compose/ui/text/SpanStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Lcoil/util/-Logs;Lkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/text/SpanStyle;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/SpanStyle;->hashCode()I HSPLandroidx/compose/ui/text/SpanStyle;->merge(Landroidx/compose/ui/text/SpanStyle;)Landroidx/compose/ui/text/SpanStyle; @@ -5405,8 +5406,8 @@ HSPLandroidx/compose/ui/text/TextRangeKt;->TextRange(II)J HSPLandroidx/compose/ui/text/TextRangeKt;->constrain-8ffj60Q(JII)J HSPLandroidx/compose/ui/text/TextStyle;->()V HSPLandroidx/compose/ui/text/TextStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;I)V -HSPLandroidx/compose/ui/text/TextStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Lkotlinx/coroutines/SupervisorKt;Lkotlin/jvm/internal/DefaultConstructorMarker;)V -HSPLandroidx/compose/ui/text/TextStyle;->(Landroidx/compose/ui/text/SpanStyle;Landroidx/compose/ui/text/ParagraphStyle;Lkotlinx/coroutines/SupervisorKt;)V +HSPLandroidx/compose/ui/text/TextStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Lkotlinx/coroutines/EventLoop_commonKt;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +HSPLandroidx/compose/ui/text/TextStyle;->(Landroidx/compose/ui/text/SpanStyle;Landroidx/compose/ui/text/ParagraphStyle;Lkotlinx/coroutines/EventLoop_commonKt;)V HSPLandroidx/compose/ui/text/TextStyle;->copy-HL5avdY$default(Landroidx/compose/ui/text/TextStyle;JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;I)Landroidx/compose/ui/text/TextStyle; HSPLandroidx/compose/ui/text/TextStyle;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/TextStyle;->hashCode()I @@ -5477,7 +5478,6 @@ HSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->(Landroidx/comp HSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->resolve(Landroidx/compose/ui/text/font/TypefaceRequest;)Landroidx/compose/runtime/State; HSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->resolve-DPcqOEQ(Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;II)Landroidx/compose/runtime/State; HSPLandroidx/compose/ui/text/font/FontFamilyResolverKt;->()V -HSPLandroidx/compose/ui/text/font/FontFamilyResolver_androidKt;->createFontFamilyResolver(Landroid/content/Context;)Landroidx/compose/ui/text/font/FontFamily$Resolver; HSPLandroidx/compose/ui/text/font/FontListFontFamily;->add(ILjava/lang/Object;)V HSPLandroidx/compose/ui/text/font/FontListFontFamily;->add(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/font/FontListFontFamily;->addAll(ILjava/util/Collection;)Z @@ -5783,6 +5783,7 @@ HSPLandroidx/compose/ui/unit/Velocity;->minus-AH228Gc(JJ)J HSPLandroidx/compose/ui/unit/Velocity;->plus-AH228Gc(JJ)J HSPLandroidx/compose/ui/unit/Velocity;->toString()Ljava/lang/String; HSPLandroidx/compose/ui/unit/VelocityKt;->Velocity(FF)J +HSPLandroidx/compose/ui/util/MathHelpersKt;->lerp(FFF)F HSPLandroidx/lifecycle/LiveData$1;->(Landroidx/lifecycle/LiveData;)V HSPLandroidx/lifecycle/LiveData$1;->run()V HSPLandroidx/lifecycle/LiveData$AlwaysActiveObserver;->(Landroidx/lifecycle/LiveData;Landroidx/lifecycle/Observer;)V @@ -5854,7 +5855,6 @@ HSPLandroidx/navigation/NavDeepLinkRequest;->(Landroid/content/Intent;)V HSPLandroidx/navigation/NavDeepLinkRequest;->(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V HSPLandroidx/navigation/NavDestination;->()V HSPLandroidx/navigation/NavDestination;->(Landroidx/navigation/Navigator;)V -HSPLandroidx/navigation/NavDestination;->addArgument(Ljava/lang/String;Landroidx/navigation/NavArgument;)V HSPLandroidx/navigation/NavDestination;->addInDefaultArgs(Landroid/os/Bundle;)Landroid/os/Bundle; HSPLandroidx/navigation/NavDestination;->equals(Ljava/lang/Object;)Z HSPLandroidx/navigation/NavDestination;->getArguments()Ljava/util/Map; @@ -6047,6 +6047,8 @@ HSPLkotlinx/coroutines/CancellableContinuationImpl;->resumedState(Lkotlinx/corou HSPLkotlinx/coroutines/CancellableContinuationImpl;->takeState$kotlinx_coroutines_core()Ljava/lang/Object; HSPLkotlinx/coroutines/CancellableContinuationImpl;->tryResume(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; HSPLkotlinx/coroutines/CancellableContinuationImpl;->tryResumeImpl(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/internal/Symbol; +HSPLkotlinx/coroutines/CancellableContinuationKt;->disposeOnCancellation(Lkotlinx/coroutines/CancellableContinuation;Lkotlinx/coroutines/DisposableHandle;)V +HSPLkotlinx/coroutines/CancellableContinuationKt;->getOrCreateCancellableContinuation(Lkotlin/coroutines/Continuation;)Lkotlinx/coroutines/CancellableContinuationImpl; HSPLkotlinx/coroutines/CancelledContinuation;->(Lkotlin/coroutines/Continuation;Ljava/lang/Throwable;Z)V HSPLkotlinx/coroutines/ChildContinuation;->(Lkotlinx/coroutines/CancellableContinuationImpl;)V HSPLkotlinx/coroutines/ChildContinuation;->invoke(Ljava/lang/Throwable;)V @@ -6057,8 +6059,6 @@ HSPLkotlinx/coroutines/CompletedContinuation;->(Ljava/lang/Object;Lkotlinx HSPLkotlinx/coroutines/CompletedExceptionally;->(Ljava/lang/Throwable;Z)V HSPLkotlinx/coroutines/CompletedExceptionally;->getHandled()Z HSPLkotlinx/coroutines/CompletionHandlerBase;->()V -HSPLkotlinx/coroutines/CompletionStateKt;->recoverResult(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLkotlinx/coroutines/CompletionStateKt;->toState(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; HSPLkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext; HSPLkotlinx/coroutines/CoroutineDispatcher$Key$1;->()V HSPLkotlinx/coroutines/CoroutineDispatcher$Key;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -6077,11 +6077,15 @@ HSPLkotlinx/coroutines/DefaultExecutor;->()V HSPLkotlinx/coroutines/DefaultExecutor;->getThread()Ljava/lang/Thread; HSPLkotlinx/coroutines/DefaultExecutor;->isShutdownRequested()Z HSPLkotlinx/coroutines/DefaultExecutor;->run()V +HSPLkotlinx/coroutines/DelayKt;->delay(JLkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLkotlinx/coroutines/DelayKt;->getDelay(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Delay; HSPLkotlinx/coroutines/DispatchedTask;->(I)V HSPLkotlinx/coroutines/DispatchedTask;->getExceptionalResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Throwable; HSPLkotlinx/coroutines/DispatchedTask;->getSuccessfulResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object; HSPLkotlinx/coroutines/DispatchedTask;->handleFatalException(Ljava/lang/Throwable;Ljava/lang/Throwable;)V HSPLkotlinx/coroutines/DispatchedTask;->run()V +HSPLkotlinx/coroutines/DispatchedTaskKt;->isCancellableMode(I)Z +HSPLkotlinx/coroutines/DispatchedTaskKt;->resume(Lkotlinx/coroutines/DispatchedTask;Lkotlin/coroutines/Continuation;Z)V HSPLkotlinx/coroutines/DisposeOnCancel;->(Lkotlinx/coroutines/DisposableHandle;)V HSPLkotlinx/coroutines/Empty;->(Z)V HSPLkotlinx/coroutines/Empty;->getList()Lkotlinx/coroutines/NodeList; @@ -6325,11 +6329,6 @@ HSPLkotlinx/coroutines/internal/ScopeCoroutine;->(Lkotlin/coroutines/Corou HSPLkotlinx/coroutines/internal/ScopeCoroutine;->afterResume(Ljava/lang/Object;)V HSPLkotlinx/coroutines/internal/ScopeCoroutine;->isScopedCoroutine()Z HSPLkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;JJJILjava/lang/Object;)J -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;)Ljava/lang/String; -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;III)I -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;JJJ)J HSPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;->()V HSPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLkotlinx/coroutines/internal/ThreadContextKt$findOne$1;->()V @@ -6358,7 +6357,6 @@ HSPLkotlinx/coroutines/sync/MutexImpl;->(Z)V HSPLkotlinx/coroutines/sync/MutexImpl;->lock(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; HSPLkotlinx/coroutines/sync/MutexImpl;->tryLock(Ljava/lang/Object;)Z HSPLkotlinx/coroutines/sync/MutexImpl;->unlock(Ljava/lang/Object;)V -Landroidx/compose/animation/AndroidFlingSpline$$ExternalSyntheticOutline0; Landroidx/compose/animation/AndroidFlingSpline$$ExternalSyntheticOutline1; Landroidx/compose/animation/AndroidFlingSpline$FlingResult$$ExternalSyntheticOutline0; Landroidx/compose/animation/AndroidFlingSpline$FlingResult; @@ -6392,7 +6390,6 @@ Landroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3; Landroidx/compose/animation/core/AnimateAsStateKt; Landroidx/compose/animation/core/Animation; Landroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility; -Landroidx/compose/animation/core/AnimationResult; Landroidx/compose/animation/core/AnimationScope; Landroidx/compose/animation/core/AnimationSpec; Landroidx/compose/animation/core/AnimationState; @@ -6400,6 +6397,7 @@ Landroidx/compose/animation/core/AnimationVector1D; Landroidx/compose/animation/core/AnimationVector2D; Landroidx/compose/animation/core/AnimationVector4D; Landroidx/compose/animation/core/AnimationVector; +Landroidx/compose/animation/core/AnimationVectorsKt; Landroidx/compose/animation/core/Animations; Landroidx/compose/animation/core/ComplexDouble; Landroidx/compose/animation/core/ComplexDoubleKt; @@ -6797,6 +6795,7 @@ Landroidx/compose/foundation/layout/SizeKt$createWrapContentWidthModifier$2; Landroidx/compose/foundation/layout/SizeKt; Landroidx/compose/foundation/layout/SizeModifier$measure$1; Landroidx/compose/foundation/layout/SizeModifier; +Landroidx/compose/foundation/layout/SpacerKt$$ExternalSyntheticOutline0; Landroidx/compose/foundation/layout/SpacerKt; Landroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1; Landroidx/compose/foundation/layout/SpacerMeasurePolicy; @@ -6815,7 +6814,6 @@ Landroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedW Landroidx/compose/foundation/layout/WindowInsetsPaddingKt; Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt$safeDrawingPadding$$inlined$windowInsetsPadding$1; Landroidx/compose/foundation/layout/WindowInsetsSides; -Landroidx/compose/foundation/layout/WindowInsets_androidKt; Landroidx/compose/foundation/layout/WrapContentModifier$measure$1; Landroidx/compose/foundation/layout/WrapContentModifier; Landroidx/compose/foundation/lazy/EmptyLazyListLayoutInfo; @@ -6961,6 +6959,7 @@ Landroidx/compose/foundation/lazy/layout/DefaultLazyKey; Landroidx/compose/foundation/lazy/layout/DummyHandle; Landroidx/compose/foundation/lazy/layout/IntervalHolder; Landroidx/compose/foundation/lazy/layout/IntervalList; +Landroidx/compose/foundation/lazy/layout/IntervalListKt; Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1$invoke$$inlined$onDispose$1; Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1; Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1; @@ -6981,7 +6980,6 @@ Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher$PrefetchRequest; Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher; Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt$LazyLayoutPrefetcher$2; Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt; -Landroidx/compose/foundation/lazy/layout/Lazy_androidKt; Landroidx/compose/foundation/lazy/layout/MutableIntervalList; Landroidx/compose/foundation/lazy/layout/PinnableParent$PinnedItemsHandle; Landroidx/compose/foundation/lazy/layout/PinnableParent; @@ -7323,6 +7321,7 @@ Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet; Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSetIterator; Landroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter; +Landroidx/compose/runtime/external/kotlinx/collections/immutable/internal/EndOfChain; Landroidx/compose/runtime/external/kotlinx/collections/immutable/internal/ListImplementation; Landroidx/compose/runtime/external/kotlinx/collections/immutable/internal/MutabilityOwnership; Landroidx/compose/runtime/internal/ComposableLambda; @@ -7383,6 +7382,7 @@ Landroidx/compose/runtime/snapshots/SnapshotApplyResult; Landroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap; Landroidx/compose/runtime/snapshots/SnapshotIdSet$iterator$1; Landroidx/compose/runtime/snapshots/SnapshotIdSet; +Landroidx/compose/runtime/snapshots/SnapshotIdSetKt; Landroidx/compose/runtime/snapshots/SnapshotKt$advanceGlobalSnapshot$2; Landroidx/compose/runtime/snapshots/SnapshotKt$emptyLambda$1; Landroidx/compose/runtime/snapshots/SnapshotKt$mergedReadObserver$1; @@ -7423,11 +7423,13 @@ Landroidx/compose/runtime/snapshots/TransparentObserverSnapshot; Landroidx/compose/ui/geometry/CornerRadius$Companion; Landroidx/compose/ui/geometry/CornerRadius; Landroidx/compose/ui/geometry/CornerRadiusKt; +Landroidx/compose/ui/geometry/GeometryUtilsKt; Landroidx/compose/ui/geometry/MutableRect; Landroidx/compose/ui/geometry/Offset$Companion; Landroidx/compose/ui/geometry/Offset; Landroidx/compose/ui/geometry/OffsetKt; Landroidx/compose/ui/geometry/Rect; +Landroidx/compose/ui/geometry/RectKt; Landroidx/compose/ui/geometry/RoundRect; Landroidx/compose/ui/geometry/RoundRectKt; Landroidx/compose/ui/geometry/Size$Companion; @@ -7436,30 +7438,31 @@ Landroidx/compose/ui/geometry/SizeKt; Landroidx/compose/ui/graphics/AndroidCanvas; Landroidx/compose/ui/graphics/AndroidCanvas_androidKt; Landroidx/compose/ui/graphics/AndroidImageBitmap; -Landroidx/compose/ui/graphics/AndroidImageBitmap_androidKt; Landroidx/compose/ui/graphics/AndroidMatrixConversions_androidKt; Landroidx/compose/ui/graphics/AndroidPaint; Landroidx/compose/ui/graphics/AndroidPaint_androidKt$WhenMappings; Landroidx/compose/ui/graphics/AndroidPath; Landroidx/compose/ui/graphics/AndroidPathEffect; Landroidx/compose/ui/graphics/AndroidPathMeasure; -Landroidx/compose/ui/graphics/AndroidShader_androidKt; Landroidx/compose/ui/graphics/Api26Bitmap; Landroidx/compose/ui/graphics/BlendMode; Landroidx/compose/ui/graphics/BlendModeColorFilterHelper; Landroidx/compose/ui/graphics/BlockGraphicsLayerModifier$measure$1; Landroidx/compose/ui/graphics/BlockGraphicsLayerModifier; +Landroidx/compose/ui/graphics/Brush$Companion; Landroidx/compose/ui/graphics/Brush; Landroidx/compose/ui/graphics/BrushKt$ShaderBrush$1; Landroidx/compose/ui/graphics/Canvas$DefaultImpls; Landroidx/compose/ui/graphics/Canvas; Landroidx/compose/ui/graphics/CanvasHolder; +Landroidx/compose/ui/graphics/CanvasKt; Landroidx/compose/ui/graphics/CanvasUtils; Landroidx/compose/ui/graphics/CanvasZHelper; Landroidx/compose/ui/graphics/Color$Companion; Landroidx/compose/ui/graphics/Color; Landroidx/compose/ui/graphics/ColorFilter; Landroidx/compose/ui/graphics/ColorKt; +Landroidx/compose/ui/graphics/FilterQuality; Landroidx/compose/ui/graphics/Float16$Companion; Landroidx/compose/ui/graphics/Float16; Landroidx/compose/ui/graphics/GraphicsLayerModifierKt; @@ -7478,8 +7481,6 @@ Landroidx/compose/ui/graphics/Path$DefaultImpls; Landroidx/compose/ui/graphics/Path; Landroidx/compose/ui/graphics/PathFillType; Landroidx/compose/ui/graphics/PathMeasure; -Landroidx/compose/ui/graphics/PathOperation; -Landroidx/compose/ui/graphics/RadialGradient; Landroidx/compose/ui/graphics/RectangleShapeKt$RectangleShape$1; Landroidx/compose/ui/graphics/RectangleShapeKt; Landroidx/compose/ui/graphics/RenderEffect; @@ -7494,7 +7495,6 @@ Landroidx/compose/ui/graphics/SimpleGraphicsLayerModifier; Landroidx/compose/ui/graphics/SolidColor; Landroidx/compose/ui/graphics/StrokeCap; Landroidx/compose/ui/graphics/StrokeJoin; -Landroidx/compose/ui/graphics/TileMode; Landroidx/compose/ui/graphics/TileModeVerificationHelper; Landroidx/compose/ui/graphics/TransformOrigin$Companion; Landroidx/compose/ui/graphics/TransformOrigin; @@ -7504,7 +7504,6 @@ Landroidx/compose/ui/graphics/colorspace/Adaptation; Landroidx/compose/ui/graphics/colorspace/ColorModel$Companion; Landroidx/compose/ui/graphics/colorspace/ColorModel; Landroidx/compose/ui/graphics/colorspace/ColorSpace; -Landroidx/compose/ui/graphics/colorspace/ColorSpaceKt; Landroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$1; Landroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$2; Landroidx/compose/ui/graphics/colorspace/ColorSpaces; @@ -7647,6 +7646,7 @@ Landroidx/compose/ui/graphics/vector/VectorProperty$TrimPathOffset; Landroidx/compose/ui/graphics/vector/VectorProperty$TrimPathStart; Landroidx/compose/ui/graphics/vector/VectorProperty; Landroidx/compose/ui/graphics/vector/compat/AndroidVectorParser; +Landroidx/compose/ui/graphics/vector/compat/AndroidVectorResources; Landroidx/compose/ui/graphics/vector/compat/XmlVectorParser_androidKt; Landroidx/compose/ui/text/AnnotatedString$Range; Landroidx/compose/ui/text/AnnotatedString; @@ -7665,7 +7665,6 @@ Landroidx/compose/ui/text/ParagraphStyle; Landroidx/compose/ui/text/ParagraphStyleKt; Landroidx/compose/ui/text/Placeholder; Landroidx/compose/ui/text/PlaceholderVerticalAlign; -Landroidx/compose/ui/text/PlatformSpanStyle; Landroidx/compose/ui/text/SaversKt$AnnotatedStringSaver$1; Landroidx/compose/ui/text/SaversKt$AnnotatedStringSaver$2; Landroidx/compose/ui/text/SaversKt$AnnotationRangeListSaver$1; @@ -7722,6 +7721,7 @@ Landroidx/compose/ui/text/android/LayoutIntrinsics$minIntrinsicWidth$2; Landroidx/compose/ui/text/android/LayoutIntrinsics; Landroidx/compose/ui/text/android/LayoutIntrinsicsKt$$ExternalSyntheticLambda0; Landroidx/compose/ui/text/android/Paint29; +Landroidx/compose/ui/text/android/PaintExtensionsKt; Landroidx/compose/ui/text/android/StaticLayoutFactory23; Landroidx/compose/ui/text/android/StaticLayoutFactory26; Landroidx/compose/ui/text/android/StaticLayoutFactory28; @@ -7747,7 +7747,6 @@ Landroidx/compose/ui/text/caches/LruCache; Landroidx/compose/ui/text/caches/SimpleArrayMap; Landroidx/compose/ui/text/font/AndroidFontLoader; Landroidx/compose/ui/text/font/AndroidFontResolveInterceptor; -Landroidx/compose/ui/text/font/AndroidFontUtils_androidKt; Landroidx/compose/ui/text/font/AsyncTypefaceCache; Landroidx/compose/ui/text/font/DefaultFontFamily; Landroidx/compose/ui/text/font/Font$ResourceLoader; @@ -7758,7 +7757,6 @@ Landroidx/compose/ui/text/font/FontFamilyResolverImpl$createDefaultTypeface$1; Landroidx/compose/ui/text/font/FontFamilyResolverImpl$resolve$result$1; Landroidx/compose/ui/text/font/FontFamilyResolverImpl; Landroidx/compose/ui/text/font/FontFamilyResolverKt; -Landroidx/compose/ui/text/font/FontFamilyResolver_androidKt; Landroidx/compose/ui/text/font/FontListFontFamily; Landroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter$special$$inlined$CoroutineExceptionHandler$1; Landroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter; @@ -7774,8 +7772,8 @@ Landroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion$Default$1; Landroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion; Landroidx/compose/ui/text/font/PlatformResolveInterceptor; Landroidx/compose/ui/text/font/PlatformTypefaces; -Landroidx/compose/ui/text/font/PlatformTypefacesApi28; Landroidx/compose/ui/text/font/PlatformTypefacesApi; +Landroidx/compose/ui/text/font/PlatformTypefacesKt; Landroidx/compose/ui/text/font/SystemFontFamily; Landroidx/compose/ui/text/font/TypefaceRequest; Landroidx/compose/ui/text/font/TypefaceRequestCache$runCached$currentTypefaceResult$1; @@ -7793,7 +7791,6 @@ Landroidx/compose/ui/text/input/PlatformTextInputService; Landroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$1; Landroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$2; Landroidx/compose/ui/text/input/TextFieldValue; -Landroidx/compose/ui/text/input/TextFieldValueKt; Landroidx/compose/ui/text/input/TextInputService; Landroidx/compose/ui/text/input/TextInputServiceAndroid$TextInputCommand; Landroidx/compose/ui/text/input/TextInputServiceAndroid$baseInputConnection$2; @@ -7852,6 +7849,7 @@ Landroidx/compose/ui/unit/TextUnitType; Landroidx/compose/ui/unit/Velocity$Companion; Landroidx/compose/ui/unit/Velocity; Landroidx/compose/ui/unit/VelocityKt; +Landroidx/compose/ui/util/MathHelpersKt; Landroidx/navigation/ActivityNavigator$hostActivity$1; Landroidx/navigation/ActivityNavigator; Landroidx/navigation/FloatingWindow; diff --git a/app/src/main/java/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt b/app/src/main/java/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt index 74113a1d7..75a243ee4 100644 --- a/app/src/main/java/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt +++ b/app/src/main/java/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt @@ -16,13 +16,9 @@ package com.google.samples.apps.nowinandroid.navigation -import android.app.Activity -import android.view.View import androidx.compose.material3.windowsizeclass.WindowSizeClass import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalView -import androidx.core.view.doOnPreDraw import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.rememberNavController @@ -67,23 +63,4 @@ fun NiaNavHost( onBackClick = { navController.popBackStack() } ) } -// Reporting the app fully drawn to get accurate TTFD readings for the baseline profile. -// https://developer.android.com/topic/performance/vitals/launch-time#retrieve-TTFD - ReportFullyDrawn(ForYouDestination.route) -} - -/** - * Calling [Activity#reportFullyDrawn] in compose UI. - */ -@Composable -private fun ReportFullyDrawn(destination: String) { - // Holding on to the local view and calling `reportFullyDrawn` in an `onPreDraw` listener. - // Compose currently doesn't offer a way to otherwise report fully drawn, - // so this is a viable approach. - val localView: View = LocalView.current - (localView.context as? Activity)?.run { - localView.doOnPreDraw { - reportFullyDrawn() - } - } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 03d42bbda..f454d0729 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,9 +12,9 @@ androidxDataStore = "1.0.0" androidxEspresso = "3.3.0" androidxHiltNavigationCompose = "1.0.0-rc01" androidxLifecycle = "2.5.0-beta01" -androidxMacroBenchmark = "1.1.0-rc01" +androidxMacroBenchmark = "1.1.0-rc02" androidxNavigation = "2.4.0-rc01" -androidxProfileinstaller = "1.2.0-alpha02" +androidxProfileinstaller = "1.2.0-beta01" androidxSavedState = "1.1.0" androidxStartup = "1.1.1" androidxWindowManager = "1.0.0" From 99e8731b56e4c69bf08e573aada2d9b7307c0c45 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Thu, 12 May 2022 20:09:54 +0100 Subject: [PATCH 02/35] Fix README blockquote markdown syntax --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index de4fe158f..c0b01a5c9 100644 --- a/README.md +++ b/README.md @@ -116,8 +116,7 @@ The baseline profile for this app is located at `app/src/main/baseline-prof.txt` It contains rules that enable AOT compilation of the critical user path taken during app launch. For more information on baseline profiles, read [this document](https://developer.android.com/studio/profile/baselineprofiles). -| Note: The baseline profile needs to be re-generated for release builds that touched code which -| changes app startup. +> Note: The baseline profile needs to be re-generated for release builds that touched code which changes app startup. To generate the baseline profile, select the `benchmark` build variant and run the `BaselineProfileGenerator` benchmark test on an AOSP Android Emulator. From 070f645f02928a27093e1d317748350ee4b3f043 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Thu, 12 May 2022 20:16:04 +0100 Subject: [PATCH 03/35] Linkify baseline profile file in README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index de4fe158f..13a1b55d4 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ Find out more about the [UI architecture here](docs/ArchitectureLearningJourney. # Baseline profiles -The baseline profile for this app is located at `app/src/main/baseline-prof.txt`. +The baseline profile for this app is located at [`app/src/main/baseline-prof.txt`](app/src/main/baseline-prof.txt). It contains rules that enable AOT compilation of the critical user path taken during app launch. For more information on baseline profiles, read [this document](https://developer.android.com/studio/profile/baselineprofiles). @@ -121,7 +121,7 @@ For more information on baseline profiles, read [this document](https://develope To generate the baseline profile, select the `benchmark` build variant and run the `BaselineProfileGenerator` benchmark test on an AOSP Android Emulator. -Then copy the resulting baseline profile from the emulator to `app/src/main/baseline-prof.txt`. +Then copy the resulting baseline profile from the emulator to [`app/src/main/baseline-prof.txt`](app/src/main/baseline-prof.txt). # License From 31347e259c700ff3b8235d86bfa90d5ad6e54b3d Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Thu, 12 May 2022 20:18:23 +0100 Subject: [PATCH 04/35] Fix markdown links in CONTRIBUTING.md --- CONTRIBUTING.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3e0558e07..daccb722a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,11 +9,9 @@ Please fill out either the individual or corporate Contributor License Agreement (CLA). * If you are an individual writing original source code and you're sure you - own the intellectual property, then you'll need to sign an [individual CLA] - (https://developers.google.com/open-source/cla/individual). + own the intellectual property, then you'll need to sign an [individual CLA](https://developers.google.com/open-source/cla/individual). * If you work for a company that wants to allow you to contribute your work, - then you'll need to sign a [corporate CLA] - (https://developers.google.com/open-source/cla/corporate). + then you'll need to sign a [corporate CLA](https://developers.google.com/open-source/cla/corporate). Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll be able to @@ -28,8 +26,7 @@ accept your pull requests. 1. Fork the desired repo, develop and test your code changes. 1. Ensure that your code adheres to the existing style in the sample to which you are contributing. Refer to the - [Google Cloud Platform Samples Style Guide] - (https://github.com/GoogleCloudPlatform/Template/wiki/style.html) for the + [Google Cloud Platform Samples Style Guide](https://github.com/GoogleCloudPlatform/Template/wiki/style.html) for the recommended coding standards for this organization. 1. Ensure that your code has an appropriate set of unit tests which all pass. 1. Submit a pull request. From edf3344932577fc34dfb33687f98a9742a325196 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Thu, 12 May 2022 20:23:13 +0100 Subject: [PATCH 05/35] Add markdown tag for SHIFT key --- docs/ArchitectureLearningJourney.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ArchitectureLearningJourney.md b/docs/ArchitectureLearningJourney.md index 8969a3349..459070dee 100644 --- a/docs/ArchitectureLearningJourney.md +++ b/docs/ArchitectureLearningJourney.md @@ -47,7 +47,7 @@ The following diagram shows the events which occur and how data flows from the r ![Diagram showing how news resources are displayed on the For You screen](images/architecture-2-example.png "Diagram showing how news resources are displayed on the For You screen") -Here's what's happening in each step. The easiest way to find the associated code is to load the project into Android Studio and search for the text in the Code column (handy shortcut: tap SHIFT twice). +Here's what's happening in each step. The easiest way to find the associated code is to load the project into Android Studio and search for the text in the Code column (handy shortcut: tap ⇧ SHIFT twice). From 969b4382423c1da25285b3829dbb7ffae5ffd062 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Thu, 12 May 2022 20:25:50 +0100 Subject: [PATCH 06/35] Fix broken italic markdown styling in ArchitectureLearningJourney.md --- docs/ArchitectureLearningJourney.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ArchitectureLearningJourney.md b/docs/ArchitectureLearningJourney.md index 8969a3349..263c66cf2 100644 --- a/docs/ArchitectureLearningJourney.md +++ b/docs/ArchitectureLearningJourney.md @@ -176,7 +176,7 @@ Whenever the list of authors changes (for example, when a new author is added), To write data, the repository provides suspend functions. It is up to the caller to ensure that their execution is suitably scoped. -_Example: Follow a topic _ +_Example: Follow a topic_ Simply call `TopicsRepository.setFollowedTopicId` with the ID of the topic which the user wishes to follow. From 3dfd7a3a64df92c92cc3a826e3ea2ce95e0e95ae Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Thu, 12 May 2022 20:28:46 +0100 Subject: [PATCH 07/35] Add missing backticks around method reference --- docs/ArchitectureLearningJourney.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ArchitectureLearningJourney.md b/docs/ArchitectureLearningJourney.md index 8969a3349..8016b7f88 100644 --- a/docs/ArchitectureLearningJourney.md +++ b/docs/ArchitectureLearningJourney.md @@ -280,7 +280,7 @@ The `FollowingViewModel` exposes `uiState` as a `StateFlow`. T -* List of authors (getAuthorsStream) +* List of authors (`getAuthorsStream`) * List of author IDs which the current user is following * List of topics * List of topic IDs which the current user is following From 6b989e02c9ea15a306b1c37d158dd35c9a8c7532 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Thu, 12 May 2022 20:49:40 +0100 Subject: [PATCH 08/35] Fix broken link in build-logic/README.md --- build-logic/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-logic/README.md b/build-logic/README.md index 90ccccc74..45fd95f91 100644 --- a/build-logic/README.md +++ b/build-logic/README.md @@ -12,7 +12,7 @@ By setting up convention plugins in `build-logic`, we can avoid duplicated build messy `subproject` configurations, without the pitfalls of the `buildSrc` directory. `build-logic` is an included build, as configured in the root -[`settings.gradle`](../settings.gradle). +[`settings.gradle.kts`](../settings.gradle.kts). Inside `build-logic` is a `convention` module, which defines a set of plugins that all normal modules can use to configure themselves. From 6af616c59207f465d7610711ee83bf09e4f0dcf2 Mon Sep 17 00:00:00 2001 From: ericampire Date: Thu, 12 May 2022 21:53:52 +0200 Subject: [PATCH 09/35] Fix Author UI Padding Issue --- .../samples/apps/nowinandroid/feature/author/AuthorScreen.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt b/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt index 69225e7a3..d310955b6 100644 --- a/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt +++ b/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt @@ -157,8 +157,7 @@ private fun AuthorHeader(author: Author) { modifier = Modifier .size(216.dp) .align(Alignment.CenterHorizontally) - .clip(CircleShape) - .padding(bottom = 12.dp), + .clip(CircleShape), contentScale = ContentScale.Crop, model = author.imageUrl, contentDescription = "Author profile picture", @@ -216,6 +215,7 @@ private fun AuthorToolbar( } val selected = uiState.isFollowed NiaFilterChip( + modifier = Modifier.padding(horizontal = 16.dp), checked = selected, onCheckedChange = onFollowClick, ) { From e304cd3ee71cfeae5af4f570720f9aba1a726782 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Thu, 12 May 2022 23:26:25 +0200 Subject: [PATCH 10/35] Reuse the same RoundedCornerShape for NewsResourceCardExpanded and NewsResourceHeaderImage Fixes #15 --- .../samples/apps/nowinandroid/core/ui/NewsResourceCard.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt b/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt index 4242f2f33..270cdf998 100644 --- a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt +++ b/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt @@ -141,7 +141,7 @@ fun NewsResourceHeaderImage( }, modifier = Modifier .fillMaxWidth() - .clip(RoundedCornerShape(topEnd = 24.dp, topStart = 24.dp)) + .clip(RoundedCornerShape(topEnd = 16.dp, topStart = 16.dp)) .height(180.dp), contentScale = ContentScale.Crop, model = headerImageUrl, From e5b2b22b03ef5e3d88a1b236564628e9fbd90594 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Fri, 13 May 2022 01:03:45 +0200 Subject: [PATCH 11/35] Replace empty `AuthorItem`'s picture with `Icons.Filled.Person` Duplicated from `NewsResourceAuthors`. Fixes #20 --- .../feature/foryou/AuthorsCarousel.kt | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt index df6b8bbda..a56fc08bb 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt @@ -16,6 +16,7 @@ package com.google.samples.apps.nowinandroid.feature.foryou +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -28,6 +29,10 @@ import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.items import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Android +import androidx.compose.material.icons.filled.Person +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text @@ -95,15 +100,29 @@ fun AuthorItem( stateDescription = "$followDescription ${author.name}" } ) { - Box(modifier = Modifier.fillMaxWidth()) { - AsyncImage( - modifier = Modifier - .size(48.dp) - .clip(CircleShape), - model = author.imageUrl, - contentScale = ContentScale.Fit, - contentDescription = null - ) + Box( + modifier = Modifier.fillMaxWidth(), + contentAlignment = Alignment.Center, + ) { + val authorImageModifier = Modifier + .size(48.dp) + .clip(CircleShape) + if (author.imageUrl.isEmpty()) { + Icon( + modifier = authorImageModifier + .background(MaterialTheme.colorScheme.surface) + .padding(4.dp), + imageVector = Icons.Filled.Person, + contentDescription = null // decorative image + ) + } else { + AsyncImage( + modifier = authorImageModifier, + model = author.imageUrl, + contentScale = ContentScale.Fit, + contentDescription = null + ) + } FollowButton( following = following, backgroundColor = MaterialTheme.colorScheme.surface, From 8416a16a972de9a5fd7060022232a66d1ee1528a Mon Sep 17 00:00:00 2001 From: ericampire Date: Fri, 13 May 2022 08:18:32 +0200 Subject: [PATCH 12/35] Refactor Padding --- .../samples/apps/nowinandroid/feature/author/AuthorScreen.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt b/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt index d310955b6..75df35202 100644 --- a/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt +++ b/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt @@ -155,6 +155,7 @@ private fun AuthorHeader(author: Author) { ) { AsyncImage( modifier = Modifier + .padding(bottom = 12.dp) .size(216.dp) .align(Alignment.CenterHorizontally) .clip(CircleShape), From eb8ee9b4f84fba3c5e750b26c93a8c59cffcd9c0 Mon Sep 17 00:00:00 2001 From: Ben Weiss Date: Tue, 10 May 2022 15:50:28 +0100 Subject: [PATCH 13/35] Update benchmarking & baseline profiles Uses newest versions from I/O release Also updates baseline profile to match latest changes --- app/benchmark-rules.pro | 6 +- app/src/main/baseline-prof.txt | 100 +++++++++--------- .../nowinandroid/navigation/NiaNavHost.kt | 23 ---- gradle/libs.versions.toml | 4 +- 4 files changed, 56 insertions(+), 77 deletions(-) diff --git a/app/benchmark-rules.pro b/app/benchmark-rules.pro index 335c5b289..ddecd591b 100644 --- a/app/benchmark-rules.pro +++ b/app/benchmark-rules.pro @@ -1,2 +1,6 @@ -#Proguard rules for the `benchmark` build type. +# Proguard rules for the `benchmark` build type. +# +# Obsfuscation must be disabled for the build variant that generates Baseline Profile, otherwise +# wrong symbols would be generated. The generated Baseline Profile will be properly applied when generated +# without obfuscation and your app is being obfuscated. -dontobfuscate \ No newline at end of file diff --git a/app/src/main/baseline-prof.txt b/app/src/main/baseline-prof.txt index b1d1eb989..2e677c394 100644 --- a/app/src/main/baseline-prof.txt +++ b/app/src/main/baseline-prof.txt @@ -73,7 +73,6 @@ HSPLandroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility HSPLandroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility;->compareTo(II)I HSPLandroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility;->ordinal(I)I HSPLandroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility;->values(I)[I -HSPLandroidx/compose/animation/core/AnimationResult;->(Landroidx/compose/animation/core/AnimationState;I)V HSPLandroidx/compose/animation/core/AnimationScope;->(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationVector;JLjava/lang/Object;JZLkotlin/jvm/functions/Function0;)V HSPLandroidx/compose/animation/core/AnimationScope;->getValue()Ljava/lang/Object; HSPLandroidx/compose/animation/core/AnimationScope;->setRunning$animation_core_release(Z)V @@ -115,6 +114,8 @@ HSPLandroidx/compose/animation/core/AnimationVector;->getSize$animation_core_rel HSPLandroidx/compose/animation/core/AnimationVector;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector; HSPLandroidx/compose/animation/core/AnimationVector;->reset$animation_core_release()V HSPLandroidx/compose/animation/core/AnimationVector;->set$animation_core_release(IF)V +HSPLandroidx/compose/animation/core/AnimationVectorsKt;->copy(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector; +HSPLandroidx/compose/animation/core/AnimationVectorsKt;->newInstance(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector; HSPLandroidx/compose/animation/core/Animations;->get(I)Landroidx/compose/animation/core/FloatAnimationSpec; HSPLandroidx/compose/animation/core/ComplexDouble;->(DD)V HSPLandroidx/compose/animation/core/ComplexDouble;->equals(Ljava/lang/Object;)Z @@ -446,7 +447,6 @@ HSPLandroidx/compose/foundation/Background;->foldOut(Ljava/lang/Object;Lkotlin/j HSPLandroidx/compose/foundation/Background;->hashCode()I HSPLandroidx/compose/foundation/Background;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/Background;->toString()Ljava/lang/String; -HSPLandroidx/compose/foundation/BackgroundKt;->background$default(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Brush;Landroidx/compose/ui/graphics/Shape;FI)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/BackgroundKt;->background-bw27NRU$default(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;I)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/BackgroundKt;->background-bw27NRU(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/BorderKt$border$2$1;->(FLandroidx/compose/ui/graphics/Shape;Landroidx/compose/ui/node/Ref;Landroidx/compose/ui/graphics/Brush;)V @@ -1330,6 +1330,7 @@ HSPLandroidx/compose/foundation/layout/SizeModifier;->foldOut(Ljava/lang/Object; HSPLandroidx/compose/foundation/layout/SizeModifier;->hashCode()I HSPLandroidx/compose/foundation/layout/SizeModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult; HSPLandroidx/compose/foundation/layout/SizeModifier;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; +HSPLandroidx/compose/foundation/layout/SpacerKt$$ExternalSyntheticOutline0;->m(Landroidx/compose/runtime/Composer;Landroidx/compose/ui/platform/ViewConfiguration;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;)Landroidx/compose/runtime/SkippableUpdater; HSPLandroidx/compose/foundation/layout/SpacerKt;->Spacer(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V HSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;->()V HSPLandroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1;->()V @@ -1388,14 +1389,12 @@ HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsum HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;->()V HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedWindowInsets$1;->invoke()Ljava/lang/Object; HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->()V +HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->consumedWindowInsets(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/layout/WindowInsetsPaddingKt;->windowInsetsPadding(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/WindowInsets;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/foundation/layout/WindowInsetsPadding_androidKt$safeDrawingPadding$$inlined$windowInsetsPadding$1;->()V HSPLandroidx/compose/foundation/layout/WindowInsetsPadding_androidKt$safeDrawingPadding$$inlined$windowInsetsPadding$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroidx/compose/foundation/layout/WindowInsetsSides;->hasAny-bkgdKaI$foundation_layout_release(II)Z HSPLandroidx/compose/foundation/layout/WindowInsetsSides;->valueToString_impl$lambda-0$appendPlus(Ljava/lang/StringBuilder;Ljava/lang/String;)V -HSPLandroidx/compose/foundation/layout/WindowInsets_androidKt;->ValueInsets(Landroidx/core/graphics/Insets;Ljava/lang/String;)Landroidx/compose/foundation/layout/ValueInsets; -HSPLandroidx/compose/foundation/layout/WindowInsets_androidKt;->getSafeDrawing(Landroidx/compose/foundation/layout/WindowInsets$Companion;Landroidx/compose/runtime/Composer;)Landroidx/compose/foundation/layout/WindowInsets; -HSPLandroidx/compose/foundation/layout/WindowInsets_androidKt;->toInsetsValues(Landroidx/core/graphics/Insets;)Landroidx/compose/foundation/layout/InsetsValues; HSPLandroidx/compose/foundation/layout/WrapContentModifier$measure$1;->(Landroidx/compose/foundation/layout/WrapContentModifier;ILandroidx/compose/ui/layout/Placeable;ILandroidx/compose/ui/layout/MeasureScope;)V HSPLandroidx/compose/foundation/layout/WrapContentModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroidx/compose/foundation/layout/WrapContentModifier;->(IZLkotlin/jvm/functions/Function2;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V @@ -1781,6 +1780,7 @@ HSPLandroidx/compose/foundation/lazy/layout/DummyHandle;->cancel()V HSPLandroidx/compose/foundation/lazy/layout/IntervalHolder;->(IILjava/lang/Object;)V HSPLandroidx/compose/foundation/lazy/layout/IntervalList;->getIntervals()Ljava/util/List; HSPLandroidx/compose/foundation/lazy/layout/IntervalList;->getTotalSize()I +HSPLandroidx/compose/foundation/lazy/layout/IntervalListKt;->intervalIndexForItemIndex(Landroidx/compose/foundation/lazy/layout/IntervalList;I)I HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1$invoke$$inlined$onDispose$1;->(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;)V HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1$invoke$$inlined$onDispose$1;->dispose()V HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1;->(Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent;)V @@ -1839,7 +1839,6 @@ HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher;->schedulePrefe HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt$LazyLayoutPrefetcher$2;->(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/ui/layout/SubcomposeLayoutState;I)V HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt$LazyLayoutPrefetcher$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt;->LazyLayoutPrefetcher(Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState;Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory;Landroidx/compose/ui/layout/SubcomposeLayoutState;Landroidx/compose/runtime/Composer;I)V -HSPLandroidx/compose/foundation/lazy/layout/Lazy_androidKt;->throwSubtypeNotRegistered(Ljava/lang/String;Lkotlin/reflect/KClass;)Ljava/lang/Void; HSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->()V HSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->add(ILjava/lang/Object;)V HSPLandroidx/compose/foundation/lazy/layout/MutableIntervalList;->getIntervals()Ljava/util/List; @@ -2734,6 +2733,7 @@ HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementati HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->(Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/immutableMap/PersistentHashMap;)V HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->add(Ljava/lang/Object;)Landroidx/compose/runtime/external/kotlinx/collections/immutable/PersistentSet; HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet;->getSize()I +HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/EndOfChain;->()V HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/ListImplementation;->checkElementIndex$runtime_release(II)V HSPLandroidx/compose/runtime/external/kotlinx/collections/immutable/internal/MutabilityOwnership;->()V HSPLandroidx/compose/runtime/internal/ComposableLambdaImpl$invoke$1;->(Landroidx/compose/runtime/internal/ComposableLambdaImpl;Ljava/lang/Object;I)V @@ -2873,6 +2873,8 @@ HSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->iterator()Ljava/util/Iter HSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->or(Landroidx/compose/runtime/snapshots/SnapshotIdSet;)Landroidx/compose/runtime/snapshots/SnapshotIdSet; HSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->set(I)Landroidx/compose/runtime/snapshots/SnapshotIdSet; HSPLandroidx/compose/runtime/snapshots/SnapshotIdSet;->toString()Ljava/lang/String; +HSPLandroidx/compose/runtime/snapshots/SnapshotIdSetKt;->access$lowestBitOf(J)I +HSPLandroidx/compose/runtime/snapshots/SnapshotIdSetKt;->binarySearch([II)I HSPLandroidx/compose/runtime/snapshots/SnapshotKt$advanceGlobalSnapshot$2;->()V HSPLandroidx/compose/runtime/snapshots/SnapshotKt$advanceGlobalSnapshot$2;->()V HSPLandroidx/compose/runtime/snapshots/SnapshotKt$advanceGlobalSnapshot$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object; @@ -3119,8 +3121,6 @@ HSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->(Landroid/graphics/B HSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getHeight()I HSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->getWidth()I HSPLandroidx/compose/ui/graphics/AndroidImageBitmap;->prepareToDraw()V -HSPLandroidx/compose/ui/graphics/AndroidImageBitmap_androidKt;->asAndroidBitmap(Landroidx/compose/ui/graphics/ImageBitmap;)Landroid/graphics/Bitmap; -HSPLandroidx/compose/ui/graphics/AndroidImageBitmap_androidKt;->toBitmapConfig-1JJdX4A(I)Landroid/graphics/Bitmap$Config; HSPLandroidx/compose/ui/graphics/AndroidMatrixConversions_androidKt;->setFrom-tU-YjHk([FLandroid/graphics/Matrix;)V HSPLandroidx/compose/ui/graphics/AndroidPaint;->()V HSPLandroidx/compose/ui/graphics/AndroidPaint;->asFrameworkPaint()Landroid/graphics/Paint; @@ -3185,12 +3185,14 @@ HSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier;->hashCode()I HSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult; HSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; HSPLandroidx/compose/ui/graphics/BlockGraphicsLayerModifier;->toString()Ljava/lang/String; +HSPLandroidx/compose/ui/graphics/Brush;->()V HSPLandroidx/compose/ui/graphics/Brush;->()V HSPLandroidx/compose/ui/graphics/Brush;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/graphics/Brush;->applyTo-Pq9zytI(JLandroidx/compose/ui/graphics/Paint;F)V HSPLandroidx/compose/ui/graphics/Canvas$DefaultImpls;->clipPath-mtrdD-E$default(Landroidx/compose/ui/graphics/Canvas;Landroidx/compose/ui/graphics/Path;IILjava/lang/Object;)V HSPLandroidx/compose/ui/graphics/Canvas$DefaultImpls;->drawRect(Landroidx/compose/ui/graphics/Canvas;Landroidx/compose/ui/geometry/Rect;Landroidx/compose/ui/graphics/Paint;)V HSPLandroidx/compose/ui/graphics/CanvasHolder;->()V +HSPLandroidx/compose/ui/graphics/CanvasKt;->Canvas(Landroidx/compose/ui/graphics/ImageBitmap;)Landroidx/compose/ui/graphics/Canvas; HSPLandroidx/compose/ui/graphics/Color$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/graphics/Color;->()V HSPLandroidx/compose/ui/graphics/Color;->(J)V @@ -3328,15 +3330,6 @@ HSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->hashCode()I HSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->isSrgb()Z HSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->toString()Ljava/lang/String; HSPLandroidx/compose/ui/graphics/colorspace/ColorSpace;->toXyz([F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->adapt$default(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/Adaptation;I)Landroidx/compose/ui/graphics/colorspace/ColorSpace; -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->chromaticAdaptation([F[F[F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->compare(Landroidx/compose/ui/graphics/colorspace/WhitePoint;Landroidx/compose/ui/graphics/colorspace/WhitePoint;)Z -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->connect-YBCOT_4$default(Landroidx/compose/ui/graphics/colorspace/ColorSpace;Landroidx/compose/ui/graphics/colorspace/ColorSpace;II)Landroidx/compose/ui/graphics/colorspace/Connector; -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->inverse3x3([F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->mul3x3([F[F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->mul3x3Diag([F[F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->mul3x3Float3([F[F)[F -HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaceKt;->rcpResponse(DDDDDD)D HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$1;->()V HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$1;->()V HSPLandroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; @@ -3800,6 +3793,7 @@ HSPLandroidx/compose/ui/graphics/vector/VectorPainterKt;->rememberVectorPainter( HSPLandroidx/compose/ui/graphics/vector/VectorPath;->(Ljava/lang/String;Ljava/util/List;ILandroidx/compose/ui/graphics/Brush;FLandroidx/compose/ui/graphics/Brush;FFIIFFFFLkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/graphics/vector/VectorPath;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/graphics/vector/VectorPath;->hashCode()I +HSPLandroidx/compose/ui/graphics/vector/compat/AndroidVectorResources;->()V HSPLandroidx/compose/ui/graphics/vector/compat/XmlVectorParser_androidKt;->obtainBrushFromComplexColor(Landroidx/core/content/res/ComplexColorCompat;)Landroidx/compose/ui/graphics/Brush; HSPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher$calculateNestedScrollScope$1;->(Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)V HSPLandroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher$calculateNestedScrollScope$1;->invoke()Ljava/lang/Object; @@ -3860,6 +3854,14 @@ HSPLandroidx/compose/ui/input/pointer/NodeParent;->dispatchMainEventPass(Ljava/u HSPLandroidx/compose/ui/input/pointer/NodeParent;->removeDetachedPointerInputFilters()V HSPLandroidx/compose/ui/input/pointer/PointerEvent;->(Ljava/util/List;Landroidx/compose/ui/input/pointer/InternalPointerEvent;)V HSPLandroidx/compose/ui/input/pointer/PointerEvent;->getMotionEvent$ui_release()Landroid/view/MotionEvent; +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->changedToDown(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->changedToDownIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->changedToUp(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->changedToUpIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->isOutOfBounds-O0kMr_c(Landroidx/compose/ui/input/pointer/PointerInputChange;J)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->isOutOfBounds-jwHxaWs(Landroidx/compose/ui/input/pointer/PointerInputChange;JJ)Z +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->positionChangeInternal(Landroidx/compose/ui/input/pointer/PointerInputChange;Z)J +HSPLandroidx/compose/ui/input/pointer/PointerEventKt;->positionChangedIgnoreConsumed(Landroidx/compose/ui/input/pointer/PointerInputChange;)Z HSPLandroidx/compose/ui/input/pointer/PointerEventPass;->()V HSPLandroidx/compose/ui/input/pointer/PointerEventPass;->(Ljava/lang/String;I)V HSPLandroidx/compose/ui/input/pointer/PointerEventPass;->valueOf(Ljava/lang/String;)Landroidx/compose/ui/input/pointer/PointerEventPass; @@ -3888,6 +3890,9 @@ HSPLandroidx/compose/ui/input/pointer/PointerInputEventProcessor;->process-BIzXf HSPLandroidx/compose/ui/input/pointer/PointerInputFilter;->()V HSPLandroidx/compose/ui/input/pointer/PointerInputFilter;->onCancel()V HSPLandroidx/compose/ui/input/pointer/PointerInputFilter;->onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V +HSPLandroidx/compose/ui/input/pointer/PointerType;->equals-impl0(II)Z +HSPLandroidx/compose/ui/input/pointer/PointerType;->toString-impl(I)Ljava/lang/String; +HSPLandroidx/compose/ui/input/pointer/ProcessResult;->getDispatchedToAPointerInputModifier-impl(I)Z HSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilter$PointerEventHandlerCoroutine;->(Landroidx/compose/ui/input/pointer/SuspendingPointerInputFilter;Lkotlin/coroutines/Continuation;)V HSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilter$PointerEventHandlerCoroutine;->awaitPointerEvent(Landroidx/compose/ui/input/pointer/PointerEventPass;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; HSPLandroidx/compose/ui/input/pointer/SuspendingPointerInputFilter$PointerEventHandlerCoroutine;->getContext()Lkotlin/coroutines/CoroutineContext; @@ -3997,6 +4002,8 @@ HSPLandroidx/compose/ui/layout/ContentScale$Companion$Inside$1;->computeScaleFac HSPLandroidx/compose/ui/layout/ContentScale$Companion;->()V HSPLandroidx/compose/ui/layout/ContentScale$Companion;->()V HSPLandroidx/compose/ui/layout/ContentScale;->computeScaleFactor-H7hwNQA(JJ)J +HSPLandroidx/compose/ui/layout/ContentScaleKt;->computeFillHeight-iLBOSCw(JJ)F +HSPLandroidx/compose/ui/layout/ContentScaleKt;->computeFillWidth-iLBOSCw(JJ)F HSPLandroidx/compose/ui/layout/HorizontalAlignmentLine;->(Lkotlin/jvm/functions/Function2;)V HSPLandroidx/compose/ui/layout/IntrinsicMeasurable;->getParentData()Ljava/lang/Object; HSPLandroidx/compose/ui/layout/IntrinsicMeasureScope;->getLayoutDirection()Landroidx/compose/ui/unit/LayoutDirection; @@ -4008,10 +4015,6 @@ HSPLandroidx/compose/ui/layout/LayoutCoordinates;->localBoundingBoxOf(Landroidx/ HSPLandroidx/compose/ui/layout/LayoutCoordinates;->localPositionOf-R5De75A(Landroidx/compose/ui/layout/LayoutCoordinates;J)J HSPLandroidx/compose/ui/layout/LayoutCoordinates;->localToRoot-MK-Hz9U(J)J HSPLandroidx/compose/ui/layout/LayoutCoordinates;->localToWindow-MK-Hz9U(J)J -HSPLandroidx/compose/ui/layout/LayoutCoordinatesKt;->boundsInParent(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/geometry/Rect; -HSPLandroidx/compose/ui/layout/LayoutCoordinatesKt;->boundsInRoot(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/geometry/Rect; -HSPLandroidx/compose/ui/layout/LayoutCoordinatesKt;->findRoot(Landroidx/compose/ui/layout/LayoutCoordinates;)Landroidx/compose/ui/layout/LayoutCoordinates; -HSPLandroidx/compose/ui/layout/LayoutCoordinatesKt;->positionInRoot(Landroidx/compose/ui/layout/LayoutCoordinates;)J HSPLandroidx/compose/ui/layout/LayoutId;->(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V HSPLandroidx/compose/ui/layout/LayoutId;->all(Lkotlin/jvm/functions/Function1;)Z HSPLandroidx/compose/ui/layout/LayoutId;->equals(Ljava/lang/Object;)Z @@ -4305,7 +4308,6 @@ HSPLandroidx/compose/ui/node/HitTestResult;->sort(Ljava/util/Comparator;)V HSPLandroidx/compose/ui/node/HitTestResult;->subList(II)Ljava/util/List; HSPLandroidx/compose/ui/node/HitTestResult;->toArray()[Ljava/lang/Object; HSPLandroidx/compose/ui/node/HitTestResult;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLandroidx/compose/ui/node/HitTestResultKt;->access$DistanceAndInLayer(FZ)J HSPLandroidx/compose/ui/node/InnerPlaceable;->()V HSPLandroidx/compose/ui/node/InnerPlaceable;->(Landroidx/compose/ui/node/LayoutNode;)V HSPLandroidx/compose/ui/node/InnerPlaceable;->calculateAlignmentLine(Landroidx/compose/ui/layout/AlignmentLine;)I @@ -4949,7 +4951,6 @@ HSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt$obtainImageV HSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->()V HSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->ProvideAndroidCompositionLocals(Landroidx/compose/ui/platform/AndroidComposeView;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V HSPLandroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->access$noLocalProvidedFor(Ljava/lang/String;)Ljava/lang/Void; -HSPLandroidx/compose/ui/platform/AndroidFontResourceLoader;->(Landroid/content/Context;)V HSPLandroidx/compose/ui/platform/AndroidUiDispatcher$Companion$Main$2$dispatcher$1;->(Lkotlin/coroutines/Continuation;)V HSPLandroidx/compose/ui/platform/AndroidUiDispatcher$Companion$Main$2$dispatcher$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; HSPLandroidx/compose/ui/platform/AndroidUiDispatcher$Companion$Main$2$dispatcher$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; @@ -5366,13 +5367,13 @@ HSPLandroidx/compose/ui/text/ParagraphIntrinsicInfo;->(Landroidx/compose/u HSPLandroidx/compose/ui/text/ParagraphIntrinsicInfo;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/ParagraphIntrinsicInfo;->hashCode()I HSPLandroidx/compose/ui/text/ParagraphIntrinsicInfo;->toString()Ljava/lang/String; -HSPLandroidx/compose/ui/text/ParagraphStyle;->(Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Lkotlinx/coroutines/SupervisorKt;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +HSPLandroidx/compose/ui/text/ParagraphStyle;->(Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Lcoil/util/-FileSystems;Lkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/text/ParagraphStyle;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/ParagraphStyle;->hashCode()I HSPLandroidx/compose/ui/text/ParagraphStyle;->merge(Landroidx/compose/ui/text/ParagraphStyle;)Landroidx/compose/ui/text/ParagraphStyle; HSPLandroidx/compose/ui/text/ParagraphStyle;->toString()Ljava/lang/String; HSPLandroidx/compose/ui/text/SpanStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;I)V -HSPLandroidx/compose/ui/text/SpanStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/PlatformSpanStyle;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +HSPLandroidx/compose/ui/text/SpanStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Lcoil/util/-Logs;Lkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLandroidx/compose/ui/text/SpanStyle;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/SpanStyle;->hashCode()I HSPLandroidx/compose/ui/text/SpanStyle;->merge(Landroidx/compose/ui/text/SpanStyle;)Landroidx/compose/ui/text/SpanStyle; @@ -5405,8 +5406,8 @@ HSPLandroidx/compose/ui/text/TextRangeKt;->TextRange(II)J HSPLandroidx/compose/ui/text/TextRangeKt;->constrain-8ffj60Q(JII)J HSPLandroidx/compose/ui/text/TextStyle;->()V HSPLandroidx/compose/ui/text/TextStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;I)V -HSPLandroidx/compose/ui/text/TextStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Lkotlinx/coroutines/SupervisorKt;Lkotlin/jvm/internal/DefaultConstructorMarker;)V -HSPLandroidx/compose/ui/text/TextStyle;->(Landroidx/compose/ui/text/SpanStyle;Landroidx/compose/ui/text/ParagraphStyle;Lkotlinx/coroutines/SupervisorKt;)V +HSPLandroidx/compose/ui/text/TextStyle;->(JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;Lkotlinx/coroutines/EventLoop_commonKt;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +HSPLandroidx/compose/ui/text/TextStyle;->(Landroidx/compose/ui/text/SpanStyle;Landroidx/compose/ui/text/ParagraphStyle;Lkotlinx/coroutines/EventLoop_commonKt;)V HSPLandroidx/compose/ui/text/TextStyle;->copy-HL5avdY$default(Landroidx/compose/ui/text/TextStyle;JJLandroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontSynthesis;Landroidx/compose/ui/text/font/FontFamily;Ljava/lang/String;JLandroidx/compose/ui/text/style/BaselineShift;Landroidx/compose/ui/text/style/TextGeometricTransform;Landroidx/compose/ui/text/intl/LocaleList;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/graphics/Shadow;Landroidx/compose/ui/text/style/TextAlign;Landroidx/compose/ui/text/style/TextDirection;JLandroidx/compose/ui/text/style/TextIndent;I)Landroidx/compose/ui/text/TextStyle; HSPLandroidx/compose/ui/text/TextStyle;->equals(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/TextStyle;->hashCode()I @@ -5477,7 +5478,6 @@ HSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->(Landroidx/comp HSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->resolve(Landroidx/compose/ui/text/font/TypefaceRequest;)Landroidx/compose/runtime/State; HSPLandroidx/compose/ui/text/font/FontFamilyResolverImpl;->resolve-DPcqOEQ(Landroidx/compose/ui/text/font/FontFamily;Landroidx/compose/ui/text/font/FontWeight;II)Landroidx/compose/runtime/State; HSPLandroidx/compose/ui/text/font/FontFamilyResolverKt;->()V -HSPLandroidx/compose/ui/text/font/FontFamilyResolver_androidKt;->createFontFamilyResolver(Landroid/content/Context;)Landroidx/compose/ui/text/font/FontFamily$Resolver; HSPLandroidx/compose/ui/text/font/FontListFontFamily;->add(ILjava/lang/Object;)V HSPLandroidx/compose/ui/text/font/FontListFontFamily;->add(Ljava/lang/Object;)Z HSPLandroidx/compose/ui/text/font/FontListFontFamily;->addAll(ILjava/util/Collection;)Z @@ -5783,6 +5783,7 @@ HSPLandroidx/compose/ui/unit/Velocity;->minus-AH228Gc(JJ)J HSPLandroidx/compose/ui/unit/Velocity;->plus-AH228Gc(JJ)J HSPLandroidx/compose/ui/unit/Velocity;->toString()Ljava/lang/String; HSPLandroidx/compose/ui/unit/VelocityKt;->Velocity(FF)J +HSPLandroidx/compose/ui/util/MathHelpersKt;->lerp(FFF)F HSPLandroidx/lifecycle/LiveData$1;->(Landroidx/lifecycle/LiveData;)V HSPLandroidx/lifecycle/LiveData$1;->run()V HSPLandroidx/lifecycle/LiveData$AlwaysActiveObserver;->(Landroidx/lifecycle/LiveData;Landroidx/lifecycle/Observer;)V @@ -5854,7 +5855,6 @@ HSPLandroidx/navigation/NavDeepLinkRequest;->(Landroid/content/Intent;)V HSPLandroidx/navigation/NavDeepLinkRequest;->(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V HSPLandroidx/navigation/NavDestination;->()V HSPLandroidx/navigation/NavDestination;->(Landroidx/navigation/Navigator;)V -HSPLandroidx/navigation/NavDestination;->addArgument(Ljava/lang/String;Landroidx/navigation/NavArgument;)V HSPLandroidx/navigation/NavDestination;->addInDefaultArgs(Landroid/os/Bundle;)Landroid/os/Bundle; HSPLandroidx/navigation/NavDestination;->equals(Ljava/lang/Object;)Z HSPLandroidx/navigation/NavDestination;->getArguments()Ljava/util/Map; @@ -6047,6 +6047,8 @@ HSPLkotlinx/coroutines/CancellableContinuationImpl;->resumedState(Lkotlinx/corou HSPLkotlinx/coroutines/CancellableContinuationImpl;->takeState$kotlinx_coroutines_core()Ljava/lang/Object; HSPLkotlinx/coroutines/CancellableContinuationImpl;->tryResume(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; HSPLkotlinx/coroutines/CancellableContinuationImpl;->tryResumeImpl(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/internal/Symbol; +HSPLkotlinx/coroutines/CancellableContinuationKt;->disposeOnCancellation(Lkotlinx/coroutines/CancellableContinuation;Lkotlinx/coroutines/DisposableHandle;)V +HSPLkotlinx/coroutines/CancellableContinuationKt;->getOrCreateCancellableContinuation(Lkotlin/coroutines/Continuation;)Lkotlinx/coroutines/CancellableContinuationImpl; HSPLkotlinx/coroutines/CancelledContinuation;->(Lkotlin/coroutines/Continuation;Ljava/lang/Throwable;Z)V HSPLkotlinx/coroutines/ChildContinuation;->(Lkotlinx/coroutines/CancellableContinuationImpl;)V HSPLkotlinx/coroutines/ChildContinuation;->invoke(Ljava/lang/Throwable;)V @@ -6057,8 +6059,6 @@ HSPLkotlinx/coroutines/CompletedContinuation;->(Ljava/lang/Object;Lkotlinx HSPLkotlinx/coroutines/CompletedExceptionally;->(Ljava/lang/Throwable;Z)V HSPLkotlinx/coroutines/CompletedExceptionally;->getHandled()Z HSPLkotlinx/coroutines/CompletionHandlerBase;->()V -HSPLkotlinx/coroutines/CompletionStateKt;->recoverResult(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLkotlinx/coroutines/CompletionStateKt;->toState(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; HSPLkotlinx/coroutines/CoroutineContextKt;->newCoroutineContext(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext; HSPLkotlinx/coroutines/CoroutineDispatcher$Key$1;->()V HSPLkotlinx/coroutines/CoroutineDispatcher$Key;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -6077,11 +6077,15 @@ HSPLkotlinx/coroutines/DefaultExecutor;->()V HSPLkotlinx/coroutines/DefaultExecutor;->getThread()Ljava/lang/Thread; HSPLkotlinx/coroutines/DefaultExecutor;->isShutdownRequested()Z HSPLkotlinx/coroutines/DefaultExecutor;->run()V +HSPLkotlinx/coroutines/DelayKt;->delay(JLkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLkotlinx/coroutines/DelayKt;->getDelay(Lkotlin/coroutines/CoroutineContext;)Lkotlinx/coroutines/Delay; HSPLkotlinx/coroutines/DispatchedTask;->(I)V HSPLkotlinx/coroutines/DispatchedTask;->getExceptionalResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Throwable; HSPLkotlinx/coroutines/DispatchedTask;->getSuccessfulResult$kotlinx_coroutines_core(Ljava/lang/Object;)Ljava/lang/Object; HSPLkotlinx/coroutines/DispatchedTask;->handleFatalException(Ljava/lang/Throwable;Ljava/lang/Throwable;)V HSPLkotlinx/coroutines/DispatchedTask;->run()V +HSPLkotlinx/coroutines/DispatchedTaskKt;->isCancellableMode(I)Z +HSPLkotlinx/coroutines/DispatchedTaskKt;->resume(Lkotlinx/coroutines/DispatchedTask;Lkotlin/coroutines/Continuation;Z)V HSPLkotlinx/coroutines/DisposeOnCancel;->(Lkotlinx/coroutines/DisposableHandle;)V HSPLkotlinx/coroutines/Empty;->(Z)V HSPLkotlinx/coroutines/Empty;->getList()Lkotlinx/coroutines/NodeList; @@ -6325,11 +6329,6 @@ HSPLkotlinx/coroutines/internal/ScopeCoroutine;->(Lkotlin/coroutines/Corou HSPLkotlinx/coroutines/internal/ScopeCoroutine;->afterResume(Ljava/lang/Object;)V HSPLkotlinx/coroutines/internal/ScopeCoroutine;->isScopedCoroutine()Z HSPLkotlinx/coroutines/internal/Symbol;->(Ljava/lang/String;)V -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;JJJILjava/lang/Object;)J -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;)Ljava/lang/String; -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;III)I -HSPLkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;JJJ)J HSPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;->()V HSPLkotlinx/coroutines/internal/ThreadContextKt$countAll$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLkotlinx/coroutines/internal/ThreadContextKt$findOne$1;->()V @@ -6358,7 +6357,6 @@ HSPLkotlinx/coroutines/sync/MutexImpl;->(Z)V HSPLkotlinx/coroutines/sync/MutexImpl;->lock(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; HSPLkotlinx/coroutines/sync/MutexImpl;->tryLock(Ljava/lang/Object;)Z HSPLkotlinx/coroutines/sync/MutexImpl;->unlock(Ljava/lang/Object;)V -Landroidx/compose/animation/AndroidFlingSpline$$ExternalSyntheticOutline0; Landroidx/compose/animation/AndroidFlingSpline$$ExternalSyntheticOutline1; Landroidx/compose/animation/AndroidFlingSpline$FlingResult$$ExternalSyntheticOutline0; Landroidx/compose/animation/AndroidFlingSpline$FlingResult; @@ -6392,7 +6390,6 @@ Landroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3; Landroidx/compose/animation/core/AnimateAsStateKt; Landroidx/compose/animation/core/Animation; Landroidx/compose/animation/core/AnimationEndReason$EnumUnboxingSharedUtility; -Landroidx/compose/animation/core/AnimationResult; Landroidx/compose/animation/core/AnimationScope; Landroidx/compose/animation/core/AnimationSpec; Landroidx/compose/animation/core/AnimationState; @@ -6400,6 +6397,7 @@ Landroidx/compose/animation/core/AnimationVector1D; Landroidx/compose/animation/core/AnimationVector2D; Landroidx/compose/animation/core/AnimationVector4D; Landroidx/compose/animation/core/AnimationVector; +Landroidx/compose/animation/core/AnimationVectorsKt; Landroidx/compose/animation/core/Animations; Landroidx/compose/animation/core/ComplexDouble; Landroidx/compose/animation/core/ComplexDoubleKt; @@ -6797,6 +6795,7 @@ Landroidx/compose/foundation/layout/SizeKt$createWrapContentWidthModifier$2; Landroidx/compose/foundation/layout/SizeKt; Landroidx/compose/foundation/layout/SizeModifier$measure$1; Landroidx/compose/foundation/layout/SizeModifier; +Landroidx/compose/foundation/layout/SpacerKt$$ExternalSyntheticOutline0; Landroidx/compose/foundation/layout/SpacerKt; Landroidx/compose/foundation/layout/SpacerMeasurePolicy$measure$1$1; Landroidx/compose/foundation/layout/SpacerMeasurePolicy; @@ -6815,7 +6814,6 @@ Landroidx/compose/foundation/layout/WindowInsetsPaddingKt$ModifierLocalConsumedW Landroidx/compose/foundation/layout/WindowInsetsPaddingKt; Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt$safeDrawingPadding$$inlined$windowInsetsPadding$1; Landroidx/compose/foundation/layout/WindowInsetsSides; -Landroidx/compose/foundation/layout/WindowInsets_androidKt; Landroidx/compose/foundation/layout/WrapContentModifier$measure$1; Landroidx/compose/foundation/layout/WrapContentModifier; Landroidx/compose/foundation/lazy/EmptyLazyListLayoutInfo; @@ -6961,6 +6959,7 @@ Landroidx/compose/foundation/lazy/layout/DefaultLazyKey; Landroidx/compose/foundation/lazy/layout/DummyHandle; Landroidx/compose/foundation/lazy/layout/IntervalHolder; Landroidx/compose/foundation/lazy/layout/IntervalList; +Landroidx/compose/foundation/lazy/layout/IntervalListKt; Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1$invoke$$inlined$onDispose$1; Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1; Landroidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1; @@ -6981,7 +6980,6 @@ Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher$PrefetchRequest; Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher; Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt$LazyLayoutPrefetcher$2; Landroidx/compose/foundation/lazy/layout/LazyLayoutPrefetcher_androidKt; -Landroidx/compose/foundation/lazy/layout/Lazy_androidKt; Landroidx/compose/foundation/lazy/layout/MutableIntervalList; Landroidx/compose/foundation/lazy/layout/PinnableParent$PinnedItemsHandle; Landroidx/compose/foundation/lazy/layout/PinnableParent; @@ -7323,6 +7321,7 @@ Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSet; Landroidx/compose/runtime/external/kotlinx/collections/immutable/implementations/persistentOrderedSet/PersistentOrderedSetIterator; Landroidx/compose/runtime/external/kotlinx/collections/immutable/internal/DeltaCounter; +Landroidx/compose/runtime/external/kotlinx/collections/immutable/internal/EndOfChain; Landroidx/compose/runtime/external/kotlinx/collections/immutable/internal/ListImplementation; Landroidx/compose/runtime/external/kotlinx/collections/immutable/internal/MutabilityOwnership; Landroidx/compose/runtime/internal/ComposableLambda; @@ -7383,6 +7382,7 @@ Landroidx/compose/runtime/snapshots/SnapshotApplyResult; Landroidx/compose/runtime/snapshots/SnapshotDoubleIndexHeap; Landroidx/compose/runtime/snapshots/SnapshotIdSet$iterator$1; Landroidx/compose/runtime/snapshots/SnapshotIdSet; +Landroidx/compose/runtime/snapshots/SnapshotIdSetKt; Landroidx/compose/runtime/snapshots/SnapshotKt$advanceGlobalSnapshot$2; Landroidx/compose/runtime/snapshots/SnapshotKt$emptyLambda$1; Landroidx/compose/runtime/snapshots/SnapshotKt$mergedReadObserver$1; @@ -7423,11 +7423,13 @@ Landroidx/compose/runtime/snapshots/TransparentObserverSnapshot; Landroidx/compose/ui/geometry/CornerRadius$Companion; Landroidx/compose/ui/geometry/CornerRadius; Landroidx/compose/ui/geometry/CornerRadiusKt; +Landroidx/compose/ui/geometry/GeometryUtilsKt; Landroidx/compose/ui/geometry/MutableRect; Landroidx/compose/ui/geometry/Offset$Companion; Landroidx/compose/ui/geometry/Offset; Landroidx/compose/ui/geometry/OffsetKt; Landroidx/compose/ui/geometry/Rect; +Landroidx/compose/ui/geometry/RectKt; Landroidx/compose/ui/geometry/RoundRect; Landroidx/compose/ui/geometry/RoundRectKt; Landroidx/compose/ui/geometry/Size$Companion; @@ -7436,30 +7438,31 @@ Landroidx/compose/ui/geometry/SizeKt; Landroidx/compose/ui/graphics/AndroidCanvas; Landroidx/compose/ui/graphics/AndroidCanvas_androidKt; Landroidx/compose/ui/graphics/AndroidImageBitmap; -Landroidx/compose/ui/graphics/AndroidImageBitmap_androidKt; Landroidx/compose/ui/graphics/AndroidMatrixConversions_androidKt; Landroidx/compose/ui/graphics/AndroidPaint; Landroidx/compose/ui/graphics/AndroidPaint_androidKt$WhenMappings; Landroidx/compose/ui/graphics/AndroidPath; Landroidx/compose/ui/graphics/AndroidPathEffect; Landroidx/compose/ui/graphics/AndroidPathMeasure; -Landroidx/compose/ui/graphics/AndroidShader_androidKt; Landroidx/compose/ui/graphics/Api26Bitmap; Landroidx/compose/ui/graphics/BlendMode; Landroidx/compose/ui/graphics/BlendModeColorFilterHelper; Landroidx/compose/ui/graphics/BlockGraphicsLayerModifier$measure$1; Landroidx/compose/ui/graphics/BlockGraphicsLayerModifier; +Landroidx/compose/ui/graphics/Brush$Companion; Landroidx/compose/ui/graphics/Brush; Landroidx/compose/ui/graphics/BrushKt$ShaderBrush$1; Landroidx/compose/ui/graphics/Canvas$DefaultImpls; Landroidx/compose/ui/graphics/Canvas; Landroidx/compose/ui/graphics/CanvasHolder; +Landroidx/compose/ui/graphics/CanvasKt; Landroidx/compose/ui/graphics/CanvasUtils; Landroidx/compose/ui/graphics/CanvasZHelper; Landroidx/compose/ui/graphics/Color$Companion; Landroidx/compose/ui/graphics/Color; Landroidx/compose/ui/graphics/ColorFilter; Landroidx/compose/ui/graphics/ColorKt; +Landroidx/compose/ui/graphics/FilterQuality; Landroidx/compose/ui/graphics/Float16$Companion; Landroidx/compose/ui/graphics/Float16; Landroidx/compose/ui/graphics/GraphicsLayerModifierKt; @@ -7478,8 +7481,6 @@ Landroidx/compose/ui/graphics/Path$DefaultImpls; Landroidx/compose/ui/graphics/Path; Landroidx/compose/ui/graphics/PathFillType; Landroidx/compose/ui/graphics/PathMeasure; -Landroidx/compose/ui/graphics/PathOperation; -Landroidx/compose/ui/graphics/RadialGradient; Landroidx/compose/ui/graphics/RectangleShapeKt$RectangleShape$1; Landroidx/compose/ui/graphics/RectangleShapeKt; Landroidx/compose/ui/graphics/RenderEffect; @@ -7494,7 +7495,6 @@ Landroidx/compose/ui/graphics/SimpleGraphicsLayerModifier; Landroidx/compose/ui/graphics/SolidColor; Landroidx/compose/ui/graphics/StrokeCap; Landroidx/compose/ui/graphics/StrokeJoin; -Landroidx/compose/ui/graphics/TileMode; Landroidx/compose/ui/graphics/TileModeVerificationHelper; Landroidx/compose/ui/graphics/TransformOrigin$Companion; Landroidx/compose/ui/graphics/TransformOrigin; @@ -7504,7 +7504,6 @@ Landroidx/compose/ui/graphics/colorspace/Adaptation; Landroidx/compose/ui/graphics/colorspace/ColorModel$Companion; Landroidx/compose/ui/graphics/colorspace/ColorModel; Landroidx/compose/ui/graphics/colorspace/ColorSpace; -Landroidx/compose/ui/graphics/colorspace/ColorSpaceKt; Landroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$1; Landroidx/compose/ui/graphics/colorspace/ColorSpaces$ExtendedSrgb$2; Landroidx/compose/ui/graphics/colorspace/ColorSpaces; @@ -7647,6 +7646,7 @@ Landroidx/compose/ui/graphics/vector/VectorProperty$TrimPathOffset; Landroidx/compose/ui/graphics/vector/VectorProperty$TrimPathStart; Landroidx/compose/ui/graphics/vector/VectorProperty; Landroidx/compose/ui/graphics/vector/compat/AndroidVectorParser; +Landroidx/compose/ui/graphics/vector/compat/AndroidVectorResources; Landroidx/compose/ui/graphics/vector/compat/XmlVectorParser_androidKt; Landroidx/compose/ui/text/AnnotatedString$Range; Landroidx/compose/ui/text/AnnotatedString; @@ -7665,7 +7665,6 @@ Landroidx/compose/ui/text/ParagraphStyle; Landroidx/compose/ui/text/ParagraphStyleKt; Landroidx/compose/ui/text/Placeholder; Landroidx/compose/ui/text/PlaceholderVerticalAlign; -Landroidx/compose/ui/text/PlatformSpanStyle; Landroidx/compose/ui/text/SaversKt$AnnotatedStringSaver$1; Landroidx/compose/ui/text/SaversKt$AnnotatedStringSaver$2; Landroidx/compose/ui/text/SaversKt$AnnotationRangeListSaver$1; @@ -7722,6 +7721,7 @@ Landroidx/compose/ui/text/android/LayoutIntrinsics$minIntrinsicWidth$2; Landroidx/compose/ui/text/android/LayoutIntrinsics; Landroidx/compose/ui/text/android/LayoutIntrinsicsKt$$ExternalSyntheticLambda0; Landroidx/compose/ui/text/android/Paint29; +Landroidx/compose/ui/text/android/PaintExtensionsKt; Landroidx/compose/ui/text/android/StaticLayoutFactory23; Landroidx/compose/ui/text/android/StaticLayoutFactory26; Landroidx/compose/ui/text/android/StaticLayoutFactory28; @@ -7747,7 +7747,6 @@ Landroidx/compose/ui/text/caches/LruCache; Landroidx/compose/ui/text/caches/SimpleArrayMap; Landroidx/compose/ui/text/font/AndroidFontLoader; Landroidx/compose/ui/text/font/AndroidFontResolveInterceptor; -Landroidx/compose/ui/text/font/AndroidFontUtils_androidKt; Landroidx/compose/ui/text/font/AsyncTypefaceCache; Landroidx/compose/ui/text/font/DefaultFontFamily; Landroidx/compose/ui/text/font/Font$ResourceLoader; @@ -7758,7 +7757,6 @@ Landroidx/compose/ui/text/font/FontFamilyResolverImpl$createDefaultTypeface$1; Landroidx/compose/ui/text/font/FontFamilyResolverImpl$resolve$result$1; Landroidx/compose/ui/text/font/FontFamilyResolverImpl; Landroidx/compose/ui/text/font/FontFamilyResolverKt; -Landroidx/compose/ui/text/font/FontFamilyResolver_androidKt; Landroidx/compose/ui/text/font/FontListFontFamily; Landroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter$special$$inlined$CoroutineExceptionHandler$1; Landroidx/compose/ui/text/font/FontListFontFamilyTypefaceAdapter; @@ -7774,8 +7772,8 @@ Landroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion$Default$1; Landroidx/compose/ui/text/font/PlatformResolveInterceptor$Companion; Landroidx/compose/ui/text/font/PlatformResolveInterceptor; Landroidx/compose/ui/text/font/PlatformTypefaces; -Landroidx/compose/ui/text/font/PlatformTypefacesApi28; Landroidx/compose/ui/text/font/PlatformTypefacesApi; +Landroidx/compose/ui/text/font/PlatformTypefacesKt; Landroidx/compose/ui/text/font/SystemFontFamily; Landroidx/compose/ui/text/font/TypefaceRequest; Landroidx/compose/ui/text/font/TypefaceRequestCache$runCached$currentTypefaceResult$1; @@ -7793,7 +7791,6 @@ Landroidx/compose/ui/text/input/PlatformTextInputService; Landroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$1; Landroidx/compose/ui/text/input/TextFieldValue$Companion$Saver$2; Landroidx/compose/ui/text/input/TextFieldValue; -Landroidx/compose/ui/text/input/TextFieldValueKt; Landroidx/compose/ui/text/input/TextInputService; Landroidx/compose/ui/text/input/TextInputServiceAndroid$TextInputCommand; Landroidx/compose/ui/text/input/TextInputServiceAndroid$baseInputConnection$2; @@ -7852,6 +7849,7 @@ Landroidx/compose/ui/unit/TextUnitType; Landroidx/compose/ui/unit/Velocity$Companion; Landroidx/compose/ui/unit/Velocity; Landroidx/compose/ui/unit/VelocityKt; +Landroidx/compose/ui/util/MathHelpersKt; Landroidx/navigation/ActivityNavigator$hostActivity$1; Landroidx/navigation/ActivityNavigator; Landroidx/navigation/FloatingWindow; diff --git a/app/src/main/java/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt b/app/src/main/java/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt index 74113a1d7..75a243ee4 100644 --- a/app/src/main/java/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt +++ b/app/src/main/java/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt @@ -16,13 +16,9 @@ package com.google.samples.apps.nowinandroid.navigation -import android.app.Activity -import android.view.View import androidx.compose.material3.windowsizeclass.WindowSizeClass import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalView -import androidx.core.view.doOnPreDraw import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.rememberNavController @@ -67,23 +63,4 @@ fun NiaNavHost( onBackClick = { navController.popBackStack() } ) } -// Reporting the app fully drawn to get accurate TTFD readings for the baseline profile. -// https://developer.android.com/topic/performance/vitals/launch-time#retrieve-TTFD - ReportFullyDrawn(ForYouDestination.route) -} - -/** - * Calling [Activity#reportFullyDrawn] in compose UI. - */ -@Composable -private fun ReportFullyDrawn(destination: String) { - // Holding on to the local view and calling `reportFullyDrawn` in an `onPreDraw` listener. - // Compose currently doesn't offer a way to otherwise report fully drawn, - // so this is a viable approach. - val localView: View = LocalView.current - (localView.context as? Activity)?.run { - localView.doOnPreDraw { - reportFullyDrawn() - } - } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 03d42bbda..f454d0729 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,9 +12,9 @@ androidxDataStore = "1.0.0" androidxEspresso = "3.3.0" androidxHiltNavigationCompose = "1.0.0-rc01" androidxLifecycle = "2.5.0-beta01" -androidxMacroBenchmark = "1.1.0-rc01" +androidxMacroBenchmark = "1.1.0-rc02" androidxNavigation = "2.4.0-rc01" -androidxProfileinstaller = "1.2.0-alpha02" +androidxProfileinstaller = "1.2.0-beta01" androidxSavedState = "1.1.0" androidxStartup = "1.1.1" androidxWindowManager = "1.0.0" From 8992953a4d4e4cfc2b753ec34a5e82995c42975b Mon Sep 17 00:00:00 2001 From: Simona Stojanovic Date: Fri, 13 May 2022 14:03:27 +0100 Subject: [PATCH 14/35] Update Compose Change-Id: Ic10f23d2ec2f37e04eb4287b08b59d6d7a2eef9c --- gradle/libs.versions.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f454d0729..101950284 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,16 +1,16 @@ [versions] -accompanist = "0.21.4-beta" +accompanist = "0.24.8-beta" androidDesugarJdkLibs = "1.1.5" androidGradlePlugin = "7.1.2" androidxActivity = "1.4.0" androidxAppCompat = "1.3.0" -androidxCompose = "1.2.0-alpha08" -androidxComposeMaterial3 = "1.0.0-alpha10" +androidxCompose = "1.2.0-beta01" +androidxComposeMaterial3 = "1.0.0-alpha11" androidxCore = "1.7.0" androidxCustomView = "1.0.0-alpha01" androidxDataStore = "1.0.0" androidxEspresso = "3.3.0" -androidxHiltNavigationCompose = "1.0.0-rc01" +androidxHiltNavigationCompose = "1.0.0" androidxLifecycle = "2.5.0-beta01" androidxMacroBenchmark = "1.1.0-rc02" androidxNavigation = "2.4.0-rc01" @@ -27,12 +27,12 @@ hilt = "2.41" hiltExt = "1.0.0" jacoco = "0.8.7" junit4 = "4.13" -kotlin = "1.6.20" +kotlin = "1.6.21" kotlinxCoroutines = "1.6.0" kotlinxCoroutinesTest = "1.6.0" kotlinxDatetime = "0.3.1" kotlinxSerializationJson = "1.3.1" -ksp = "1.6.20-1.0.5" +ksp = "1.6.21-1.0.5" ktlint = "0.43.0" material3 = "1.5.0-alpha05" okhttp = "4.9.3" From aefbf8a9c0ef60016abf70fe11e371c46a150325 Mon Sep 17 00:00:00 2001 From: YvesKalume Date: Fri, 13 May 2022 17:35:10 +0200 Subject: [PATCH 15/35] fix distorted buttons in nia-catalog --- app-nia-catalog/build.gradle.kts | 1 + .../samples/apps/niacatalog/ui/Catalog.kt | 33 ++++++++++--------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/app-nia-catalog/build.gradle.kts b/app-nia-catalog/build.gradle.kts index dc8d4ffc0..8ab94c29f 100644 --- a/app-nia-catalog/build.gradle.kts +++ b/app-nia-catalog/build.gradle.kts @@ -35,4 +35,5 @@ dependencies { implementation(project(":core-ui")) implementation(libs.androidx.activity.compose) + implementation(libs.accompanist.flowlayout) } \ No newline at end of file diff --git a/app-nia-catalog/src/main/java/com/google/samples/apps/niacatalog/ui/Catalog.kt b/app-nia-catalog/src/main/java/com/google/samples/apps/niacatalog/ui/Catalog.kt index c4f66166a..0513cb690 100644 --- a/app-nia-catalog/src/main/java/com/google/samples/apps/niacatalog/ui/Catalog.kt +++ b/app-nia-catalog/src/main/java/com/google/samples/apps/niacatalog/ui/Catalog.kt @@ -37,6 +37,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp +import com.google.accompanist.flowlayout.FlowRow import com.google.samples.apps.nowinandroid.core.ui.component.NiaDropdownMenuButton import com.google.samples.apps.nowinandroid.core.ui.component.NiaFilledButton import com.google.samples.apps.nowinandroid.core.ui.component.NiaFilterChip @@ -76,7 +77,7 @@ fun NiaCatalog() { } item { Text("Buttons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton(onClick = {}) { Text(text = "Enabled") } @@ -90,7 +91,7 @@ fun NiaCatalog() { } item { Text("Disabled buttons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false @@ -113,7 +114,7 @@ fun NiaCatalog() { } item { Text("Buttons with leading icons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, text = { Text(text = "Enabled") }, @@ -139,7 +140,7 @@ fun NiaCatalog() { } item { Text("Disabled buttons with leading icons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -168,7 +169,7 @@ fun NiaCatalog() { } item { Text("Buttons with trailing icons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, text = { Text(text = "Enabled") }, @@ -194,7 +195,7 @@ fun NiaCatalog() { } item { Text("Disabled buttons with trailing icons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -223,7 +224,7 @@ fun NiaCatalog() { } item { Text("Small buttons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, small = true @@ -246,7 +247,7 @@ fun NiaCatalog() { } item { Text("Disabled small buttons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -272,7 +273,7 @@ fun NiaCatalog() { } item { Text("Small buttons with leading icons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, small = true, @@ -306,7 +307,7 @@ fun NiaCatalog() { ) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -338,7 +339,7 @@ fun NiaCatalog() { } item { Text("Small buttons with trailing icons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, small = true, @@ -372,7 +373,7 @@ fun NiaCatalog() { ) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -413,7 +414,7 @@ fun NiaCatalog() { } item { Text("Chips", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { var firstChecked by remember { mutableStateOf(false) } NiaFilterChip( checked = firstChecked, @@ -437,7 +438,7 @@ fun NiaCatalog() { } item { Text("Toggle buttons", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { var firstChecked by remember { mutableStateOf(false) } NiaToggleButton( checked = firstChecked, @@ -498,7 +499,7 @@ fun NiaCatalog() { } item { Text("View toggle", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { var firstExpanded by remember { mutableStateOf(false) } NiaViewToggleButton( expanded = firstExpanded, @@ -517,7 +518,7 @@ fun NiaCatalog() { } item { Text("Tags", Modifier.padding(top = 16.dp)) } item { - Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { + FlowRow(mainAxisSpacing = 16.dp) { var firstFollowed by remember { mutableStateOf(false) } NiaTopicTag( followed = firstFollowed, From 244eff24bd36c1af57344f4c20b9f4469a199d39 Mon Sep 17 00:00:00 2001 From: Saeed Noshadi Date: Sat, 14 May 2022 17:31:08 +0430 Subject: [PATCH 16/35] add Suppress annotation to fix libs error --- core-database/build.gradle.kts | 1 + core-datastore/build.gradle.kts | 1 + core-model/build.gradle.kts | 1 + core-navigation/build.gradle.kts | 1 + 4 files changed, 4 insertions(+) diff --git a/core-database/build.gradle.kts b/core-database/build.gradle.kts index 0461f28f2..fea0de918 100644 --- a/core-database/build.gradle.kts +++ b/core-database/build.gradle.kts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@kotlin.Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") id("nowinandroid.android.library.jacoco") diff --git a/core-datastore/build.gradle.kts b/core-datastore/build.gradle.kts index 2ccc9ade1..e4234b67e 100644 --- a/core-datastore/build.gradle.kts +++ b/core-datastore/build.gradle.kts @@ -19,6 +19,7 @@ import com.google.protobuf.gradle.generateProtoTasks import com.google.protobuf.gradle.protobuf import com.google.protobuf.gradle.protoc +@kotlin.Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") id("nowinandroid.android.library.jacoco") diff --git a/core-model/build.gradle.kts b/core-model/build.gradle.kts index bda0c4037..c8412ef22 100644 --- a/core-model/build.gradle.kts +++ b/core-model/build.gradle.kts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@kotlin.Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") id("nowinandroid.android.library.jacoco") diff --git a/core-navigation/build.gradle.kts b/core-navigation/build.gradle.kts index c9606b6ce..8fa909964 100644 --- a/core-navigation/build.gradle.kts +++ b/core-navigation/build.gradle.kts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@kotlin.Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") id("nowinandroid.android.library.jacoco") From 25b26bdf13fcbd295fd85e7dbdc9c3d150dd8690 Mon Sep 17 00:00:00 2001 From: madroid Date: Mon, 16 May 2022 23:11:08 +0800 Subject: [PATCH 17/35] rename ForYouInterestsSelectionState -> ForYouInterestsSelectionUiState, ForYouFeedState -> ForYouFeedUiState --- .../feature/foryou/ForYouScreenTest.kt | 28 ++--- ...orYouFeedState.kt => ForYouFeedUiState.kt} | 6 +- ....kt => ForYouInterestsSelectionUiState.kt} | 8 +- .../feature/foryou/ForYouScreen.kt | 34 +++--- .../feature/foryou/ForYouViewModel.kt | 26 ++--- .../feature/foryou/ForYouViewModelTest.kt | 106 +++++++++--------- 6 files changed, 104 insertions(+), 104 deletions(-) rename feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/{ForYouFeedState.kt => ForYouFeedUiState.kt} (91%) rename feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/{ForYouInterestsSelectionState.kt => ForYouInterestsSelectionUiState.kt} (87%) diff --git a/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt b/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt index a2e52bdb4..8469cd191 100644 --- a/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt +++ b/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt @@ -67,8 +67,8 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionState.Loading, - feedState = ForYouFeedState.Loading, + interestsSelectionState = ForYouInterestsSelectionUiState.Loading, + feedState = ForYouFeedUiState.Loading, onAuthorCheckedChanged = { _, _ -> }, onTopicCheckedChanged = { _, _ -> }, saveFollowedTopics = {}, @@ -92,7 +92,7 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionState.WithInterestsSelection( + interestsSelectionState = ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -153,7 +153,7 @@ class ForYouScreenTest { ), ) ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList() ), onAuthorCheckedChanged = { _, _ -> }, @@ -200,7 +200,7 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionState.WithInterestsSelection( + interestsSelectionState = ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -261,7 +261,7 @@ class ForYouScreenTest { ), ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList() ), onAuthorCheckedChanged = { _, _ -> }, @@ -314,7 +314,7 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionState.WithInterestsSelection( + interestsSelectionState = ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -375,7 +375,7 @@ class ForYouScreenTest { ), ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList() ), onAuthorCheckedChanged = { _, _ -> }, @@ -428,7 +428,7 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionState.WithInterestsSelection( + interestsSelectionState = ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -489,7 +489,7 @@ class ForYouScreenTest { ), ), ), - feedState = ForYouFeedState.Loading, + feedState = ForYouFeedUiState.Loading, onAuthorCheckedChanged = { _, _ -> }, onTopicCheckedChanged = { _, _ -> }, saveFollowedTopics = {}, @@ -523,8 +523,8 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Loading, + interestsSelectionState = ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Loading, onAuthorCheckedChanged = { _, _ -> }, onTopicCheckedChanged = { _, _ -> }, saveFollowedTopics = {}, @@ -643,8 +643,8 @@ class ForYouScreenTest { ForYouScreen( windowSizeClass = windowSizeClass, - interestsSelectionState = ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Success( + interestsSelectionState = ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Success( feed = saveableNewsResources ), onAuthorCheckedChanged = { _, _ -> }, diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouFeedState.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouFeedUiState.kt similarity index 91% rename from feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouFeedState.kt rename to feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouFeedUiState.kt index 3d19cc5a3..c6c6c345c 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouFeedState.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouFeedUiState.kt @@ -21,11 +21,11 @@ import com.google.samples.apps.nowinandroid.core.model.data.SaveableNewsResource /** * A sealed hierarchy describing the state of the feed on the for you screen. */ -sealed interface ForYouFeedState { +sealed interface ForYouFeedUiState { /** * The feed is still loading. */ - object Loading : ForYouFeedState + object Loading : ForYouFeedUiState /** * The feed is loaded with the given list of news resources. @@ -35,5 +35,5 @@ sealed interface ForYouFeedState { * The list of news resources contained in this [PopulatedFeed]. */ val feed: List - ) : ForYouFeedState + ) : ForYouFeedUiState } diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionState.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionUiState.kt similarity index 87% rename from feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionState.kt rename to feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionUiState.kt index bca006d5a..bce65611c 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionState.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionUiState.kt @@ -22,16 +22,16 @@ import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic /** * A sealed hierarchy describing the interests selection state for the for you screen. */ -sealed interface ForYouInterestsSelectionState { +sealed interface ForYouInterestsSelectionUiState { /** * The interests selection state is loading. */ - object Loading : ForYouInterestsSelectionState + object Loading : ForYouInterestsSelectionUiState /** * There is no interests selection state. */ - object NoInterestsSelection : ForYouInterestsSelectionState + object NoInterestsSelection : ForYouInterestsSelectionUiState /** * There is a interests selection state, with the given lists of topics and authors. @@ -39,7 +39,7 @@ sealed interface ForYouInterestsSelectionState { data class WithInterestsSelection( val topics: List, val authors: List - ) : ForYouInterestsSelectionState { + ) : ForYouInterestsSelectionUiState { /** * True if the current in-progress selection can be saved. */ diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt index 1a03d2751..760042e86 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt @@ -123,8 +123,8 @@ fun ForYouRoute( @Composable fun ForYouScreen( windowSizeClass: WindowSizeClass, - interestsSelectionState: ForYouInterestsSelectionState, - feedState: ForYouFeedState, + interestsSelectionState: ForYouInterestsSelectionUiState, + feedState: ForYouFeedUiState, onTopicCheckedChanged: (String, Boolean) -> Unit, onAuthorCheckedChanged: (String, Boolean) -> Unit, saveFollowedTopics: () -> Unit, @@ -183,7 +183,7 @@ fun ForYouScreen( // Avoid showing a second loading wheel if we already are for the interests // selection showLoadingUIIfLoading = - interestsSelectionState !is ForYouInterestsSelectionState.Loading, + interestsSelectionState !is ForYouInterestsSelectionUiState.Loading, numberOfColumns = numberOfColumns, onNewsResourcesCheckedChanged = onNewsResourcesCheckedChanged ) @@ -212,14 +212,14 @@ fun ForYouScreen( * states. */ private fun LazyListScope.InterestsSelection( - interestsSelectionState: ForYouInterestsSelectionState, + interestsSelectionState: ForYouInterestsSelectionUiState, showLoadingUIIfLoading: Boolean, onAuthorCheckedChanged: (String, Boolean) -> Unit, onTopicCheckedChanged: (String, Boolean) -> Unit, saveFollowedTopics: () -> Unit ) { when (interestsSelectionState) { - ForYouInterestsSelectionState.Loading -> { + ForYouInterestsSelectionUiState.Loading -> { if (showLoadingUIIfLoading) { item { LoadingWheel( @@ -231,8 +231,8 @@ private fun LazyListScope.InterestsSelection( } } } - ForYouInterestsSelectionState.NoInterestsSelection -> Unit - is ForYouInterestsSelectionState.WithInterestsSelection -> { + ForYouInterestsSelectionUiState.NoInterestsSelection -> Unit + is ForYouInterestsSelectionUiState.WithInterestsSelection -> { item { Text( text = stringResource(R.string.onboarding_guidance_title), @@ -298,7 +298,7 @@ private fun LazyListScope.InterestsSelection( @Composable private fun TopicSelection( - interestsSelectionState: ForYouInterestsSelectionState.WithInterestsSelection, + interestsSelectionState: ForYouInterestsSelectionUiState.WithInterestsSelection, onTopicCheckedChanged: (String, Boolean) -> Unit, modifier: Modifier = Modifier ) { @@ -412,13 +412,13 @@ fun TopicIcon( * states. */ private fun LazyListScope.Feed( - feedState: ForYouFeedState, + feedState: ForYouFeedUiState, showLoadingUIIfLoading: Boolean, @IntRange(from = 1) numberOfColumns: Int, onNewsResourcesCheckedChanged: (String, Boolean) -> Unit ) { when (feedState) { - ForYouFeedState.Loading -> { + ForYouFeedUiState.Loading -> { if (showLoadingUIIfLoading) { item { LoadingWheel( @@ -430,7 +430,7 @@ private fun LazyListScope.Feed( } } } - is ForYouFeedState.Success -> { + is ForYouFeedUiState.Success -> { items( feedState.feed.chunked(numberOfColumns) ) { saveableNewsResources -> @@ -496,8 +496,8 @@ fun ForYouScreenLoading() { NiaTheme { ForYouScreen( windowSizeClass = WindowSizeClass.calculateFromSize(DpSize(maxWidth, maxHeight)), - interestsSelectionState = ForYouInterestsSelectionState.Loading, - feedState = ForYouFeedState.Loading, + interestsSelectionState = ForYouInterestsSelectionUiState.Loading, + feedState = ForYouFeedUiState.Loading, onTopicCheckedChanged = { _, _ -> }, onAuthorCheckedChanged = { _, _ -> }, saveFollowedTopics = {}, @@ -517,7 +517,7 @@ fun ForYouScreenTopicSelection() { NiaTheme { ForYouScreen( windowSizeClass = WindowSizeClass.calculateFromSize(DpSize(maxWidth, maxHeight)), - interestsSelectionState = ForYouInterestsSelectionState.WithInterestsSelection( + interestsSelectionState = ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -589,7 +589,7 @@ fun ForYouScreenTopicSelection() { ) ) ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = saveableNewsResource, ), onAuthorCheckedChanged = { _, _ -> }, @@ -611,8 +611,8 @@ fun PopulatedFeed() { NiaTheme { ForYouScreen( windowSizeClass = WindowSizeClass.calculateFromSize(DpSize(maxWidth, maxHeight)), - interestsSelectionState = ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Success( + interestsSelectionState = ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Success( feed = saveableNewsResource ), onTopicCheckedChanged = { _, _ -> }, diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt index 34ed142b9..f7e36c430 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt @@ -103,7 +103,7 @@ class ForYouViewModel @Inject constructor( mutableStateOf>(emptySet()) } - val feedState: StateFlow = + val feedState: StateFlow = combine( followedInterestsState, snapshotFlow { inProgressTopicSelection }, @@ -114,7 +114,7 @@ class ForYouViewModel @Inject constructor( when (followedInterestsUserState) { // If we don't know the current selection state, emit loading. - Unknown -> flowOf(ForYouFeedState.Loading) + Unknown -> flowOf(ForYouFeedUiState.Loading) // If the user has followed topics, use those followed topics to populate the feed is FollowedInterests -> { newsRepository.getNewsResourcesStream( @@ -126,7 +126,7 @@ class ForYouViewModel @Inject constructor( // on the in-progress interests selections, if there are any. None -> { if (inProgressTopicSelection.isEmpty() && inProgressAuthorSelection.isEmpty()) { - flowOf(ForYouFeedState.Success(emptyList())) + flowOf(ForYouFeedUiState.Success(emptyList())) } else { newsRepository.getNewsResourcesStream( filterTopicIds = inProgressTopicSelection, @@ -143,10 +143,10 @@ class ForYouViewModel @Inject constructor( .stateIn( scope = viewModelScope, started = SharingStarted.WhileSubscribed(5_000), - initialValue = ForYouFeedState.Loading + initialValue = ForYouFeedUiState.Loading ) - val interestsSelectionState: StateFlow = + val interestsSelectionState: StateFlow = combine( followedInterestsState, topicsRepository.getTopicsStream(), @@ -157,8 +157,8 @@ class ForYouViewModel @Inject constructor( inProgressAuthorSelection -> when (followedInterestsUserState) { - Unknown -> ForYouInterestsSelectionState.Loading - is FollowedInterests -> ForYouInterestsSelectionState.NoInterestsSelection + Unknown -> ForYouInterestsSelectionUiState.Loading + is FollowedInterests -> ForYouInterestsSelectionUiState.NoInterestsSelection None -> { val topics = availableTopics.map { topic -> FollowableTopic( @@ -174,9 +174,9 @@ class ForYouViewModel @Inject constructor( } if (topics.isEmpty() && authors.isEmpty()) { - ForYouInterestsSelectionState.Loading + ForYouInterestsSelectionUiState.Loading } else { - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = topics, authors = authors ) @@ -187,7 +187,7 @@ class ForYouViewModel @Inject constructor( .stateIn( scope = viewModelScope, started = SharingStarted.WhileSubscribed(5_000), - initialValue = ForYouInterestsSelectionState.Loading + initialValue = ForYouInterestsSelectionUiState.Loading ) fun updateTopicSelection(topicId: String, isChecked: Boolean) { @@ -245,7 +245,7 @@ class ForYouViewModel @Inject constructor( private fun Flow>.mapToFeedState( savedNewsResources: Set -): Flow = +): Flow = filterNot { it.isEmpty() } .map { newsResources -> newsResources.map { newsResource -> @@ -255,5 +255,5 @@ private fun Flow>.mapToFeedState( ) } } - .map, ForYouFeedState>(ForYouFeedState::Success) - .onStart { emit(ForYouFeedState.Loading) } + .map, ForYouFeedUiState>(ForYouFeedUiState::Success) + .onStart { emit(ForYouFeedUiState.Loading) } diff --git a/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt b/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt index 87412f1f3..dffe9c40b 100644 --- a/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt +++ b/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt @@ -58,12 +58,12 @@ class ForYouViewModelTest { } /** - * A pairing of [ForYouInterestsSelectionState] and [ForYouFeedState] for ease of testing + * A pairing of [ForYouInterestsSelectionUiState] and [ForYouFeedUiState] for ease of testing * state updates as a single flow. */ private data class ForYouUiState( - val interestsSelectionState: ForYouInterestsSelectionState, - val feedState: ForYouFeedState, + val interestsSelectionState: ForYouInterestsSelectionUiState, + val feedState: ForYouFeedUiState, ) private val ForYouViewModel.uiState @@ -79,8 +79,8 @@ class ForYouViewModelTest { viewModel.uiState.test { assertEquals( ForYouUiState( - ForYouInterestsSelectionState.Loading, - ForYouFeedState.Loading + ForYouInterestsSelectionUiState.Loading, + ForYouFeedUiState.Loading ), awaitItem() ) @@ -93,8 +93,8 @@ class ForYouViewModelTest { viewModel.uiState.test { assertEquals( ForYouUiState( - ForYouInterestsSelectionState.Loading, - ForYouFeedState.Loading + ForYouInterestsSelectionUiState.Loading, + ForYouFeedUiState.Loading ), awaitItem() ) @@ -109,8 +109,8 @@ class ForYouViewModelTest { viewModel.uiState.test { assertEquals( ForYouUiState( - ForYouInterestsSelectionState.Loading, - ForYouFeedState.Loading + ForYouInterestsSelectionUiState.Loading, + ForYouFeedUiState.Loading ), awaitItem() ) @@ -125,8 +125,8 @@ class ForYouViewModelTest { viewModel.uiState.test { assertEquals( ForYouUiState( - ForYouInterestsSelectionState.Loading, - ForYouFeedState.Loading + ForYouInterestsSelectionUiState.Loading, + ForYouFeedUiState.Loading ), awaitItem() ) @@ -141,8 +141,8 @@ class ForYouViewModelTest { viewModel.uiState.test { assertEquals( ForYouUiState( - ForYouInterestsSelectionState.Loading, - ForYouFeedState.Loading + ForYouInterestsSelectionUiState.Loading, + ForYouFeedUiState.Loading ), awaitItem() ) @@ -166,7 +166,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -238,7 +238,7 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList() ) ), @@ -263,7 +263,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -335,7 +335,7 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList() ) ), @@ -359,8 +359,8 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Loading + ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Loading ), awaitItem() ) @@ -370,8 +370,8 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Success( + ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Success( feed = sampleNewsResources.map { SaveableNewsResource( newsResource = it, @@ -400,8 +400,8 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Loading + ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Loading ), awaitItem() ) @@ -411,8 +411,8 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Success( + ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Success( feed = sampleNewsResources.map { SaveableNewsResource( newsResource = it, @@ -445,7 +445,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -517,7 +517,7 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList(), ) ), @@ -526,7 +526,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -598,14 +598,14 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Loading + feedState = ForYouFeedUiState.Loading ), awaitItem() ) assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -677,7 +677,7 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = listOf( SaveableNewsResource( newsResource = sampleNewsResources[1], @@ -714,7 +714,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -786,7 +786,7 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList(), ) ), @@ -795,7 +795,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -867,14 +867,14 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Loading + feedState = ForYouFeedUiState.Loading ), awaitItem() ) assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -946,7 +946,7 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = listOf( SaveableNewsResource( newsResource = sampleNewsResources[1], @@ -981,7 +981,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -1053,7 +1053,7 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList() ) ), @@ -1079,7 +1079,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -1151,7 +1151,7 @@ class ForYouViewModelTest { ) ), ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList() ) ), @@ -1181,8 +1181,8 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Success( + ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Success( feed = listOf( SaveableNewsResource( newsResource = sampleNewsResources[1], @@ -1223,8 +1223,8 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Success( + ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Success( feed = listOf( SaveableNewsResource( newsResource = sampleNewsResources[0], @@ -1262,8 +1262,8 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Success( + ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Success( feed = listOf( SaveableNewsResource( newsResource = sampleNewsResources[1], @@ -1305,7 +1305,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -1377,7 +1377,7 @@ class ForYouViewModelTest { ) ) ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList() ) ), @@ -1409,7 +1409,7 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.WithInterestsSelection( + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -1481,7 +1481,7 @@ class ForYouViewModelTest { ) ) ), - feedState = ForYouFeedState.Success( + feedState = ForYouFeedUiState.Success( feed = emptyList() ) ), @@ -1506,8 +1506,8 @@ class ForYouViewModelTest { assertEquals( ForYouUiState( interestsSelectionState = - ForYouInterestsSelectionState.NoInterestsSelection, - feedState = ForYouFeedState.Success( + ForYouInterestsSelectionUiState.NoInterestsSelection, + feedState = ForYouFeedUiState.Success( feed = listOf( SaveableNewsResource( newsResource = sampleNewsResources[1], From 6cc4633ecd1981907fefb6d881e2ad03f29d181e Mon Sep 17 00:00:00 2001 From: Saeed Noshadi <50018300+SaeedNoshadi89@users.noreply.github.com> Date: Mon, 16 May 2022 20:02:00 +0430 Subject: [PATCH 18/35] Update core-database/build.gradle.kts Co-authored-by: Alex Vanyo --- core-database/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-database/build.gradle.kts b/core-database/build.gradle.kts index fea0de918..a4d8e4256 100644 --- a/core-database/build.gradle.kts +++ b/core-database/build.gradle.kts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@kotlin.Suppress("DSL_SCOPE_VIOLATION") +@Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") id("nowinandroid.android.library.jacoco") From 38138f58faa60f87e931f6678e2b41ec3fe3b710 Mon Sep 17 00:00:00 2001 From: Saeed Noshadi <50018300+SaeedNoshadi89@users.noreply.github.com> Date: Mon, 16 May 2022 20:03:33 +0430 Subject: [PATCH 19/35] Update core-datastore/build.gradle.kts Co-authored-by: Alex Vanyo --- core-datastore/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/core-datastore/build.gradle.kts b/core-datastore/build.gradle.kts index e4234b67e..9dba29c8e 100644 --- a/core-datastore/build.gradle.kts +++ b/core-datastore/build.gradle.kts @@ -19,6 +19,7 @@ import com.google.protobuf.gradle.generateProtoTasks import com.google.protobuf.gradle.protobuf import com.google.protobuf.gradle.protoc +// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed @kotlin.Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") From c771176c7cf1e0c6c575657f5338e11e5b13608a Mon Sep 17 00:00:00 2001 From: Saeed Noshadi Date: Mon, 16 May 2022 20:36:41 +0430 Subject: [PATCH 20/35] remove suppress annotation prefix and add todo --- core-database/build.gradle.kts | 1 + core-datastore/build.gradle.kts | 2 +- core-model/build.gradle.kts | 3 ++- core-navigation/build.gradle.kts | 3 ++- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core-database/build.gradle.kts b/core-database/build.gradle.kts index a4d8e4256..2f15e958a 100644 --- a/core-database/build.gradle.kts +++ b/core-database/build.gradle.kts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed @Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") diff --git a/core-datastore/build.gradle.kts b/core-datastore/build.gradle.kts index 9dba29c8e..52d7ebc7b 100644 --- a/core-datastore/build.gradle.kts +++ b/core-datastore/build.gradle.kts @@ -20,7 +20,7 @@ import com.google.protobuf.gradle.protobuf import com.google.protobuf.gradle.protoc // TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed -@kotlin.Suppress("DSL_SCOPE_VIOLATION") +@Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") id("nowinandroid.android.library.jacoco") diff --git a/core-model/build.gradle.kts b/core-model/build.gradle.kts index c8412ef22..a413b36c4 100644 --- a/core-model/build.gradle.kts +++ b/core-model/build.gradle.kts @@ -13,7 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@kotlin.Suppress("DSL_SCOPE_VIOLATION") +// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed +@Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") id("nowinandroid.android.library.jacoco") diff --git a/core-navigation/build.gradle.kts b/core-navigation/build.gradle.kts index 8fa909964..d9449babc 100644 --- a/core-navigation/build.gradle.kts +++ b/core-navigation/build.gradle.kts @@ -13,7 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@kotlin.Suppress("DSL_SCOPE_VIOLATION") +// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed +@Suppress("DSL_SCOPE_VIOLATION") plugins { id("nowinandroid.android.library") id("nowinandroid.android.library.jacoco") From 72278b8cefbe18660c9aed7c210299c4e11c5b64 Mon Sep 17 00:00:00 2001 From: Sergio Belda Date: Tue, 17 May 2022 19:54:48 +0200 Subject: [PATCH 21/35] Add monochrome attribute to ic_launcher_round.xml in :app and :app-nia-catalog --- .../src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml | 1 + app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index ee103766b..28878a729 100644 --- a/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -17,4 +17,5 @@ + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index ee103766b..28878a729 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -17,4 +17,5 @@ + \ No newline at end of file From 3aec915be99c7d7c2aa2649cb2fbe7cb62bf026e Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Tue, 17 May 2022 19:48:49 +0200 Subject: [PATCH 22/35] Remove the clip modifier from NewsResourceHeaderImage --- .../google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt b/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt index 270cdf998..d31f988ce 100644 --- a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt +++ b/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt @@ -141,7 +141,6 @@ fun NewsResourceHeaderImage( }, modifier = Modifier .fillMaxWidth() - .clip(RoundedCornerShape(topEnd = 16.dp, topStart = 16.dp)) .height(180.dp), contentScale = ContentScale.Crop, model = headerImageUrl, From 1959ee53d2413c5a4220dfac45ffc7297451081b Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Tue, 17 May 2022 20:12:52 +0200 Subject: [PATCH 23/35] Replace Filled.Android with Filled.Person icon in InterestsIcon --- .../nowinandroid/feature/foryou/AuthorsCarousel.kt | 1 - .../nowinandroid/feature/interests/InterestsItem.kt | 12 +++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt index a56fc08bb..d5dbdbf72 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt @@ -30,7 +30,6 @@ import androidx.compose.foundation.lazy.items import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Android import androidx.compose.material.icons.filled.Person import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme diff --git a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt index b9c2afadd..8a615d6e7 100644 --- a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt +++ b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt @@ -16,6 +16,7 @@ package com.google.samples.apps.nowinandroid.feature.interests +import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -23,8 +24,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width -import androidx.compose.material.icons.Icons.Filled -import androidx.compose.material.icons.filled.Android +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Person import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface @@ -105,10 +106,11 @@ private fun InterestContent(name: String, description: String, modifier: Modifie private fun InterestsIcon(topicImageUrl: String, modifier: Modifier = Modifier) { if (topicImageUrl.isEmpty()) { Icon( - imageVector = Filled.Android, - tint = Color.Magenta, - contentDescription = null, modifier = modifier + .background(MaterialTheme.colorScheme.surface) + .padding(4.dp), + imageVector = Icons.Filled.Person, + contentDescription = null, // decorative image ) } else { AsyncImage( From b5d73bca5344b103285ce21328d657fa4744f59b Mon Sep 17 00:00:00 2001 From: YvesKalume Date: Wed, 18 May 2022 15:10:43 +0200 Subject: [PATCH 24/35] fix spotless format violations --- .../samples/apps/niacatalog/ui/Catalog.kt | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/app-nia-catalog/src/main/java/com/google/samples/apps/niacatalog/ui/Catalog.kt b/app-nia-catalog/src/main/java/com/google/samples/apps/niacatalog/ui/Catalog.kt index 0513cb690..30e73e17b 100644 --- a/app-nia-catalog/src/main/java/com/google/samples/apps/niacatalog/ui/Catalog.kt +++ b/app-nia-catalog/src/main/java/com/google/samples/apps/niacatalog/ui/Catalog.kt @@ -17,7 +17,6 @@ package com.google.samples.apps.niacatalog.ui import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.add import androidx.compose.foundation.layout.asPaddingValues @@ -77,7 +76,7 @@ fun NiaCatalog() { } item { Text("Buttons", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton(onClick = {}) { Text(text = "Enabled") } @@ -91,7 +90,7 @@ fun NiaCatalog() { } item { Text("Disabled buttons", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false @@ -114,7 +113,7 @@ fun NiaCatalog() { } item { Text("Buttons with leading icons", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, text = { Text(text = "Enabled") }, @@ -140,7 +139,7 @@ fun NiaCatalog() { } item { Text("Disabled buttons with leading icons", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -195,7 +194,7 @@ fun NiaCatalog() { } item { Text("Disabled buttons with trailing icons", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -224,7 +223,7 @@ fun NiaCatalog() { } item { Text("Small buttons", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, small = true @@ -247,7 +246,7 @@ fun NiaCatalog() { } item { Text("Disabled small buttons", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -307,7 +306,7 @@ fun NiaCatalog() { ) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -339,7 +338,7 @@ fun NiaCatalog() { } item { Text("Small buttons with trailing icons", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, small = true, @@ -373,7 +372,7 @@ fun NiaCatalog() { ) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { NiaFilledButton( onClick = {}, enabled = false, @@ -414,7 +413,7 @@ fun NiaCatalog() { } item { Text("Chips", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { var firstChecked by remember { mutableStateOf(false) } NiaFilterChip( checked = firstChecked, @@ -438,7 +437,7 @@ fun NiaCatalog() { } item { Text("Toggle buttons", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { var firstChecked by remember { mutableStateOf(false) } NiaToggleButton( checked = firstChecked, @@ -499,7 +498,7 @@ fun NiaCatalog() { } item { Text("View toggle", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { var firstExpanded by remember { mutableStateOf(false) } NiaViewToggleButton( expanded = firstExpanded, @@ -518,7 +517,7 @@ fun NiaCatalog() { } item { Text("Tags", Modifier.padding(top = 16.dp)) } item { - FlowRow(mainAxisSpacing = 16.dp) { + FlowRow(mainAxisSpacing = 16.dp) { var firstFollowed by remember { mutableStateOf(false) } NiaTopicTag( followed = firstFollowed, From 084b9b607a0910fe234281a0f24a0298b2df9b5b Mon Sep 17 00:00:00 2001 From: madroid Date: Wed, 18 May 2022 21:27:04 +0800 Subject: [PATCH 25/35] Fix ktlint: max line length (100) --- .../apps/nowinandroid/feature/foryou/ForYouScreenTest.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt b/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt index 8469cd191..6210e83a1 100644 --- a/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt +++ b/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt @@ -428,7 +428,8 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionUiState.WithInterestsSelection( + interestsSelectionState = + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( From 9f10b5c4c6ed50d091178bdeffbc02366977f3ae Mon Sep 17 00:00:00 2001 From: Sergio Belda Date: Wed, 18 May 2022 16:49:04 +0200 Subject: [PATCH 26/35] Add cutout version of ic_launcher_foreground for drawable-v24 in app module in order to distinguish it from the nia-app-catalog version --- .../drawable-v24/ic_launcher_background.xml | 25 ++++++++++++++ .../drawable-v24/ic_launcher_foreground.xml | 34 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 app/src/main/res/drawable-v24/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml diff --git a/app/src/main/res/drawable-v24/ic_launcher_background.xml b/app/src/main/res/drawable-v24/ic_launcher_background.xml new file mode 100644 index 000000000..36fe340e6 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_background.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 000000000..985a5c10b --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + From 135e7ab13bfab6f1a0f045010c88e8d0de84807f Mon Sep 17 00:00:00 2001 From: madroid Date: Wed, 18 May 2022 21:40:47 +0800 Subject: [PATCH 27/35] Rename following to interests in ArchitectureLearningJourney.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit follow this commit: https://github.com/android/nowinandroid/commit/dc4af7e6f7795444ceddd8ee5dd91be679cae4e4 --- docs/ArchitectureLearningJourney.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ArchitectureLearningJourney.md b/docs/ArchitectureLearningJourney.md index dd0715028..1a5112058 100644 --- a/docs/ArchitectureLearningJourney.md +++ b/docs/ArchitectureLearningJourney.md @@ -276,7 +276,7 @@ View models receive streams of data as cold [flows](https://kotlin.github.io/kot **Example: Displaying followed topics and authors** -The `FollowingViewModel` exposes `uiState` as a `StateFlow`. This hot flow is created by combining four data streams: +The `InterestsViewModel` exposes `uiState` as a `StateFlow`. This hot flow is created by combining four data streams: @@ -287,7 +287,7 @@ The `FollowingViewModel` exposes `uiState` as a `StateFlow`. T The list of `Author`s is mapped to a new list of `FollowableAuthor`s. `FollowableAuthor` is a wrapper for `Author` which also indicates whether the current user is following that author. The same transformation is applied for the list of `Topic`s. -The two new lists are used to create a `FollowingUiState.Interests` state which is exposed to the UI. +The two new lists are used to create a `InterestsUiState.Interests` state which is exposed to the UI. ### Processing user interactions @@ -296,7 +296,7 @@ User actions are communicated from UI elements to view models using regular meth **Example: Following a topic** -The `FollowingScreen` takes a lambda expression named `followTopic` which is supplied from `FollowingViewModel.followTopic`. Each time the user taps on a topic to follow this method is called. The view model then processes this action by informing the topics repository. +The `InterestsScreen` takes a lambda expression named `followTopic` which is supplied from `InterestsViewModel.followTopic`. Each time the user taps on a topic to follow this method is called. The view model then processes this action by informing the topics repository. ## Further reading From 06072be56c229a083bde04818a63f0d5b941e03c Mon Sep 17 00:00:00 2001 From: Saeed Noshadi Date: Wed, 18 May 2022 20:53:08 +0430 Subject: [PATCH 28/35] fix done button color in the darkmode and lightmode --- .../samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt | 2 +- .../apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt index 1a03d2751..1dc1d3198 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt @@ -287,7 +287,7 @@ private fun LazyListScope.InterestsSelection( ) { Text( text = stringResource(R.string.done), - color = MaterialTheme.colorScheme.onPrimary + style = MaterialTheme.typography.bodyMedium ) } } diff --git a/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt b/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt index 87412f1f3..afa3155f9 100644 --- a/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt +++ b/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt @@ -18,6 +18,7 @@ package com.google.samples.apps.nowinandroid.feature.foryou import androidx.lifecycle.SavedStateHandle import app.cash.turbine.test +import app.cash.turbine.test import com.google.samples.apps.nowinandroid.core.model.data.Author import com.google.samples.apps.nowinandroid.core.model.data.FollowableAuthor import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic From 9998658210e6ae5dcb9875f532352499df24b6f9 Mon Sep 17 00:00:00 2001 From: Saeed Noshadi Date: Wed, 18 May 2022 20:58:22 +0430 Subject: [PATCH 29/35] revert a import line --- .../apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt b/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt index afa3155f9..87412f1f3 100644 --- a/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt +++ b/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt @@ -18,7 +18,6 @@ package com.google.samples.apps.nowinandroid.feature.foryou import androidx.lifecycle.SavedStateHandle import app.cash.turbine.test -import app.cash.turbine.test import com.google.samples.apps.nowinandroid.core.model.data.Author import com.google.samples.apps.nowinandroid.core.model.data.FollowableAuthor import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic From ecd52300c2c741779b424f5733b00716bf4a3e11 Mon Sep 17 00:00:00 2001 From: Saeed Noshadi Date: Thu, 19 May 2022 11:52:49 +0430 Subject: [PATCH 30/35] used NiaFilledButton instead of Button --- .../apps/nowinandroid/feature/foryou/ForYouScreen.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt index 1dc1d3198..993c2f546 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt @@ -90,6 +90,7 @@ import com.google.samples.apps.nowinandroid.core.model.data.SaveableNewsResource import com.google.samples.apps.nowinandroid.core.model.data.Topic import com.google.samples.apps.nowinandroid.core.ui.LoadingWheel import com.google.samples.apps.nowinandroid.core.ui.NewsResourceCardExpanded +import com.google.samples.apps.nowinandroid.core.ui.component.NiaFilledButton import com.google.samples.apps.nowinandroid.core.ui.component.NiaGradientBackground import com.google.samples.apps.nowinandroid.core.ui.component.NiaToggleButton import com.google.samples.apps.nowinandroid.core.ui.component.NiaTopAppBar @@ -275,7 +276,7 @@ private fun LazyListScope.InterestsSelection( horizontalArrangement = Arrangement.Center, modifier = Modifier.fillMaxWidth() ) { - Button( + NiaFilledButton( onClick = saveFollowedTopics, enabled = interestsSelectionState.canSaveInterests, modifier = Modifier @@ -286,8 +287,7 @@ private fun LazyListScope.InterestsSelection( ) ) { Text( - text = stringResource(R.string.done), - style = MaterialTheme.typography.bodyMedium + text = stringResource(R.string.done) ) } } From f55ad14a3d8d359431a21c6466986f98171fd2a1 Mon Sep 17 00:00:00 2001 From: Saeed Noshadi Date: Thu, 19 May 2022 11:57:55 +0430 Subject: [PATCH 31/35] remove colors --- .../samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt index 993c2f546..c87e66a22 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt @@ -281,10 +281,7 @@ private fun LazyListScope.InterestsSelection( enabled = interestsSelectionState.canSaveInterests, modifier = Modifier .padding(horizontal = 40.dp) - .width(364.dp), - colors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.onBackground - ) + .width(364.dp) ) { Text( text = stringResource(R.string.done) From 0025b6d32f7e890d5d8c7e29f0138248ca2f5bff Mon Sep 17 00:00:00 2001 From: NUmeroAndDev Date: Thu, 19 May 2022 20:44:12 +0900 Subject: [PATCH 32/35] Replaced -Xopt-in to -opt-in because deprecated --- .../google/samples/apps/nowinandroid/KotlinAndroid.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt index c3bf62744..f9aedcd73 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt @@ -49,13 +49,13 @@ fun Project.configureKotlinAndroid( allWarningsAsErrors = properties["warningsAsErrors"] as? Boolean ?: false freeCompilerArgs = freeCompilerArgs + listOf( - "-Xopt-in=kotlin.RequiresOptIn", + "-opt-in=kotlin.RequiresOptIn", // Enable experimental coroutines APIs, including Flow - "-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", - "-Xopt-in=kotlinx.coroutines.FlowPreview", - "-Xopt-in=kotlin.Experimental", + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", + "-opt-in=kotlinx.coroutines.FlowPreview", + "-opt-in=kotlin.Experimental", // Enable experimental kotlinx serialization APIs - "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi" + "-opt-in=kotlinx.serialization.ExperimentalSerializationApi" ) // Set JVM target to 1.8 From c4d85d07df0df593d36e09cbda6ed0676e0a4086 Mon Sep 17 00:00:00 2001 From: madroid Date: Thu, 19 May 2022 22:33:04 +0800 Subject: [PATCH 33/35] Fix ktlint: max line length (100) in ForYouScreenTest.kt --- .../feature/foryou/ForYouScreenTest.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt b/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt index 6210e83a1..378b05124 100644 --- a/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt +++ b/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt @@ -92,7 +92,8 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionUiState.WithInterestsSelection( + interestsSelectionState = + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -200,7 +201,8 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionUiState.WithInterestsSelection( + interestsSelectionState = + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -314,7 +316,8 @@ class ForYouScreenTest { windowSizeClass = WindowSizeClass.calculateFromSize( DpSize(maxWidth, maxHeight) ), - interestsSelectionState = ForYouInterestsSelectionUiState.WithInterestsSelection( + interestsSelectionState = + ForYouInterestsSelectionUiState.WithInterestsSelection( topics = listOf( FollowableTopic( topic = Topic( @@ -670,7 +673,10 @@ class ForYouScreenTest { ) val firstFeedItem = composeTestRule - .onNodeWithText("Thanks for helping us reach 1M YouTube Subscribers", substring = true) + .onNodeWithText( + "Thanks for helping us reach 1M YouTube Subscribers", + substring = true + ) .assertHasClickAction() .fetchSemanticsNode() From 829d4daf271d39e637c8e52a6d2fbd79fa3f7854 Mon Sep 17 00:00:00 2001 From: Saeed Noshadi Date: Thu, 19 May 2022 20:58:43 +0430 Subject: [PATCH 34/35] run spotlessApply task --- .../samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt index c87e66a22..2ab82c054 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt @@ -50,8 +50,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Search import androidx.compose.material.icons.outlined.AccountCircle -import androidx.compose.material3.Button -import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme From e917cd827c33c38272b942cbae0751c174fb1018 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Thu, 19 May 2022 21:01:31 +0200 Subject: [PATCH 35/35] Fix format violation Command: ./gradlew :feature-interests:spotlessApply --- .../samples/apps/nowinandroid/feature/interests/InterestsItem.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt index 8a615d6e7..ca1b03c71 100644 --- a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt +++ b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt @@ -33,7 +33,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp