Skip to content

Instantly share code, notes, and snippets.


Anton Shkurenko tonyshkurenko

View GitHub Profile
tonyshkurenko / styles.xml
Created Oct 30, 2015
No ui activity theme for the AppCompat
View styles.xml
<!-- No ui for appcompat -->
<style name="NoUiAppTheme"
<item name="android:windowBackground">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowDisablePreview">true</item>
<item name="android:windowNoDisplay">true</item>
tonyshkurenko /
Created Oct 28, 2015
Converter Factory for Retrofit 2.0
public class RawStringConverter extends Converter.Factory {
public Converter<ResponseBody, ?> fromResponseBody(Type type, Annotation[] annotations) {
//noinspection EqualsBetweenInconvertibleTypes
if (String.class.equals(type)) {
return ResponseBody::string;
return null;
View Fractal tree
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
public class FractalTree extends JFrame {
public FractalTree() {
super("Fractal Tree");
setBounds(100, 100, 800, 600);
View Elegant if-else
int a = in0[i], b = in1[i];
int cmp = a < b; //if TRUE, cmp has all bits 1, if FALSE all bits 0
// & bitwise AND
// | bitwise OR
// ~ flips all bits
out[i] = (a&cmp) | (b&~cmp); //a when TRUE and b when FALSE
tonyshkurenko / Dagger 2, quick start
Last active Jun 18, 2018
Everything I found about Dagger 2
View Dagger 2, quick start
Dagger step 1: Add android-apt, dagger 2, dagger2-compiler, and javax annotation to the build.gradle files.
Note that they're not all "compile" dependencies.
Step 2: Add our module. Our ApplicationModule will be able to inject the ApplicationContext to classes that need it.
Step 3: Add our Component.Dagger 2 generates code for each Component you create,
using the file name Dagger(NameOfComponent).
Example: DaggerApplicationComponent.
Components can have multiple modules, in our case we have one.
tonyshkurenko / Endless scroll
Created Oct 11, 2015
Endless scroll listener
View Endless scroll
* This will ensure that this SwipeableRecyclerViewTouchListener is paused during list view scrolling.
* If a scroll listener is already assigned, the caller should still pass scroll changes through
* to this listener.
public static abstract class EndlessScrollListener extends RecyclerView.OnScrollListener {
private int mPreviousTotal = 0; // The total number of items in the dataset after the last load
tonyshkurenko /
Created Sep 23, 2015 — forked from staltz/
The introduction to Reactive Programming you've been missing

The introduction to Reactive Programming you've been missing

(by @andrestaltz)

So you're curious in learning this new thing called Reactive Programming, particularly its variant comprising of Rx, Bacon.js, RAC, and others.

Learning it is hard, even harder by the lack of good material. When I started, I tried looking for tutorials. I found only a handful of practical guides, but they just scratched the surface and never tackled the challenge of building the whole architecture around it. Library documentations often don't help when you're trying to understand some function. I mean, honestly, look at this:

Rx.Observable.prototype.flatMapLatest(selector, [thisArg])

Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence.

tonyshkurenko /
Created Sep 11, 2015
Util class to expand/collapse views with animations. Android.
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.Transformation;
* credits:
* util class to expand/collapse view with animation
tonyshkurenko / genymotionwithplay.txt
Last active Sep 3, 2015 — forked from wbroek/genymotionwithplay.txt
Genymotion with Google Play Services
View genymotionwithplay.txt
Download the following ZIPs:
ARM Translation Installer v1.1 (
Download the correct GApps for your Android version:
Google Apps for Android 5.1 ( -
Google Apps for Android 5.0 ( -
Google Apps for Android 4.4.4 ( -
Google Apps for Android 4.3 ( -
Google Apps for Android 4.2 ( -
You can’t perform that action at this time.