package uk.co.alt236.btlescan.ui.main.recyclerview.binder; import android.content.Context; import android.view.View; import uk.co.alt236.bluetoothlelib.device.beacon.ibeacon.IBeaconDevice; import uk.co.alt236.btlescan.R; import uk.co.alt236.btlescan.ui.common.Navigation; import uk.co.alt236.btlescan.ui.common.recyclerview.BaseViewBinder; import uk.co.alt236.btlescan.ui.common.recyclerview.BaseViewHolder; import uk.co.alt236.btlescan.ui.common.recyclerview.RecyclerViewItem; import uk.co.alt236.btlescan.ui.main.recyclerview.holder.IBeaconHolder; import uk.co.alt236.btlescan.ui.main.recyclerview.model.IBeaconItem; import uk.co.alt236.btlescan.util.Constants; public class IBeaconBinder extends BaseViewBinder<IBeaconItem> { private final Navigation navigation; public IBeaconBinder(Context context, Navigation navigation) { super(context); this.navigation = navigation; } @Override public void bind(BaseViewHolder<IBeaconItem> holder, IBeaconItem item) { final IBeaconHolder actualHolder = (IBeaconHolder) holder; final IBeaconDevice device = item.getDevice(); final String accuracy = Constants.DOUBLE_TWO_DIGIT_ACCURACY.format(device.getAccuracy()); actualHolder.getIbeaconMajor().setText(String.valueOf(device.getMajor())); actualHolder.getIbeaconMinor().setText(String.valueOf(device.getMinor())); actualHolder.getIbeaconTxPower().setText(String.valueOf(device.getCalibratedTxPower())); actualHolder.getIbeaconUUID().setText(device.getUUID()); actualHolder.getIbeaconDistance().setText( getContext().getString(R.string.formatter_meters, accuracy)); actualHolder.getIbeaconDistanceDescriptor().setText(device.getDistanceDescriptor().toString()); CommonBinding.bind(getContext(), actualHolder, device); actualHolder.getView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { navigation.openDetailsActivity(device); } }); } @Override public boolean canBind(RecyclerViewItem item) { return item instanceof IBeaconItem; } }