正在查看: Harvest v2.32 应用的 EmployeeFormActivity.java JAVA 源代码文件
本页面展示 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");
}
}
}
}