Skip to content

Instantly share code, notes, and snippets.

View alorma's full-sized avatar
🤡

Bernat Borrás Paronella alorma

🤡
View GitHub Profile
import android.content.res.Configuration
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.Wallpapers
@Retention(AnnotationRetention.BINARY)
@Target(
AnnotationTarget.ANNOTATION_CLASS,
AnnotationTarget.FUNCTION
)
@Preview(
private fun launchIntents(context: Context) {
val whatsappIntent = getWhatsappIntent(context)
val telegramIntent = getTelegramIntent(context)
val intents = listOfNotNull(whatsappIntent, telegramIntent)
val globalIntent = Intent()
val chooserIntent = Intent.createChooser(globalIntent, "Send message")
.putExtra(Intent.EXTRA_INITIAL_INTENTS, intents.toTypedArray())
@alorma
alorma / DropDownComponent.kt
Created January 19, 2021 17:15
Dropdown component for Compose
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.ColumnScope
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.wrapContentWidth
import androidx.compose.material.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowDropDown
import androidx.compose.material.icons.filled.ArrowDropUp
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
fun Context.attributeColorWithAlpha(
@AttrRes overlayColorAttributeResId: Int,
@FloatRange(from = 0.0, to = 1.0) overlayAlpha: Float
): Int {
val surfaceColor = MaterialColors.getColor(this, R.attr.colorSurface, "Color surface not found")
val colorWithAlpha = MaterialColors.getColor(this, overlayColorAttributeResId, "Color attribute not found").let {
MaterialColors.compositeARGBWithAlpha(it, (255 * overlayAlpha).roundToInt())
}
return MaterialColors.layer(surfaceColor, colorWithAlpha)
}
class SearchStoresMapViewModel(
private val storeCache: StoreCache,
private val mapper: StoreUiMapper
) : ViewModel() {
private val appliedFilters: MutableSet<OpenStatus> = mutableSetOf()
private val filtersChannel = BroadcastChannel<Set<OpenStatus>>(Channel.CONFLATED)
private val queryChannel = BroadcastChannel<String>(Channel.CONFLATED)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?colorPrimary" android:state_enabled="true" />
<item android:alpha="0.38" android:color="?colorPrimary" />
</selector>
[
{
"id":"5c59c40e4d76972930399ab2",
"type":"animal",
"location":{
"latitude":41.5697586228956,
"longitude":2.0374607342886923
},
"owner":false,
"found":false,
@alorma
alorma / channels
Created January 8, 2019 16:59
Spain channels
#EXTM3U
#EXTINF:-1,~ Spain TV ~
#EXTINF:-1,3/24
http://ccma-tva-int-abertis-live.hls.adaptive.level3.net/int/ngrp:324_mobil/chunklist_b548000.m3u8
#EXTINF:-1,101 TV Malaga
http://cls.todostreaming.eu/101tv/livestream2/chunklist.m3u8
#EXTINF:-1,7 Murcia
http://rtvmurcia_01-lh.akamaihd.net/i/rtvmurcia_1_0@507973/master.m3u8
#EXTINF:-1,25 Televisio
http://cdnlive.shooowit.net/25televisiolive/amlst:25tv/chunklist_b300000.m3u8
import io.reactivex.disposables.Disposable
import kotlinx.coroutines.CancellableContinuation
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.suspendCancellableCoroutine
import kotlinx.coroutines.withContext
import rx.Subscription
import kotlin.coroutines.resume
import kotlin.coroutines.resumeWithException
import io.reactivex.Completable as Rx2Completable
import io.reactivex.Flowable as Rx2Flowable
import android.graphics.Typeface.BOLD
import android.graphics.Typeface.ITALIC
import android.support.annotation.ColorInt
import android.text.Spannable.SPAN_INCLUSIVE_EXCLUSIVE
import android.text.SpannableStringBuilder
import android.text.SpannedString
import android.text.style.*
fun spannable(block: SpannableStringBuilder.() -> Unit): SpannableStringBuilder = SpannableStringBuilder().apply(block)