@Override public int getChildrenCount(int groupPosition) { ClassicSector sector = mCard.getSector(groupPosition); if (!(sector instanceof UnauthorizedClassicSector)) { List<ClassicBlock> blocks = sector.getBlocks(); return (blocks == null) ? 0 : blocks.size(); } else { return 0; } }
public OVChipTransitData(ClassicCard card) { mIndex = new OVChipIndex(card.getSector(39).readBlocks(11, 4)); OVChipParser parser = new OVChipParser(card, mIndex); mCredit = parser.getCredit(); mPreamble = parser.getPreamble(); mInfo = parser.getInfo(); List<OVChipTransaction> transactions = new ArrayList<OVChipTransaction>(Arrays.asList(parser.getTransactions())); Collections.sort(transactions, OVChipTransaction.ID_ORDER); List<OVChipTrip> trips = new ArrayList<OVChipTrip>(); for (int i = 0; i < transactions.size(); i++) { OVChipTransaction transaction = transactions.get(i); if (transaction.getValid() != 1) { continue; } if (i < (transactions.size() - 1)) { OVChipTransaction nextTransaction = transactions.get(i + 1); if (transaction.isSameTrip(nextTransaction)) { trips.add(new OVChipTrip(transaction, nextTransaction)); i++; continue; } } trips.add(new OVChipTrip(transaction)); } Collections.sort(trips, OVChipTrip.ID_ORDER); mTrips = trips.toArray(new OVChipTrip[trips.size()]); List<OVChipSubscription> subs = new ArrayList<OVChipSubscription>(); subs.addAll(Arrays.asList(parser.getSubscriptions())); Collections.sort( subs, new Comparator<OVChipSubscription>() { @Override public int compare(OVChipSubscription s1, OVChipSubscription s2) { return Integer.valueOf(s1.getId()).compareTo(s2.getId()); } }); mSubscriptions = subs.toArray(new OVChipSubscription[subs.size()]); }
@Override public boolean onListChildClick( ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { ClassicSector sector = mCard.getSector(groupPosition); ClassicBlock block = sector.getBlock(childPosition); String data = Utils.getHexString(block.getData(), ""); String sectorTitle = getString(R.string.sector_title_format, sector.getIndex()); String blockTitle = getString(R.string.block_title_format, block.getIndex()); new AlertDialog.Builder(getActivity()) .setTitle(String.format("%s, %s", sectorTitle, blockTitle)) .setPositiveButton(android.R.string.ok, null) .setMessage(data) .show(); return true; }
@Override public int getGroupCount() { return mCard.getSectors().size(); }
@Override public Object getChild(int groupPosition, int childPosition) { return mCard.getSector(groupPosition).getBlocks().get(childPosition); }
@Override public Object getGroup(int groupPosition) { return mCard.getSector(groupPosition); }