正在查看: Harvest v2.32 应用的 TrackingDetailsActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Harvest v2.32 应用的 TrackingDetailsActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.ufields.tracking;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.tech.Ndef;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.google.android.material.snackbar.Snackbar;
import com.itextpdf.text.xml.xmp.XmpWriter;
import com.ufields.tracking.Adapters.ListViewAdapterTrackingDetails;
import com.ufields.tracking.App.AppUtils;
import com.ufields.tracking.App.MyApplication;
import com.ufields.tracking.DataModels.TrackingDetailsDataModel;
import com.ufields.tracking.Databases.PendingTracking;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import kotlin.jvm.internal.ByteCompanionObject;
import org.json.JSONArray;
import org.json.JSONException;
public class TrackingDetailsActivity extends AppCompatActivity implements NfcAdapter.ReaderCallback {
private static final String MIME_TEXT_PLAIN = "text/plain";
private static final String TAG = "NfcDemo";
static final String UPDATE_ACTION = "UPDATE_ACTION";
private ListViewAdapterTrackingDetails listViewAdapterTrackingDetails;
@BindView(R.id.listViewTrackingDetails)
ListView listViewTd;
private PendingTracking pendingTracking;
@BindView(R.id.containerToolbar)
LinearLayout snack;
@BindView(R.id.toolbar)
Toolbar toolbar;
private TextView toolbarTitle;
private UpdateReceiver updateReceiver;
ArrayList<TrackingDetailsDataModel> trackingDetailsDataModels = new ArrayList<>();
private HashMap<String, String> cropPackage = new HashMap<>();
private NfcAdapter mNfcAdapter = null;
private String NFC = "";
public static void setupForegroundDispatch(NfcAdapter.ReaderCallback readerCallback, Activity activity, NfcAdapter nfcAdapter) {
Bundle bundle = new Bundle();
bundle.putInt("presence", 1000);
nfcAdapter.enableReaderMode(activity, readerCallback, 15, bundle);
}
public static void stopForegroundDispatch(Activity activity, NfcAdapter nfcAdapter) {
nfcAdapter.disableReaderMode(activity);
}
protected void onCreate(Bundle bundle) {
AppUtils.setConfigChange(this);
super.onCreate(bundle);
setContentView(R.layout.activity_tracking_details);
ButterKnife.bind(this);
this.updateReceiver = new UpdateReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(UPDATE_ACTION);
LocalBroadcastManager.getInstance(this).registerReceiver(this.updateReceiver, intentFilter);
this.pendingTracking = MyApplication.getInstance().getPendingTracking();
this.mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
this.toolbarTitle = (TextView) this.toolbar.findViewById(R.id.toolbarText);
ImageView imageView = (ImageView) this.toolbar.findViewById(R.id.toolbarBack);
setupToolbar();
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public final void onClick(View view) {
TrackingDetailsActivity.this.m48lambda$onCreate$0$comufieldstrackingTrackingDetailsActivity(view);
}
});
this.listViewTd.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public final void onItemClick(AdapterView adapterView, View view, int i, long j) {
TrackingDetailsActivity.this.m49lambda$onCreate$1$comufieldstrackingTrackingDetailsActivity(adapterView, view, i, j);
}
});
}
void m48lambda$onCreate$0$comufieldstrackingTrackingDetailsActivity(View view) {
this.pendingTracking.setLockMode(false);
finish();
}
void m49lambda$onCreate$1$comufieldstrackingTrackingDetailsActivity(AdapterView adapterView, View view, int i, long j) {
Intent intent = new Intent(getApplicationContext(), (Class<?>) UpdateTrackingDetailActivity.class);
intent.putExtra("organizationId", getIntent().getStringExtra("organizationId"));
intent.putExtra("cropId", getIntent().getStringExtra("cropId"));
intent.putExtra("harvestId", getIntent().getStringExtra("harvestId"));
intent.putExtra("defaultPackageId", getIntent().getStringExtra("defaultPackageId"));
intent.putExtra("id", this.trackingDetailsDataModels.get(i).getId());
intent.putExtra("time", this.trackingDetailsDataModels.get(i).getTime());
intent.putExtra("name", this.trackingDetailsDataModels.get(i).getName());
intent.putExtra("employeeId", this.trackingDetailsDataModels.get(i).getEmployeeId());
intent.putExtra("packageQuantity", this.trackingDetailsDataModels.get(i).getQuantity().split(" X ")[0].trim());
intent.putExtra("packageName", this.trackingDetailsDataModels.get(i).getQuantity().split(" X ")[1].trim());
intent.putExtra("packageId", this.trackingDetailsDataModels.get(i).getPackageId());
intent.putExtra("uniqueID", this.trackingDetailsDataModels.get(i).getUniqueID());
startActivity(intent);
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
public void showSnackBar(String str) {
Snackbar make = Snackbar.make(this.snack, str, 0);
View view = make.getView();
view.setBackgroundColor(Color.parseColor("#D0021B"));
TextView textView = (TextView) view.findViewById(R.id.snackbar_text);
textView.setGravity(17);
textView.setTextColor(Color.parseColor("#FFFFFF"));
textView.setAllCaps(true);
make.show();
}
private String getCurrentDate() {
return new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
}
public String getEmployeeId(String str) {
try {
JSONArray employees = MyApplication.getInstance().getPrefManager().getEmployees(getIntent().getStringExtra("organizationId"));
if (employees != null) {
for (int i = 0; i < employees.length(); i++) {
if (!employees.getJSONObject(i).isNull("NFC") && employees.getJSONObject(i).getString("NFC").equalsIgnoreCase(str)) {
return employees.getJSONObject(i).getString("_id");
}
}
}
} catch (JSONException unused) {
}
return "";
}
public void filterScans(String str) {
ArrayList<TrackingDetailsDataModel> arrayList = new ArrayList<>();
for (int i = 0; i < this.trackingDetailsDataModels.size(); i++) {
if (this.trackingDetailsDataModels.get(i).getEmployeeId().equalsIgnoreCase(str)) {
arrayList.add(this.trackingDetailsDataModels.get(i));
}
}
this.listViewAdapterTrackingDetails.setTrackingDetailsList(arrayList);
this.listViewAdapterTrackingDetails.notifyDataSetChanged();
}
public void updateActivity() {
throw new UnsupportedOperationException("Method not decompiled: com.ufields.tracking.TrackingDetailsActivity.updateActivity():void");
}
static int lambda$updateActivity$2(org.json.JSONObject r4, org.json.JSONObject r5) {
throw new UnsupportedOperationException("Method not decompiled: com.ufields.tracking.TrackingDetailsActivity.lambda$updateActivity$2(org.json.JSONObject, org.json.JSONObject):int");
}
protected void onResume() {
super.onResume();
this.pendingTracking.setLockMode(true);
NfcAdapter nfcAdapter = this.mNfcAdapter;
if (nfcAdapter != null && nfcAdapter.isEnabled()) {
setupForegroundDispatch(this, this, this.mNfcAdapter);
}
if (!this.NFC.equalsIgnoreCase("")) {
filterScans(getEmployeeId(this.NFC));
} else {
updateActivity();
}
}
protected void onPause() {
NfcAdapter nfcAdapter = this.mNfcAdapter;
if (nfcAdapter != null && nfcAdapter.isEnabled()) {
stopForegroundDispatch(this, this.mNfcAdapter);
}
super.onPause();
}
protected void onDestroy() {
this.pendingTracking.setLockMode(false);
LocalBroadcastManager.getInstance(this).unregisterReceiver(this.updateReceiver);
super.onDestroy();
}
public void onBackPressed() {
this.pendingTracking.setLockMode(false);
finish();
}
public void setupToolbar() {
setSupportActionBar(this.toolbar);
getSupportActionBar().setTitle("");
this.toolbarTitle.setText(getResources().getString(R.string.trackingdetailstitle));
}
@Override
public void onTagDiscovered(Tag tag) {
new NdefReaderTask().execute(tag);
}
private class NdefReaderTask extends AsyncTask<Tag, Void, String> {
private NdefReaderTask() {
}
@Override
public String doInBackground(Tag... tagArr) {
Ndef ndef = Ndef.get(tagArr[0]);
if (ndef == null) {
return null;
}
NdefRecord[] records = ndef.getCachedNdefMessage().getRecords();
int length = records.length;
for (int i = 0; i < length; i++) {
NdefRecord ndefRecord = records[i];
if (ndefRecord.getTnf() == 1 && Arrays.equals(ndefRecord.getType(), NdefRecord.RTD_TEXT)) {
try {
return readText(ndefRecord);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return null;
}
private String readText(NdefRecord ndefRecord) throws UnsupportedEncodingException {
byte[] payload = ndefRecord.getPayload();
byte b = payload[0];
return new String(payload, (b & 51) + 1, (payload.length - r0) - 1, (b & ByteCompanionObject.MIN_VALUE) == 0 ? XmpWriter.UTF8 : XmpWriter.UTF16);
}
@Override
public void onPostExecute(String str) {
TrackingDetailsActivity.this.NFC = str;
if (str != null) {
if (!TrackingDetailsActivity.this.getEmployeeId(str).equalsIgnoreCase("")) {
TrackingDetailsActivity trackingDetailsActivity = TrackingDetailsActivity.this;
trackingDetailsActivity.filterScans(trackingDetailsActivity.getEmployeeId(str));
return;
} else {
TrackingDetailsActivity trackingDetailsActivity2 = TrackingDetailsActivity.this;
trackingDetailsActivity2.showSnackBar(trackingDetailsActivity2.getResources().getString(R.string.noempoyeeexist));
return;
}
}
TrackingDetailsActivity trackingDetailsActivity3 = TrackingDetailsActivity.this;
trackingDetailsActivity3.showSnackBar(trackingDetailsActivity3.getResources().getString(R.string.readError));
}
}
private class UpdateReceiver extends BroadcastReceiver {
private UpdateReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.hasExtra("dataUpdated") && intent.getBooleanExtra("dataUpdated", false)) {
TrackingDetailsActivity.this.updateActivity();
}
}
}
}