This workflow uses the GitHub CLI to keep a forked repo in sync with the upstream repo. Add it to your repo as .github/workflows/sync-fork.yaml
.
It runs daily to sync the default branch and can be triggered manually for any branch.
import android.os.Bundle | |
import androidx.compose.runtime.Composable | |
import androidx.compose.runtime.RememberObserver | |
import androidx.compose.runtime.remember | |
import androidx.lifecycle.* | |
import androidx.lifecycle.viewmodel.CreationExtras | |
import androidx.lifecycle.viewmodel.MutableCreationExtras | |
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner | |
import androidx.lifecycle.viewmodel.compose.viewModel |
import androidx.compose.runtime.* | |
import androidx.compose.ui.platform.LocalLifecycleOwner | |
import androidx.lifecycle.* | |
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner | |
import androidx.lifecycle.viewmodel.compose.viewModel | |
import kotlinx.coroutines.* | |
import kotlinx.coroutines.flow.* | |
@Composable | |
fun rememberViewModelStoreOwner( |
package de.halfbit.seventysix | |
import androidx.compose.foundation.layout.Column | |
import androidx.compose.foundation.layout.fillMaxWidth | |
import androidx.compose.material.Button | |
import androidx.compose.material.MaterialTheme | |
import androidx.compose.material.Text | |
import androidx.compose.runtime.* | |
import androidx.compose.ui.Alignment | |
import androidx.compose.ui.Modifier |
import androidx.compose.animation.core.RepeatMode | |
import androidx.compose.animation.core.VectorConverter | |
import androidx.compose.animation.core.animateValue | |
import androidx.compose.animation.core.infiniteRepeatable | |
import androidx.compose.animation.core.keyframesWithSpline | |
import androidx.compose.animation.core.rememberInfiniteTransition | |
import androidx.compose.foundation.Image | |
import androidx.compose.foundation.layout.Box | |
import androidx.compose.foundation.layout.BoxWithConstraints |
fun <T, B> createJsonRpcService(service: Class<T>, | |
client: JsonRpcClient<B>, | |
resultDeserializer: Deserializer<B>, | |
logger: (String) -> Unit = {}): T { | |
val classLoader = service.classLoader | |
val interfaces = arrayOf<Class<*>>(service) | |
val invocationHandler = createInvocationHandler(service, client, resultDeserializer, logger) | |
@Suppress("UNCHECKED_CAST") |