Skip to content

Instantly share code, notes, and snippets.

View ultraon's full-sized avatar

Vitalii ultraon

View GitHub Profile
@ultraon
ultraon / ChildrenViewStateHelper.java
Last active August 3, 2016 07:33
Example of ChildrenViewStateHelper for saving view states with the same id in ViewGroup
package mypackage.presentation.utils.view;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.SparseArray;
import android.view.ViewGroup;
public class ChildrenViewStateHelper {
@ultraon
ultraon / RuntimeTypeAdapterFactory.java
Last active May 23, 2017 18:54
RuntimeTypeAdapterFactory with fixed issue: com.google.gson.JsonParseException
/*
* Copyright (C) 2011 Google Inc.
*
* 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
@ultraon
ultraon / build.gradle
Last active March 30, 2016 11:01
Example for building android library module (in project) with custom variant
//snippet from library module
android {
defaultPublishConfig "productionRelease"
publishNonDefault true
productFlavors {
alpha {
}
production {
}
@ultraon
ultraon / HandledClickUrlTextView.java
Last active June 15, 2016 13:56
The HandledClickUrlTextView is an extended TextView for supporting custom handler for link clicks
package presentation.view;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
@ultraon
ultraon / ReflectionUtils.java
Last active June 15, 2016 13:56
The reflection utils for convenient working with java reflection operations
package utils;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import java.lang.reflect.Field;
/**
* The utility class with reflection convenient methods.
*/
@ultraon
ultraon / build.gradle
Last active August 19, 2020 18:10
Good example of the merged Jacoco code covarage Gradle configuration
apply plugin: 'com.android.application'
apply from: "$rootDir/coverage.gradle"
//...
android {
//...
buildTypes {
//...
debug {
@ultraon
ultraon / HorizontalOverScrollView.java
Created December 9, 2016 18:43
Bouncable HorizontalScrollView
public class HorizontalOverScrollView extends HorizontalScrollView {
private static final int WIDTH_DEVIDER_OVERSCROLL_DISTANCE = 3;
private TimeInterpolator mInterpolator;
private int mMaxOverscrollDistance;
private int mAnimTime;
private long mStartTime;
/**
* Instantiates {@link HorizontalOverScrollView} object.
@ultraon
ultraon / reset_routing_table.sh
Created March 6, 2017 10:39 — forked from midwire/reset_routing_table.sh
Reset routing table on OSX
#!/usr/bin/env bash
# Reset routing table on OSX
# display current routing table
echo "********** BEFORE ****************************************"
netstat -r
echo "**********************************************************"
for i in {0..4}; do
sudo route -n flush # several times
@ultraon
ultraon / bash-cheatsheet.sh
Created March 17, 2017 11:02 — forked from LeCoupa/bash-cheatsheet.sh
Bash CheatSheet for UNIX Systems
#!/bin/bash
#####################################################
# Name: Bash CheatSheet for Mac OSX
#
# A little overlook of the Bash basics
#
# Usage:
#
# Author: J. Le Coupanec
# Date: 2014/11/04
@ultraon
ultraon / IoToMainThreadTransformers.java
Last active June 2, 2017 13:10
The {@link IoToMainThreadTransformers} is a factory of convenient Rx transformers to use with {@link io.reactivex.Observable#compose(ObservableTransformer)} operator to transform observable via apply {@link io.reactivex.Observable#subscribeOn(Scheduler)} operator with the {@link Schedulers#io()} and {@link io.reactivex.Observable#observeOn(Sche…
/**
* The {@link IoToMainThreadTransformers} is a factory of convenient Rx transformers to use with {@link
* io.reactivex.Observable#compose(ObservableTransformer)} operator to transform observable via
* apply {@link io.reactivex.Observable#subscribeOn(Scheduler)} operator with the {@link
* Schedulers#io()} and {@link io.reactivex.Observable#observeOn(Scheduler)} operator with the
* {@link AndroidSchedulers#mainThread()}.
*/
public final class IoToMainThreadTransformers {
private IoToMainThreadTransformers() {