use of org.mozilla.focus.site.SiteItemViewHolder in project Rocket by mozilla-tw.
the class HistoryItemAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof SiteItemViewHolder) {
final Site item = (Site) mItems.get(position);
if (item != null) {
final SiteItemViewHolder siteVH = (SiteItemViewHolder) holder;
siteVH.rootView.setOnClickListener(this);
siteVH.textMain.setText(item.getTitle());
siteVH.textSecondary.setText(item.getUrl());
String favIconUri = item.getFavIconUri();
if (favIconUri != null) {
Glide.with(siteVH.imgFav.getContext()).asBitmap().load(favIconUri).into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
if (DimenUtils.iconTooBlurry(siteVH.imgFav.getResources(), resource.getWidth())) {
setImageViewWithDefaultBitmap(siteVH.imgFav, item.getUrl());
} else {
siteVH.imgFav.setImageBitmap(resource);
}
}
});
} else {
setImageViewWithDefaultBitmap(siteVH.imgFav, item.getUrl());
}
final PopupMenu popupMenu = new PopupMenu(mContext, siteVH.btnMore);
popupMenu.setOnMenuItemClickListener(menuItem -> {
if (menuItem.getItemId() == R.id.browsing_history_menu_delete) {
BrowsingHistoryManager.getInstance().delete(item.getId(), HistoryItemAdapter.this);
TelemetryWrapper.historyRemoveLink();
// Delete favicon
String uriString = item.getFavIconUri();
if (uriString == null) {
return false;
}
final URI fileUri;
try {
fileUri = new URI(uriString);
} catch (URISyntaxException e) {
e.printStackTrace();
return false;
}
final Runnable runnable = new FileUtils.DeleteFileRunnable(new File(fileUri));
ThreadUtils.postToBackgroundThread(runnable);
}
return false;
});
popupMenu.inflate(R.menu.menu_browsing_history_option);
siteVH.btnMore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupMenu.show();
TelemetryWrapper.showHistoryContextMenu();
}
});
}
} else if (holder instanceof DateItemViewHolder) {
final DateSection item = (DateSection) mItems.get(position);
if (item != null) {
final DateItemViewHolder dateVH = (DateItemViewHolder) holder;
dateVH.textDate.setText(DateUtils.getRelativeTimeSpanString(item.getTimestamp(), System.currentTimeMillis(), DateUtils.DAY_IN_MILLIS));
}
}
}
Aggregations