package br.com.prorisc.util;

import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;

import java.text.NumberFormat;

/**
 * Created by Robson on 17/01/2016.
 */
public class MaskMonetaria {

    public static String unmask(String s) {

        return s.replaceAll("[^\\d]", "");
    }

    public static TextWatcher insert(final EditText ediTxt) {
        return new TextWatcher() {

            private boolean isUpdating = false;
            private NumberFormat nf = NumberFormat.getCurrencyInstance();

            @Override
            public void onTextChanged(CharSequence s, int start, int before,int count) {

                if (isUpdating){
                   isUpdating = false;
                    return;
                }

                isUpdating = true;
                String str = s.toString();

                //boolean hasMask = (str.indexOf("R$") >= 0 && str.indexOf(".") >= 0 && str.indexOf(",") >= 0);
                //boolean hasMask = (str.indexOf("R$") >= 0 && str.indexOf(".") >= 0 && str.indexOf(",") >= 0) ||
                //        (str.indexOf("R$") >= 0 && str.indexOf(",") >= 0);

                //boolean hasMask = ((str.indexOf("R$") > -1 || str.indexOf("$") > -1) && (str.indexOf(".") > -1 || str.indexOf(",") > -1));
                //if (hasMask) {
                //    str = MaskMonetaria.unmask(s.toString());
                //}
                str = str.replaceAll("[^\\d]", "");

                try {
                    str = nf.format(Double.parseDouble(str) / 100);
                    ediTxt.setText(str);
                    ediTxt.setSelection(ediTxt.getText().length());
                } catch (NumberFormatException  e) {
                    s = "";
                }

            }
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
            public void afterTextChanged(Editable s) {}
        };
    }


}
