diff --git a/app/compose_compiler_analytics/app_debug-classes.txt b/app/compose_compiler_analytics/app_debug-classes.txt new file mode 100644 index 0000000..e69de29 diff --git a/app/compose_compiler_analytics/app_debug-composables.csv b/app/compose_compiler_analytics/app_debug-composables.csv new file mode 100644 index 0000000..508257a --- /dev/null +++ b/app/compose_compiler_analytics/app_debug-composables.csv @@ -0,0 +1,4 @@ +package,name,composable,skippable,restartable,readonly,inline,isLambda,hasDefaults,defaultsGroup,groups,calls, +com.sirelon.marsroverphotos.feature.favorite.FavoriteScreen,FavoriteScreen,1,0,1,0,0,0,0,0,1,5, +com.sirelon.marsroverphotos.feature.favorite.PopularScreen,PopularScreen,1,0,1,0,0,0,0,0,1,4, +com.sirelon.marsroverphotos.feature.favorite.FavoritePhotosContent,FavoritePhotosContent,1,1,1,0,0,0,0,0,1,2, diff --git a/app/compose_compiler_analytics/app_debug-composables.txt b/app/compose_compiler_analytics/app_debug-composables.txt new file mode 100644 index 0000000..8d1e7ca --- /dev/null +++ b/app/compose_compiler_analytics/app_debug-composables.txt @@ -0,0 +1,18 @@ +restartable scheme("[androidx.compose.ui.UiComposable]") fun FavoriteScreen( + unstable navController: NavController + stable modifier: Modifier? = @static Companion + viewModel: FavoriteImagesViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun PopularScreen( + unstable navController: NavController + stable modifier: Modifier? = @static Companion + viewModel: PopularPhotosViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) +) +restartable skippable scheme("[androidx.compose.ui.UiComposable, [androidx.compose.ui.UiComposable]]") fun FavoritePhotosContent( + stable modifier: Modifier + stable title: String + items: LazyPagingItems + stable onItemClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> + stable onFavoriteClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> + stable emptyContent: Function2 +) diff --git a/app/compose_compiler_analytics/app_debug-module.json b/app/compose_compiler_analytics/app_debug-module.json new file mode 100644 index 0000000..f0511ed --- /dev/null +++ b/app/compose_compiler_analytics/app_debug-module.json @@ -0,0 +1,25 @@ +{ + "skippableComposables": 7, + "restartableComposables": 10, + "readonlyComposables": 0, + "totalComposables": 10, + "restartGroups": 10, + "totalGroups": 16, + "staticArguments": 28, + "certainArguments": 2, + "knownStableArguments": 113, + "knownUnstableArguments": 2, + "unknownStableArguments": 2, + "totalArguments": 117, + "markedStableClasses": 0, + "inferredStableClasses": 0, + "inferredUnstableClasses": 0, + "inferredUncertainClasses": 0, + "effectivelyStableClasses": 0, + "totalClasses": 0, + "memoizedLambdas": 10, + "singletonLambdas": 1, + "singletonComposableLambdas": 1, + "composableLambdas": 6, + "totalLambdas": 15 +} \ No newline at end of file diff --git a/app/compose_compiler_analytics/app_release-classes.txt b/app/compose_compiler_analytics/app_release-classes.txt new file mode 100644 index 0000000..cd1ee73 --- /dev/null +++ b/app/compose_compiler_analytics/app_release-classes.txt @@ -0,0 +1,360 @@ +unstable class AppDataBase_Impl { + unstable val _roverDao: Lazy + unstable val _imagesDao: Lazy + = Unstable +} +unstable class ImagesDao_Impl { + unstable val __db: RoomDatabase + unstable val __insertionAdapterOfMarsImage: EntityInsertionAdapter + unstable val __updateAdapterOfMarsImage: EntityDeletionOrUpdateAdapter + unstable val __updateAdapterOfStatsUpdateAsMarsImage: EntityDeletionOrUpdateAdapter + unstable val __preparedStmtOfUpdateFavorite: SharedSQLiteStatement + unstable val __preparedStmtOfDeleteAllPopular: SharedSQLiteStatement + = Unstable +} +unstable class RoverDao_Impl { + unstable val __db: RoomDatabase + unstable val __insertionAdapterOfRover: EntityInsertionAdapter + unstable val __preparedStmtOfUpdateRoverCountPhotos: SharedSQLiteStatement + unstable val __preparedStmtOfUpdateRover: SharedSQLiteStatement + = Unstable +} +unstable class DataManager { + unstable val context: Context + runtime val tracker: ITracker + unstable val roverRepo: RoversRepository + unstable val imagesRepo: ImagesRepository + unstable val photosRepo: PhotosRepository + unstable val rovers: Flow> + unstable val exceptionHandler: CoroutineExceptionHandler + = Unstable +} +unstable class RoverApplication { + stable val adEnabled: Boolean + unstable val tracker$delegate: Lazy + unstable val dataManger$delegate: Lazy + = Unstable +} +unstable class FavoriteImagesViewModel { + unstable val exceptionHandler: CoroutineExceptionHandler + unstable val repository: ImagesRepository + unstable val favoriteImagesFlow: Flow> + = Unstable +} +stable class FirebaseConstants { + stable val PHOTOS_TABLE: String + stable val COLECTION_PHOTOS: String + stable val COLECTION_ROVERS: String + stable val DOCUMENT_INSIGHT: String + stable val PHOTO_ID: String + stable val PHOTO_SOL: String + stable val PHOTOS_IMAGE: String + stable val PHOTOS_EARTH_DATE: String + stable val PHOTOS_SEEN: String + stable val PHOTOS_SCALE: String + stable val PHOTOS_SAVE: String + stable val PHOTOS_SHARE: String + = Stable +} +unstable class FirebasePhoto { + stable val id: String + stable val sol: Long + stable val name: String + stable val imageUrl: String + stable val earthDate: String + stable var seeCounter: Long + stable var favoriteCounter: Long + stable var scaleCounter: Long + stable var saveCounter: Long + stable var shareCounter: Long + = Unstable +} +unstable class GdprHelper { + unstable val activity: Activity + unstable val consentInformation$delegate: Lazy<@[FlexibleNullability] ConsentInformation?> + unstable val acceptGdpr: MutableStateFlow + = Unstable +} +unstable class ImageViewModel { + unstable var $$delegate_0: FullscreenImageTracker + unstable val IO: CoroutineContext + unstable val repository: ImagesRepository + unstable val idsEmitor: MutableStateFlow> + unstable val uiEventEmitter: Channel + unstable val uiEvent: Flow + stable var shouldTrack: Boolean + unstable val hideUiEmitter: MutableStateFlow + unstable val imagesFlow: Flow> + unstable val screenState: StateFlow + unstable val appUrl$delegate: Lazy + = Unstable +} +stable class PhotoSaved { + stable val imagePath: String? + = Stable +} +stable class UiEvent { + = Stable +} +stable class ImageScreenState { + stable val images: ImmutableList + stable val hideUi: Boolean + = +} +unstable class ImagesRepository { + unstable val context: Context + runtime val imagesDao: ImagesDao + stable val firestorePhotos: FirestorePhotos + = Unstable +} +unstable class PhotosRepository { + unstable val api: RestApi + = Unstable +} +unstable class PhotosViewModel { + unstable val dataManger: DataManager + unstable val roversRepository: RoversRepository + unstable val photosRepository: PhotosRepository + unstable val imagesRepository: ImagesRepository + unstable val queryEmitter: MutableStateFlow + unstable val roverIdEmitter: MutableStateFlow + unstable var dateUtil: RoverDateUtil? + unstable val roverFlow: Flow + unstable val photosFlow: Flow?> + unstable val solFlow: Flow + = Unstable +} +stable class PopularRemoteMediator { + runtime val firebasePhotos: IFirebasePhotos + runtime val dao: ImagesDao + = +} +unstable class PopularPhotosViewModel { + unstable val imagesRepository: ImagesRepository + unstable val popularPhotos: Flow> + = Unstable +} +unstable class RoversActivity { + unstable val gdprHelper: GdprHelper + unstable var adView: AdView + = Unstable +} +stable class Rovers { + = Stable +} +stable class Favorite { + = Stable +} +stable class Popular { + = Stable +} +stable class About { + = Stable +} +stable class Rover { + stable val id: Long + = Stable +} +stable class Ukraine { + = Stable +} +stable class Screen { + stable val route: String + stable val iconCreator: @[Composable] Function0 + = Stable +} +unstable class RoversRepository { + unstable val api: RestApi + runtime val roverDao: RoverDao + = Unstable +} +unstable class FirebaseProvider { + unstable val firebasePhotos$delegate: Lazy + = Unstable +} +stable class FirestorePhotos { + = Stable +} +stable class $serializer { + = Stable +} +stable class MarsPhoto { + stable val id: String + stable val sol: Long + stable val name: String? + stable val imageUrl: String + stable val earthDate: String + stable val camera: RoverCamera? + = Stable +} +stable class PhotosQueryRequest { + stable val roverId: Long + stable val sol: Long + stable val camera: String? + = Stable +} +stable class $serializer { + = Stable +} +stable class Rover { + stable val id: Long + stable val name: String + stable val drawableName: String + stable val landingDate: String + stable val launchDate: String + stable val status: String + stable var maxSol: Long + stable var maxDate: String + stable val totalPhotos: Int +} +stable class $serializer { + = Stable +} +stable class RoverCamera { + stable val id: Int + stable val name: String + stable val fullName: String + = Stable +} +unstable class RoverDateUtil { + stable val rover: Rover + unstable val simpleDateFormat: SimpleDateFormat + stable val SOL_TO_DAY_OFFSET: Double + unstable val _roverLastDate$delegate: Lazy + unstable val _roverLandingDate$delegate: Lazy + = Unstable +} +unstable class NasaApi { + unstable val ktor: HttpClient + = Unstable +} +stable class $serializer { + = Stable +} +stable class PhotosResponse { + stable val list: List + = +} +stable class $serializer { + = Stable +} +stable class PerseverancePhotosResponse { + stable val photos: List + stable val totalImages: Long? + = +} +stable class $serializer { + = Stable +} +stable class PerseverancePhotoItemResponse { + stable val id: String + stable val sol: Long + stable val name: String? + stable val description: String? + stable val credit: String? + stable val imageSourceResponse: ImageSourceResponse? + stable val earthDate: String? + stable val camera: PerseveranceCameraResponse? + = Stable +} +stable class $serializer { + = Stable +} +stable class PerseveranceCameraResponse { + stable val id: String + stable val name: String + stable val fullName: String + = Stable +} +stable class $serializer { + = Stable +} +stable class ImageSourceResponse { + stable val medium: String? + stable val small: String? + stable val full_res: String? + stable val large: String? + = Stable +} +unstable class RestApi { + unstable val _perseveranceTotalImages: MutableStateFlow + unstable val perseveranceTotalImages: Flow + unstable val json: Json + unstable val ktor: HttpClient + unstable val nasaApi: NasaApi + = Unstable +} +stable class $serializer { + = Stable +} +unstable class RoverResponse { + unstable var roverInfo: RoverInfo + = Unstable +} +stable class $serializer { + = Stable +} +unstable class RoverInfo { + stable var name: String + stable var landingDate: String + stable var launchDate: String + stable var status: String + stable var maxSol: Long + stable var maxDate: String + stable var totalPhotos: Int + = Unstable +} +stable class AppDataBase { + = Stable +} +unstable class DataBaseProvider { + stable var dataBase: AppDataBase + = Unstable +} +stable class Stats { + stable val see: Long + stable val scale: Long + stable val save: Long + stable val share: Long + stable val favorite: Long + = Stable +} +stable class MarsImage { + stable val id: String + stable val order: Int + stable val sol: Long + stable val name: String? + stable val imageUrl: String + stable val earthDate: String + stable val camera: RoverCamera? + stable val favorite: Boolean + stable val popular: Boolean + stable val stats: Stats + = Stable +} +stable class StatsUpdate { + stable val id: String + stable val stats: Stats + = Stable +} +unstable class Prefs { + unstable var sharedPreferences: SharedPreferences + unstable val themeLiveData: MutableStateFlow + = Unstable +} +unstable class DataFlowCollector { + unstable val flow: MutableStateFlow + = Unstable +} +unstable class FirebaseTracker { + unstable val fb: FirebaseAnalytics + = Unstable +} +unstable class FullscreenImageTracker { + runtime val tracker: ITracker + unstable val dataManager: DataManager + unstable val scrollChangeCollector: DataFlowCollector + unstable val zoomChangeCollector: DataFlowCollector> + stable var currentImage: MarsImage? + = Unstable +} diff --git a/app/compose_compiler_analytics/app_release-composables.csv b/app/compose_compiler_analytics/app_release-composables.csv new file mode 100644 index 0000000..e0ac8c6 --- /dev/null +++ b/app/compose_compiler_analytics/app_release-composables.csv @@ -0,0 +1,43 @@ +package,name,composable,skippable,restartable,readonly,inline,isLambda,hasDefaults,defaultsGroup,groups,calls, +com.sirelon.marsroverphotos.feature.MarsImageComposable,MarsImageComposable,1,1,1,0,0,0,0,0,1,5, +com.sirelon.marsroverphotos.feature.PhotoStats,PhotoStats,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.MarsImageFavoriteToggle,MarsImageFavoriteToggle,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.NetworkImage,NetworkImage,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.StatsInfoText,StatsInfoText,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.favorite.FavoriteScreen,FavoriteScreen,1,0,1,0,0,0,0,0,1,5, +com.sirelon.marsroverphotos.feature.favorite.PopularScreen,PopularScreen,1,0,1,0,0,0,0,0,1,4, +com.sirelon.marsroverphotos.feature.favorite.FavoritePhotosContent,FavoritePhotosContent,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.images.ImageScreen,ImageScreen,1,1,1,0,0,0,1,0,2,9, +com.sirelon.marsroverphotos.feature.images.ImagesPagerContent,ImagesPagerContent,1,0,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.images.OnEvent,OnEvent,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.images.SaveIcon,SaveIcon,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.images.ShareIcon,ShareIcon,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.images.ImagesPager,ImagesPager,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.photos.EmptyPhotos,EmptyPhotos,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.photos.RoverPhotosScreen,RoverPhotosScreen,1,0,1,0,0,0,0,0,1,7, +com.sirelon.marsroverphotos.feature.photos.RefreshButton,RefreshButton,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.photos.PhotosList,PhotosList,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.photos.PhotoCard,PhotoCard,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.photos.SolDialog,SolDialog,1,1,1,0,0,0,0,0,1,4, +com.sirelon.marsroverphotos.feature.photos.SolChanger,SolChanger,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.photos.HeaderButton,HeaderButton,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.rovers.RoversActivity.RoversBottomBar,RoversBottomBar,1,0,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.rovers.RoversActivity.ComposableBannerAd,ComposableBannerAd,1,0,1,0,0,0,0,0,2,3, +com.sirelon.marsroverphotos.feature.rovers.RoversActivity.RoversNavHost,RoversNavHost,1,0,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.rovers.RoversContent,RoversContent,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.rovers.RoverItem,RoverItem,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.rovers.TitleText,TitleText,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.rovers.InfoText,InfoText,1,1,1,0,0,0,0,0,2,2, +com.sirelon.marsroverphotos.feature.settings.DefaultPreview,DefaultPreview,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.settings.AboutAppContent,AboutAppContent,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.settings.ThemeChanger,ThemeChanger,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.settings.LinkifyText,LinkifyText,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.ukraine.UkraineInfoScreen,UkraineInfoScreen,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.ukraine.UkraineBanner,UkraineBanner,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.ukraine.PreviewBanner,PreviewBanner,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.ui.MarsRoverPhotosTheme,MarsRoverPhotosTheme,1,1,1,0,0,0,1,0,2,3, +com.sirelon.marsroverphotos.ui.CenteredColumn,CenteredColumn,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.ui.CenteredProgress,CenteredProgress,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.ui.MarsSnackbar,MarsSnackbar,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.ui.RadioButtonText,RadioButtonText,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.ui.NoScrollEffect,NoScrollEffect,1,1,1,0,0,0,0,0,1,2, diff --git a/app/compose_compiler_analytics/app_release-composables.txt b/app/compose_compiler_analytics/app_release-composables.txt new file mode 100644 index 0000000..622e734 --- /dev/null +++ b/app/compose_compiler_analytics/app_release-composables.txt @@ -0,0 +1,185 @@ +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun MarsImageComposable( + stable modifier: Modifier? = @static Companion + stable marsImage: MarsImage + stable onClick: Function0 + stable onFavoriteClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PhotoStats( + stable marsImage: MarsImage + stable onFavoriteClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun MarsImageFavoriteToggle( + stable modifier: Modifier? = @static Companion + stable checked: Boolean + stable onCheckedChange: Function1 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun NetworkImage( + stable modifier: Modifier? = @static Companion + stable contentScale: ContentScale? = @static Companion.Crop + stable placeholderRes: Int? = @static drawable.img_placeholder + stable imageUrl: String +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun StatsInfoText( + stable counter: Long + stable image: ImageVector + stable desc: String +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun FavoriteScreen( + unstable navController: NavController + stable modifier: Modifier? = @static Companion + unstable viewModel: FavoriteImagesViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun PopularScreen( + unstable navController: NavController + stable modifier: Modifier? = @static Companion + unstable viewModel: PopularPhotosViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) +) +restartable skippable scheme("[androidx.compose.ui.UiComposable, [androidx.compose.ui.UiComposable]]") fun FavoritePhotosContent( + stable modifier: Modifier + stable title: String + items: LazyPagingItems + stable onItemClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> + stable onFavoriteClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> + stable emptyContent: Function2 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun ImageScreen( + unstable viewModel: ImageViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) + stable trackingEnabled: Boolean + stable photoIds: List? + stable selectedId: String? + stable onHideUi: Function1 +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun ImagesPagerContent( + unstable viewModel: ImageViewModel + stable list: List + stable hideUi: Boolean + stable pagerState: PagerState +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun OnEvent( + stable : BoxScope + stable uiEvent: UiEvent? +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SaveIcon( + stable onClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun ShareIcon( + stable onClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun ImagesPager( + stable pagerState: PagerState + stable images: List + callback: MultitouchDetectorCallback + stable favoriteClick: Function2 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun EmptyPhotos( + stable title: String + stable btnTitle: String + stable callback: Function0 +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun RoverPhotosScreen( + unstable activity: FragmentActivity + stable modifier: Modifier? = @static Companion + unstable navHost: NavController + stable roverId: Long + unstable viewModel: PhotosViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun RefreshButton( + stable fabVisible: Boolean + stable modifier: Modifier + stable onClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PhotosList( + stable modifier: Modifier + stable photos: List + stable onPhotoClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PhotoCard( + stable image: MarsImage + stable onPhotoClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SolDialog( + stable openDialog: Boolean + stable maxSol: Long + stable sol: Long + stable onClose: Function0 + stable onChoose: Function1<@[ParameterName(name = 'sol')] Long, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SolChanger( + stable sol: Long? + stable maxSol: Long + stable onSolChanged: Function1<@[ParameterName(name = 'sol')] Long?, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun HeaderButton( + stable : RowScope + stable txt: String + stable onClick: Function0 +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun RoversBottomBar( + unstable navController: NavHostController + stable bottomItems: List + unstable : RoversActivity +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun ComposableBannerAd( + stable modifier: Modifier + unstable : RoversActivity +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun RoversNavHost( + unstable navController: NavHostController + stable onHideUi: Function1 + unstable : RoversActivity +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun RoversContent( + stable rovers: List + stable onClick: Function1<@[ParameterName(name = 'rover')] Rover, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun RoverItem( + stable rover: Rover + stable onClick: Function1<@[ParameterName(name = 'rover')] Rover, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun TitleText( + stable text: String +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun InfoText( + stable label: String + stable text: String +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun DefaultPreview() +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun AboutAppContent( + stable onClearCache: Function0 + stable onRateApp: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun ThemeChanger() +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun LinkifyText( + stable text: String + stable link: String +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun UkraineInfoScreen() +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun UkraineBanner( + stable modifier: Modifier? = @static Companion + stable title: String? = @static "#Stand with Ukraine" + stable onClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PreviewBanner() +restartable skippable scheme("[0, [0]]") fun MarsRoverPhotosTheme( + stable darkTheme: Boolean = @dynamic isSystemInDarkTheme($composer, 0) + stable content: Function2 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable, [androidx.compose.ui.UiComposable]]") fun CenteredColumn( + stable modifier: Modifier? = @static Companion + stable content: @[ExtensionFunctionType] Function3 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun CenteredProgress() +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun MarsSnackbar( + stable modifier: Modifier? = @static Companion + stable snackbarHostState: SnackbarHostState + stable actionClick: Function0? = @static null +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun RadioButtonText( + stable text: String + stable selected: Boolean + stable modifier: Modifier? = @static Companion + stable onClick: Function0 +) +restartable skippable scheme("[0, [0]]") fun NoScrollEffect( + stable content: Function2 +) diff --git a/app/compose_compiler_analytics/app_release-module.json b/app/compose_compiler_analytics/app_release-module.json new file mode 100644 index 0000000..053b67c --- /dev/null +++ b/app/compose_compiler_analytics/app_release-module.json @@ -0,0 +1,25 @@ +{ + "skippableComposables": 84, + "restartableComposables": 132, + "readonlyComposables": 0, + "totalComposables": 138, + "restartGroups": 132, + "totalGroups": 155, + "staticArguments": 272, + "certainArguments": 40, + "knownStableArguments": 1619, + "knownUnstableArguments": 26, + "unknownStableArguments": 7, + "totalArguments": 1652, + "markedStableClasses": 1, + "inferredStableClasses": 35, + "inferredUnstableClasses": 26, + "inferredUncertainClasses": 0, + "effectivelyStableClasses": 36, + "totalClasses": 62, + "memoizedLambdas": 101, + "singletonLambdas": 9, + "singletonComposableLambdas": 23, + "composableLambdas": 68, + "totalLambdas": 136 +} \ No newline at end of file diff --git a/app/compose_compiler_before/app_release-classes.txt b/app/compose_compiler_before/app_release-classes.txt new file mode 100644 index 0000000..5acb1a5 --- /dev/null +++ b/app/compose_compiler_before/app_release-classes.txt @@ -0,0 +1,361 @@ +unstable class AppDataBase_Impl { + unstable val _roverDao: Lazy + unstable val _imagesDao: Lazy + = Unstable +} +unstable class ImagesDao_Impl { + unstable val __db: RoomDatabase + unstable val __insertionAdapterOfMarsImage: EntityInsertionAdapter + unstable val __updateAdapterOfMarsImage: EntityDeletionOrUpdateAdapter + unstable val __updateAdapterOfStatsUpdateAsMarsImage: EntityDeletionOrUpdateAdapter + unstable val __preparedStmtOfUpdateFavorite: SharedSQLiteStatement + unstable val __preparedStmtOfDeleteAllPopular: SharedSQLiteStatement + = Unstable +} +unstable class RoverDao_Impl { + unstable val __db: RoomDatabase + unstable val __insertionAdapterOfRover: EntityInsertionAdapter + unstable val __preparedStmtOfUpdateRoverCountPhotos: SharedSQLiteStatement + unstable val __preparedStmtOfUpdateRover: SharedSQLiteStatement + = Unstable +} +unstable class DataManager { + unstable val context: Context + runtime val tracker: ITracker + unstable val roverRepo: RoversRepository + unstable val imagesRepo: ImagesRepository + unstable val photosRepo: PhotosRepository + unstable val rovers: Flow> + unstable val exceptionHandler: CoroutineExceptionHandler + = Unstable +} +unstable class RoverApplication { + stable val adEnabled: Boolean + unstable val tracker$delegate: Lazy + unstable val dataManger$delegate: Lazy + = Unstable +} +unstable class FavoriteImagesViewModel { + unstable val exceptionHandler: CoroutineExceptionHandler + unstable val repository: ImagesRepository + unstable val favoriteImagesFlow: Flow> + = Unstable +} +stable class FirebaseConstants { + stable val PHOTOS_TABLE: String + stable val COLECTION_PHOTOS: String + stable val COLECTION_ROVERS: String + stable val DOCUMENT_INSIGHT: String + stable val PHOTO_ID: String + stable val PHOTO_SOL: String + stable val PHOTOS_IMAGE: String + stable val PHOTOS_EARTH_DATE: String + stable val PHOTOS_SEEN: String + stable val PHOTOS_SCALE: String + stable val PHOTOS_SAVE: String + stable val PHOTOS_SHARE: String + = Stable +} +unstable class FirebasePhoto { + stable val id: String + stable val sol: Long + stable val name: String + stable val imageUrl: String + stable val earthDate: String + stable var seeCounter: Long + stable var favoriteCounter: Long + stable var scaleCounter: Long + stable var saveCounter: Long + stable var shareCounter: Long + = Unstable +} +unstable class GdprHelper { + unstable val activity: Activity + unstable val consentInformation$delegate: Lazy<@[FlexibleNullability] ConsentInformation?> + unstable val acceptGdpr: MutableStateFlow + = Unstable +} +unstable class ImageViewModel { + unstable var $$delegate_0: FullscreenImageTracker + unstable val IO: CoroutineContext + unstable val repository: ImagesRepository + unstable val idsEmitor: MutableStateFlow> + unstable val uiEventEmitter: Channel + unstable val uiEvent: Flow + stable var shouldTrack: Boolean + unstable val hideUiEmitter: MutableStateFlow + unstable val imagesFlow: Flow> + unstable val screenState: StateFlow + unstable val appUrl$delegate: Lazy + = Unstable +} +stable class PhotoSaved { + stable val imagePath: String? + = Stable +} +stable class UiEvent { + = Stable +} +stable class ImageScreenState { + stable val images: ImmutableList + stable val hideUi: Boolean + = +} +unstable class ImagesRepository { + unstable val context: Context + runtime val imagesDao: ImagesDao + stable val firestorePhotos: FirestorePhotos + = Unstable +} +unstable class PhotosRepository { + unstable val api: RestApi + = Unstable +} +unstable class PhotosViewModel { + unstable val dataManger: DataManager + unstable val roversRepository: RoversRepository + unstable val photosRepository: PhotosRepository + unstable val imagesRepository: ImagesRepository + unstable val queryEmitter: MutableStateFlow + unstable val roverIdEmitter: MutableStateFlow + unstable var dateUtil: RoverDateUtil? + unstable val roverFlow: Flow + unstable val photosFlow: Flow?> + unstable val solFlow: Flow + = Unstable +} +stable class PopularRemoteMediator { + runtime val firebasePhotos: IFirebasePhotos + runtime val dao: ImagesDao + = +} +unstable class PopularPhotosViewModel { + unstable val imagesRepository: ImagesRepository + unstable val popularPhotos: Flow> + = Unstable +} +unstable class RoversActivity { + unstable val gdprHelper: GdprHelper + unstable var adView: AdView + = Unstable +} +stable class Rovers { + = Stable +} +stable class Favorite { + = Stable +} +stable class Popular { + = Stable +} +stable class About { + = Stable +} +stable class Rover { + stable val id: Long + = Stable +} +stable class Ukraine { + = Stable +} +stable class Screen { + stable val route: String + stable val iconCreator: @[Composable] Function0 + = Stable +} +unstable class RoversRepository { + unstable val api: RestApi + runtime val roverDao: RoverDao + = Unstable +} +unstable class FirebaseProvider { + unstable val firebasePhotos$delegate: Lazy + = Unstable +} +stable class FirestorePhotos { + = Stable +} +stable class $serializer { + = Stable +} +stable class MarsPhoto { + stable val id: String + stable val sol: Long + stable val name: String? + stable val imageUrl: String + stable val earthDate: String + stable val camera: RoverCamera? + = Stable +} +stable class PhotosQueryRequest { + stable val roverId: Long + stable val sol: Long + stable val camera: String? + = Stable +} +stable class $serializer { + = Stable +} +unstable class Rover { + stable val id: Long + stable val name: String + stable val drawableName: String + stable val landingDate: String + stable val launchDate: String + stable val status: String + stable var maxSol: Long + stable var maxDate: String + stable val totalPhotos: Int + = Unstable +} +stable class $serializer { + = Stable +} +stable class RoverCamera { + stable val id: Int + stable val name: String + stable val fullName: String + = Stable +} +unstable class RoverDateUtil { + unstable val rover: Rover + unstable val simpleDateFormat: SimpleDateFormat + stable val SOL_TO_DAY_OFFSET: Double + unstable val _roverLastDate$delegate: Lazy + unstable val _roverLandingDate$delegate: Lazy + = Unstable +} +unstable class NasaApi { + unstable val ktor: HttpClient + = Unstable +} +stable class $serializer { + = Stable +} +unstable class PhotosResponse { + unstable val list: List + = Unstable +} +stable class $serializer { + = Stable +} +unstable class PerseverancePhotosResponse { + unstable val photos: List + stable val totalImages: Long? + = Unstable +} +stable class $serializer { + = Stable +} +stable class PerseverancePhotoItemResponse { + stable val id: String + stable val sol: Long + stable val name: String? + stable val description: String? + stable val credit: String? + stable val imageSourceResponse: ImageSourceResponse? + stable val earthDate: String? + stable val camera: PerseveranceCameraResponse? + = Stable +} +stable class $serializer { + = Stable +} +stable class PerseveranceCameraResponse { + stable val id: String + stable val name: String + stable val fullName: String + = Stable +} +stable class $serializer { + = Stable +} +stable class ImageSourceResponse { + stable val medium: String? + stable val small: String? + stable val full_res: String? + stable val large: String? + = Stable +} +unstable class RestApi { + unstable val _perseveranceTotalImages: MutableStateFlow + unstable val perseveranceTotalImages: Flow + unstable val json: Json + unstable val ktor: HttpClient + unstable val nasaApi: NasaApi + = Unstable +} +stable class $serializer { + = Stable +} +unstable class RoverResponse { + unstable var roverInfo: RoverInfo + = Unstable +} +stable class $serializer { + = Stable +} +unstable class RoverInfo { + stable var name: String + stable var landingDate: String + stable var launchDate: String + stable var status: String + stable var maxSol: Long + stable var maxDate: String + stable var totalPhotos: Int + = Unstable +} +stable class AppDataBase { + = Stable +} +unstable class DataBaseProvider { + stable var dataBase: AppDataBase + = Unstable +} +stable class Stats { + stable val see: Long + stable val scale: Long + stable val save: Long + stable val share: Long + stable val favorite: Long + = Stable +} +stable class MarsImage { + stable val id: String + stable val order: Int + stable val sol: Long + stable val name: String? + stable val imageUrl: String + stable val earthDate: String + stable val camera: RoverCamera? + stable val favorite: Boolean + stable val popular: Boolean + stable val stats: Stats + = Stable +} +stable class StatsUpdate { + stable val id: String + stable val stats: Stats + = Stable +} +unstable class Prefs { + unstable var sharedPreferences: SharedPreferences + unstable val themeLiveData: MutableStateFlow + = Unstable +} +unstable class DataFlowCollector { + unstable val flow: MutableStateFlow + = Unstable +} +unstable class FirebaseTracker { + unstable val fb: FirebaseAnalytics + = Unstable +} +unstable class FullscreenImageTracker { + runtime val tracker: ITracker + unstable val dataManager: DataManager + unstable val scrollChangeCollector: DataFlowCollector + unstable val zoomChangeCollector: DataFlowCollector> + stable var currentImage: MarsImage? + = Unstable +} diff --git a/app/compose_compiler_before/app_release-composables.csv b/app/compose_compiler_before/app_release-composables.csv new file mode 100644 index 0000000..4a217b2 --- /dev/null +++ b/app/compose_compiler_before/app_release-composables.csv @@ -0,0 +1,43 @@ +package,name,composable,skippable,restartable,readonly,inline,isLambda,hasDefaults,defaultsGroup,groups,calls, +com.sirelon.marsroverphotos.feature.MarsImageComposable,MarsImageComposable,1,1,1,0,0,0,0,0,1,5, +com.sirelon.marsroverphotos.feature.PhotoStats,PhotoStats,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.MarsImageFavoriteToggle,MarsImageFavoriteToggle,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.NetworkImage,NetworkImage,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.StatsInfoText,StatsInfoText,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.favorite.FavoriteScreen,FavoriteScreen,1,0,1,0,0,0,0,0,1,5, +com.sirelon.marsroverphotos.feature.favorite.PopularScreen,PopularScreen,1,0,1,0,0,0,0,0,1,4, +com.sirelon.marsroverphotos.feature.favorite.FavoritePhotosContent,FavoritePhotosContent,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.images.ImageScreen,ImageScreen,1,0,1,0,0,0,0,0,1,9, +com.sirelon.marsroverphotos.feature.images.ImagesPagerContent,ImagesPagerContent,1,0,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.images.OnEvent,OnEvent,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.images.SaveIcon,SaveIcon,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.images.ShareIcon,ShareIcon,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.images.ImagesPager,ImagesPager,1,0,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.photos.EmptyPhotos,EmptyPhotos,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.photos.RoverPhotosScreen,RoverPhotosScreen,1,0,1,0,0,0,0,0,1,7, +com.sirelon.marsroverphotos.feature.photos.RefreshButton,RefreshButton,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.photos.PhotosList,PhotosList,1,0,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.photos.PhotoCard,PhotoCard,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.photos.SolDialog,SolDialog,1,1,1,0,0,0,0,0,1,4, +com.sirelon.marsroverphotos.feature.photos.SolChanger,SolChanger,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.photos.HeaderButton,HeaderButton,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.rovers.RoversActivity.RoversBottomBar,RoversBottomBar,1,0,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.feature.rovers.RoversActivity.ComposableBannerAd,ComposableBannerAd,1,0,1,0,0,0,0,0,2,3, +com.sirelon.marsroverphotos.feature.rovers.RoversActivity.RoversNavHost,RoversNavHost,1,0,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.rovers.RoversContent,RoversContent,1,0,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.rovers.RoverItem,RoverItem,1,0,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.rovers.TitleText,TitleText,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.rovers.InfoText,InfoText,1,1,1,0,0,0,0,0,2,2, +com.sirelon.marsroverphotos.feature.settings.DefaultPreview,DefaultPreview,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.settings.AboutAppContent,AboutAppContent,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.settings.ThemeChanger,ThemeChanger,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.settings.LinkifyText,LinkifyText,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.ukraine.UkraineInfoScreen,UkraineInfoScreen,1,1,1,0,0,0,0,0,1,3, +com.sirelon.marsroverphotos.feature.ukraine.UkraineBanner,UkraineBanner,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.feature.ukraine.PreviewBanner,PreviewBanner,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.ui.MarsRoverPhotosTheme,MarsRoverPhotosTheme,1,1,1,0,0,0,1,0,2,3, +com.sirelon.marsroverphotos.ui.CenteredColumn,CenteredColumn,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.ui.CenteredProgress,CenteredProgress,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.ui.MarsSnackbar,MarsSnackbar,1,1,1,0,0,0,0,0,1,2, +com.sirelon.marsroverphotos.ui.RadioButtonText,RadioButtonText,1,1,1,0,0,0,0,0,1,1, +com.sirelon.marsroverphotos.ui.NoScrollEffect,NoScrollEffect,1,1,1,0,0,0,0,0,1,2, diff --git a/app/compose_compiler_before/app_release-composables.txt b/app/compose_compiler_before/app_release-composables.txt new file mode 100644 index 0000000..8454f1a --- /dev/null +++ b/app/compose_compiler_before/app_release-composables.txt @@ -0,0 +1,185 @@ +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun MarsImageComposable( + stable modifier: Modifier? = @static Companion + stable marsImage: MarsImage + stable onClick: Function0 + stable onFavoriteClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PhotoStats( + stable marsImage: MarsImage + stable onFavoriteClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun MarsImageFavoriteToggle( + stable modifier: Modifier? = @static Companion + stable checked: Boolean + stable onCheckedChange: Function1 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun NetworkImage( + stable modifier: Modifier? = @static Companion + stable contentScale: ContentScale? = @static Companion.Crop + stable placeholderRes: Int? = @static drawable.img_placeholder + stable imageUrl: String +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun StatsInfoText( + stable counter: Long + stable image: ImageVector + stable desc: String +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun FavoriteScreen( + unstable navController: NavController + stable modifier: Modifier? = @static Companion + unstable viewModel: FavoriteImagesViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun PopularScreen( + unstable navController: NavController + stable modifier: Modifier? = @static Companion + unstable viewModel: PopularPhotosViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) +) +restartable skippable scheme("[androidx.compose.ui.UiComposable, [androidx.compose.ui.UiComposable]]") fun FavoritePhotosContent( + stable modifier: Modifier + stable title: String + items: LazyPagingItems + stable onItemClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> + stable onFavoriteClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> + stable emptyContent: Function2 +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun ImageScreen( + unstable viewModel: ImageViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) + stable trackingEnabled: Boolean + unstable photoIds: List? + stable selectedId: String? + stable onHideUi: Function1 +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun ImagesPagerContent( + unstable viewModel: ImageViewModel + unstable list: List + stable hideUi: Boolean + stable pagerState: PagerState +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun OnEvent( + stable : BoxScope + stable uiEvent: UiEvent? +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SaveIcon( + stable onClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun ShareIcon( + stable onClick: Function0 +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun ImagesPager( + stable pagerState: PagerState + unstable images: List + callback: MultitouchDetectorCallback + stable favoriteClick: Function2 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun EmptyPhotos( + stable title: String + stable btnTitle: String + stable callback: Function0 +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun RoverPhotosScreen( + unstable activity: FragmentActivity + stable modifier: Modifier? = @static Companion + unstable navHost: NavController + stable roverId: Long + unstable viewModel: PhotosViewModel? = @dynamic viewModel(null, null, null, null, $composer, 0, 0b1111) +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun RefreshButton( + stable fabVisible: Boolean + stable modifier: Modifier + stable onClick: Function0 +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun PhotosList( + stable modifier: Modifier + unstable photos: List + stable onPhotoClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PhotoCard( + stable image: MarsImage + stable onPhotoClick: Function1<@[ParameterName(name = 'image')] MarsImage, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SolDialog( + stable openDialog: Boolean + stable maxSol: Long + stable sol: Long + stable onClose: Function0 + stable onChoose: Function1<@[ParameterName(name = 'sol')] Long, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SolChanger( + stable sol: Long? + stable maxSol: Long + stable onSolChanged: Function1<@[ParameterName(name = 'sol')] Long?, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun HeaderButton( + stable : RowScope + stable txt: String + stable onClick: Function0 +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun RoversBottomBar( + unstable navController: NavHostController + unstable bottomItems: List + unstable : RoversActivity +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun ComposableBannerAd( + stable modifier: Modifier + unstable : RoversActivity +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun RoversNavHost( + unstable navController: NavHostController + stable onHideUi: Function1 + unstable : RoversActivity +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun RoversContent( + unstable rovers: List + stable onClick: Function1<@[ParameterName(name = 'rover')] Rover, Unit> +) +restartable scheme("[androidx.compose.ui.UiComposable]") fun RoverItem( + unstable rover: Rover + stable onClick: Function1<@[ParameterName(name = 'rover')] Rover, Unit> +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun TitleText( + stable text: String +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun InfoText( + stable label: String + stable text: String +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun DefaultPreview() +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun AboutAppContent( + stable onClearCache: Function0 + stable onRateApp: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun ThemeChanger() +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun LinkifyText( + stable text: String + stable link: String +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun UkraineInfoScreen() +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun UkraineBanner( + stable modifier: Modifier? = @static Companion + stable title: String? = @static "#Stand with Ukraine" + stable onClick: Function0 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PreviewBanner() +restartable skippable scheme("[0, [0]]") fun MarsRoverPhotosTheme( + stable darkTheme: Boolean = @dynamic isSystemInDarkTheme($composer, 0) + stable content: Function2 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable, [androidx.compose.ui.UiComposable]]") fun CenteredColumn( + stable modifier: Modifier? = @static Companion + stable content: @[ExtensionFunctionType] Function3 +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun CenteredProgress() +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun MarsSnackbar( + stable modifier: Modifier? = @static Companion + stable snackbarHostState: SnackbarHostState + stable actionClick: Function0? = @static null +) +restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun RadioButtonText( + stable text: String + stable selected: Boolean + stable modifier: Modifier? = @static Companion + stable onClick: Function0 +) +restartable skippable scheme("[0, [0]]") fun NoScrollEffect( + stable content: Function2 +) diff --git a/app/compose_compiler_before/app_release-module.json b/app/compose_compiler_before/app_release-module.json new file mode 100644 index 0000000..8972e1f --- /dev/null +++ b/app/compose_compiler_before/app_release-module.json @@ -0,0 +1,25 @@ +{ + "skippableComposables": 78, + "restartableComposables": 132, + "readonlyComposables": 0, + "totalComposables": 138, + "restartGroups": 132, + "totalGroups": 154, + "staticArguments": 272, + "certainArguments": 40, + "knownStableArguments": 1611, + "knownUnstableArguments": 34, + "unknownStableArguments": 7, + "totalArguments": 1652, + "markedStableClasses": 0, + "inferredStableClasses": 33, + "inferredUnstableClasses": 29, + "inferredUncertainClasses": 0, + "effectivelyStableClasses": 33, + "totalClasses": 62, + "memoizedLambdas": 98, + "singletonLambdas": 9, + "singletonComposableLambdas": 23, + "composableLambdas": 68, + "totalLambdas": 136 +} \ No newline at end of file diff --git a/app/src/main/java/com/sirelon/marsroverphotos/feature/MarsImage.kt b/app/src/main/java/com/sirelon/marsroverphotos/feature/MarsImage.kt index 7ad7b87..b99a168 100644 --- a/app/src/main/java/com/sirelon/marsroverphotos/feature/MarsImage.kt +++ b/app/src/main/java/com/sirelon/marsroverphotos/feature/MarsImage.kt @@ -68,7 +68,7 @@ fun MarsImageComposable( val loading by remember { derivedStateOf { - painter.state is AsyncImagePainter.State.Loading + painter.state !is AsyncImagePainter.State.Success } } Card( diff --git a/app/src/main/java/com/sirelon/marsroverphotos/feature/favorite/FavoriteScreen.kt b/app/src/main/java/com/sirelon/marsroverphotos/feature/favorite/FavoriteScreen.kt index 9bde16e..d8e40b2 100644 --- a/app/src/main/java/com/sirelon/marsroverphotos/feature/favorite/FavoriteScreen.kt +++ b/app/src/main/java/com/sirelon/marsroverphotos/feature/favorite/FavoriteScreen.kt @@ -42,6 +42,7 @@ import com.sirelon.marsroverphotos.feature.popular.PopularPhotosViewModel import com.sirelon.marsroverphotos.storage.MarsImage import com.sirelon.marsroverphotos.storage.Prefs import com.sirelon.marsroverphotos.ui.CenteredProgress +import java.util.UUID /** * Created on 01.03.2021 22:32 for Mars-Rover-Photos. @@ -118,7 +119,7 @@ fun FavoritePhotosContent( val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior() TopAppBar( title = { Text(text = title) }, - windowInsets = WindowInsets(0,0,0,0), + windowInsets = WindowInsets(0, 0, 0, 0), actions = { IconButton( onClick = { @@ -154,8 +155,7 @@ fun FavoritePhotosContent( LazyVerticalStaggeredGrid( modifier = modifier .weight(1f) - .nestedScroll(scrollBehavior.nestedScrollConnection) - , + .nestedScroll(scrollBehavior.nestedScrollConnection), contentPadding = PaddingValues(16.dp), columns = if (gridView) { StaggeredGridCells.Fixed(2) @@ -165,7 +165,11 @@ fun FavoritePhotosContent( verticalItemSpacing = 16.dp, horizontalArrangement = spacedBy, content = { - items(items.itemCount) { + items( + items.itemCount, + key = { items.peek(it)?.id ?: UUID.randomUUID() }, + contentType = { "MarsImageComposable" } + ) { val image = items[it] if (image != null) { MarsImageComposable(