Example usage for org.json JSONObject isNull

List of usage examples for org.json JSONObject isNull

Introduction

In this page you can find the example usage for org.json JSONObject isNull.

Prototype

public boolean isNull(String key) 

Source Link

Document

Determine if the value associated with the key is null or if there is no value.

Usage

From source file:org.wso2.iot.system.service.SystemService.java

/**
 * Upgrading device firmware over the air (OTA).
 *//*from w w  w .j  a v a 2s .c  o m*/
public void upgradeFirmware(final boolean isStatusCheck) {
    Log.i(TAG, "An upgrade has been requested");

    Preference.putBoolean(context, context.getResources().getString(R.string.firmware_status_check_in_progress),
            isStatusCheck);
    Preference.putString(context, context.getResources().getString(R.string.firmware_download_progress),
            String.valueOf(DEFAULT_STATE_INFO_CODE));
    Preference.putInt(context, context.getResources().getString(R.string.operation_id), operationId);

    String schedule = null;
    String server;
    if (command != null && !command.trim().isEmpty()) {
        try {
            JSONObject upgradeData = new JSONObject(command);
            if (!upgradeData.isNull(context.getResources().getString(R.string.alarm_schedule))) {
                schedule = (String) upgradeData.get(context.getResources().getString(R.string.alarm_schedule));
            }

            boolean isAutomaticRetry = !Preference.hasPreferenceKey(context,
                    context.getResources().getString(R.string.firmware_upgrade_automatic_retry))
                    || Preference.getBoolean(context,
                            context.getResources().getString(R.string.firmware_upgrade_automatic_retry));
            if (!upgradeData
                    .isNull(context.getResources().getString(R.string.firmware_upgrade_automatic_retry))) {
                isAutomaticRetry = upgradeData.getBoolean(
                        context.getResources().getString(R.string.firmware_upgrade_automatic_retry));
                if (!isAutomaticRetry) {
                    Log.i(TAG, "Automatic retry on firmware upgrade failure is disabled.");
                }
            }

            Preference.putBoolean(context,
                    context.getResources().getString(R.string.firmware_upgrade_automatic_retry),
                    isAutomaticRetry);

            if (!upgradeData.isNull(context.getResources().getString(R.string.firmware_server))) {
                server = (String) upgradeData.get(context.getResources().getString(R.string.firmware_server));
                // When the server is empty, that means it is indicating to download from default server
                if (!server.isEmpty() && !Patterns.WEB_URL.matcher(server).matches()) {
                    String message = "Firmware upgrade URL provided is not valid.";
                    CommonUtils.sendBroadcast(context, Constants.Operation.UPGRADE_FIRMWARE,
                            Constants.Code.FAILURE, Constants.Status.MALFORMED_OTA_URL, message);
                    CommonUtils.callAgentApp(context, Constants.Operation.FIRMWARE_UPGRADE_FAILURE,
                            Preference.getInt(context, context.getResources().getString(R.string.operation_id)),
                            message);
                    Log.e(TAG, message);
                    return;
                } else {
                    Preference.putString(context, context.getResources().getString(R.string.firmware_server),
                            server);
                }
            }
        } catch (JSONException e) {
            Log.e(TAG, "Firmware upgrade payload parsing failed." + e);
            return;
        }
    }
    if (schedule != null && !schedule.trim().isEmpty()) {
        Log.i(TAG, "Upgrade scheduled received: " + schedule);
        Preference.putString(context, context.getResources().getString(R.string.alarm_schedule), schedule);
        try {
            AlarmUtils.setOneTimeAlarm(context, schedule, Constants.Operation.UPGRADE_FIRMWARE, null);
        } catch (ParseException e) {
            CommonUtils.sendBroadcast(context, Constants.Operation.UPGRADE_FIRMWARE, Constants.Code.FAILURE,
                    Constants.Status.MALFORMED_REQUEST, e.getMessage());
        }
    } else {
        if (isStatusCheck) {
            Log.i(TAG, "Firmware status check is initiated by admin.");
        } else {
            Log.i(TAG, "Upgrade request initiated by admin.");

            String status = Preference.getString(context,
                    context.getResources().getString(R.string.upgrade_download_status));
            boolean isAutomaticUpgrade = Preference.getBoolean(context,
                    context.getResources().getString(R.string.firmware_upgrade_automatic_retry));

            if (Constants.Status.WIFI_OFF.equals(status) && isAutomaticUpgrade && !checkNetworkOnline()) {
                String msg = "Ignoring request as service waiting for WiFi to start upgrade.";
                Log.d(TAG, msg);
                CommonUtils.sendBroadcast(context, Constants.Operation.UPGRADE_FIRMWARE, Constants.Code.PENDING,
                        Constants.Status.OTA_UPGRADE_PENDING, msg);
                return;
            } else if (Constants.Status.OTA_UPGRADE_ONGOING.equals(status)) {
                String msg = "Checking for existing download. Will proceed this request if current download is no longer ongoing.";
                Log.d(TAG, msg);
                CommonUtils.sendBroadcast(context, Constants.Operation.UPGRADE_FIRMWARE, Constants.Code.PENDING,
                        Constants.Status.OTA_UPGRADE_ONGOING, msg);
                Preference.putString(context,
                        context.getResources().getString(R.string.upgrade_download_status),
                        Constants.Status.REQUEST_PLACED);
                Timer timeoutTimer = new Timer();
                timeoutTimer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        if (Constants.Status.REQUEST_PLACED.equals(Preference.getString(context,
                                context.getResources().getString(R.string.upgrade_download_status)))) {
                            Log.d(TAG,
                                    "Download is no longer ongoing. Proceeding download request from the agent.");
                            OTADownload otaDownload = new OTADownload(context);
                            otaDownload.startOTA();
                        } else {
                            String msg = "Request ignored because another download is ongoing.";
                            Log.d(TAG, msg);
                            CommonUtils.sendBroadcast(context, Constants.Operation.UPGRADE_FIRMWARE,
                                    Constants.Code.FAILURE, Constants.Status.OTA_UPGRADE_ONGOING, msg);
                        }
                    }
                }, Constants.FIRMWARE_UPGRADE_READ_TIMEOUT);
                return;
            }
        }

        //Prepare for upgrade
        OTADownload otaDownload = new OTADownload(context);
        otaDownload.startOTA();
    }
}

From source file:be.brunoparmentier.openbikesharing.app.parsers.BikeNetworkParser.java

public BikeNetworkParser(String toParse, boolean stripIdFromStationName) throws ParseException {
    ArrayList<Station> stations = new ArrayList<>();

    try {/*from   w  w w.  j a v  a 2s  .  c o m*/
        JSONObject jsonObject = new JSONObject(toParse);
        JSONObject rawNetwork = jsonObject.getJSONObject("network");

        /* network name & id */
        String networkId = rawNetwork.getString("id");
        String networkName = rawNetwork.getString("name");
        String networkCompany = rawNetwork.getString("company");

        /* network location */
        BikeNetworkLocation networkLocation;
        {
            JSONObject rawLocation = rawNetwork.getJSONObject("location");

            double latitude = rawLocation.getDouble("latitude");
            double longitude = rawLocation.getDouble("longitude");
            String city = rawLocation.getString("city");
            String country = rawLocation.getString("country");

            networkLocation = new BikeNetworkLocation(latitude, longitude, city, country);
        }

        /* stations list */
        {
            JSONArray rawStations = rawNetwork.getJSONArray("stations");

            for (int i = 0; i < rawStations.length(); i++) {
                JSONObject rawStation = rawStations.getJSONObject(i);

                String id = rawStation.getString("id");
                String name = rawStation.getString("name");
                if (stripIdFromStationName)
                    name = name.replaceAll("^[0-9 ]*- *", "");
                String lastUpdate = rawStation.getString("timestamp");
                double latitude = rawStation.getDouble("latitude");
                double longitude = rawStation.getDouble("longitude");
                int freeBikes = rawStation.getInt("free_bikes");
                int emptySlots;
                if (!rawStation.isNull("empty_slots")) {
                    emptySlots = rawStation.getInt("empty_slots");
                } else {
                    emptySlots = -1;
                }

                Station station = new Station(id, name, lastUpdate, latitude, longitude, freeBikes, emptySlots);

                /* extra info */
                if (rawStation.has("extra")) {
                    JSONObject rawExtra = rawStation.getJSONObject("extra");

                    /* address */
                    if (rawExtra.has("address")) {
                        station.setAddress(rawExtra.getString("address"));
                    } else if (rawExtra.has("description")) {
                        station.setAddress(rawExtra.getString("description"));
                    }

                    /* banking */
                    if (rawExtra.has("banking")) { // JCDecaux
                        station.setBanking(rawExtra.getBoolean("banking"));
                    } else if (rawExtra.has("payment")) {
                        if (rawExtra.getString("payment").equals("AVEC_TPE")) { // vlille
                            station.setBanking(true);
                        } else {
                            station.setBanking(false);
                        }
                    } else if (rawExtra.has("ticket")) { // dublinbikes, citycycle
                        station.setBanking(rawExtra.getBoolean("ticket"));
                    }

                    /* bonus */
                    if (rawExtra.has("bonus")) {
                        station.setBonus(rawExtra.getBoolean("bonus"));
                    }

                    /* status */
                    if (rawExtra.has("status")) {
                        String status = rawExtra.getString("status");
                        if (status.equals("CLOSED") // villo
                                || status.equals("CLS") // ClearChannel
                                || status.equals("1") // vlille
                                || status.equals("offline")) { // idecycle
                            station.setStatus(StationStatus.CLOSED);
                        } else {
                            station.setStatus(StationStatus.OPEN);
                        }
                    } else if (rawExtra.has("statusValue")) {
                        if (rawExtra.getString("statusValue").equals("Not In Service")) { // Bike Share
                            station.setStatus(StationStatus.CLOSED);
                        } else {
                            station.setStatus(StationStatus.OPEN);
                        }
                    } else if (rawExtra.has("locked")) {
                        if (rawExtra.getBoolean("locked")) { // bixi
                            station.setStatus(StationStatus.CLOSED);
                        } else {
                            station.setStatus(StationStatus.OPEN);
                        }
                    } else if (rawExtra.has("open")) {
                        if (!rawExtra.getBoolean("open")) { // dublinbikes, citycycle
                            station.setStatus(StationStatus.CLOSED);
                        } else {
                            station.setStatus(StationStatus.OPEN);
                        }
                    }
                }
                stations.add(station);
            }
        }

        bikeNetwork = new BikeNetwork(networkId, networkName, networkCompany, networkLocation, stations);
    } catch (JSONException e) {
        throw new ParseException("Error parsing JSON", 0);
    }
}

From source file:org.wso2.emm.agent.services.Operation.java

@SuppressWarnings("static-access")
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public JSONArray doTask(String code_in, String data_in, int req_mode) {

    Log.e("doTask", "code:" + code_in + "\n" + data_in);
    String data_input = data_in;/*from  ww w. jav a2s.c om*/
    String code_input = code_in;
    String notification = "";
    String ssid = "";
    String password = "";

    devicePolicyManager = (DevicePolicyManager) context.getApplicationContext()
            .getSystemService(Context.DEVICE_POLICY_SERVICE);
    appList = new ApplicationManager(context.getApplicationContext());
    deviceInfo = new DeviceInfo(context);
    gps = new GPSTracker(context);
    smsManager = SmsManager.getDefault();
    conversations = new TrackCallSMS(context);
    deviceState = new PhoneState(context);

    JSONArray resultArr = new JSONArray();
    JSONObject result = new JSONObject();
    if (code_input.equals(CommonUtilities.OPERATION_DEVICE_INFO)) {

        PhoneState phoneState = new PhoneState(context);
        JSONObject obj = new JSONObject();
        JSONObject battery_obj = new JSONObject();
        JSONObject inmemory_obj = new JSONObject();
        JSONObject exmemory_obj = new JSONObject();
        JSONObject location_obj = new JSONObject();
        double latitude = 0;
        double longitude = 0;
        try {
            latitude = gps.getLatitude();
            longitude = gps.getLongitude();
            int batteryLevel = (int) Math.floor(phoneState.getBatteryLevel());

            //            int batteryLevel = 40;
            battery_obj.put("level", batteryLevel);

            inmemory_obj.put("total", deviceInfo.getTotalInternalMemorySize());
            inmemory_obj.put("available", deviceInfo.getAvailableInternalMemorySize());
            exmemory_obj.put("total", deviceInfo.getTotalExternalMemorySize());
            exmemory_obj.put("available", deviceInfo.getAvailableExternalMemorySize());
            location_obj.put("latitude", latitude);
            location_obj.put("longitude", longitude);

            obj.put("battery", battery_obj);
            obj.put("internal_memory", inmemory_obj);
            obj.put("external_memory", exmemory_obj);
            if (latitude != 0 && longitude != 0) {
                obj.put("location_obj", location_obj);
            }
            obj.put("operator", deviceInfo.getNetworkOperatorName());

            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");
            params.put("data", obj.toString());

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            result.put("data", obj);

            Map<String, String> as = new HashMap<String, String>();
            as.put("all", params.toString());

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //               ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null,
                        "Battery Level : " + phoneState.getBatteryLevel() + ", Total Memory : "
                                + deviceInfo.formatSizeGB(deviceInfo.getTotalInternalMemorySize()
                                        + deviceInfo.getTotalExternalMemorySize())
                                + ", Available Memory : "
                                + deviceInfo.formatSizeGB(deviceInfo.getAvailableInternalMemorySize()
                                        + deviceInfo.getAvailableExternalMemorySize()),
                        null, null);
            }

        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_DEVICE_LOCATION)) {

        LocationServices ls = new LocationServices(context);
        Log.v("Latitude", ls.getLatitude());
        double latitude = 0;
        double longitude = 0;
        JSONObject obj = new JSONObject();
        try {
            latitude = gps.getLatitude();
            longitude = gps.getLongitude();
            obj.put("latitude", latitude);
            obj.put("longitude", longitude);

            Map<String, String> params = new HashMap<String, String>();
            params.put("code", CommonUtilities.OPERATION_DEVICE_LOCATION);
            params.put("msgID", token);
            params.put("status", "200");
            params.put("data", obj.toString());

            //for local notification\
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            result.put("data", obj);

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null,
                        "Longitude : " + longitude + ",Latitude : " + latitude, null, null);
            }

        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_GET_APPLICATION_LIST)) {
        ArrayList<PInfo> apps = appList.getInstalledApps(false); /*
                                                                 * false =
                                                                 * no system
                                                                 * packages
                                                                 */

        JSONArray jsonArray = new JSONArray();
        int max = apps.size();

        String apz = "";
        Log.e("APP TOTAL : ", "" + max);
        for (int i = 0; i < max; i++) {
            JSONObject jsonObj = new JSONObject();
            try {
                jsonObj.put("name", Uri.encode(apps.get(i).appname));
                jsonObj.put("package", apps.get(i).pname);
                jsonObj.put("icon", apps.get(i).icon);
                apz += apps.get(i).appname + " ,";
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            jsonArray.put(jsonObj);
        }

        JSONObject appsObj = new JSONObject();
        try {
            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            result.put("data", jsonArray);

            appsObj.put("apps", jsonArray);

            Map<String, String> params = new HashMap<String, String>();

            params.put("code", CommonUtilities.OPERATION_GET_APPLICATION_LIST);
            params.put("msgID", token);
            params.put("status", "200");
            //params.put("data", Uri.encode(jsonArray.toString()));
            Log.e("PASSING MSG ID : ", token);
            Log.e("PASSING CODE : ", code_input);

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, apz, null, null);
            }
        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_LOCK_DEVICE)) {

        Log.d(TAG, "Locking device now");
        try {
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);

            if (req_mode == REQUEST_MODE_NORMAL) {
                if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                    //ServerUtilities.pushData(params, context);
                } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                    smsManager.sendTextMessage(recepient, null, "Device Locked Successfully", null, null);
                }
            } else {
                if (policy_count != 0) {
                    policy_count++;
                }
                bundle_params.put("" + policy_count, params.toString());

            }
            devicePolicyManager.lockNow();

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_WIPE_DATA)) {

        Log.d(TAG, "RESETing device now - all user data will be ERASED to factory settings");
        String pin = null;
        SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE);
        String pinSaved = mainPref.getString("pin", "");

        try {
            JSONObject jobj = new JSONObject(data_input);
            pin = (String) jobj.get("pin");
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);

            //for local notification
            resultArr.put(result);

            if (pin.trim().equals(pinSaved.trim())) {
                params.put("status", "200");
                result.put("status", "true");
            } else {
                params.put("status", "400");
                result.put("status", "false");
            }

            result.put("code", code_input);

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                if (pin.trim().equals(pinSaved.trim())) {
                    smsManager.sendTextMessage(recepient, null, "Device Wiped Successfully", null, null);
                } else {
                    smsManager.sendTextMessage(recepient, null, "Wrong PIN", null, null);
                }
            }
            if (pin.trim().equals(pinSaved.trim())) {
                Toast.makeText(context, "Device is being wiped", Toast.LENGTH_LONG).show();
                try {
                    Thread.sleep(4000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                devicePolicyManager.wipeData(ACTIVATION_REQUEST);
            } else {
                Toast.makeText(context, "Device wipe failed due to wrong PIN", Toast.LENGTH_LONG).show();
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_CLEAR_PASSWORD)) {
        ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class);

        try {
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);

            if (req_mode == REQUEST_MODE_NORMAL) {
                if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                    //ServerUtilities.pushData(params, context);
                } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                    smsManager.sendTextMessage(recepient, null, "Lock code cleared Successfully", null, null);
                }
            } else {
                if (policy_count != 0) {
                    policy_count++;
                }
                bundle_params.put("" + policy_count, params.toString());
            }
            devicePolicyManager.setPasswordQuality(demoDeviceAdmin,
                    DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
            devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 0);
            devicePolicyManager.resetPassword("", DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
            devicePolicyManager.lockNow();
            devicePolicyManager.setPasswordQuality(demoDeviceAdmin,
                    DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_NOTIFICATION)) {

        JSONParser jp = new JSONParser();
        try {
            JSONObject jobj = new JSONObject(data_input);
            if (jobj.get("notification").toString() != null || jobj.get("notification").toString().equals("")) {
                notification = jobj.get("notification").toString();
            } else if (jobj.get("Notification").toString() != null
                    || jobj.get("Notification").toString().equals("")) {
                notification = jobj.get("Notification").toString();
            } else {
                notification = "";
            }

            Log.v("Notification", notification);
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, "Notification Receieved Successfully", null, null);
            }

            Intent intent = new Intent(context, AlertActivity.class);
            intent.putExtra("message", notification);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP
                    | Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_WIFI)) {
        boolean wifistatus = false;

        JSONParser jp = new JSONParser();
        try {
            JSONObject jobj = new JSONObject(data_input);
            if (!jobj.isNull("ssid")) {
                ssid = (String) jobj.get("ssid");
            }
            if (!jobj.isNull("password")) {
                password = (String) jobj.get("password");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Map<String, String> inparams = new HashMap<String, String>();
        inparams.put("code", code_input);
        inparams.put("msgID", token);
        WiFiConfig config = new WiFiConfig(context);

        try {
            //for local notification
            resultArr.put(result);
            result.put("code", code_input);

            wifistatus = config.saveWEPConfig(ssid, password);
            if (wifistatus) {
                inparams.put("status", "200");
                result.put("status", "true");
            } else {
                inparams.put("status", "400");
                result.put("status", "false");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (req_mode == REQUEST_MODE_NORMAL) {
                if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                    //ServerUtilities.pushData(inparams, context);
                } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                    smsManager.sendTextMessage(recepient, null, "WiFi Configured Successfully", null, null);
                }
            } else {
                if (policy_count != 0) {
                    policy_count++;
                }
                bundle_params.put("" + policy_count, inparams.toString());
            }
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_DISABLE_CAMERA)) {

        boolean camFunc = false;
        JSONParser jp = new JSONParser();
        try {
            JSONObject jobj = new JSONObject(data_input);
            if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("enable")) {
                camFunc = false;
            } else if (!jobj.isNull("function")
                    && jobj.get("function").toString().equalsIgnoreCase("disable")) {
                camFunc = true;
            } else if (!jobj.isNull("function")) {
                camFunc = Boolean.parseBoolean(jobj.get("function").toString());
            }

            ComponentName cameraAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class);
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);

            String cammode = "Disabled";
            if (camFunc) {
                cammode = "Disabled";
            } else {
                cammode = "Enabled";
            }

            if (req_mode == REQUEST_MODE_NORMAL) {
                if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                    //ServerUtilities.pushData(params, context);
                } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                    smsManager.sendTextMessage(recepient, null, "Camera " + cammode + " Successfully", null,
                            null);
                }
            } else {
                if (policy_count != 0) {
                    policy_count++;
                }
                bundle_params.put("" + policy_count, params.toString());
            }

            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
                devicePolicyManager.setCameraDisabled(cameraAdmin, camFunc);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION)
            || code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION_BUNDLE)) {

        try {
            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);

            if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION)) {
                JSONObject jobj = new JSONObject(data_input);
                installApplication(jobj, code_input);
            } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_APPLICATION_BUNDLE)) {
                JSONArray jArray = null;
                jArray = new JSONArray(data_input);
                for (int i = 0; i < jArray.length(); i++) {
                    JSONObject appObj = (JSONObject) jArray.getJSONObject(i);
                    installApplication(appObj, code_input);
                }
            }

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_UNINSTALL_APPLICATION)) {

        String packageName = "";
        JSONParser jp = new JSONParser();
        try {
            JSONObject jobj = new JSONObject(data_input);
            packageName = (String) jobj.get("identity");

            Log.v("Package Name : ", packageName);
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, "Application uninstalled Successfully", null, null);
            }
            appList.unInstallApplication(packageName);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_ENCRYPT_STORAGE)) {
        boolean encryptFunc = true;
        String pass = "";

        JSONParser jp = new JSONParser();
        try {
            JSONObject jobj = new JSONObject(data_input);
            if (!jobj.isNull("function") && jobj.get("function").toString().equalsIgnoreCase("encrypt")) {
                encryptFunc = true;
            } else if (!jobj.isNull("function")
                    && jobj.get("function").toString().equalsIgnoreCase("decrypt")) {
                encryptFunc = false;
            } else if (!jobj.isNull("function")) {
                encryptFunc = Boolean.parseBoolean(jobj.get("function").toString());
            }

            ComponentName admin = new ComponentName(context, WSO2DeviceAdminReceiver.class);
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);

            if (encryptFunc && devicePolicyManager
                    .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) {
                if (devicePolicyManager
                        .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_INACTIVE) {
                    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
                        devicePolicyManager.setStorageEncryption(admin, encryptFunc);
                        Intent intent = new Intent(DevicePolicyManager.ACTION_START_ENCRYPTION);
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        context.startActivity(intent);
                    }
                }
            } else if (!encryptFunc && devicePolicyManager
                    .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) {
                if (devicePolicyManager
                        .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVE
                        || devicePolicyManager
                                .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVATING) {
                    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
                        devicePolicyManager.setStorageEncryption(admin, encryptFunc);
                    }
                }
            }

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            if (devicePolicyManager
                    .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) {
                params.put("status", "200");
                result.put("status", "true");
            } else {
                params.put("status", "400");
                result.put("status", "false");
            }
            if (req_mode == REQUEST_MODE_NORMAL) {
                if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                    //                  //ServerUtilities.pushData(params, context);
                } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                    smsManager.sendTextMessage(recepient, null, "Storage Encrypted Successfully", null, null);
                }
            } else {
                if (policy_count != 0) {
                    policy_count++;
                }
                bundle_params.put("" + policy_count, params.toString());
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } else if (code_input.equals(CommonUtilities.OPERATION_MUTE)) {

        Log.d(TAG, "Muting Device");
        try {
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);

            if (req_mode == REQUEST_MODE_NORMAL) {
                if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                    //                  //ServerUtilities.pushData(params, context);
                } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                    smsManager.sendTextMessage(recepient, null, "Device Muted Successfully", null, null);
                }
            } else {
                if (policy_count != 0) {
                    policy_count++;
                }
                bundle_params.put("" + policy_count, params.toString());
            }

            muteDevice();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_TRACK_CALLS)) {
        try {
            Map<String, String> params = new HashMap<String, String>();

            params.put("code", CommonUtilities.OPERATION_TRACK_CALLS);
            params.put("msgID", token);
            params.put("status", "200");
            params.put("data", conversations.getCallDetails().toString());

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            result.put("data", new JSONObject(conversations.getCallDetails().toString()));

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, conversations.getCallDetails().toString(), null,
                        null);
            }
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    } else if (code_input.equals(CommonUtilities.OPERATION_TRACK_SMS)) {
        int MESSAGE_TYPE_INBOX = 1;
        int MESSAGE_TYPE_SENT = 2;
        JSONObject smsObj = new JSONObject();

        try {
            smsObj.put("inbox", conversations.getSMS(MESSAGE_TYPE_INBOX));
            smsObj.put("sent", conversations.getSMS(MESSAGE_TYPE_SENT));

            Map<String, String> params = new HashMap<String, String>();

            params.put("code", CommonUtilities.OPERATION_TRACK_SMS);
            params.put("msgID", token);
            params.put("status", "200");
            params.put("data", smsObj.toString());

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            result.put("data", smsObj);

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, smsObj.toString(), null, null);
            }
        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    } else if (code_input.equals(CommonUtilities.OPERATION_DATA_USAGE)) {
        JSONObject dataObj = new JSONObject();

        try {

            Map<String, String> params = new HashMap<String, String>();

            params.put("code", CommonUtilities.OPERATION_DATA_USAGE);
            params.put("msgID", token);
            params.put("status", "200");
            params.put("data", deviceState.takeDataUsageSnapShot().toString());

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            result.put("data", new JSONObject(deviceState.takeDataUsageSnapShot().toString()));

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, dataObj.toString(), null, null);
            }
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    } else if (code_input.equals(CommonUtilities.OPERATION_STATUS)) {
        boolean encryptStatus = false;
        boolean passCodeStatus = false;
        try {
            if (devicePolicyManager
                    .getStorageEncryptionStatus() != devicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED) {
                if (devicePolicyManager
                        .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVE
                        || devicePolicyManager
                                .getStorageEncryptionStatus() == devicePolicyManager.ENCRYPTION_STATUS_ACTIVATING) {
                    encryptStatus = true;
                } else {
                    encryptStatus = false;
                }
            }
            if (devicePolicyManager.isActivePasswordSufficient()) {
                passCodeStatus = true;
            } else {
                passCodeStatus = false;
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            passCodeStatus = false;
        }
        JSONObject dataObj = new JSONObject();

        try {
            dataObj.put("encryption", encryptStatus);
            dataObj.put("passcode", passCodeStatus);

            Map<String, String> params = new HashMap<String, String>();

            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");
            params.put("data", dataObj.toString());

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            result.put("data", dataObj);

            if (req_mode == REQUEST_MODE_NORMAL) {
                if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                    //ServerUtilities.pushData(params, context);
                } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                    smsManager.sendTextMessage(recepient, null, dataObj.toString(), null, null);
                }
            } else {
                if (policy_count != 0) {
                    policy_count++;
                }
                bundle_params.put("" + policy_count, params.toString());
            }
        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_WEBCLIP)) {
        String appUrl = "";
        String title = "";

        JSONParser jp = new JSONParser();
        try {
            JSONObject jobj = new JSONObject(data_input);
            Log.v("WEBCLIP DATA : ", data.toString());
            appUrl = (String) jobj.get("identity");
            title = (String) jobj.get("title");
            Log.v("Web App URL : ", appUrl);
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, "WebClip created Successfully", null, null);
            }
            appList.createWebAppBookmark(appUrl, title);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } else if (code_input.equals(CommonUtilities.OPERATION_PASSWORD_POLICY)) {
        ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class);

        int attempts, length, history, specialChars;
        String alphanumeric, complex;
        boolean b_alphanumeric, b_complex;
        long timout;
        Map<String, String> inparams = new HashMap<String, String>();

        JSONParser jp = new JSONParser();

        //for local notification
        resultArr.put(result);

        try {
            result.put("code", code_input);
            JSONObject jobj = new JSONObject(data_input);
            if (!jobj.isNull("maxFailedAttempts") && jobj.get("maxFailedAttempts") != null) {
                attempts = Integer.parseInt((String) jobj.get("maxFailedAttempts"));
                devicePolicyManager.setMaximumFailedPasswordsForWipe(demoDeviceAdmin, attempts);
            }

            if (!jobj.isNull("minLength") && jobj.get("minLength") != null) {
                length = Integer.parseInt((String) jobj.get("minLength"));
                devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, length);
            }

            if (!jobj.isNull("pinHistory") && jobj.get("pinHistory") != null) {
                history = Integer.parseInt((String) jobj.get("pinHistory"));
                devicePolicyManager.setPasswordHistoryLength(demoDeviceAdmin, history);
            }

            if (!jobj.isNull("minComplexChars") && jobj.get("minComplexChars") != null) {
                specialChars = Integer.parseInt((String) jobj.get("minComplexChars"));
                devicePolicyManager.setPasswordMinimumSymbols(demoDeviceAdmin, specialChars);
            }

            if (!jobj.isNull("requireAlphanumeric") && jobj.get("requireAlphanumeric") != null) {
                if (jobj.get("requireAlphanumeric") instanceof String) {
                    alphanumeric = (String) jobj.get("requireAlphanumeric");
                    if (alphanumeric.equals("true")) {
                        devicePolicyManager.setPasswordQuality(demoDeviceAdmin,
                                DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC);
                    }
                } else if (jobj.get("requireAlphanumeric") instanceof Boolean) {
                    b_alphanumeric = jobj.getBoolean("requireAlphanumeric");
                    if (b_alphanumeric) {
                        devicePolicyManager.setPasswordQuality(demoDeviceAdmin,
                                DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC);
                    }
                }
            }

            if (!jobj.isNull("allowSimple") && jobj.get("allowSimple") != null) {
                if (jobj.get("allowSimple") instanceof String) {
                    complex = (String) jobj.get("allowSimple");
                    if (!complex.equals("true")) {
                        devicePolicyManager.setPasswordQuality(demoDeviceAdmin,
                                DevicePolicyManager.PASSWORD_QUALITY_COMPLEX);
                    }
                } else if (jobj.get("allowSimple") instanceof Boolean) {
                    b_complex = jobj.getBoolean("allowSimple");
                    if (!b_complex) {
                        devicePolicyManager.setPasswordQuality(demoDeviceAdmin,
                                DevicePolicyManager.PASSWORD_QUALITY_COMPLEX);
                    }
                }
            }

            if (!jobj.isNull("maxPINAgeInDays") && jobj.get("maxPINAgeInDays") != null) {
                int daysOfExp = Integer.parseInt((String) jobj.get("maxPINAgeInDays"));
                timout = (long) (daysOfExp * 24 * 60 * 60 * 1000);
                devicePolicyManager.setPasswordExpirationTimeout(demoDeviceAdmin, timout);
            }

            SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE);
            String policy = mainPref.getString("policy", "");

            inparams.put("code", code_input);
            inparams.put("msgID", token);
            inparams.put("status", "200");
            result.put("status", "true");

        } catch (Exception e) {
            // TODO Auto-generated catch block
            params.put("status", "400");
            try {
                result.put("status", "false");
            } catch (JSONException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            e.printStackTrace();
        } finally {
            try {
                if (req_mode == REQUEST_MODE_NORMAL) {
                    if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                        //ServerUtilities.pushData(inparams, context);
                    } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                        smsManager.sendTextMessage(recepient, null, "Password Policies Successfully Set", null,
                                null);
                    }
                } else {
                    if (policy_count != 0) {
                        policy_count++;
                    }
                    bundle_params.put("" + policy_count, inparams.toString());
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_EMAIL_CONFIGURATION)) {
        String emailname = "", emailtype = "", ic_username = "", ic_password = "", ic_hostname = "";
        long timout;
        Map<String, String> inparams = new HashMap<String, String>();
        //for local notification
        resultArr.put(result);

        JSONParser jp = new JSONParser();
        try {
            result.put("code", code_input);
            JSONObject jobj = new JSONObject(data_input);
            if (!jobj.isNull("type") && jobj.get("type") != null) {
                emailtype = (String) jobj.get("type");
            }

            if (!jobj.isNull("displayname") && jobj.get("displayname") != null) {
                emailname = (String) jobj.get("displayname");
            }

            if (!jobj.isNull("username") && jobj.get("username") != null) {
                ic_username = (String) jobj.get("username");
            }

            if (!jobj.isNull("password") && jobj.get("password") != null) {
                ic_password = (String) jobj.get("password");
            }

            if (emailtype.trim().equals("GMAIL")) {
                ic_hostname = "imap.googlemail.com";
            } else if (emailtype.equals("YAHOO")) {
                ic_hostname = "";
            } else if (emailtype.equals("HOTMAIL")) {
                ic_hostname = "";
            }

            inparams.put("code", code_input);
            inparams.put("msgID", token);
            inparams.put("status", "200");
            result.put("status", "true");

        } catch (Exception e) {
            // TODO Auto-generated catch block
            params.put("status", "400");
            try {
                result.put("status", "false");
            } catch (JSONException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            e.printStackTrace();
        } finally {
            try {
                if (req_mode == REQUEST_MODE_NORMAL) {
                    if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                        //ServerUtilities.pushData(inparams, context);
                    } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                        smsManager.sendTextMessage(recepient, null, "Email Configured Successfully Set", null,
                                null);
                    }
                } else {
                    if (policy_count != 0) {
                        policy_count++;
                    }
                    bundle_params.put("" + policy_count, inparams.toString());
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_INSTALL_GOOGLE_APP)) {

        String packageName = "";
        JSONParser jp = new JSONParser();
        try {
            JSONObject jobj = new JSONObject(data_input);
            packageName = (String) jobj.get("package");

            Log.v("Package Name : ", packageName);
            Map<String, String> params = new HashMap<String, String>();
            params.put("code", code_input);
            params.put("msgID", token);
            params.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, "Application installed Successfully", null, null);
            }
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setData(Uri.parse("market://details?id=" + packageName));
            context.startActivity(intent);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_CHANGE_LOCK_CODE)) {
        ComponentName demoDeviceAdmin = new ComponentName(context, WSO2DeviceAdminReceiver.class);
        devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 3);
        String pass = "";
        Map<String, String> inparams = new HashMap<String, String>();

        JSONParser jp = new JSONParser();
        try {
            JSONObject jobj = new JSONObject(data_input);
            if (!jobj.isNull("password")) {
                pass = (String) jobj.get("password");
            }

            inparams.put("code", code_input);
            inparams.put("msgID", token);
            inparams.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(inparams, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null);
            }

            if (!pass.equals("")) {
                devicePolicyManager.resetPassword(pass, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
                devicePolicyManager.lockNow();
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                if (req_mode == REQUEST_MODE_NORMAL) {
                    if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                        //ServerUtilities.pushData(inparams, context);
                    } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                        smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null,
                                null);
                    }
                } else {
                    if (policy_count != 0) {
                        policy_count++;
                    }
                    bundle_params.put("" + policy_count, inparams.toString());
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

    } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_BUNDLE)) {
        Map<String, String> params = new HashMap<String, String>();
        try {
            params.put("code", code);
            params.put("msgID", policy_token);
            params.put("status", "200");
            params.put("data", bundle_params.toString());

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            result.put("data", new JSONObject(bundle_params.toString()));

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, "Bundle Executed Successfully", null, null);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_MONITOR)) {
        JSONArray sendjArray;
        JSONObject jobj = null;
        try {
            if (this.data != null && !this.data.trim().equals(""))
                jobj = new JSONObject(this.data);

            sendjArray = jobj.getJSONArray("policies");

            int type = Integer.parseInt((String) jobj.get("type").toString().trim());

            if (type != 1 && type != 2 && type != 3) {
                type = 1;
            }

            Log.e("PASSING MSG ID : ", policy_token);
            Log.e("PASSING CODE : ", code_input);
            Log.e("PASSING TYPE : ", String.valueOf(type));
            PolicyTester tester = new PolicyTester(context, sendjArray, type, policy_token);
            //for local notification
            resultArr = tester.finalArray;
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } else if (code_input.equals(CommonUtilities.OPERATION_POLICY_REVOKE)) {
        try {
            Map<String, String> inparams = new HashMap<String, String>();

            inparams.put("code", code_input);
            inparams.put("msgID", token);
            inparams.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(inparams, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, "Lock code changed Successfully", null, null);
            }
            revokePolicy();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } else if (code_input.equals(CommonUtilities.OPERATION_ENTERPRISE_WIPE_DATA)) {
        try {
            Map<String, String> inparams = new HashMap<String, String>();

            inparams.put("code", code_input);
            inparams.put("msgID", token);
            inparams.put("status", "200");

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(inparams, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                //               smsManager.sendTextMessage(recepient, null,
                //                     "Lock code changed Successfully", null, null);
            }
            enterpriseWipe = true;
            ServerUtils.clearAppData(context);
            Intent intent = new Intent(context, SettingsActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } else if (code_input.equals(CommonUtilities.OPERATION_BLACKLIST_APPS)) {
        ArrayList<PInfo> apps = appList.getInstalledApps(false); /*
                                                                 * false =
                                                                 * no system
                                                                 * packages
                                                                 */

        JSONArray jsonArray = new JSONArray();
        int max = apps.size();
        if (max > 10) {
            //max = 10;
        }
        String apz = "";

        try {

            JSONObject appsObj = new JSONObject(data_input);
            if (!appsObj.isNull("data")) {
                appsObj = (JSONObject) appsObj.get("data");
            }
            //               JSONObject appObj = (JSONObject) appsObj.get("data");
            String identity = (String) appsObj.get("identity");

            for (int j = 0; j < max; j++) {
                JSONObject jsonObj = new JSONObject();
                try {
                    jsonObj.put("name", apps.get(j).appname);
                    jsonObj.put("package", apps.get(j).pname);
                    if (identity.trim().equals(apps.get(j).pname)) {
                        jsonObj.put("notviolated", false);
                        jsonObj.put("package", apps.get(j).pname);
                    } else {
                        jsonObj.put("notviolated", true);
                    }

                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                jsonArray.put(jsonObj);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }

        JSONObject appsObj = new JSONObject();
        try {
            appsObj.put("apps", jsonArray);

            Map<String, String> params = new HashMap<String, String>();

            params.put("code", CommonUtilities.OPERATION_GET_APPLICATION_LIST);
            params.put("msgID", token);
            params.put("status", "200");
            params.put("data", jsonArray.toString());

            //for local notification
            resultArr.put(result);
            result.put("status", "true");
            result.put("code", code_input);
            result.put("data", jsonArray);

            if (mode == CommonUtilities.MESSAGE_MODE_GCM) {
                //ServerUtilities.pushData(params, context);
            } else if (mode == CommonUtilities.MESSAGE_MODE_SMS) {
                smsManager.sendTextMessage(recepient, null, apz, null, null);
            }
            SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE);
            String policy = mainPref.getString("policy", "");
            if (policy != null && policy != "") {
                if (apz != null || !apz.trim().equals("")) {

                }
            }
        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

    }
    return resultArr;
}

From source file:com.sabdroidex.controllers.couchpotato.CouchPotatoController.java

/**
 * This function refreshes the elements from movies.
 * /*from   ww w.  j  a  v a2  s . c om*/
 * @param messageHandler The message handler that will receive the result
 * @param status The status we want to fetch
 */
public static void refreshMovies(final Handler messageHandler, final String status) {
    if (executingRefreshMovies || !Preferences.isSet(Preferences.COUCHPOTATO_URL)) {
        return;
    }
    if (status == null) {
        getStatusList();
    }
    if (profiles == null) {
        getProfiles();
    }

    Thread thread = new Thread() {

        @Override
        public void run() {
            try {

                String result = makeApiCall(MESSAGE.MOVIE_LIST.toString().toLowerCase(), "status=" + status);
                JSONObject jsonObject = new JSONObject(result);
                MovieList movieList;

                if (!jsonObject.isNull("message") && !"".equals(jsonObject.getString("message"))) {
                    sendUpdateMessageStatus(messageHandler, "SickBeard : " + jsonObject.getString("message"));
                } else {
                    SimpleJSONMarshaller jsonMarshaller = new SimpleJSONMarshaller(MovieList.class);
                    movieList = (MovieList) jsonMarshaller.unMarshal(jsonObject);

                    Message message = new Message();
                    message.setTarget(messageHandler);
                    message.what = MESSAGE.MOVIE_LIST.hashCode();
                    message.obj = movieList;
                    message.sendToTarget();
                }
            } catch (IOException e) {
                Log.w(TAG, " " + e.getMessage());
            } catch (Throwable e) {
                Log.w(TAG, " " + e.getMessage());
            } finally {
                executingRefreshMovies = false;
                executingCommand = false;
            }
        }
    };
    executingCommand = true;
    thread.start();
}

From source file:com.sabdroidex.controllers.couchpotato.CouchPotatoController.java

/**
 * Search for a movie based on title//from w w w  .  j a  v a  2s.  co m
 * 
 * @param messageHandler Handler
 * @param searchTitle Movie title to search for
 */
public static void searchMovie(final Handler messageHandler, final String searchTitle) {
    if (!Preferences.isSet(Preferences.COUCHPOTATO_URL)) {
        return;
    }

    Thread thread = new Thread() {

        @Override
        public void run() {

            try {

                String result = makeApiCall(MESSAGE.MOVIE_SEARCH.toString().toLowerCase(), "q=" + searchTitle);
                JSONObject jsonObject = new JSONObject(result);
                MovieSearch movieList = null;

                if (!jsonObject.isNull("message") && !"".equals(jsonObject.getString("message"))) {
                    sendUpdateMessageStatus(messageHandler, "CouchPotato : " + jsonObject.getString("message"));
                } else {
                    SimpleJSONMarshaller jsonMarshaller = new SimpleJSONMarshaller(MovieSearch.class);
                    movieList = (MovieSearch) jsonMarshaller.unMarshal(jsonObject);
                }

                Message message = new Message();
                message.setTarget(messageHandler);
                message.what = MESSAGE.MOVIE_SEARCH.hashCode();
                message.obj = movieList;
                message.sendToTarget();
            } catch (IOException e) {
                Log.w(TAG, " " + e.getLocalizedMessage());
            } catch (Throwable e) {
                Log.w(TAG, " " + e.getLocalizedMessage());
            } finally {
                executingCommand = false;
            }
        }
    };
    executingRefreshMovies = true;
    executingCommand = true;
    thread.start();
}

From source file:com.sabdroidex.controllers.couchpotato.CouchPotatoController.java

/**
 * This download the release information for a specific movie.
 *
 * @param messageHandler The message handler that will receive the result.
 * @param movieId The movie Id to get the information for.
 *///from   www  .j ava  2  s.c  o  m
public static void getReleasesForMovie(final Handler messageHandler, final int movieId) {
    if (!Preferences.isSet(Preferences.COUCHPOTATO_URL)) {
        return;
    }

    Thread thread = new Thread() {

        @Override
        public void run() {

            try {
                String result = makeApiCall(MESSAGE.RELEASE_FOR_MOVIE.toString().toLowerCase(),
                        "id=" + movieId);
                JSONObject jsonObject = new JSONObject(result);
                MovieReleases movieReleases = null;

                if (!jsonObject.isNull("message") && !"".equals(jsonObject.getString("message"))) {
                    sendUpdateMessageStatus(messageHandler, "CouchPotato : " + jsonObject.getString("message"));
                } else {
                    SimpleJSONMarshaller jsonMarshaller = new SimpleJSONMarshaller(MovieReleases.class);
                    movieReleases = (MovieReleases) jsonMarshaller.unMarshal(jsonObject);
                }

                Message message = new Message();
                message.setTarget(messageHandler);
                message.what = MESSAGE.RELEASE_FOR_MOVIE.hashCode();
                message.obj = movieReleases;
                message.sendToTarget();
            } catch (RuntimeException e) {
                Log.w(TAG, " " + e.getLocalizedMessage());
            } catch (Throwable e) {
                Log.w(TAG, " " + e.getLocalizedMessage());
            }
        }
    };

    thread.start();
}

From source file:com.yahoo.egads.data.JsonEncoder.java

public static void fromJson(Object object, JSONObject json_obj) throws Exception {
    // for each json key-value, that has a corresponding variable in object ...
    for (Iterator k = json_obj.keys(); k.hasNext();) {
        String key = (String) k.next();
        Object value = json_obj.get(key);

        // try to access object variable
        Field field = null;/*from  ww w .j  av  a  2 s.  c om*/
        try {
            field = object.getClass().getField(key);
        } catch (Exception e) {
            continue;
        }
        if (Modifier.isStatic(field.getModifiers())) {
            continue;
        }
        if (Modifier.isPrivate(field.getModifiers())) {
            continue;
        }
        Object member = field.get(object);

        if (json_obj.isNull(key)) {
            field.set(object, null);
            continue;
            // if variable is container... recurse
        } else if (member instanceof JsonAble) {
            ((JsonAble) member).fromJson((JSONObject) value);
            // if variable is an array... recurse on sub-objects
        } else if (member instanceof ArrayList) {
            // Depends on existance of ArrayList<T> template parameter, and T constructor with no arguments.
            // May be better to use custom fromJson() in member class.
            ArrayList memberArray = (ArrayList) member;
            JSONArray jsonArray = (JSONArray) value;

            // find array element constructor
            ParameterizedType arrayType = null;
            if (field.getGenericType() instanceof ParameterizedType) {
                arrayType = (ParameterizedType) field.getGenericType();
            }
            for (Class c = member.getClass(); arrayType == null && c != null; c = c.getSuperclass()) {
                if (c.getGenericSuperclass() instanceof ParameterizedType) {
                    arrayType = (ParameterizedType) c.getGenericSuperclass();
                }
            }
            if (arrayType == null) {
                throw new Exception("could not find ArrayList element type for field 'key'");
            }
            Class elementClass = (Class) (arrayType.getActualTypeArguments()[0]);
            Constructor elementConstructor = elementClass.getConstructor();

            // for each element in JSON array ... append element to member array, recursively decode element
            for (int i = 0; i < jsonArray.length(); ++i) {
                Object element = elementConstructor.newInstance();
                fromJson(element, jsonArray.getJSONObject(i));
                memberArray.add(element);
            }
            // if variable is simple value... set
        } else if (field.getType() == float.class) {
            field.set(object, (float) json_obj.getDouble(key));
        } else {
            field.set(object, value);
        }
    }
}

From source file:com.shearosario.tothepathandback.DisplayDirectionsActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_directions);

    getActionBar().setDisplayHomeAsUpEnabled(true);

    Intent intent = getIntent();/*from   w  w  w  .ja v  a 2  s.  com*/

    /*if(intent.hasExtra("origin"))
    {
       double[] temp = intent.getDoubleArrayExtra("origin");
       origin = new LatLng (temp[0], temp[1]);
    }
    if (intent.hasExtra("destination"))
    {
       double[] temp = intent.getDoubleArrayExtra("destination");
       destination = new LatLng (temp[0], temp[1]);
    }*/

    String linkCollection = null;
    String nodeCollection = null;
    String points = null;

    if (intent.hasExtra("GuidanceLinkCollection"))
        linkCollection = intent.getStringExtra("GuidanceLinkCollection");
    if (intent.hasExtra("GuidanceNodeCollection"))
        nodeCollection = intent.getStringExtra("GuidanceNodeCollection");
    if (intent.hasExtra("shapePoints"))
        points = intent.getStringExtra("shapePoints");

    gMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.directionsView)).getMap();
    gMap.setMyLocationEnabled(false);
    gMap.setBuildingsEnabled(false);
    gMap.getUiSettings().setZoomControlsEnabled(false);

    TextView textView = (TextView) findViewById(R.id.osm_guidance);
    textView.setText(Html.fromHtml("Data provided by  OpenStreetMap contributors "
            + "<a href=\"http://www.openstreetmap.org/copyright\">License</a>"));
    textView.setMovementMethod(LinkMovementMethod.getInstance());

    textView = (TextView) findViewById(R.id.guidance_text);
    textView.setText(
            Html.fromHtml("Guidance Courtesy of " + "<a href=\"http://www.mapquest.com\">MapQuest</a>"));
    textView.setMovementMethod(LinkMovementMethod.getInstance());

    PolylineOptions rectOptions = new PolylineOptions();
    markers = new ArrayList<Marker>();

    try {
        JSONArray jGuidanceLinkCollection = new JSONArray(linkCollection);
        JSONArray jGuidanceNodeCollection = new JSONArray(nodeCollection);
        JSONArray jShapePoints = new JSONArray(points);

        int lastIndex = 0;

        for (int i = 0; i < jGuidanceNodeCollection.length(); i++) {
            JSONObject nodeObject = jGuidanceNodeCollection.getJSONObject(i);
            JSONArray linkIds = nodeObject.getJSONArray("linkIds");

            int linkIndex = 0;
            if (linkIds.length() != 0)
                linkIndex = linkIds.getInt(0);
            else
                continue;

            JSONObject linkObject = jGuidanceLinkCollection.getJSONObject(linkIndex);
            int shapeIndex = linkObject.getInt("shapeIndex");

            // The index of a specific shape point is i/2, so multiply by 2 to get the beginning index in shapePoints
            // evens are lat and odds are lng
            double lat = jShapePoints.getDouble((shapeIndex * 2));
            double lng = jShapePoints.getDouble((shapeIndex * 2) + 1);

            lastIndex = ((shapeIndex * 2) + 1);

            if (i == 0) {
                Marker temp = gMap
                        .addMarker(new MarkerOptions().position(new LatLng(lat, lng)).title("Origin"));
                markers.add(temp);
            } else if (nodeObject.isNull("infoCollection") == false) {
                Marker temp = gMap.addMarker(new MarkerOptions().position(new LatLng(lat, lng))
                        .title(nodeObject.getJSONArray("infoCollection").getString(0)));
                markers.add(temp);
            }
        }

        for (int i = 0; i < lastIndex; i++) {
            double lat = jShapePoints.getDouble(i);
            i++;
            double lng = jShapePoints.getDouble(i);

            rectOptions.add(new LatLng(lat, lng));
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    gMap.addPolyline(rectOptions);

    markersIndex = 0;

    gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(markers.get(markersIndex).getPosition(), 17));
    markers.get(markersIndex).showInfoWindow();

    gMap.setOnMarkerClickListener(new OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker arg0) {
            if (arg0 != null) {
                for (int i = 0; i < markers.size(); i++) {
                    if (markers.get(i).equals(arg0)) {
                        markersIndex = i;
                        break;
                    }
                }

                if (markersIndex == 0) {
                    findViewById(R.id.button_nextStep).setEnabled(true);
                    findViewById(R.id.button_previousStep).setEnabled(false);
                } else if (markersIndex == (markers.size() - 1)) {
                    findViewById(R.id.button_nextStep).setEnabled(false);
                    findViewById(R.id.button_previousStep).setEnabled(true);
                } else {
                    findViewById(R.id.button_nextStep).setEnabled(true);
                    findViewById(R.id.button_previousStep).setEnabled(true);
                }

                gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(arg0.getPosition(), 17));

                arg0.showInfoWindow();

                return true;
            }

            return false;
        }
    });
}

From source file:org.wso2.app.catalog.AppListActivity.java

@Override
public void onReceiveAPIResult(Map<String, String> result, int requestCode) {
    String responseStatus;// w w w.  j  a  va  2 s  .  c o m
    CommonDialogUtils.stopProgressDialog(progressDialog);
    if (requestCode == Constants.APP_LIST_REQUEST_CODE) {
        if (result != null && result.get(Constants.RESPONSE) != null) {
            responseStatus = result.get(Constants.STATUS);
            if (Constants.Status.SUCCESSFUL.equals(responseStatus)) {
                try {
                    JSONObject payload = new JSONObject(result.get(Constants.RESPONSE));
                    if (!payload.isNull(Constants.ApplicationPayload.APP_LIST)) {
                        JSONArray applicationList = payload.getJSONArray(Constants.ApplicationPayload.APP_LIST);
                        appList.setVisibility(View.VISIBLE);
                        btnMobileApps.setVisibility(View.VISIBLE);
                        btnWebApps.setVisibility(View.VISIBLE);
                        txtError.setVisibility(View.GONE);
                        setAppListUI(applicationList);
                    }
                } catch (JSONException e) {
                    appList.setVisibility(View.GONE);
                    btnMobileApps.setVisibility(View.GONE);
                    btnWebApps.setVisibility(View.GONE);
                    txtError.setVisibility(View.VISIBLE);
                    Log.e(TAG, "Failed parsing application list response" + e);
                }
            } else {
                appList.setVisibility(View.GONE);
                btnMobileApps.setVisibility(View.GONE);
                btnWebApps.setVisibility(View.GONE);
                txtError.setVisibility(View.VISIBLE);
            }
        } else {
            appList.setVisibility(View.GONE);
            btnMobileApps.setVisibility(View.GONE);
            btnWebApps.setVisibility(View.GONE);
            txtError.setVisibility(View.VISIBLE);
        }
    }
}

From source file:org.wso2.iot.agent.utils.CommonUtils.java

/**
 * Call EMM system app in COPE mode.//from   ww  w .  j  a  v a 2 s  .co m
 * @param context - Application context.
 * @param operation - Operation code.
 * @param command - Shell command to be executed.
 * @param appUri - App package/APK URI when an app operation executed.
 */
public static void callSystemApp(Context context, String operation, String command, String appUri) {
    if (Constants.SYSTEM_APP_ENABLED) {
        Intent intent = new Intent(Constants.SYSTEM_APP_SERVICE_START_ACTION);
        Intent explicitIntent = createExplicitFromImplicitIntent(context, intent);
        if (explicitIntent != null) {
            intent = explicitIntent;
        }
        intent.putExtra(Constants.OPERATION_CODE, operation);
        intent.setPackage(Constants.AGENT_PACKAGE);

        if (appUri != null) {
            intent.putExtra("appUri", appUri);
        }

        if (command != null) {
            if (Constants.Operation.UPGRADE_FIRMWARE.equals(operation)) {
                try {
                    JSONObject upgradeData = new JSONObject(command);
                    if (upgradeData
                            .isNull(context.getResources().getString(R.string.firmware_upgrade_automatic_retry))
                            && Preference.hasPreferenceKey(context,
                                    context.getResources().getString(R.string.is_automatic_firmware_upgrade))) {
                        boolean isFirmwareUpgradeAutoRetry = Preference.getBoolean(context,
                                context.getResources().getString(R.string.is_automatic_firmware_upgrade));
                        upgradeData.put(
                                context.getResources().getString(R.string.firmware_upgrade_automatic_retry),
                                isFirmwareUpgradeAutoRetry);
                        command = upgradeData.toString();
                        Log.d(TAG, "Updated payload: " + command);
                    } else if (!upgradeData.isNull(
                            context.getResources().getString(R.string.firmware_upgrade_automatic_retry))) {
                        Preference.putBoolean(context,
                                context.getResources().getString(R.string.is_automatic_firmware_upgrade),
                                upgradeData.getBoolean(context.getResources()
                                        .getString(R.string.firmware_upgrade_automatic_retry)));
                    } else {
                        upgradeData.put(
                                context.getResources().getString(R.string.firmware_upgrade_automatic_retry),
                                true);
                        Preference.putBoolean(context,
                                context.getResources().getString(R.string.is_automatic_firmware_upgrade), true);
                        Log.d(TAG, "Updated payload: " + command);
                    }
                } catch (JSONException e) {
                    Log.e(TAG, "Could not parse Firmware upgrade operation", e);
                }
                intent.putExtra("operationId", Preference.getInt(context, "firmwareOperationId"));
            }
            intent.putExtra("command", command);
        }
        context.startServiceAsUser(intent, android.os.Process.myUserHandle());
    } else {
        Log.e(TAG, "System app not enabled.");
    }
}