Skip to content

Instantly share code, notes, and snippets.

View sergiocasero's full-sized avatar
😄

Sergio Casero Hernández sergiocasero

😄
View GitHub Profile
@sergiocasero
sergiocasero / main.dart
Created July 31, 2020 11:36
Custom Sliver with Toolbar Ellipsis behind
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
@sergiocasero
sergiocasero / RootAdapter.kt
Last active September 30, 2019 11:11
Abstract adapter with update, add, remove... methods
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
/**
* RootAdapter
*/
abstract class RootAdapter<T>(protected val items: MutableList<T> = mutableListOf(),
private val onItemClickListener: (T) -> Unit = {},
@sergiocasero
sergiocasero / DaoGenerator.kt
Created April 25, 2019 09:39
DaoGenerator code template for IntelliJ/AS
package ${PACKAGE_NAME}
#parse("File Header.java")
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Update
import androidx.room.Query
@Dao
@sergiocasero
sergiocasero / functions.js
Created January 12, 2019 19:25
Switch Google Assistant
'use strict';
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.database();
const ref = db.ref("/switch");
#!/bin/bash
grep -rnw '.' -e 'android.support'
import android.os.Build;
import android.os.HandlerThread;
import android.os.Process;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import io.reactivex.BackpressureStrategy;
import io.reactivex.Completable;
import io.reactivex.Flowable;
@sergiocasero
sergiocasero / MaybeSave.kt
Last active October 24, 2018 15:42
Maybe extension function to save data and return the same value (wihout blocking the stream)
fun <T> Maybe<T>.save(saveFunction: (T) -> Unit): Maybe<T> {
return MaybeSave(this, saveFunction)
}
private class MaybeSave<T>(val source: MaybeSource<T>, val saveFunction: (T) -> Unit) : Maybe<T>() {
override fun subscribeActual(observer: MaybeObserver<in T>) {
source.subscribe(MaybeSaveObserver<T>(observer, saveFunction))
}
@sergiocasero
sergiocasero / LogExtensions.kt
Created February 9, 2018 07:52
Kotlin Android logging extensions
import android.util.Log
/**
* AndroidExtensions
*/
/**
* Any
* */
fun Any.info(text: String) {
@sergiocasero
sergiocasero / Ip.kt
Last active December 21, 2017 17:38
Simple code to get your public ip address
import IpAddress.Companion.IP_END
import IpAddress.Companion.IP_SEGMENT_SIZE
import IpAddress.Companion.IP_START
import kotlinx.coroutines.experimental.runBlocking
import java.net.URL
/**
* Ipfy
*/
data class IpAddress(private val segment1: Int,
@sergiocasero
sergiocasero / Extensions.kt
Created December 14, 2017 10:49
Normalize extensions function
fun String.normalize(): String {
val map = mutableMapOf<Char, Char>()
map.put('À', 'A')
map.put('Á', 'A')
map.put('Â', 'A')
map.put('Ã', 'A')
map.put('Ä', 'A')
map.put('È', 'E')
map.put('É', 'E')
map.put('Ê', 'E')