use of com.foobnix.pdf.info.view.ScaledImageView in project LibreraReader by foobnix.
the class FileInformationDialog method showImage.
public static void showImage(Activity a, String path) {
final Dialog builder = new Dialog(a);
builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
builder.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
}
});
final ScaledImageView imageView = new ScaledImageView(a);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
builder.dismiss();
}
});
ImageLoader.getInstance().displayImage(IMG.toUrl(path, -2, Dips.screenWidth()), imageView, IMG.ExportOptions);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((int) (Dips.screenWidth() * 0.9), (int) (Dips.screenHeight() * 0.9));
builder.addContentView(imageView, params);
builder.show();
}
use of com.foobnix.pdf.info.view.ScaledImageView in project LibreraReader by foobnix.
the class EntryAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holderAll, final int position) {
final Entry entry = getItem(position);
final EntryViewHolder holder = (EntryViewHolder) holderAll;
final Context context = holder.parent.getContext();
if (TxtUtils.isNotEmpty(entry.title)) {
String trim = entry.title.trim();
if (TxtUtils.isNotEmpty(entry.year)) {
trim += " (" + entry.year + ")";
}
holder.title.setText("" + trim);
holder.title.setVisibility(View.VISIBLE);
} else {
holder.title.setVisibility(View.GONE);
}
String body = entry.content + entry.summary;
if (TxtUtils.isNotEmpty(body)) {
holder.content.setVisibility(View.VISIBLE);
String text = TxtUtils.replaceLast(body, "\n", "");
holder.content.setText(Html.fromHtml(text));
if (body.length() >= 200) {
holder.expand.setVisibility(View.VISIBLE);
holder.expand.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
holder.expand.setVisibility(View.GONE);
holder.content.setMaxLines(100);
}
});
} else {
holder.expand.setVisibility(View.GONE);
}
if (AppState.get().isInkMode) {
// holder.expand.setTextColor(Color.GRAY);
}
} else {
holder.content.setVisibility(View.GONE);
holder.expand.setVisibility(View.GONE);
}
if (entry.appState != null) {
holder.remove.setVisibility(View.VISIBLE);
holder.remove.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onRemoveLinkClickListener.onResultRecive(entry);
}
});
if (SamlibOPDS.isSamlibUrl(entry.homeUrl)) {
holder.remove.setVisibility(View.GONE);
}
} else {
holder.remove.setVisibility(View.GONE);
}
if (TxtUtils.isNotEmpty(entry.author)) {
holder.author.setText(entry.author);
holder.author.setVisibility(View.VISIBLE);
if (TxtUtils.isNotEmpty(entry.authorUrl)) {
holder.author.setTextColor(ContextCompat.getColor(context, R.color.tint_blue));
if (AppState.get().isUiTextColor) {
TintUtil.setUITextColor(holder.author, AppState.get().uiTextColor);
}
holder.author.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onLinkClickListener.onResultRecive(new Link(entry.authorUrl));
}
});
} else {
}
if (AppState.get().isInkMode) {
// holder.author.setTextColor(Color.GRAY);
}
} else {
holder.author.setVisibility(View.GONE);
}
if (TxtUtils.isNotEmpty(entry.category)) {
holder.category.setText(entry.category);
holder.category.setVisibility(View.VISIBLE);
} else {
holder.category.setVisibility(View.GONE);
}
holder.category.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
holder.links.removeAllViews();
holder.downloadLinks.removeAllViews();
holder.image.setVisibility(View.GONE);
String imgLink = "";
for (final Link link : entry.links) {
if (link.TYPE_LOGO.equals(link.type) || link.isThumbnail()) {
holder.image.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(link.href, holder.image, IMG.displayOPDSOptions);
if (AppState.get().isInkMode) {
// TintUtil.grayScaleImageView(holder.image);
}
} else if (link.isSearchLink()) {
LinearLayout l = new LinearLayout(context);
l.setOrientation(LinearLayout.HORIZONTAL);
l.setGravity(Gravity.CENTER_VERTICAL);
final EditText search = new EditText(context);
search.setTag(true);
search.setSingleLine();
search.setMinimumWidth(Dips.dpToPx(400));
search.setHint(R.string.search);
final ImageView button = new ImageView(context);
button.setMinimumWidth(Dips.dpToPx(42));
button.setImageResource(R.drawable.glyphicons_28_search);
TintUtil.setTintImageWithAlpha(button);
l.addView(search, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1.0f));
l.addView(button, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.0f));
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (TxtUtils.isNotEmpty(search.toString())) {
String encode = Urls.encode(search.getText().toString());
String replace = link.href.replace("{searchterms}", encode).replace("{searchTerms}", encode);
Link l = new Link(replace);
onLinkClickListener.onResultRecive(l);
Keyboards.close(search);
} else {
Toast.makeText(context, R.string.incorrect_value, Toast.LENGTH_SHORT).show();
}
}
});
EditTextHelper.enableKeyboardSearch(search, new Runnable() {
@Override
public void run() {
button.performClick();
}
});
holder.links.addView(l, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
} else if (link.isImageLink()) {
if (TxtUtils.isNotEmpty(imgLink)) {
if (link.rel.contains("thumbnail")) {
continue;
}
}
if (!link.href.equals(imgLink) && AppState.get().opdsLargeCovers) {
ScaledImageView img = new ScaledImageView(holder.parent.getContext());
img.setPadding(PD, PD, PD, PD);
ImageLoader.getInstance().displayImage(link.href, img, IMG.displayCacheMemoryDisc);
if (AppState.get().isInkMode) {
// TintUtil.grayScaleImageView(img);
}
holder.links.addView(img, new LinearLayout.LayoutParams(Dips.screenWidth() / 2, LayoutParams.WRAP_CONTENT));
imgLink = link.href;
img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FileInformationDialog.showImageHttpPath(context, link.href);
}
});
}
} else if (link.type == null || link.type.equals(Link.APPLICATION_ATOM_XML) || (link.type.contains(";profile") && link.title == null)) {
continue;
} else if (link.isWebLink() && TxtUtils.isEmpty(link.title)) {
continue;
} else if (link.isDisabled()) {
continue;
} else {
TextView t = new TextView(holder.parent.getContext());
t.setPadding(PD, PD, PD, PD);
t.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onLinkClickListener.onResultRecive(link);
}
});
t.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
holder.parent.performLongClick();
return false;
}
});
String downloadFormat = link.getDownloadDisplayFormat();
if (downloadFormat != null) {
t.setText(link.title != null ? link.title : downloadFormat.replace(".zip", ""));
t.setGravity(Gravity.CENTER);
t.setBackgroundResource(R.drawable.bg_border_blue_entry);
t.setMinimumWidth(Dips.dpToPx(40));
if (link.filePath != null) {
Drawable d = ContextCompat.getDrawable(context, R.drawable.glyphicons_2_book_open2);
TintUtil.setDrawableTint(d, t.getCurrentTextColor());
t.setCompoundDrawablePadding(Dips.dpToPx(6));
t.setCompoundDrawablesWithIntrinsicBounds(d, null, null, null);
t.setActivated(true);
}
android.widget.LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(0, 0, Dips.dpToPx(4), 0);
holder.downloadLinks.addView(t, lp);
} else {
t.setText(link.title != null ? link.title : link.type);
t.setTextColor(context.getResources().getColor(R.color.tint_blue));
if (AppState.get().isUiTextColor) {
TintUtil.setUITextColor(t, AppState.get().uiTextColor);
}
if (AppState.get().isInkMode) {
// t.setTextColor(Color.GRAY);
}
holder.links.addView(t);
}
}
}
bindItemClickAndLongClickListeners(holder.parent, entry);
}
use of com.foobnix.pdf.info.view.ScaledImageView in project LibreraReader by foobnix.
the class FileInformationDialog method showImageHttpPath.
public static void showImageHttpPath(Context a, String path) {
final Dialog builder = new Dialog(a);
builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
builder.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
}
});
final ScaledImageView imageView = new ScaledImageView(a);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
builder.dismiss();
}
});
ImageLoader.getInstance().displayImage(path, imageView, IMG.displayCacheMemoryDisc);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((int) (Dips.screenWidth() * 0.9), (int) (Dips.screenHeight() * 0.9));
builder.addContentView(imageView, params);
builder.show();
}
Aggregations