导航菜单

页面标题

页面副标题

Harvest v2.32 - EmployeeFormActivity.java 源代码

正在查看: Harvest v2.32 应用的 EmployeeFormActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.ufields.tracking;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.nfc.FormatException;
import android.nfc.NdefMessage;
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.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.google.android.material.snackbar.Snackbar;
import com.itextpdf.text.xml.xmp.XmpWriter;
import com.ufields.tracking.App.AppUtils;
import com.ufields.tracking.DataModels.EmployeeDataModel;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import kotlin.jvm.internal.ByteCompanionObject;

public class EmployeeFormActivity extends AppCompatActivity implements NfcAdapter.ReaderCallback {
    private static final String MIME_TEXT_PLAIN = "text/plain";
    private static final String TAG = "NfcDemo";

    @BindView(R.id.firstNameEF)
    EditText firstName;

    @BindView(R.id.lastNameEF)
    EditText lastName;

    @BindView(R.id.nfcCardEF)
    EditText nfcCard;

    @BindView(R.id.containerToolbar)
    LinearLayout snack;

    @BindView(R.id.toolbar)
    Toolbar toolbar;
    private TextView toolbarTitle;

    @BindView(R.id.writeButtonEF)
    Button writeButton;
    Tag myTag = null;
    private NfcAdapter mNfcAdapter = null;

    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_employee_form);
        ButterKnife.bind(this);
        EmployeeDataModel employeeDataModel = new EmployeeDataModel();
        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) {
                EmployeeFormActivity.this.m11lambda$onCreate$0$comufieldstrackingEmployeeFormActivity(view);
            }
        });
        this.writeButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                EmployeeFormActivity.this.m13lambda$onCreate$2$comufieldstrackingEmployeeFormActivity(view);
            }
        });
        employeeDataModel.setEmployeeId(getIntent().getStringExtra("employeeId"));
        employeeDataModel.setEmployeeFirstName(getIntent().getStringExtra("firstName"));
        employeeDataModel.setEmployeeLastName(getIntent().getStringExtra("lastName"));
        employeeDataModel.setNFC(getIntent().getStringExtra("NFC"));
        employeeDataModel.setEmployeePictureUrl(getIntent().getStringExtra("imageUrl"));
        employeeDataModel.setNIP(getIntent().getStringExtra("NIP"));
        updateActivity(employeeDataModel);
        if (employeeDataModel.getNFC() != null && employeeDataModel.getNFC().equalsIgnoreCase("")) {
            this.writeButton.setEnabled(false);
            this.writeButton.setBackgroundResource(R.drawable.round_button_grey);
        }
        NfcAdapter defaultAdapter = NfcAdapter.getDefaultAdapter(this);
        this.mNfcAdapter = defaultAdapter;
        if (defaultAdapter == null) {
            this.writeButton.setEnabled(false);
            this.writeButton.setBackgroundResource(R.drawable.round_button_grey);
            Toast.makeText((Context) this, (CharSequence) getResources().getString(R.string.nfcErrorMessage), 1).show();
        } else if (!defaultAdapter.isEnabled()) {
            this.writeButton.setEnabled(false);
            this.writeButton.setBackgroundResource(R.drawable.round_button_grey);
            Toast.makeText((Context) this, (CharSequence) getResources().getString(R.string.nfcErrorMessage2), 1).show();
        } else {
            this.writeButton.setEnabled(true);
            this.writeButton.setBackgroundResource(R.drawable.round_button);
        }
    }

    void m11lambda$onCreate$0$comufieldstrackingEmployeeFormActivity(View view) {
        startActivity(new Intent(getApplicationContext(), (Class<?>) AllEmployeesActivity.class));
        overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
        finish();
    }

    void m13lambda$onCreate$2$comufieldstrackingEmployeeFormActivity(View view) {
        if (this.myTag != null) {
            if (validateNfc()) {
                Snackbar action = Snackbar.make(this.snack, getResources().getString(R.string.writecontent) + this.nfcCard.getText().toString(), 0).setAction("OK", new View.OnClickListener() {
                    @Override
                    public final void onClick(View view2) {
                        EmployeeFormActivity.this.m12lambda$onCreate$1$comufieldstrackingEmployeeFormActivity(view2);
                    }
                });
                TextView textView = (TextView) action.getView().findViewById(R.id.snackbar_text);
                textView.setGravity(17);
                textView.setAllCaps(true);
                action.show();
                return;
            }
            return;
        }
        failureSound();
        showSnackBar(getResources().getString(R.string.writeError), "#D0021B");
    }

    void m12lambda$onCreate$1$comufieldstrackingEmployeeFormActivity(View view) {
        try {
            write(this.nfcCard.getText().toString(), this.myTag);
            successSound();
        } catch (FormatException unused) {
            failureSound();
            showSnackBar(getResources().getString(R.string.writeError), "#D0021B");
        } catch (IOException unused2) {
            failureSound();
            showSnackBar(getResources().getString(R.string.writeError), "#D0021B");
        }
    }

    public void showSnackBar(String str, String str2) {
        Snackbar make = Snackbar.make(this.snack, str, 0);
        View view = make.getView();
        view.setBackgroundColor(Color.parseColor(str2));
        TextView textView = (TextView) view.findViewById(R.id.snackbar_text);
        textView.setGravity(17);
        textView.setTextColor(Color.parseColor("#FFFFFF"));
        textView.setAllCaps(true);
        make.show();
    }

    private void successSound() {
        MediaPlayer create = MediaPlayer.create(getApplicationContext(), R.raw.nfcsuccess);
        create.setVolume(1.0f, 1.0f);
        if (create != null) {
            create.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public final void onCompletion(MediaPlayer mediaPlayer) {
                    EmployeeFormActivity.lambda$successSound$3(mediaPlayer);
                }
            });
            create.start();
        }
    }

    static void lambda$successSound$3(MediaPlayer mediaPlayer) {
        mediaPlayer.stop();
        mediaPlayer.reset();
        mediaPlayer.release();
    }

    public void failureSound() {
        MediaPlayer create = MediaPlayer.create(getApplicationContext(), R.raw.nfcfailure);
        create.setVolume(1.0f, 1.0f);
        if (create != null) {
            create.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public final void onCompletion(MediaPlayer mediaPlayer) {
                    EmployeeFormActivity.lambda$failureSound$4(mediaPlayer);
                }
            });
            create.start();
        }
    }

    static void lambda$failureSound$4(MediaPlayer mediaPlayer) {
        mediaPlayer.stop();
        mediaPlayer.reset();
        mediaPlayer.release();
    }

    private boolean validateNfc() {
        return !this.nfcCard.getText().toString().equalsIgnoreCase("");
    }

    private void updateActivity(EmployeeDataModel employeeDataModel) {
        this.firstName.setText(employeeDataModel.getEmployeeFirstName());
        this.lastName.setText(employeeDataModel.getEmployeeLastName());
        this.nfcCard.setText(employeeDataModel.getNFC());
    }

    private void write(String str, Tag tag) throws IOException, FormatException {
        NdefMessage ndefMessage = new NdefMessage(new NdefRecord[]{createRecord(str)});
        Ndef ndef = Ndef.get(tag);
        ndef.connect();
        ndef.writeNdefMessage(ndefMessage);
        ndef.close();
    }

    private NdefRecord createRecord(String str) {
        byte[] bytes = str.getBytes();
        byte[] bytes2 = "en".getBytes(StandardCharsets.US_ASCII);
        int length = bytes2.length;
        int length2 = bytes.length;
        int i = length + 1;
        byte[] bArr = new byte[i + length2];
        bArr[0] = (byte) length;
        System.arraycopy(bytes2, 0, bArr, 1, length);
        System.arraycopy(bytes, 0, bArr, i, length2);
        return new NdefRecord((short) 1, NdefRecord.RTD_TEXT, new byte[0], bArr);
    }

    public void onPause() {
        NfcAdapter nfcAdapter = this.mNfcAdapter;
        if (nfcAdapter != null && nfcAdapter.isEnabled()) {
            stopForegroundDispatch(this, this.mNfcAdapter);
        }
        super.onPause();
    }

    public void onResume() {
        super.onResume();
        NfcAdapter nfcAdapter = this.mNfcAdapter;
        if (nfcAdapter == null || !nfcAdapter.isEnabled()) {
            return;
        }
        setupForegroundDispatch(this, this, this.mNfcAdapter);
    }

    public void setupToolbar() {
        setSupportActionBar(this.toolbar);
        getSupportActionBar().setTitle("");
        this.toolbarTitle.setText(getResources().getString(R.string.employeeformtitle));
    }

    public void onBackPressed() {
        startActivity(new Intent(getApplicationContext(), (Class<?>) AllEmployeesActivity.class));
        overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
        finish();
    }

    @Override
    public void onTagDiscovered(Tag tag) {
        this.myTag = 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 (UnsupportedEncodingException 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) {
            if (str == null) {
                EmployeeFormActivity.this.failureSound();
                EmployeeFormActivity employeeFormActivity = EmployeeFormActivity.this;
                employeeFormActivity.showSnackBar(employeeFormActivity.getResources().getString(R.string.readError), "#D0021B");
            } else {
                EmployeeFormActivity.this.showSnackBar(EmployeeFormActivity.this.getResources().getString(R.string.readcontent) + str, "#7ED321");
            }
        }
    }
}