// Path: app/src/main/java/org/librepilot/lp2go/VisualLog.java
// public class VisualLog {
// 
//     //private static Activity activity;
//     private static String nullstring = "null";
//     //private static TextView txtDebugLog;
// 
//     static private String checkNull(String msg) {
//         return msg == null ? nullstring : msg;
//     }
// 
//     static public void d(String tag, String msg) {
//         Log.d(tag, checkNull(msg));
//         printToDebug(tag, checkNull(msg));
//     }
// 
//     static public void e(String msg) {
//         e(new Exception().getStackTrace()[1].getClassName(), msg);
//     }
// 
//     static public void d(String msg) {
//         d(new Exception().getStackTrace()[1].getClassName(), msg);
//     }
// 
//     static public void d(String tag, String msg, Throwable tr) {
//         Log.e(tag, checkNull(msg), tr);
//         printToDebug(tag, checkNull(msg));
//         printToDebug(tr.getClass().getSimpleName(), Log.getStackTraceString(tr));
//     }
// 
//     static public void w(String tag, String msg) {
//         Log.w(tag, checkNull(msg));
//         printToDebug(tag, checkNull(msg));
//     }
// 
//     static public void w(String msg) {
//         w(new Exception().getStackTrace()[1].getClassName(), msg);
//     }
// 
//     static public void e(String tag, String msg) {
//         Log.e(tag, checkNull(msg));
//         printToDebug(tag, checkNull(msg));
//     }
// 
//     static public void e(String tag, String msg, Throwable tr) {
//         Log.e(tag, checkNull(msg), tr);
//         printToDebug(tag, checkNull(msg));
//         printToDebug(tr.getClass().getSimpleName(), Log.getStackTraceString(tr));
//     }
// 
//     static public void e(String msg, Throwable tr) {
//         e(new Exception().getStackTrace()[1].getClassName(), msg, tr);
//     }
// 
//     static public void e(Throwable tr) {
//         VisualLog.e(tr.getClass().getSimpleName(), tr.getMessage(), tr);
//     }
// 
//     static public void i(String tag, String msg) {
//         Log.i(tag, checkNull(msg));
//         printToDebug(tag, checkNull(msg));
//     }
// 
//     static public void i(String msg) {
//         i(new Exception().getStackTrace()[1].getClassName(), checkNull(msg));
// 
//     }
// 
//     static private void printToDebug(final String t, final String s) {
//         /*
//         activity.runOnUiThread(new Runnable() {
//             @Override
//             public void run() {
//                 if (txtDebugLog != null) {
//                     txtDebugLog.append(t + " " + s + "\n");
//                 }
//             }
//         });
//         */
//     }
// 
//     public static void setActivity(Activity activity) {
//         //VisualLog.activity = activity;
//         //VisualLog.nullstring = activity.getString(R.string.NULL);
//     }
// 
//     public static void setDebugLogTextView(TextView txtDebugLog) {
//         //VisualLog.txtDebugLog = txtDebugLog;
//     }
// }


import com.google.android.gms.maps.model.LatLng;
import org.librepilot.lp2go.VisualLog;
import java.math.BigDecimal;
import java.nio.ByteBuffer;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.util.DisplayMetrics;
        byte[] c = new byte[aLen + bLen];
        System.arraycopy(a, 0, c, 0, aLen);
        System.arraycopy(b, 0, c, aLen, bLen);
        return c;
    }

    public static String k(String s) {
        /*if(s.length() >3) {
            return s.substring(0,s.length()-3) + "k";
        } else {
            return s;
        }*/
        return s;
    }

    public static byte[] floatToByteArrayRev(float value) {
        return H.reverse4bytes(floatToByteArray(value));
    }

    public static byte[] floatToByteArray(float value) {
        return ByteBuffer.allocate(4).putFloat(value).array();
    }

    public static float stringToFloat(String s) {
        if (s == null || s.equals("")) {
            return .0f;
        }
        try {
            return Float.parseFloat(s);
        } catch (NumberFormatException e) {
// Path: app/src/main/java/org/librepilot/lp2go/VisualLog.java
// public class VisualLog {
// 
//     //private static Activity activity;
//     private static String nullstring = "null";
//     //private static TextView txtDebugLog;
// 
//     static private String checkNull(String msg) {
//         return msg == null ? nullstring : msg;
//     }
// 
//     static public void d(String tag, String msg) {
//         Log.d(tag, checkNull(msg));
//         printToDebug(tag, checkNull(msg));
//     }
// 
//     static public void e(String msg) {
//         e(new Exception().getStackTrace()[1].getClassName(), msg);
//     }
// 
//     static public void d(String msg) {
//         d(new Exception().getStackTrace()[1].getClassName(), msg);
//     }
// 
//     static public void d(String tag, String msg, Throwable tr) {
//         Log.e(tag, checkNull(msg), tr);
//         printToDebug(tag, checkNull(msg));
//         printToDebug(tr.getClass().getSimpleName(), Log.getStackTraceString(tr));
//     }
// 
//     static public void w(String tag, String msg) {
//         Log.w(tag, checkNull(msg));
//         printToDebug(tag, checkNull(msg));
//     }
// 
//     static public void w(String msg) {
//         w(new Exception().getStackTrace()[1].getClassName(), msg);
//     }
// 
//     static public void e(String tag, String msg) {
//         Log.e(tag, checkNull(msg));
//         printToDebug(tag, checkNull(msg));
//     }
// 
//     static public void e(String tag, String msg, Throwable tr) {
//         Log.e(tag, checkNull(msg), tr);
//         printToDebug(tag, checkNull(msg));
//         printToDebug(tr.getClass().getSimpleName(), Log.getStackTraceString(tr));
//     }
// 
//     static public void e(String msg, Throwable tr) {
//         e(new Exception().getStackTrace()[1].getClassName(), msg, tr);
//     }
// 
//     static public void e(Throwable tr) {
//         VisualLog.e(tr.getClass().getSimpleName(), tr.getMessage(), tr);
//     }
// 
//     static public void i(String tag, String msg) {
//         Log.i(tag, checkNull(msg));
//         printToDebug(tag, checkNull(msg));
//     }
// 
//     static public void i(String msg) {
//         i(new Exception().getStackTrace()[1].getClassName(), checkNull(msg));
// 
//     }
// 
//     static private void printToDebug(final String t, final String s) {
//         /*
//         activity.runOnUiThread(new Runnable() {
//             @Override
//             public void run() {
//                 if (txtDebugLog != null) {
//                     txtDebugLog.append(t + " " + s + "\n");
//                 }
//             }
//         });
//         */
//     }
// 
//     public static void setActivity(Activity activity) {
//         //VisualLog.activity = activity;
//         //VisualLog.nullstring = activity.getString(R.string.NULL);
//     }
// 
//     public static void setDebugLogTextView(TextView txtDebugLog) {
//         //VisualLog.txtDebugLog = txtDebugLog;
//     }
// }


// Path: app/src/main/java/org/librepilot/lp2go/helper/H.java
import com.google.android.gms.maps.model.LatLng;
import org.librepilot.lp2go.VisualLog;
import java.math.BigDecimal;
import java.nio.ByteBuffer;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.util.DisplayMetrics;

        byte[] c = new byte[aLen + bLen];
        System.arraycopy(a, 0, c, 0, aLen);
        System.arraycopy(b, 0, c, aLen, bLen);
        return c;
    }

    public static String k(String s) {
        /*if(s.length() >3) {
            return s.substring(0,s.length()-3) + "k";
        } else {
            return s;
        }*/
        return s;
    }

    public static byte[] floatToByteArrayRev(float value) {
        return H.reverse4bytes(floatToByteArray(value));
    }

    public static byte[] floatToByteArray(float value) {
        return ByteBuffer.allocate(4).putFloat(value).array();
    }

    public static float stringToFloat(String s) {
        if (s == null || s.equals("")) {
            return .0f;
        }
        try {
            return Float.parseFloat(s);
        } catch (NumberFormatException e) {
            VisualLog.d("stringToFloat", "Fallback to Numberformat");