private String getSearchHint(UriData data) { if (data.targetType == UriData.TYPE_MANUFACTURER) { return getString(R.string.db_search_hint_manufacturers); } else if (data.targetType == UriData.TYPE_IR_CODE) { return getString(R.string.db_search_hint_buttons); } else { return getString(R.string.db_search_hint_custom, data.getFullyQualifiedName(" ")); } }
@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 queryServer(boolean showDialog) { mListView.setAdapter(null); if (showDialog) showDialog(); if (mConnector != null) mConnector.cancelQuery(); mConnector = new DBConnector(getActivity(), this); mConnector.setOnDataReceivedListener(this); mConnector.query(mUriData.clone()); }
@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { setHasOptionsMenu(true); setCurrentType(mUriData.targetType); View rootView = inflater.inflate(R.layout.fragment_listable, container, false); mListView = (ListView) rootView.findViewById(R.id.lvElements); mListView.setOnItemClickListener(this); mListView.setOnItemLongClickListener(this); mConnector = new DBConnector(getActivity(), this); // Adapter stuff if (mCreated) { mListView.setAdapter(mAdapter); mAdapter.restoreOriginalDataSet(); } else if (mUriData.isAvailableInCache(getActivity())) { queryServer(false); } else { queryServer(true); } explainSaveRemote(); explainSelectCodesets(); String title = mUriData.getFullyQualifiedName(" > "); if (title == null) { title = getString(R.string.db_select_manufacturer); } getActivity().setTitle(title); mCreated = true; return rootView; }
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; } } }
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_db_refresh: mUriData.removeFromCache(getActivity()); queryServer(true); return true; case R.id.menu_db_save: if (mData != null) { String name = mUriData.manufacturer.Manufacturer + " " + mUriData.deviceType.DeviceType; Remote remote = IrCode.toRemote(getActivity(), name, (IrCode[]) mData); getProvider().saveRemote(remote); } return true; } return false; }