Skip to content

Instantly share code, notes, and snippets.

View rafaelneiva's full-sized avatar

Rafael Neiva rafaelneiva

  • Uberlândia, MG, Brasil
View GitHub Profile
@rafaelneiva
rafaelneiva / MaskUtils.java
Created April 23, 2019 20:41
Android Mask for EditText that allows erasing pressing and holding backspace
public abstract class MaskUtils {
public static TextWatcher mask(final EditText editText, final String mask) {
return new TextWatcher() {
int mBefore;
int mCount;
public void onTextChanged(CharSequence s, int start, int before, int count) {
mBefore = before;
@rafaelneiva
rafaelneiva / Setter Template
Created April 4, 2019 13:20
Setter template for Databinding BaseObservable in Android Studio
#set($paramName = $helper.getParamName($field, $project))
#if($field.modifierStatic)
static ##
#end
void set$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))($field.type $paramName) {
#if ($field.name == $paramName)
#if (!$field.modifierStatic)
this.##
#else
$classname.##
@rafaelneiva
rafaelneiva / Getter Template
Created April 4, 2019 13:18
Getter template for Databinding BaseObservable in Android Studio
@android.databinding.Bindable
#if($field.modifierStatic)
static ##
#end
$field.type ##
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
is##
#else
get##
@rafaelneiva
rafaelneiva / bg_button
Created April 3, 2019 19:30
Button background with states and ripple
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/rippleColor">
<item>
<selector>
<item android:state_enabled="false">
<shape android:shape="rectangle">
@rafaelneiva
rafaelneiva / selector_button.xml
Last active June 10, 2019 19:23
Android button theme with selector
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="100">
<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="?attr/colorPrimaryAlpha" />
</shape>
</item>
@rafaelneiva
rafaelneiva / MoneyTextWatcher.java
Created June 11, 2018 19:57
Apply money mask with TextWatcher
public static class MoneyTextWatcher implements TextWatcher {
private final WeakReference<EditText> editTextWeakReference;
private NumberFormat mNF = NumberFormat.getCurrencyInstance(new Locale("pt", "BR"));
private boolean updating;
private boolean deleting;
public MoneyTextWatcher(EditText editText) {
editTextWeakReference = new WeakReference<>(editText);
@rafaelneiva
rafaelneiva / live_templates.txt
Created February 9, 2017 17:13
Android Studio Live Templates
1 - baseFragment
private android.support.v7.app.AppCompatActivity mActivity;
@java.lang.Override
public void onAttach(android.content.Context context) {
super.onAttach(context);
if (context instanceof android.support.v7.app.AppCompatActivity) {
mActivity = (android.support.v7.app.AppCompatActivity) context;
}
@rafaelneiva
rafaelneiva / AutoFitTextView.java
Created April 1, 2016 14:29
AutoFit TextView
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.RectF;
import android.os.Build;
import android.text.Layout;
import android.text.StaticLayout;
import android.text.TextPaint;