Search in sources :

Example 1 with ScaledImageView

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();
}
Also used : OnDismissListener(android.content.DialogInterface.OnDismissListener) ScaledImageView(com.foobnix.pdf.info.view.ScaledImageView) ColorDrawable(android.graphics.drawable.ColorDrawable) DialogInterface(android.content.DialogInterface) Dialog(android.app.Dialog) AlertDialog(android.app.AlertDialog) RelativeLayout(android.widget.RelativeLayout) OnClickListener(android.view.View.OnClickListener) ScaledImageView(com.foobnix.pdf.info.view.ScaledImageView) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView)

Example 2 with ScaledImageView

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);
}
Also used : Context(android.content.Context) EditText(android.widget.EditText) LayoutParams(android.support.v7.widget.StaggeredGridLayoutManager.LayoutParams) ScaledImageView(com.foobnix.pdf.info.view.ScaledImageView) Drawable(android.graphics.drawable.Drawable) ScaledImageView(com.foobnix.pdf.info.view.ScaledImageView) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) Entry(com.foobnix.opds.Entry) OnLongClickListener(android.view.View.OnLongClickListener) OnClickListener(android.view.View.OnClickListener) TextView(android.widget.TextView) ScaledImageView(com.foobnix.pdf.info.view.ScaledImageView) ImageView(android.widget.ImageView) Link(com.foobnix.opds.Link) LinearLayout(android.widget.LinearLayout)

Example 3 with ScaledImageView

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();
}
Also used : OnDismissListener(android.content.DialogInterface.OnDismissListener) ScaledImageView(com.foobnix.pdf.info.view.ScaledImageView) ColorDrawable(android.graphics.drawable.ColorDrawable) DialogInterface(android.content.DialogInterface) Dialog(android.app.Dialog) AlertDialog(android.app.AlertDialog) RelativeLayout(android.widget.RelativeLayout) OnClickListener(android.view.View.OnClickListener) ScaledImageView(com.foobnix.pdf.info.view.ScaledImageView) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView)

Aggregations

View (android.view.View)3 OnClickListener (android.view.View.OnClickListener)3 ImageView (android.widget.ImageView)3 TextView (android.widget.TextView)3 ScaledImageView (com.foobnix.pdf.info.view.ScaledImageView)3 AlertDialog (android.app.AlertDialog)2 Dialog (android.app.Dialog)2 DialogInterface (android.content.DialogInterface)2 OnDismissListener (android.content.DialogInterface.OnDismissListener)2 ColorDrawable (android.graphics.drawable.ColorDrawable)2 RelativeLayout (android.widget.RelativeLayout)2 Context (android.content.Context)1 Drawable (android.graphics.drawable.Drawable)1 RecyclerView (android.support.v7.widget.RecyclerView)1 LayoutParams (android.support.v7.widget.StaggeredGridLayoutManager.LayoutParams)1 OnLongClickListener (android.view.View.OnLongClickListener)1 EditText (android.widget.EditText)1 LinearLayout (android.widget.LinearLayout)1 Entry (com.foobnix.opds.Entry)1 Link (com.foobnix.opds.Link)1