导航菜单

页面标题

页面副标题

Harvest v2.32 - TrackingDetailsActivity.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();
            }
        }
    }
}