// 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 org.librepilot.lp2go.VisualLog;
import android.support.annotation.Nullable;

                    instance,
                    fieldName,
                    oTree.getElementIndex(objectName, fieldName, elementName),
                    newFieldData);
        } catch (NullPointerException e) {
            VisualLog.e(TAG, e.getMessage());
            return new byte[0];
        }
    }

    @Nullable
    public static byte[] updateSettingsObject(
            UAVTalkObjectTree oTree, String objectName, int instance,
            String fieldName, int element, byte[] newFieldData) {

        UAVTalkXMLObject xmlObj = oTree.getXmlObjects().get(objectName);
        if (xmlObj == null) {
            return null;
        }

        UAVTalkObject obj = oTree.getObjectNoCreate(objectName);
        if (obj == null) {
            obj = new UAVTalkObject(xmlObj.getId());
            //return null;
        }

        UAVTalkObjectInstance ins = obj.getInstance(instance);
        if (ins == null) {
            byte[] emptydata = new byte[xmlObj.getLength()];
            ins = new UAVTalkObjectInstance(instance, emptydata);

// 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/uavtalk/UAVTalkDeviceHelper.java
import org.librepilot.lp2go.VisualLog;
import android.support.annotation.Nullable;

                    instance,
                    fieldName,
                    oTree.getElementIndex(objectName, fieldName, elementName),
                    newFieldData);
        } catch (NullPointerException e) {
            VisualLog.e(TAG, e.getMessage());
            return new byte[0];
        }
    }

    @Nullable
    public static byte[] updateSettingsObject(
            UAVTalkObjectTree oTree, String objectName, int instance,
            String fieldName, int element, byte[] newFieldData) {

        UAVTalkXMLObject xmlObj = oTree.getXmlObjects().get(objectName);
        if (xmlObj == null) {
            return null;
        }

        UAVTalkObject obj = oTree.getObjectNoCreate(objectName);
        if (obj == null) {
            obj = new UAVTalkObject(xmlObj.getId());
            //return null;
        }

        UAVTalkObjectInstance ins = obj.getInstance(instance);
        if (ins == null) {
            byte[] emptydata = new byte[xmlObj.getLength()];
            ins = new UAVTalkObjectInstance(instance, emptydata);

            obj.setInstance(ins);
