Skip to content

Instantly share code, notes, and snippets.

View almozavr's full-sized avatar

Oleksii Malovanyi almozavr

  • Lviv, UA
View GitHub Profile
@almozavr
almozavr / FixedSwitchPreference.java
Last active November 28, 2022 15:46
FixedSwitchPreference
public class FixedSwitchPreference extends SwitchPreference {
/**
* Construct a new SwitchPreference with the given style options.
*
* @param context The Context that will style this preference
* @param attrs Style attributes that differ from the default
* @param defStyle Theme attribute defining the default style options
*/
public FixedSwitchPreference(Context context, AttributeSet attrs, int defStyle) {
@almozavr
almozavr / DelegatingPagingSource.Kt
Created October 8, 2021 13:26
Link ContainerHost intent capabilities with the Paging library
package com.example.paging
import androidx.paging.PagingSource
import androidx.paging.PagingState
import org.orbitmvi.orbit.ContainerHost
import org.orbitmvi.orbit.syntax.simple.SimpleSyntax
import org.orbitmvi.orbit.syntax.simple.intent
import kotlin.coroutines.resume
import kotlin.coroutines.resumeWithException
import kotlin.coroutines.suspendCoroutine
@almozavr
almozavr / jacoco.gradle
Last active January 5, 2021 12:37
Gradle Jacoco config for Android (3.x plugin) with kotlin and custom excludes support
apply plugin: "jacoco"
jacoco {
toolVersion = deps.test.jacocoVersion
}
tasks.withType(Test) {
jacoco.includeNoLocationClasses = true
}
@almozavr
almozavr / ObjectGsonParceler.java
Last active September 30, 2020 16:53
Parcelable helper to wrap object convertable with gson
public class ObjectGsonParceler {
private final Gson gson;
public ObjectGsonParceler(Gson gson) {
this.gson = gson;
}
public Parcelable wrap(Object instance) {
try {
String json = encode(instance);
@almozavr
almozavr / app_build.gradle
Created June 26, 2014 08:13
Workaround to bypass library's BuildConfig.DEBUG (always true, always release build type) via custom variable
// Application
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
@almozavr
almozavr / UnsafeCast.kt
Created February 5, 2018 11:21
Custom UnsafeCast rule for detekt
package io.techery.detekt.extensions.rules
import io.gitlab.arturbosch.detekt.api.*
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.*
/**
* Whitelist-able unsafe cast check. E.g.
*
* UnsafeCast:
#!/usr/bin/env groovy
def runBuild(String nodeName = null, notifyGithub = true, Closure<Void> job) {
if (nodeName) node(nodeName) { runBuildInternally(job, notifyGithub) }
else runBuildInternally(job, notifyGithub)
}
private def runBuildInternally(Closure<Void> job, boolean notifyGithub) {
withGithubNotifier(notifyGithub) {
decorateBuild {
@almozavr
almozavr / TimberServiceWrapper.java
Last active May 17, 2016 08:17
Timber logger service wrapper for Janet ActionService
public class TimberServiceWrapper extends ActionServiceWrapper {
private final String serviceTag;
public TimberServiceWrapper(ActionService actionService) {
this(actionService, null);
}
public TimberServiceWrapper(ActionService actionService, String tag) {
super(actionService);
@almozavr
almozavr / build.gradle
Created May 5, 2016 12:14
AndroidTDDBootStrap app Flavor Dimensions test
/*
* The MIT License (MIT)
*
* Copyright (c) 2016 Piasy
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
@almozavr
almozavr / gist:7692154
Created November 28, 2013 13:52
Launchrock mail with bad encoding for cyrillic texts
Delivered-To: almozavr@gmail.com
Received: by 10.42.87.141 with SMTP id y13csp11267icl;
Thu, 28 Nov 2013 05:45:34 -0800 (PST)
X-Received: by 10.194.185.73 with SMTP id fa9mr36830100wjc.29.1385646333791;
Thu, 28 Nov 2013 05:45:33 -0800 (PST)
Return-Path: <bounces+30137-5591-komanda=ecodnepr.org@email.launchrock.com>
Received: from li298-54.members.linode.com (li298-54.members.linode.com. [178.79.160.54])
by mx.google.com with ESMTP id pr7si23213775wjc.164.2013.11.28.05.45.33
for <almozavr@gmail.com>;
Thu, 28 Nov 2013 05:45:33 -0800 (PST)