- pull
- tear down
- re-deploys pihole
- requires root to execute if docker daemon runs as root
@DeviceScope | |
@Component( | |
modules = [ | |
DeviceModule::class | |
], | |
dependencies = [ | |
// shared dependencies | |
AppComponent::class | |
] | |
) |
/* | |
Copyright 2020 Cedric Kring. | |
Licensed under the Apache License, Version 2.0 (the "License"); | |
you may not use this file except in compliance with the License. | |
You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, |
authorized flac/mp3 streaming command with 50% vol
./Library/Frameworks/GStreamer.framework/Versions/1.0/bin/gst-launch-1.0 souphttpsrc location="https://example.tld/v1/stream/YjEyMDA1NDAtYzNlZS00NmQ2LTg2OTEtOTlkMjAyYjU2NGIy" extra-headers="test, Authorization=(string)\"<ACCESS_TOKEN>\"" ! decodebin ! audioconvert ! audioresample ! volume volume=0.5 ! autoaudiosink
import android.graphics.Matrix | |
import android.os.Bundle | |
import androidx.activity.ComponentActivity | |
import androidx.activity.compose.setContent | |
import androidx.compose.animation.core.LinearEasing | |
import androidx.compose.animation.core.RepeatMode | |
import androidx.compose.animation.core.animateFloat | |
import androidx.compose.animation.core.infiniteRepeatable | |
import androidx.compose.animation.core.rememberInfiniteTransition | |
import androidx.compose.animation.core.tween |
@Serialized | |
data class MessageDto( | |
@SerialName(value = "id") | |
val id: String, | |
@SerialName(value = "message") | |
val message: String | |
) | |
class MessageService constructor( | |
private val httpClient: HttpClient |
[*.{kt,kts}] | |
# possible values: number (e.g. 2), "unset" (makes ktlint ignore indentation completely) | |
indent_size=4 | |
# true (recommended) / false | |
insert_final_newline=false | |
# possible values: number (e.g. 120) (package name, imports & comments are ignored), "off" | |
# it's automatically set to 100 on `ktlint --android ...` (per Android Kotlin Style Guide) | |
max_line_length=off | |
ktlint_standard_no-empty-first-line-in-method-block=disabled | |
ktlint_standard_trailing-comma-on-declaration-site=disabled |
based on https://morningcoffee.io/stable-pagination.html.
In order for this to work I had to use uuidgen -t
to generate time-based uuids otherwise the ordering would be messed up after 2-3 pages in.
sqlite3 pagination.db
@Composable | |
fun ParallaxScreen(modifier: Modifier = Modifier) { | |
val context = LocalContext.current | |
val scope = rememberCoroutineScope() | |
var data by remember { mutableStateOf<SensorData?>(null) } | |
DisposableEffect(Unit) { | |
val dataManager = SensorDataManager(context) | |
dataManager.init() |