Skip to content

Instantly share code, notes, and snippets.

View amal's full-sized avatar
👨‍💻

Art Shendrik amal

👨‍💻
View GitHub Profile
Begin by enclosing all thoughts within <thinking> tags, exploring multiple angles and approaches.
Break down the solution into clear steps within <step> tags. Start with a 20-step budget, requesting more for complex problems if needed.
Use <count> tags after each step to show the remaining budget. Stop when reaching 0.
Continuously adjust your reasoning based on intermediate results and reflections, adapting your strategy as you progress.
Regularly evaluate progress using <reflection> tags. Be critical and honest about your reasoning process.
Assign a quality score between 0.0 and 1.0 using <reward> tags after each reflection. Use this to guide your approach:
0.8+: Continue current approach
0.5-0.7: Consider minor adjustments
Below 0.5: Seriously consider backtracking and trying a different approach
@amal
amal / RItemAtom.ts
Last active September 29, 2024 20:49
Reatom LazyStoreItem for WebExt
import type {Ctx, LensAtom} from "@reatom/framework";
/**
* Read-only Atom with a `set` method to update the value.
*/
export interface RItemAtom<TValue = unknown> extends LensAtom<TValue> {
readonly set: (ctx: Ctx, value: TValue) => any
}
@amal
amal / AppleCredentialLauncher.native.kt
Created September 26, 2024 10:06 — forked from Nek-12/AppleCredentialLauncher.native.kt
How to implement Apple Sign in in Kotlin Multiplatform
package pro.respawn.app.feature.account.thirdparty
import androidx.compose.runtime.Composable
import co.touchlab.kermit.Logger
import kotlinx.cinterop.ExperimentalForeignApi
import kotlinx.cinterop.cstr
import kotlinx.cinterop.memScoped
import kotlinx.cinterop.reinterpret
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.suspendCancellableCoroutine
@amal
amal / DrawGlyphs.kt
Created June 24, 2024 16:48 — forked from halilozercan/DrawGlyphs.kt
A Set of helper functions and classes to draw each individual glyph separately
import androidx.compose.ui.draw.drawWithCache
import androidx.compose.ui.geometry.CornerRadius
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.geometry.Rect
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.BlendMode
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.ImageBitmap
@amal
amal / ColoredShadow.kt
Created June 24, 2024 10:26 — forked from cedrickring/ColoredShadow.kt
Draw a colored shadow in Android Jetpack Compose
/*
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,
@amal
amal / DynamicBottomSheetScaffold.kt
Created March 20, 2024 20:34 — forked from Nek-12/DynamicBottomSheetScaffold.kt
Dynamic non-modal bottom sheet for Compose that fixes existing issues with material3 implementation
import androidx.compose.animation.core.animateDpAsState
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.windowInsetsPadding
@amal
amal / CMakeLists.txt
Created March 20, 2024 14:36 — forked from blessedbyjobs/CMakeLists.txt
Код, используемый для проверки, что устройство имеет root права
// этот файл поместить в корень проекта
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
// адаптировать под структуру вашего проекта
set(SOURCES src/main/cpp/NativeRootChecker.cpp)
add_library(root_checker_jni SHARED ${SOURCES})
@amal
amal / StackNavigator.kt
Created March 12, 2024 16:20 — forked from Nek-12/StackNavigator.kt
Decompose - Global navigation events with channel
internal class StackComponent(context: ComponentContext): Component {
private val results = Channel<NavResult<*>>(Channel.CONFLATED)
inline fun <reified R> sendResult(result: R) {
val config = stack.active.configuration
// or popWhile - bring desired page to the front
navigation.pop {
results.trySend(NavResult(config, result))
@amal
amal / InPlaceCombinedFlow.kt
Created August 31, 2023 14:47
In-place StateFlow implementations
import kotlinx.coroutines.flow.FlowCollector
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
/**
* Replacement for [combine][kotlinx.coroutines.flow.combine] operation for [StateFlow]s.
* Keeps the result as a [StateFlow], provides realtime results ([StateFlow] result).
* Also reduces number of allocations.
*
* @see kotlinx.coroutines.flow.combine