@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { GCBaseListable item = (GCBaseListable) mListView.getAdapter().getItem(position); if (item.getType() == UriData.TYPE_IR_CODE) { getProvider().transmit(((IrCode) item).getSignal()); } else { UriData clone = mUriData.clone(); select(clone, item); ((GCProviderActivity) getActivity()).addFragment(clone); } }
private void select(UriData data, GCBaseListable listable) { data.targetType = UriData.TYPE_MANUFACTURER; if (listable != null) { if (listable.getType() == UriData.TYPE_MANUFACTURER) { data.manufacturer = (Manufacturer) listable; data.targetType = UriData.TYPE_DEVICE_TYPE; } else if (listable.getType() == UriData.TYPE_DEVICE_TYPE) { data.deviceType = (DeviceType) listable; data.targetType = UriData.TYPE_CODESET; } else if (listable.getType() == UriData.TYPE_CODESET) { data.codeset = (Codeset) listable; data.targetType = UriData.TYPE_IR_CODE; } } }