I hereby claim:
- I am sebaslogen on github.
- I am sebaslogen (https://keybase.io/sebaslogen) on keybase.
- I have a public key ASC32nccv5aNWfjyCGsuI4fwejoCRfoApEyoxnwE5TwRjgo
To claim this, I am signing this object:
| import android.app.Activity | |
| import android.content.Context | |
| import android.content.ContextWrapper | |
| import androidx.compose.runtime.Composable | |
| import androidx.compose.runtime.LaunchedEffect | |
| import androidx.compose.runtime.RememberObserver | |
| import androidx.compose.runtime.remember | |
| import androidx.compose.ui.platform.LocalContext | |
| import androidx.compose.ui.platform.LocalLifecycleOwner | |
| import androidx.core.app.ComponentActivity |
| android { | |
| testOptions { | |
| unitTests { | |
| includeAndroidResources = true | |
| } | |
| } | |
| } | |
| dependencies { | |
| testImplementation 'junit:junit:4.+' |
| @Before | |
| @Throws(Exception::class) | |
| fun setUp() { | |
| ShadowLog.stream = System.out // Redirect Logcat to console | |
| } |
| @RunWith(AndroidJUnit4::class) // Update: back in 2022, this used to be @RunWith(RobolectricTestRunner::class) | |
| class MyTests { | |
| @get:Rule val composeTestRule = createComposeRule() | |
| @Test fun `when I test, then it works`() { | |
| // Some test code here | |
| } | |
| } |
| // Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import 'package:flutter/material.dart'; | |
| void main() => runApp(MyApp()); | |
| class MyApp extends StatelessWidget { | |
| @override |
| import 'package:flutter/material.dart'; | |
| void main() => runApp(MyApp()); | |
| class MyApp extends StatelessWidget { | |
| @override | |
| Widget build(BuildContext context) { | |
| return MaterialApp( | |
| title: 'Flutter Demo', | |
| debugShowCheckedModeBanner: false, |
I hereby claim:
To claim this, I am signing this object:
| data class ComponentScreen(val title: String?, val sections: List<Section> = emptyList()) | |
| sealed class Section | |
| data class AlbumListSection(val title: String?, val items: List<AlbumListItem>) : Section() | |
| data class ShelfSection(val shelfStyle: ShelfItemStyle, val items: List<ShelfItem>) : Section() | |
| data class TrackListSection(val items: List<TrackListItem>) : Section() | |
| data class AlbumListItem(val title: String, val image: String, val action: Action) |