Skip to content

Instantly share code, notes, and snippets.

View ozodrukh's full-sized avatar
🎃
woah, how close was that?

Ozodrukh ozodrukh

🎃
woah, how close was that?
View GitHub Profile
@ozodrukh
ozodrukh / Detective.kt
Created July 24, 2016 08:37
Detective is a small library that detects Application focus changes
object Detective : SimpleActivityLifecycleCallbacks() {
private infix fun <T> List<T>.notContains(element: T): Boolean {
return !contains(element)
}
/** Timeout when app looses focus */
private val backgroundEnterTimeout: Int = 120
private val appFocusListeners = ArrayList<ApplicationFocusListener>()
private var registered = false
@ozodrukh
ozodrukh / ActionView.java
Last active July 8, 2016 10:00
Simple MenuItemView with progress bar
package io.codetail.trade.activities.preview;
import android.content.Context;
import android.content.res.TypedArray;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v4.widget.TextViewCompat;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
@ozodrukh
ozodrukh / HeaderDecor.java
Created June 21, 2016 07:41
Work in progress RecyclerView decoration to pin header
@Beta
private class HeaderDecor extends RecyclerView.ItemDecoration {
private RecyclerView.AdapterDataObserver adapterDataObserver;
private RecyclerView.ViewHolder headerViewHolder;
private int headerViewType;
private final Rect tmpBounds = new Rect();
@Override public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
if (headerViewHolder == null) {
headerViewHolder = obtainViewHolder(parent);
@ozodrukh
ozodrukh / player_get.py
Last active January 14, 2016 17:51
Player.uz script to grab and open direct link to serial or download sequentially by seasons and episodes
# coding: utf8
import re, json, bs4, requests, argparse, os, optparse
from urlparse import parse_qs, urlsplit, urlparse
ALL = -100
KEY_EPISODE_NUMBER = "episode"
KEY_EPISODE_SEASON = "season"
KEY_EPISODE_FILE = "file"
<html>
<head>
<script type="text/javascript">
window.onload = draw;
function draw(){
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Interpolator;
#ifndef __JniWrapper_h__
#define __JniWrapper_h__
#include <jni.h>
#include <string>
#include <exception>
//#include <boost/noncopyable.hpp>
namespace Android
package spoon.test;
import spoon.reflect.declaration.*;
import java.util.ArrayList;
import java.util.IntSummaryStatistics;
import java.util.TreeSet;
import java.util.function.Consumer;
import java.util.function.ToIntFunction;
@ozodrukh
ozodrukh / DrawablesCompat.java
Created April 11, 2015 12:06
Android Drawable loader alternative
package codetail.project.watchme.common.drawables;
import android.annotation.TargetApi;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.graphics.BitmapFactory;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
@ozodrukh
ozodrukh / FileUtils.java
Created April 9, 2015 17:46
Some useful file utility methods
public static String humanReadableByteCount(long bytes, boolean si) {
int unit = si ? 1000 : 1024;
if (bytes < unit) return bytes + " B";
int exp = (int) (Math.log(bytes) / Math.log(unit));
String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp-1) + (si ? "" : "i");
return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);
}