@Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); if (type == ROW_SEARCH || type == ROW_SUGGEST) { SearchEntryViewHolder viewHolder = null; if (convertView == null || !(convertView.getTag() instanceof SearchEntryViewHolder)) { convertView = getInflater().inflate(R.layout.awesomebar_suggestion_row, getListView(), false); viewHolder = new SearchEntryViewHolder(); viewHolder.suggestionView = (FlowLayout) convertView.findViewById(R.id.suggestion_layout); viewHolder.iconView = (ImageView) convertView.findViewById(R.id.suggestion_icon); viewHolder.userEnteredView = (LinearLayout) convertView.findViewById(R.id.suggestion_user_entered); viewHolder.userEnteredTextView = (TextView) convertView.findViewById(R.id.suggestion_text); convertView.setTag(viewHolder); } else { viewHolder = (SearchEntryViewHolder) convertView.getTag(); } bindSearchEngineView(mSearchEngines.get(getEngineIndex(position)), viewHolder); } else { AwesomeEntryViewHolder viewHolder = null; if (convertView == null || !(convertView.getTag() instanceof AwesomeEntryViewHolder)) { convertView = getInflater().inflate(R.layout.awesomebar_row, null); viewHolder = new AwesomeEntryViewHolder(); viewHolder.titleView = (TextView) convertView.findViewById(R.id.title); viewHolder.urlView = (TextView) convertView.findViewById(R.id.url); viewHolder.faviconView = (ImageView) convertView.findViewById(R.id.favicon); viewHolder.bookmarkIconView = (ImageView) convertView.findViewById(R.id.bookmark_icon); convertView.setTag(viewHolder); } else { viewHolder = (AwesomeEntryViewHolder) convertView.getTag(); } position -= getSuggestEngineCount(); Cursor cursor = getCursor(); if (!cursor.moveToPosition(position)) throw new IllegalStateException("Couldn't move cursor to position " + position); updateTitle(viewHolder.titleView, cursor); updateUrl(viewHolder.urlView, cursor); updateBookmarkIcon(viewHolder.bookmarkIconView, cursor); displayFavicon(viewHolder); } return convertView; }
@Override public View getChildView( int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { AwesomeEntryViewHolder viewHolder = null; if (convertView == null) { convertView = getInflater().inflate(R.layout.awesomebar_row, null); viewHolder = new AwesomeEntryViewHolder(); viewHolder.titleView = (TextView) convertView.findViewById(R.id.title); viewHolder.urlView = (TextView) convertView.findViewById(R.id.url); viewHolder.faviconView = (ImageView) convertView.findViewById(R.id.favicon); viewHolder.bookmarkIconView = (ImageView) convertView.findViewById(R.id.bookmark_icon); convertView.setTag(viewHolder); } else { viewHolder = (AwesomeEntryViewHolder) convertView.getTag(); } HistoryListAdapter adapter = getCursorAdapter(); if (adapter == null) return null; @SuppressWarnings("unchecked") Map<String, Object> historyItem = (Map<String, Object>) adapter.getChild(groupPosition, childPosition); String title = (String) historyItem.get(URLColumns.TITLE); String url = (String) historyItem.get(URLColumns.URL); if (TextUtils.isEmpty(title)) title = url; viewHolder.titleView.setText(title); viewHolder.urlView.setText(url); byte[] b = (byte[]) historyItem.get(URLColumns.FAVICON); Bitmap favicon = null; if (b != null) { Bitmap bitmap = BitmapFactory.decodeByteArray(b, 0, b.length); if (bitmap != null && bitmap.getWidth() > 0 && bitmap.getHeight() > 0) { favicon = Favicons.getInstance().scaleImage(bitmap); } } updateFavicon(viewHolder.faviconView, favicon); Integer bookmarkId = (Integer) historyItem.get(Combined.BOOKMARK_ID); Integer display = (Integer) historyItem.get(Combined.DISPLAY); // The bookmark id will be 0 (null in database) when the url // is not a bookmark. Reading list items are irrelevant in history // tab. We should never show any sign or them. int visibility = (bookmarkId != 0 && display != Combined.DISPLAY_READER ? View.VISIBLE : View.GONE); viewHolder.bookmarkIconView.setVisibility(visibility); viewHolder.bookmarkIconView.setImageResource(R.drawable.ic_awesomebar_star); return convertView; }