Skip to content

Instantly share code, notes, and snippets.

@hrules6872
hrules6872 / BasePreferenceActivity.java
Created December 5, 2015 18:20
BasePreferenceActivity.java
public abstract class BasePreferenceActivity extends PreferenceActivity {
private AppCompatDelegate appCompatDelegate;
private Toolbar toolbar;
protected abstract int getPreferencesResource();
protected abstract int getLayoutResource();
protected abstract int getTitleResource();
@hrules6872
hrules6872 / HideSoftKeyboard.java
Created December 21, 2015 14:47
Hide SoftKeyboard
public void hideSoftKeyboard(Activity context) {
View view = context.getCurrentFocus();
if (view == null) {
return;
}
InputMethodManager inputMethodManager =
(InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
@hrules6872
hrules6872 / DisplayLeakConnectorView
Last active February 1, 2016 21:09
Improved DisplayLeakConnectorView extracted from LeakCanary library
public class DisplayLeakConnectorView extends View {
private static final float DEFAULT_STROKEWIDTH = 4f;
private static final int DEFAULT_COLOR_BRANCH = 0xFFbababa;
private static final int DEFAULT_COLOR_ROOT = 0xFF84a6c5;
private static final int DEFAULT_COLOR_LEAK = 0xFFb1554e;
public static final int TYPE_START = -1;
public static final int TYPE_NODE = 0;
public static final int TYPE_END = 1;
public static final int TYPE_DEFAULT = TYPE_NODE;
@hrules6872
hrules6872 / Log.java
Created February 25, 2015 11:41
Log
public class Log {
static final boolean isLoggable = BuildConfig.DEBUG;
static final String TAG = BuildConfig.APPLICATION_ID;
public static void i(String tag, String string) {
if (isLoggable) android.util.Log.i(tag, string);
}
public static void i(String string) {
if (isLoggable) android.util.Log.i(TAG, string);
@hrules6872
hrules6872 / UniversalFragmentPagerAdapter.java
Created February 23, 2016 16:11
UniversalFragmentPagerAdapter
public class UniversalFragmentPagerAdapter extends FragmentPagerAdapter {
private final String[] tabTitles;
private final Fragment[] tabFragments;
public UniversalFragmentPagerAdapter(@NonNull FragmentManager fm, String[] tabTitles,
@NonNull Fragment[] tabFragments) {
super(fm);
if (tabTitles != null && tabTitles.length != tabFragments.length) {
throw new IllegalArgumentException();
}
public class FontCache {
private static final Map<String, Typeface> mapFont = new HashMap<>();
public static Typeface getFont(Context context, String fontName) {
Typeface typeface = mapFont.get(fontName);
if (typeface == null) {
try {
typeface = Typeface.createFromAsset(context.getAssets(), fontName);
} catch (Exception e) {
@hrules6872
hrules6872 / AdvancedRadioGroup.java
Last active March 17, 2016 15:04
AdvancedRadioGroup
public class AdvancedRadioGroup extends LinearLayout {
private int radioButtonCheckedId;
private boolean working;
private RadioGroup.OnCheckedChangeListener listener;
public AdvancedRadioGroup(Context context) {
this(context, null);
}
@hrules6872
hrules6872 / TextViewFont.java
Last active March 30, 2016 09:36
TextViewFont (cached)
public class TextViewFont extends TextView {
public TextViewFont(Context context) {
this(context, null);
}
public TextViewFont(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public TextViewFont(Context context, AttributeSet attrs, int defStyleAttr) {
@hrules6872
hrules6872 / UniversalFragmentStatePagerAdapter.java
Last active April 12, 2016 11:33
UniversalFragmentStatePagerAdapter
public class UniversalFragmentStatePagerAdapter extends FragmentStatePagerAdapter {
private final String[] titles;
private final Fragment[] fragments;
public UniversalFragmentStatePagerAdapter(@NonNull FragmentManager fragmentManager,
String[] titles, @NonNull Fragment[] fragments) {
super(fragmentManager);
if (titles != null && titles.length != fragments.length) {
throw new IllegalArgumentException();
}
@hrules6872
hrules6872 / TextViewWriter.java
Last active April 13, 2016 15:48
TextViewWriter
public class TextViewWriter extends TextView {
private static final int DEFAULT_DELAY_MS = 150;
private static final boolean DEFAULT_AUTOSTART = false;
public static final int MODE_CHARACTER = 0;
public static final int MODE_WORD = 1;
private static final int DEFAULT_MODE = MODE_CHARACTER;
@Retention(RetentionPolicy.SOURCE) @IntDef({ MODE_CHARACTER, MODE_WORD }) public @interface Mode {
}