package reparto_izca.keymon.lat;


import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.B4AClass;
import anywheresoftware.b4a.BALayout;
import anywheresoftware.b4a.debug.*;

public class b4xformatter extends B4AClass.ImplB4AClass implements BA.SubDelegator{
    private static java.util.HashMap<String, java.lang.reflect.Method> htSubs;
    private void innerInitialize(BA _ba) throws Exception {
        if (ba == null) {
            ba = new BA(_ba, this, htSubs, "reparto_izca.keymon.lat.b4xformatter");
            if (htSubs == null) {
                ba.loadHtSubs(this.getClass());
                htSubs = ba.htSubs;
            }
            
        }
        if (BA.isShellModeRuntimeCheck(ba)) 
			   this.getClass().getMethod("_class_globals", reparto_izca.keymon.lat.b4xformatter.class).invoke(this, new Object[] {null});
        else
            ba.raiseEvent2(null, true, "class_globals", false);
    }

 public anywheresoftware.b4a.keywords.Common __c = null;
public anywheresoftware.b4a.objects.collections.List _formats = null;
public int _max_value = 0;
public int _min_value = 0;
public anywheresoftware.b4a.objects.B4XViewWrapper.XUI _xui = null;
public b4a.example.dateutils _dateutils = null;
public reparto_izca.keymon.lat.main _main = null;
public reparto_izca.keymon.lat.appupdater _appupdater = null;
public reparto_izca.keymon.lat.foto _foto = null;
public reparto_izca.keymon.lat.mapa_cliente _mapa_cliente = null;
public reparto_izca.keymon.lat.mapa_rutas _mapa_rutas = null;
public reparto_izca.keymon.lat.starter _starter = null;
public reparto_izca.keymon.lat.subs _subs = null;
public reparto_izca.keymon.lat.tracker _tracker = null;
public reparto_izca.keymon.lat.newinst2 _newinst2 = null;
public reparto_izca.keymon.lat.b4xpages _b4xpages = null;
public reparto_izca.keymon.lat.b4xcollections _b4xcollections = null;
public reparto_izca.keymon.lat.httputils2service _httputils2service = null;
public reparto_izca.keymon.lat.xuiviewsutils _xuiviewsutils = null;
public static class _b4xformatdata{
public boolean IsInitialized;
public String Prefix;
public String Postfix;
public int MinimumIntegers;
public int MinimumFractions;
public int MaximumFractions;
public String GroupingCharacter;
public String DecimalPoint;
public int TextColor;
public anywheresoftware.b4a.objects.B4XViewWrapper.B4XFont FormatFont;
public double RangeStart;
public double RangeEnd;
public boolean RemoveMinusSign;
public String IntegerPaddingChar;
public String FractionPaddingChar;
public void Initialize() {
IsInitialized = true;
Prefix = "";
Postfix = "";
MinimumIntegers = 0;
MinimumFractions = 0;
MaximumFractions = 0;
GroupingCharacter = "";
DecimalPoint = "";
TextColor = 0;
FormatFont = new anywheresoftware.b4a.objects.B4XViewWrapper.B4XFont();
RangeStart = 0;
RangeEnd = 0;
RemoveMinusSign = false;
IntegerPaddingChar = "";
FractionPaddingChar = "";
}
@Override
		public String toString() {
			return BA.TypeToString(this, false);
		}}
public String  _addformatdata(reparto_izca.keymon.lat.b4xformatter._b4xformatdata _data,double _rangestart,double _rangeend,boolean _includeedges) throws Exception{
double _factor = 0;
 //BA.debugLineNum = 65;BA.debugLine="Public Sub AddFormatData (Data As B4XFormatData, R";
 //BA.debugLineNum = 66;BA.debugLine="Dim factor As Double = Power(10, -Data.MaximumFra";
_factor = __c.Power(10,-_data.MaximumFractions /*int*/ );
 //BA.debugLineNum = 67;BA.debugLine="If IncludeEdges = False Then";
if (_includeedges==__c.False) { 
 //BA.debugLineNum = 68;BA.debugLine="RangeStart = RangeStart + factor";
_rangestart = _rangestart+_factor;
 //BA.debugLineNum = 69;BA.debugLine="RangeEnd = RangeEnd - factor";
_rangeend = _rangeend-_factor;
 };
 //BA.debugLineNum = 71;BA.debugLine="RangeStart = RangeStart - factor / 2";
_rangestart = _rangestart-_factor/(double)2;
 //BA.debugLineNum = 72;BA.debugLine="RangeEnd = RangeEnd + factor / 2";
_rangeend = _rangeend+_factor/(double)2;
 //BA.debugLineNum = 73;BA.debugLine="Data.RangeStart = RangeStart";
_data.RangeStart /*double*/  = _rangestart;
 //BA.debugLineNum = 74;BA.debugLine="Data.RangeEnd = RangeEnd";
_data.RangeEnd /*double*/  = _rangeend;
 //BA.debugLineNum = 75;BA.debugLine="formats.Add(Data)";
_formats.Add((Object)(_data));
 //BA.debugLineNum = 76;BA.debugLine="End Sub";
return "";
}
public String  _class_globals() throws Exception{
 //BA.debugLineNum = 1;BA.debugLine="Sub Class_Globals";
 //BA.debugLineNum = 2;BA.debugLine="Type B4XFormatData (Prefix As String, Postfix As";
;
 //BA.debugLineNum = 6;BA.debugLine="Private formats As List";
_formats = new anywheresoftware.b4a.objects.collections.List();
 //BA.debugLineNum = 7;BA.debugLine="Public Const MAX_VALUE = 0x7fffffff, MIN_VALUE =";
_max_value = ((int)0x7fffffff);
_min_value = ((int)0x80000000);
 //BA.debugLineNum = 9;BA.debugLine="Private xui As XUI";
_xui = new anywheresoftware.b4a.objects.B4XViewWrapper.XUI();
 //BA.debugLineNum = 11;BA.debugLine="End Sub";
return "";
}
public reparto_izca.keymon.lat.b4xformatter._b4xformatdata  _copyformatdata(reparto_izca.keymon.lat.b4xformatter._b4xformatdata _data) throws Exception{
reparto_izca.keymon.lat.b4xformatter._b4xformatdata _d = null;
 //BA.debugLineNum = 38;BA.debugLine="Public Sub CopyFormatData (Data As B4XFormatData)";
 //BA.debugLineNum = 39;BA.debugLine="Dim d As B4XFormatData";
_d = new reparto_izca.keymon.lat.b4xformatter._b4xformatdata();
 //BA.debugLineNum = 40;BA.debugLine="d.Initialize";
_d.Initialize();
 //BA.debugLineNum = 41;BA.debugLine="d.DecimalPoint = Data.DecimalPoint";
_d.DecimalPoint /*String*/  = _data.DecimalPoint /*String*/ ;
 //BA.debugLineNum = 42;BA.debugLine="If Data.FormatFont.IsInitialized Then";
if (_data.FormatFont /*anywheresoftware.b4a.objects.B4XViewWrapper.B4XFont*/ .getIsInitialized()) { 
 //BA.debugLineNum = 44;BA.debugLine="d.FormatFont = xui.CreateFont(Data.FormatFont.To";
_d.FormatFont /*anywheresoftware.b4a.objects.B4XViewWrapper.B4XFont*/  = _xui.CreateFont((android.graphics.Typeface)(_data.FormatFont /*anywheresoftware.b4a.objects.B4XViewWrapper.B4XFont*/ .ToNativeFont().getObject()),_data.FormatFont /*anywheresoftware.b4a.objects.B4XViewWrapper.B4XFont*/ .getSize());
 };
 //BA.debugLineNum = 47;BA.debugLine="d.GroupingCharacter = Data.GroupingCharacter";
_d.GroupingCharacter /*String*/  = _data.GroupingCharacter /*String*/ ;
 //BA.debugLineNum = 48;BA.debugLine="d.MaximumFractions = Data.MaximumFractions";
_d.MaximumFractions /*int*/  = _data.MaximumFractions /*int*/ ;
 //BA.debugLineNum = 49;BA.debugLine="d.MinimumFractions = Data.MinimumFractions";
_d.MinimumFractions /*int*/  = _data.MinimumFractions /*int*/ ;
 //BA.debugLineNum = 50;BA.debugLine="d.MinimumIntegers = Data.MinimumIntegers";
_d.MinimumIntegers /*int*/  = _data.MinimumIntegers /*int*/ ;
 //BA.debugLineNum = 51;BA.debugLine="d.Postfix = Data.Postfix";
_d.Postfix /*String*/  = _data.Postfix /*String*/ ;
 //BA.debugLineNum = 52;BA.debugLine="d.Prefix = Data.Prefix";
_d.Prefix /*String*/  = _data.Prefix /*String*/ ;
 //BA.debugLineNum = 53;BA.debugLine="d.RangeEnd = Data.RangeEnd";
_d.RangeEnd /*double*/  = _data.RangeEnd /*double*/ ;
 //BA.debugLineNum = 54;BA.debugLine="d.RangeStart = Data.RangeStart";
_d.RangeStart /*double*/  = _data.RangeStart /*double*/ ;
 //BA.debugLineNum = 55;BA.debugLine="d.RemoveMinusSign = Data.RemoveMinusSign";
_d.RemoveMinusSign /*boolean*/  = _data.RemoveMinusSign /*boolean*/ ;
 //BA.debugLineNum = 56;BA.debugLine="d.TextColor = Data.TextColor";
_d.TextColor /*int*/  = _data.TextColor /*int*/ ;
 //BA.debugLineNum = 57;BA.debugLine="d.FractionPaddingChar = Data.FractionPaddingChar";
_d.FractionPaddingChar /*String*/  = _data.FractionPaddingChar /*String*/ ;
 //BA.debugLineNum = 58;BA.debugLine="d.IntegerPaddingChar = Data.IntegerPaddingChar";
_d.IntegerPaddingChar /*String*/  = _data.IntegerPaddingChar /*String*/ ;
 //BA.debugLineNum = 59;BA.debugLine="Return d";
if (true) return _d;
 //BA.debugLineNum = 60;BA.debugLine="End Sub";
return null;
}
public reparto_izca.keymon.lat.b4xformatter._b4xformatdata  _createdefaultformat() throws Exception{
reparto_izca.keymon.lat.b4xformatter._b4xformatdata _d = null;
 //BA.debugLineNum = 19;BA.debugLine="Private Sub CreateDefaultFormat As B4XFormatData";
 //BA.debugLineNum = 20;BA.debugLine="Dim d As B4XFormatData";
_d = new reparto_izca.keymon.lat.b4xformatter._b4xformatdata();
 //BA.debugLineNum = 21;BA.debugLine="d.Initialize";
_d.Initialize();
 //BA.debugLineNum = 22;BA.debugLine="d.GroupingCharacter = \",\"";
_d.GroupingCharacter /*String*/  = ",";
 //BA.debugLineNum = 23;BA.debugLine="d.DecimalPoint = \".\"";
_d.DecimalPoint /*String*/  = ".";
 //BA.debugLineNum = 24;BA.debugLine="d.MaximumFractions = 3";
_d.MaximumFractions /*int*/  = (int) (3);
 //BA.debugLineNum = 25;BA.debugLine="d.MinimumIntegers = 1";
_d.MinimumIntegers /*int*/  = (int) (1);
 //BA.debugLineNum = 26;BA.debugLine="d.IntegerPaddingChar = \"0\"";
_d.IntegerPaddingChar /*String*/  = "0";
 //BA.debugLineNum = 27;BA.debugLine="d.FractionPaddingChar = \"0\"";
_d.FractionPaddingChar /*String*/  = "0";
 //BA.debugLineNum = 28;BA.debugLine="Return d";
if (true) return _d;
 //BA.debugLineNum = 29;BA.debugLine="End Sub";
return null;
}
public String  _format(double _number) throws Exception{
reparto_izca.keymon.lat.b4xformatter._b4xformatdata _data = null;
anywheresoftware.b4a.keywords.StringBuilderWrapper _sb = null;
int _numberstartindex = 0;
double _factor = 0;
int _whole = 0;
double _frac = 0;
int _g = 0;
int _fracstartindex = 0;
int _lastzerocount = 0;
int _multipler = 0;
int _w = 0;
 //BA.debugLineNum = 92;BA.debugLine="Public Sub Format (Number As Double) As String";
 //BA.debugLineNum = 93;BA.debugLine="If Number < MIN_VALUE Or Number > MAX_VALUE Then";
if (_number<_min_value || _number>_max_value) { 
if (true) return "OVERFLOW";};
 //BA.debugLineNum = 94;BA.debugLine="Dim data As B4XFormatData = GetFormatData (Number";
_data = _getformatdata(_number);
 //BA.debugLineNum = 95;BA.debugLine="Dim sb As StringBuilder";
_sb = new anywheresoftware.b4a.keywords.StringBuilderWrapper();
 //BA.debugLineNum = 96;BA.debugLine="sb.Initialize";
_sb.Initialize();
 //BA.debugLineNum = 97;BA.debugLine="sb.Append(data.Prefix)";
_sb.Append(_data.Prefix /*String*/ );
 //BA.debugLineNum = 98;BA.debugLine="Dim NumberStartIndex As Int = sb.Length";
_numberstartindex = _sb.getLength();
 //BA.debugLineNum = 99;BA.debugLine="Dim factor As Double = Power(10, -data.MaximumFra";
_factor = __c.Power(10,-_data.MaximumFractions /*int*/ -1)*5;
 //BA.debugLineNum = 100;BA.debugLine="If Number < -factor And data.RemoveMinusSign = Fa";
if (_number<-_factor && _data.RemoveMinusSign /*boolean*/ ==__c.False) { 
 //BA.debugLineNum = 101;BA.debugLine="sb.Append(\"-\")";
_sb.Append("-");
 //BA.debugLineNum = 102;BA.debugLine="NumberStartIndex = NumberStartIndex + 1";
_numberstartindex = (int) (_numberstartindex+1);
 };
 //BA.debugLineNum = 104;BA.debugLine="Number = Abs(Number) + factor";
_number = __c.Abs(_number)+_factor;
 //BA.debugLineNum = 105;BA.debugLine="Dim whole As Int = Number";
_whole = (int) (_number);
 //BA.debugLineNum = 106;BA.debugLine="Dim frac As Double = Number - whole";
_frac = _number-_whole;
 //BA.debugLineNum = 107;BA.debugLine="Dim g As Int";
_g = 0;
 //BA.debugLineNum = 108;BA.debugLine="Do While whole > 0";
while (_whole>0) {
 //BA.debugLineNum = 109;BA.debugLine="If g > 0 And g Mod 3 = 0 And data.GroupingCharac";
if (_g>0 && _g%3==0 && _data.GroupingCharacter /*String*/ .length()>0) { 
 //BA.debugLineNum = 110;BA.debugLine="sb.Insert(NumberStartIndex, data.GroupingCharac";
_sb.Insert(_numberstartindex,_data.GroupingCharacter /*String*/ );
 };
 //BA.debugLineNum = 112;BA.debugLine="g = g + 1";
_g = (int) (_g+1);
 //BA.debugLineNum = 113;BA.debugLine="sb.Insert(NumberStartIndex, whole Mod 10)";
_sb.Insert(_numberstartindex,BA.NumberToString(_whole%10));
 //BA.debugLineNum = 114;BA.debugLine="whole = whole / 10";
_whole = (int) (_whole/(double)10);
 }
;
 //BA.debugLineNum = 116;BA.debugLine="Do While sb.Length - NumberStartIndex < data.Mini";
while (_sb.getLength()-_numberstartindex<_data.MinimumIntegers /*int*/ ) {
 //BA.debugLineNum = 117;BA.debugLine="sb.Insert(NumberStartIndex, data.IntegerPaddingC";
_sb.Insert(_numberstartindex,_data.IntegerPaddingChar /*String*/ );
 }
;
 //BA.debugLineNum = 119;BA.debugLine="If data.MaximumFractions > 0 And (data.MinimumFra";
if (_data.MaximumFractions /*int*/ >0 && (_data.MinimumFractions /*int*/ >0 || _frac>0)) { 
 //BA.debugLineNum = 120;BA.debugLine="Dim FracStartIndex As Int = sb.Length";
_fracstartindex = _sb.getLength();
 //BA.debugLineNum = 121;BA.debugLine="Dim LastZeroCount As Int";
_lastzerocount = 0;
 //BA.debugLineNum = 122;BA.debugLine="Dim Multipler As Int = 10";
_multipler = (int) (10);
 //BA.debugLineNum = 123;BA.debugLine="Do While frac >= 2 * factor And sb.Length - Frac";
while (_frac>=2*_factor && _sb.getLength()-_fracstartindex<_data.MaximumFractions /*int*/ ) {
 //BA.debugLineNum = 124;BA.debugLine="Dim w As Int = (frac * Multipler)";
_w = (int) ((_frac*_multipler));
 //BA.debugLineNum = 125;BA.debugLine="w = w Mod 10";
_w = (int) (_w%10);
 //BA.debugLineNum = 126;BA.debugLine="If w = 0 Then LastZeroCount = LastZeroCount + 1";
if (_w==0) { 
_lastzerocount = (int) (_lastzerocount+1);}
else {
_lastzerocount = (int) (0);};
 //BA.debugLineNum = 127;BA.debugLine="sb.Append(w)";
_sb.Append(BA.NumberToString(_w));
 //BA.debugLineNum = 128;BA.debugLine="Multipler = Multipler * 10";
_multipler = (int) (_multipler*10);
 }
;
 //BA.debugLineNum = 130;BA.debugLine="If data.FractionPaddingChar <> \"0\" And LastZeroC";
if ((_data.FractionPaddingChar /*String*/ ).equals("0") == false && _lastzerocount>0) { 
 //BA.debugLineNum = 131;BA.debugLine="sb.Remove(sb.Length - LastZeroCount, sb.Length)";
_sb.Remove((int) (_sb.getLength()-_lastzerocount),_sb.getLength());
 //BA.debugLineNum = 132;BA.debugLine="LastZeroCount = 0";
_lastzerocount = (int) (0);
 };
 //BA.debugLineNum = 134;BA.debugLine="Do While sb.Length - FracStartIndex < data.Minim";
while (_sb.getLength()-_fracstartindex<_data.MinimumFractions /*int*/ ) {
 //BA.debugLineNum = 135;BA.debugLine="sb.Append(data.FractionPaddingChar)";
_sb.Append(_data.FractionPaddingChar /*String*/ );
 //BA.debugLineNum = 136;BA.debugLine="LastZeroCount = 0";
_lastzerocount = (int) (0);
 }
;
 //BA.debugLineNum = 138;BA.debugLine="LastZeroCount = Min(LastZeroCount, sb.Length - F";
_lastzerocount = (int) (__c.Min(_lastzerocount,_sb.getLength()-_fracstartindex-_data.MinimumFractions /*int*/ ));
 //BA.debugLineNum = 139;BA.debugLine="If LastZeroCount > 0 Then";
if (_lastzerocount>0) { 
 //BA.debugLineNum = 140;BA.debugLine="sb.Remove(sb.Length - LastZeroCount, sb.Length)";
_sb.Remove((int) (_sb.getLength()-_lastzerocount),_sb.getLength());
 };
 //BA.debugLineNum = 142;BA.debugLine="If sb.Length > FracStartIndex Then sb.Insert(Fra";
if (_sb.getLength()>_fracstartindex) { 
_sb.Insert(_fracstartindex,_data.DecimalPoint /*String*/ );};
 };
 //BA.debugLineNum = 144;BA.debugLine="sb.Append(data.Postfix)";
_sb.Append(_data.Postfix /*String*/ );
 //BA.debugLineNum = 145;BA.debugLine="Return sb.ToString";
if (true) return _sb.ToString();
 //BA.debugLineNum = 146;BA.debugLine="End Sub";
return "";
}
public String  _formatlabel(double _number,anywheresoftware.b4a.objects.B4XViewWrapper _label) throws Exception{
reparto_izca.keymon.lat.b4xformatter._b4xformatdata _data = null;
 //BA.debugLineNum = 150;BA.debugLine="Public Sub FormatLabel (Number As Double, Label As";
 //BA.debugLineNum = 151;BA.debugLine="Label.Text = Format(Number)";
_label.setText(BA.ObjectToCharSequence(_format(_number)));
 //BA.debugLineNum = 152;BA.debugLine="Dim data As B4XFormatData = GetFormatData(Number)";
_data = _getformatdata(_number);
 //BA.debugLineNum = 153;BA.debugLine="If data.TextColor <> 0 Then Label.TextColor = dat";
if (_data.TextColor /*int*/ !=0) { 
_label.setTextColor(_data.TextColor /*int*/ );};
 //BA.debugLineNum = 154;BA.debugLine="If data.FormatFont.IsInitialized Then Label.Font";
if (_data.FormatFont /*anywheresoftware.b4a.objects.B4XViewWrapper.B4XFont*/ .getIsInitialized()) { 
_label.setFont(_data.FormatFont /*anywheresoftware.b4a.objects.B4XViewWrapper.B4XFont*/ );};
 //BA.debugLineNum = 155;BA.debugLine="End Sub";
return "";
}
public reparto_izca.keymon.lat.b4xformatter._b4xformatdata  _getdefaultformat() throws Exception{
 //BA.debugLineNum = 78;BA.debugLine="Public Sub GetDefaultFormat As B4XFormatData";
 //BA.debugLineNum = 79;BA.debugLine="Return formats.Get(0)";
if (true) return (reparto_izca.keymon.lat.b4xformatter._b4xformatdata)(_formats.Get((int) (0)));
 //BA.debugLineNum = 80;BA.debugLine="End Sub";
return null;
}
public reparto_izca.keymon.lat.b4xformatter._b4xformatdata  _getformatdata(double _number) throws Exception{
int _i = 0;
reparto_izca.keymon.lat.b4xformatter._b4xformatdata _d = null;
 //BA.debugLineNum = 83;BA.debugLine="Public Sub GetFormatData (Number As Double) As B4X";
 //BA.debugLineNum = 84;BA.debugLine="For i = formats.Size - 1 To 1 Step - 1";
{
final int step1 = -1;
final int limit1 = (int) (1);
_i = (int) (_formats.getSize()-1) ;
for (;_i >= limit1 ;_i = _i + step1 ) {
 //BA.debugLineNum = 85;BA.debugLine="Dim d As B4XFormatData = formats.Get(i)";
_d = (reparto_izca.keymon.lat.b4xformatter._b4xformatdata)(_formats.Get(_i));
 //BA.debugLineNum = 86;BA.debugLine="If Number <= d.RangeEnd And Number >= d.RangeSta";
if (_number<=_d.RangeEnd /*double*/  && _number>=_d.RangeStart /*double*/ ) { 
if (true) return _d;};
 }
};
 //BA.debugLineNum = 88;BA.debugLine="Return formats.Get(0)";
if (true) return (reparto_izca.keymon.lat.b4xformatter._b4xformatdata)(_formats.Get((int) (0)));
 //BA.debugLineNum = 89;BA.debugLine="End Sub";
return null;
}
public String  _initialize(anywheresoftware.b4a.BA _ba) throws Exception{
innerInitialize(_ba);
reparto_izca.keymon.lat.b4xformatter._b4xformatdata _d = null;
 //BA.debugLineNum = 13;BA.debugLine="Public Sub Initialize";
 //BA.debugLineNum = 14;BA.debugLine="formats.Initialize";
_formats.Initialize();
 //BA.debugLineNum = 15;BA.debugLine="Dim d As B4XFormatData = CreateDefaultFormat";
_d = _createdefaultformat();
 //BA.debugLineNum = 16;BA.debugLine="AddFormatData(d, MIN_VALUE, MAX_VALUE, True)";
_addformatdata(_d,_min_value,_max_value,__c.True);
 //BA.debugLineNum = 17;BA.debugLine="End Sub";
return "";
}
public reparto_izca.keymon.lat.b4xformatter._b4xformatdata  _newformatdata() throws Exception{
 //BA.debugLineNum = 32;BA.debugLine="Public Sub NewFormatData As B4XFormatData";
 //BA.debugLineNum = 33;BA.debugLine="Return CopyFormatData(GetDefaultFormat)";
if (true) return _copyformatdata(_getdefaultformat());
 //BA.debugLineNum = 34;BA.debugLine="End Sub";
return null;
}
public Object callSub(String sub, Object sender, Object[] args) throws Exception {
BA.senderHolder.set(sender);
return BA.SubDelegator.SubNotFound;
}
}
