package uk.co.alt236.btlescan.ui.details.recyclerview.binder;
import android.content.Context;
import uk.co.alt236.bluetoothlelib.device.BluetoothService;
import uk.co.alt236.btlescan.R;
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.details.recyclerview.holder.DeviceInfoHolder;
import uk.co.alt236.btlescan.ui.details.recyclerview.model.DeviceInfoItem;
public class DeviceInfoBinder extends BaseViewBinder<DeviceInfoItem> {
public DeviceInfoBinder(Context context) {
super(context);
}
@Override
public void bind(BaseViewHolder<DeviceInfoItem> holder, DeviceInfoItem item) {
final DeviceInfoHolder actualHolder = (DeviceInfoHolder) holder;
actualHolder.getName().setText(item.getName());
actualHolder.getAddress().setText(item.getAddress());
actualHolder.getDeviceClass().setText(item.getBluetoothDeviceClassName());
actualHolder.getMajorClass().setText(item.getBluetoothDeviceMajorClassName());
actualHolder.getBondingState().setText(item.getBluetoothDeviceBondState());
actualHolder.getServices().setText(createSupportedDevicesString(item));
}
private String createSupportedDevicesString(DeviceInfoItem item) {
final String retVal;
if (item.getBluetoothDeviceKnownSupportedServices().isEmpty()) {
retVal = getContext().getString(R.string.no_known_services);
} else {
final StringBuilder sb = new StringBuilder();
for (final BluetoothService service : item.getBluetoothDeviceKnownSupportedServices()) {
if (sb.length() > 0) {
sb.append(", ");
}
sb.append(service);
}
retVal = sb.toString();
}
return retVal;
}
@Override
public boolean canBind(RecyclerViewItem item) {
return item instanceof DeviceInfoItem;
}
}