正在查看: Harvest v2.32 应用的 SendingDataService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Harvest v2.32 应用的 SendingDataService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.ufields.tracking.Services;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.ufields.tracking.App.EndPoints;
import com.ufields.tracking.App.MyApplication;
import com.ufields.tracking.BroadcastReceivers.ServiceRestartBroadcastReceiver;
import com.ufields.tracking.Databases.PendingTracking;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.TimeZone;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHeader;
import org.apache.http.params.HttpConnectionParams;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class SendingDataService extends Service {
static final String UPDATE_ACTION = "UPDATE_ACTION";
private List<String> pending;
private PendingTracking pendingTracking;
@Override
public IBinder onBind(Intent intent) {
return null;
}
public SendingDataService(Context context) {
}
public SendingDataService() {
}
@Override
public void onCreate() {
this.pendingTracking = MyApplication.getInstance().getPendingTracking();
}
@Override
public int onStartCommand(Intent intent, int i, int i2) {
super.onStartCommand(intent, i, i2);
this.pending = this.pendingTracking.getAllTracking();
Log.e("lockMode", String.valueOf(this.pendingTracking.getLockMode()));
Log.e("pendingTrackings", this.pending.toString());
if (isNetworkAvailable() && !this.pendingTracking.getLockMode() && this.pendingTracking.rowCount() > 0) {
try {
JSONObject jSONObject = new JSONObject();
JSONArray jSONArray = new JSONArray();
for (int i3 = 0; i3 < this.pending.size(); i3++) {
jSONArray.put(new JSONObject(this.pendingTracking.getTracking(this.pending.get(i3))));
}
jSONObject.put("harvestDetails", jSONArray);
new AddHarvestDetail().execute(jSONObject.toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
SendingDataService.this.stopSelf();
}
}, 60000L);
return 1;
}
public boolean isNetworkAvailable() {
NetworkInfo activeNetworkInfo = ((ConnectivityManager) getSystemService("connectivity")).getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
public String getCurrentDate() {
return new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
}
public String convertStreamToString(InputStream inputStream) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder sb = new StringBuilder();
while (true) {
try {
try {
try {
String readLine = bufferedReader.readLine();
if (readLine == null) {
break;
}
sb.append(readLine);
sb.append('\n');
} catch (IOException e) {
e.printStackTrace();
inputStream.close();
}
} catch (Throwable th) {
try {
inputStream.close();
} catch (IOException e2) {
e2.printStackTrace();
}
throw th;
}
} catch (IOException e3) {
e3.printStackTrace();
}
}
inputStream.close();
return sb.toString();
}
public class AddHarvestDetail extends AsyncTask<String, Void, String> {
public AddHarvestDetail() {
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
public String doInBackground(String... strArr) {
DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(defaultHttpClient.getParams(), 1000);
HttpPost httpPost = new HttpPost(EndPoints.ADD_MULTIPLE_HARVEST_DETAIL);
InputStream inputStream = null;
try {
StringEntity stringEntity = new StringEntity(strArr[0]);
stringEntity.setContentType(new BasicHeader("Content-Type", "application/json"));
httpPost.setEntity(stringEntity);
HttpResponse execute = defaultHttpClient.execute(httpPost);
if (execute != null) {
inputStream = execute.getEntity().getContent();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e2) {
e2.printStackTrace();
} catch (IOException e3) {
e3.printStackTrace();
}
return inputStream != null ? SendingDataService.this.convertStreamToString(inputStream) : "";
}
@Override
public void onPostExecute(String str) {
if (str == "") {
if (SendingDataService.this.isNetworkAvailable()) {
SendingDataService.this.new GetHarvestList().execute(new String[0]);
return;
}
return;
}
try {
if (new JSONObject(str).getBoolean("success")) {
for (int i = 0; i < SendingDataService.this.pending.size(); i++) {
SendingDataService.this.pendingTracking.deleteTracking((String) SendingDataService.this.pending.get(i));
}
SendingDataService.this.pending.clear();
SendingDataService sendingDataService = SendingDataService.this;
sendingDataService.pending = sendingDataService.pendingTracking.getAllTracking();
Log.e("pendingjlkjbkjkjjkjkkgk", SendingDataService.this.pending.toString());
if (SendingDataService.this.isNetworkAvailable()) {
SendingDataService.this.new GetHarvestList().execute(new String[0]);
}
}
} catch (JSONException unused) {
if (SendingDataService.this.isNetworkAvailable()) {
SendingDataService.this.new GetHarvestList().execute(new String[0]);
}
Log.e("Error", "Something went wrong");
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(this, (Class<?>) ServiceRestartBroadcastReceiver.class));
}
public class GetHarvestList extends AsyncTask<String, Void, String> {
String organizationId = "";
String currentDate = "";
public GetHarvestList() {
}
@Override
protected void onPreExecute() {
try {
this.organizationId = new JSONObject(MyApplication.getInstance().getPrefManager().getOrganizationEmployee().getOrganizationInfo()).getString("_id");
} catch (NullPointerException e) {
e.printStackTrace();
} catch (JSONException e2) {
e2.printStackTrace();
}
this.currentDate = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
}
@Override
public String doInBackground(String... strArr) {
DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(defaultHttpClient.getParams(), 1000);
HttpGet httpGet = new HttpGet(EndPoints.GET_HARVEST + this.currentDate + "&organizationId=" + this.organizationId);
httpGet.setHeader("timezone", TimeZone.getDefault().getID());
InputStream inputStream = null;
try {
HttpResponse execute = defaultHttpClient.execute(httpGet);
if (execute != null) {
inputStream = execute.getEntity().getContent();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e2) {
e2.printStackTrace();
} catch (IOException e3) {
e3.printStackTrace();
}
return inputStream != null ? SendingDataService.this.convertStreamToString(inputStream) : "";
}
@Override
public void onPostExecute(String str) {
if (str != "") {
try {
JSONObject jSONObject = new JSONObject(str);
MyApplication.getInstance().getPrefManager().storeHarvestList(this.organizationId, SendingDataService.this.getCurrentDate(), jSONObject.getJSONObject("data").getJSONArray("harvests").toString());
JSONArray jSONArray = jSONObject.getJSONObject("data").getJSONArray("harvests");
if (jSONArray.length() != 0) {
for (int i = 0; i < jSONArray.length(); i++) {
JSONObject jSONObject2 = jSONArray.getJSONObject(i);
MyApplication.getInstance().getPrefManager().storeHarvest(this.organizationId, jSONObject2.getString("_id").trim(), jSONObject2.toString());
MyApplication.getInstance().getPrefManager().storeHarvestTrackingDetail(jSONObject2.getString("_id"), SendingDataService.this.getCurrentDate(), jSONObject2.getJSONArray("scans").toString());
if (jSONObject2.has("cropDetail")) {
if (jSONObject2.has("cultivarDetail")) {
MyApplication.getInstance().getPrefManager().storeCropPackage(jSONObject2.getJSONObject("cropDetail").getString("_id"), jSONObject2.getJSONObject("cropDetail").getJSONArray("packages").toString());
} else {
MyApplication.getInstance().getPrefManager().storeCropPackage(jSONObject2.getJSONObject("cropDetail").getString("_id"), jSONObject2.getJSONObject("cropDetail").getJSONArray("packages").toString());
}
}
}
MyApplication.getInstance().getPrefManager().storeSyncDateTime(new SimpleDateFormat("yyyy/MM/dd @ kk:mm").format(Calendar.getInstance().getTime()).replace(":", "h"));
Intent intent = new Intent();
intent.setAction(SendingDataService.UPDATE_ACTION);
intent.putExtra("dataUpdated", true);
LocalBroadcastManager.getInstance(SendingDataService.this).sendBroadcast(intent);
}
} catch (JSONException unused) {
Log.e("Error", "Something went wrong");
}
}
}
}
}