Skip to content

Instantly share code, notes, and snippets.

View GuilhE's full-sized avatar

Guilherme Delgado GuilhE

View GitHub Profile
GuilhE / deploy-bintray.gradle.kts
Created February 5, 2021 12:18
Gradle configurations to deploy both to Bintray and Maven
import com.jfrog.bintray.gradle.BintrayExtension
import com.jfrog.bintray.gradle.BintrayPlugin
import java.util.*
buildscript {
repositories {
GuilhE /
Last active April 8, 2021 17:10
Firebase App Distribution (locally)
BOLD=$(tput bold)
NORMAL=$(tput sgr0)
function getProperty() {
# shellcheck disable=SC2002
PROP_VALUE=$(cat $PROPERTY_FILE | grep -w "$PROP_KEY" | cut -d'=' -f2-)
echo "$PROP_VALUE"
GuilhE / build.gradle.kts
Last active February 18, 2022 09:48
Gradle configurations to be used with bitbucket-pipelines.yml or
import java.util.*
signingConfigs {
if (File("").exists()) {
create("releaseDistribution") {
val prop = Properties().apply { load(FileInputStream(File(""))) }
storeFile = File(prop.getProperty("keystorePath"))
storePassword = prop.getProperty("keystorePassword")
GuilhE / bitbucket-pipelines.yml
Last active July 7, 2022 21:27
Bitbucket pipeline for Android Firebase App Distribution
image: bitbucketpipelines/android-ci-image
- step:
name: Setup & Deploy
image: java:8 #remove this line if plugin "com.starter.easylauncher" isn't used
- android-sdk
GuilhE / RxExtensions.kt
Created March 4, 2020 00:43
Helper compose functions for RxKotlin
import android.annotation.SuppressLint
import com.blissapplications.kotlin.core.common.threads.ReactivexThreadSchedulerProvider
import io.reactivex.Completable
import io.reactivex.Single
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.disposables.Disposable
* Examples of usage of this extensions functions:
GuilhE / OperatorExtensionsTest.kt
Last active February 19, 2020 11:28
OperatorExtensions tests with MockK
import io.mockk.clearAllMocks
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.delay
import kotlinx.coroutines.test.TestCoroutineDispatcher
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runBlockingTest
import kotlinx.coroutines.test.setMain
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.*
GuilhE / OperatorExtensions.kt
Last active March 21, 2020 21:30
Extension class to convert ReactiveX operators into Coroutines
import kotlinx.coroutines.*
fun throttleClick(scope: CoroutineScope = CoroutineScope(Dispatchers.Main), clickAction: (Unit) -> Unit): (Unit) -> Unit {
return throttleFirst(1_000, scope, clickAction)
* Processes input data and passes the first data to [action] and skips all new data for the next [skipMs].
fun <T> throttleFirst(skipMs: Long = 700L, scope: CoroutineScope = CoroutineScope(Dispatchers.Main), action: (T) -> Unit): (T) -> Unit {
GuilhE / EndlessRecyclerOnScrollListener.kt
Last active March 21, 2020 21:30
Helper listener class to implement pagination
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
abstract class EndlessRecyclerOnScrollListener(
manager: LinearLayoutManager
) : RecyclerView.OnScrollListener() {
private var layoutManager: LinearLayoutManager = manager
GuilhE / .gitattributes
Created February 1, 2019 13:49
GitAttributes to use with git-lfs
# Collapse Unity-generated files on GitHub
*.asset linguist-generated
*.mat linguist-generated
*.meta linguist-generated
*.prefab linguist-generated
*.unity linguist-generated
# 3D models
*.3dm filter=lfs diff=lfs merge=lfs -text
*.3ds filter=lfs diff=lfs merge=lfs -text
GuilhE / travis.yml
Created October 31, 2018 17:53
Travis CI configurations for testing without emulator
language: android
dist: trusty
email: false
- oraclejdk8