Skip to content

Instantly share code, notes, and snippets.

View ahinchman1's full-sized avatar

Amanda Hinchman-Dominguez ahinchman1

View GitHub Profile
fun main() = runBlocking {
println("runBlocking main")
val scope = CoroutineScope(Job())
println("scope created. Create job...")
val job = scope.launch {
...
}
fun main() = runBlocking {
println("runBlocking main")
val scope = CoroutineScope(Job())
println("scope created. Create job...")
val job = scope.launch {
val task1 = runBlocking {
println(" task1")
@ahinchman1
ahinchman1 / PlayRunBlocking.kt
Last active March 25, 2024 19:13
runBlocking spins off 2 more runBlocking tasks
fun main() = runBlocking {
println("runBlocking main")
val task1 = runBlocking {
println(" task1")
// simulate a background task
delay(1000)
println(" task1: Done background task")
}
sealed class ErrorViewState {
object Content : ErrorViewState()
}
class ErrorViewModel : ViewModel() {
private val _viewState = MutableLiveData<ErrorViewState>()
val viewState: LiveData<ErrorViewState> = _viewState
init {
_viewState.value = ErrorViewState.Content
class InvasiveSpeciesMapFragment: Fragment() {
private val navigator by lazy { (requireActivity() as MainActivity).navigator }
private val viewModel by viewModels<InvasiveSpeciesMapViewModel>()
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? =
inflater.inflate(R.layout.fragment_invasive_species_map, container, false)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
class InvasiveSpeciesMapFragment: Fragment() {
private val navController by lazy {
Navigation.findNavController(requireActivity(), R.id.fragment_container)
}
private val viewModel by viewModels<InvasiveSpeciesMapViewModel> {
InvasiveSpeciesMapViewModelFactory(navigator = Navigator(navController, resources))
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/app_background"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
sealed class MainActivityViewState {
object Loading : MainActivityViewState()
object Content : MainActivityViewState()
}
class MainActivityViewModel: ViewModel() {
private val _viewState = MutableLiveData<MainActivityViewState>()
val viewState: LiveData<MainActivityViewState> = _viewState
enum class Screen(var screen: String) {
ERROR("Error"),
INVASIVE_SPECIES_MAP("Invasive Species Map"),
SPOTTER("Spotter");
override fun toString(): String = screen
}
class Navigator(
private val navController: NavController,
class MainActivity : SingleFragmentActivity() {
...
private val navController by lazy {
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.fragment_container) as NavHostFragment
navHostFragment.navController
}
val navigator by lazy { Navigator(navController, resources) }