package com.integreight.onesheeld.shields.fragments; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ExpandableListView; import com.integreight.onesheeld.R; import com.integreight.onesheeld.adapters.NfcNdefRecordsExpandableAdapter; import com.integreight.onesheeld.shields.ShieldFragmentParent; import com.integreight.onesheeld.shields.controller.NfcShield; import com.integreight.onesheeld.shields.controller.NfcShield.NFCEventHandler; import com.integreight.onesheeld.utils.customviews.OneSheeldTextView; import java.util.ArrayList; /** * Created by Mouso on 3/11/2015. */ public class NfcFragment extends ShieldFragmentParent<NfcFragment> { ExpandableListView nfcRecords; OneSheeldTextView cardDetails, noCard; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.nfc_shield_fragment_view, container, false); } @Override public void doOnViewCreated(View v, Bundle savedInstanceState) { nfcRecords = (ExpandableListView) v.findViewById(R.id.nfc_Records_list); cardDetails = new OneSheeldTextView(activity); cardDetails.setTextColor(getResources().getColor(R.color.textColorOnDark)); cardDetails.setTextSize(15); int tenDP = (int) (10 * getResources().getDisplayMetrics().density + .5f); cardDetails.setPadding(0, tenDP, 0, tenDP); nfcRecords.addHeaderView(cardDetails, null, false); noCard = (OneSheeldTextView) v.findViewById(R.id.nfc_no_card); nfcRecords.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { return true; } }); } @Override public void doOnStart() { ((NfcShield) getApplication().getRunningShields().get(getControllerTag())).setEventHandler(nfcEventHandler); } @Override public void doOnServiceConnected() { initializeFirmata(); } private void initializeFirmata() { if (getApplication().getRunningShields().get(getControllerTag()) == null) { getApplication().getRunningShields().put(getControllerTag(), new NfcShield(activity, getControllerTag())); } } @Override public void doOnResume() { ((NfcShield) getApplication().getRunningShields().get(getControllerTag())).showSettingsDialogIfNfcIsNotEnabled(); ((NfcShield) getApplication().getRunningShields().get(getControllerTag())).displayData(); } private NFCEventHandler nfcEventHandler = new NFCEventHandler() { @Override public void ReadNdef(final String id, final int maxSize, final int usedSize, final ArrayList<ArrayList<String>> data) { //handle data display if (canChangeUI() && uiHandler != null) uiHandler.post(new Runnable() { @Override public void run() { if (canChangeUI() && noCard != null && cardDetails != null) { noCard.setVisibility(View.GONE); cardDetails.setText(activity.getString(R.string.nfc_device_tag_id) + " : \t" + id); cardDetails.append("\n"); cardDetails.append(activity.getString(R.string.nfc_device_max_size) + " :\t" + String.valueOf(maxSize) + " " + activity.getString(R.string.nfc_device_bytes)); cardDetails.append("\n"); cardDetails.append(activity.getString(R.string.nfc_device_used_size)+" : " + String.valueOf(usedSize) + " " + activity.getString(R.string.nfc_device_bytes)); cardDetails.append("\n"); cardDetails.append(activity.getString(R.string.nfc_device_number_of_records) + " : " + String.valueOf(data.size()) + " " + activity.getString(R.string.nfc_device_records)); NfcNdefRecordsExpandableAdapter nfcNdefRecordsExpandableAdapter = new NfcNdefRecordsExpandableAdapter(activity, data); nfcRecords.setAdapter(nfcNdefRecordsExpandableAdapter); } } }); } }; }