X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff..269195b3729c1bdc22e9053ee4ebca667ea8549d:/Android/folioreader/src/main/java/com/folioreader/ui/folio/adapter/HighlightAdapter.java diff --git a/Android/folioreader/src/main/java/com/folioreader/ui/folio/adapter/HighlightAdapter.java b/Android/folioreader/src/main/java/com/folioreader/ui/folio/adapter/HighlightAdapter.java new file mode 100755 index 0000000..9242747 --- /dev/null +++ b/Android/folioreader/src/main/java/com/folioreader/ui/folio/adapter/HighlightAdapter.java @@ -0,0 +1,176 @@ +package com.folioreader.ui.folio.adapter; + +import android.content.Context; +import android.support.v4.content.ContextCompat; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.RecyclerView; +import android.text.Html; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.folioreader.Config; +import com.folioreader.R; +import com.folioreader.model.HighlightImpl; +import com.folioreader.util.AppUtil; +import com.folioreader.util.UiUtil; +import com.folioreader.view.UnderlinedTextView; + +import java.util.List; + +/** + * @author gautam chibde on 16/6/17. + */ + +public class HighlightAdapter extends RecyclerView.Adapter { + private List highlights; + private HighLightAdapterCallback callback; + private Context context; + private Config config; + + public HighlightAdapter(Context context, List highlights, HighLightAdapterCallback callback, Config config) { + this.context = context; + this.highlights = highlights; + this.callback = callback; + this.config = config; + } + + @Override + public HighlightHolder onCreateViewHolder(ViewGroup parent, int viewType) { + return new HighlightHolder(LayoutInflater.from(parent.getContext()) + .inflate(R.layout.row_highlight, parent, false)); + } + + @Override + public void onBindViewHolder(final HighlightHolder holder, final int position) { + + holder.container.postDelayed(new Runnable() { + @Override + public void run() { + ((AppCompatActivity) context).runOnUiThread(new Runnable() { + @Override + public void run() { + holder.container.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,FrameLayout.LayoutParams.WRAP_CONTENT)); + } + }); + } + }, 10); + + holder.content.setText(Html.fromHtml(getItem(position).getContent())); + UiUtil.setBackColorToTextView(holder.content, + getItem(position).getType()); + holder.date.setText(AppUtil.formatDate(getItem(position).getDate())); + holder.container.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + callback.onItemClick(getItem(position)); + } + }); + holder.delete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + callback.deleteHighlight(getItem(position).getId()); + highlights.remove(position); + notifyDataSetChanged(); + + } + }); + holder.editNote.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + callback.editNote(getItem(position), position); + } + }); + if (getItem(position).getNote() != null) { + if (getItem(position).getNote().isEmpty()) { + holder.note.setVisibility(View.GONE); + } else { + holder.note.setVisibility(View.VISIBLE); + holder.note.setText(getItem(position).getNote()); + } + } else { + holder.note.setVisibility(View.GONE); + } + holder.container.postDelayed(new Runnable() { + @Override + public void run() { + final int height = holder.container.getHeight(); + ((AppCompatActivity) context).runOnUiThread(new Runnable() { + @Override + public void run() { + ViewGroup.LayoutParams params = + holder.swipeLinearLayout.getLayoutParams(); + params.height = height; + holder.swipeLinearLayout.setLayoutParams(params); + } + }); + } + }, 30); + if (config.isNightMode()) { + holder.container.setBackgroundColor(ContextCompat.getColor(context, + R.color.black)); + holder.note.setTextColor(ContextCompat.getColor(context, + R.color.white)); + holder.date.setTextColor(ContextCompat.getColor(context, + R.color.white)); + holder.content.setTextColor(ContextCompat.getColor(context, + R.color.white)); + } else { + holder.container.setBackgroundColor(ContextCompat.getColor(context, + R.color.white)); + holder.note.setTextColor(ContextCompat.getColor(context, + R.color.black)); + holder.date.setTextColor(ContextCompat.getColor(context, + R.color.black)); + holder.content.setTextColor(ContextCompat.getColor(context, + R.color.black)); + } + } + + private HighlightImpl getItem(int position) { + return highlights.get(position); + } + + @Override + public int getItemCount() { + return highlights.size(); + } + + public void editNote(String note, int position) { + highlights.get(position).setNote(note); + notifyDataSetChanged(); + } + + static class HighlightHolder extends RecyclerView.ViewHolder { + private UnderlinedTextView content; + private ImageView delete, editNote; + private TextView date; + private RelativeLayout container; + private TextView note; + private LinearLayout swipeLinearLayout; + + HighlightHolder(View itemView) { + super(itemView); + container = (RelativeLayout) itemView.findViewById(R.id.container); + swipeLinearLayout = (LinearLayout) itemView.findViewById(R.id.swipe_linear_layout); + content = (UnderlinedTextView) itemView.findViewById(R.id.utv_highlight_content); + delete = (ImageView) itemView.findViewById(R.id.iv_delete); + editNote = (ImageView) itemView.findViewById(R.id.iv_edit_note); + date = (TextView) itemView.findViewById(R.id.tv_highlight_date); + note = (TextView) itemView.findViewById(R.id.tv_note); + } + } + + public interface HighLightAdapterCallback { + void onItemClick(HighlightImpl highlightImpl); + + void deleteHighlight(int id); + + void editNote(HighlightImpl highlightImpl, int position); + } +}