public static void execute(Context ctx, String command, String phoneNumber) { String secretKey = SMSUtil.getSecretKey(command); String email = PreyConfig.getPreyConfig(ctx).getEmail(); boolean isPasswordOk = false; PreyTelephonyManager preyTelephony = PreyTelephonyManager.getInstance(ctx); PreyConnectivityManager preyConnectivity = PreyConnectivityManager.getInstance(ctx); boolean connection = false; int i = 0; try { while (!connection && i < 5) { connection = preyTelephony.isDataConnectivityEnabled() || preyConnectivity.isConnected(); if (!connection) { PreyLogger.d("Phone doesn't have internet connection now. Waiting 10 secs for it"); Thread.sleep(10000); } } } catch (Exception e) { PreyLogger.e("Error, because:" + e.getMessage(), e); } try { isPasswordOk = PreyWebServices.getInstance().checkPassword(ctx, email, secretKey); } catch (Exception e) { PreyLogger.e("Error, because:" + e.getMessage(), e); } try { if (isPasswordOk) { List<JSONObject> jsonList = SMSParser.getJSONListFromText(command, phoneNumber); ActionsController.getInstance(ctx).runActionJson(ctx, jsonList); } } catch (Exception e) { PreyLogger.e("Error, because:" + e.getMessage(), e); } }
@Override protected void onHandleIntent(Intent intent) { JSONArray jsonArray = new JSONArray(); List<String> listExclude = new ArrayList<String>(); PreyLogger.i("start report"); List<HttpDataService> listData = new ArrayList<HttpDataService>(); Context ctx = this; jsonArray = new JSONArray(); if (!listExclude.contains("picture")) jsonArray.put(new String("picture")); if (!listExclude.contains("location")) jsonArray.put(new String("location")); if (!listExclude.contains("access_points_list")) jsonArray.put(new String("access_points_list")); try { List<ActionResult> lista = new ArrayList<ActionResult>(); for (int i = 0; i < jsonArray.length(); i++) { String nameAction = jsonArray.getString(i); PreyLogger.d("nameAction:" + nameAction); String methodAction = "report"; JSONObject parametersAction = null; listData = ClassUtil.execute(ctx, lista, nameAction, methodAction, parametersAction, listData); } } catch (Exception e) { } int parms = 0; for (int i = 0; listData != null && i < listData.size(); i++) { HttpDataService httpDataService = listData.get(i); parms = parms + httpDataService.getDataAsParameters().size(); if (httpDataService.getEntityFiles() != null) { for (int j = 0; j < httpDataService.getEntityFiles().size(); j++) { EntityFile entity = httpDataService.getEntityFiles().get(j); if (entity != null && entity.getLength() > 0) { parms = parms + 1; } } } } if (PreyConfig.getPreyConfig(ctx).isConnectionExists()) { if (parms > 0) { PreyHttpResponse response = PreyWebServices.getInstance().sendPreyHttpReport(ctx, listData); if (response != null) { PreyConfig.getPreyConfig(ctx).setLastEvent("report_send"); PreyLogger.d("response.getStatusLine():" + response.getStatusLine()); if (200 != response.getStatusLine().getStatusCode()) { PreyConfig.getPreyConfig(ctx).setMissing(false); PreyConfig.getPreyConfig(ctx).setIntervalReport(""); ReportScheduled.getInstance(ctx).reset(); } } } } stopSelf(); }
@Override public void onPasswordSucceeded(Context context, Intent intent) { PreyConfig preyConfig = PreyConfig.getPreyConfig(context); if (preyConfig.isLockSet()) { PreyLogger.d("Password was entered successfully"); ArrayList<String> modulesList = new ArrayList<String>(); modulesList.add(LockAction.DATA_ID); PreyWebServices.getInstance().deactivateModules(context, modulesList); preyConfig.setLock(false); FroyoSupport.getInstance(context).changePasswordAndLock("", false); } }
public static void unhide(Context ctx, List<ActionResult> lista, JSONObject options) { PreyLogger.i("started unhide"); PreyWebServices.getInstance() .sendNotifyActionResultPreyHttp( ctx, UtilJson.makeMapParam("stop", "camouflage", "stopped")); PreyConfig.getPreyConfig(ctx).setCamouflageSet(false); ComponentName componentToEnabled = new ComponentName("com.prey", "com.prey.activities.LoginActivity"); PackageManager pm = ctx.getApplicationContext().getPackageManager(); pm.setComponentEnabledSetting( componentToEnabled, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); PreyLogger.i("stopped unhide"); PreyConfig.getPreyConfig(ctx).setLastEvent("camouflage_unhide"); }
public static void hide(Context ctx, List<ActionResult> lista, JSONObject parameters) { PreyLogger.i("started hide"); String messageId = null; try { messageId = parameters.getString(PreyConfig.MESSAGE_ID); } catch (Exception e) { } PreyWebServices.getInstance() .sendNotifyActionResultPreyHttp( ctx, UtilJson.makeMapParam("start", "camouflage", "started", null)); PreyConfig.getPreyConfig(ctx).setCamouflageSet(true); ComponentName componentToDisabled = new ComponentName("com.prey", "com.prey.activities.LoginActivity"); PackageManager pm = ctx.getPackageManager(); pm.setComponentEnabledSetting( componentToDisabled, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); PreyLogger.i("stopped hide"); PreyConfig.getPreyConfig(ctx).setLastEvent("camouflage_hide"); }
public void unregisterC2dm(boolean updatePrey) { if (updatePrey) PreyWebServices.getInstance().setPushRegistrationId(ctx, ""); Intent unregIntent = new Intent("com.google.android.c2dm.intent.UNREGISTER"); unregIntent.putExtra("app", PendingIntent.getBroadcast(this.ctx, 0, new Intent(), 0)); this.ctx.startService(unregIntent); }