转换部分java代码

old
zlj 6 years ago
parent 44e6210c38
commit bf84559ef2
  1. 8
      app/src/main/java/com/novel/read/activity/NovelBookTypeListActivity.kt
  2. 20
      app/src/main/java/com/novel/read/activity/NovelMainActivity.kt
  3. 4
      app/src/main/java/com/novel/read/activity/NovelRankListActivity.kt
  4. 3
      app/src/main/java/com/novel/read/activity/NovelReadActivity.kt
  5. 28
      app/src/main/java/com/novel/read/activity/NovelSearchActivity.kt
  6. 9
      app/src/main/java/com/novel/read/activity/NovelSettingActivity.kt
  7. 188
      app/src/main/java/com/novel/read/adapter/BookAdapter.java
  8. 165
      app/src/main/java/com/novel/read/adapter/BookAdapter.kt
  9. 146
      app/src/main/java/com/novel/read/adapter/BookListAdapter.java
  10. 127
      app/src/main/java/com/novel/read/adapter/BookListAdapter.kt
  11. 85
      app/src/main/java/com/novel/read/adapter/EditRecommendAdapter.java
  12. 62
      app/src/main/java/com/novel/read/adapter/EditRecommendAdapter.kt
  13. 76
      app/src/main/java/com/novel/read/adapter/HistoryAdapter.java
  14. 54
      app/src/main/java/com/novel/read/adapter/HistoryAdapter.kt
  15. 73
      app/src/main/java/com/novel/read/adapter/HotAdapter.java
  16. 54
      app/src/main/java/com/novel/read/adapter/HotAdapter.kt
  17. 73
      app/src/main/java/com/novel/read/adapter/HumanAdapter.java
  18. 55
      app/src/main/java/com/novel/read/adapter/HumanAdapter.kt
  19. 81
      app/src/main/java/com/novel/read/adapter/LoveLyAdapter.java
  20. 59
      app/src/main/java/com/novel/read/adapter/LoveLyAdapter.kt
  21. 98
      app/src/main/java/com/novel/read/adapter/MarkAdapter.java
  22. 71
      app/src/main/java/com/novel/read/adapter/MarkAdapter.kt
  23. 72
      app/src/main/java/com/novel/read/adapter/PageStyleAdapter.java
  24. 54
      app/src/main/java/com/novel/read/adapter/PageStyleAdapter.kt
  25. 77
      app/src/main/java/com/novel/read/adapter/RankAdapter.java
  26. 55
      app/src/main/java/com/novel/read/adapter/RankAdapter.kt
  27. 146
      app/src/main/java/com/novel/read/adapter/RankListAdapter.java
  28. 126
      app/src/main/java/com/novel/read/adapter/RankListAdapter.kt
  29. 2
      app/src/main/java/com/novel/read/adapter/SearchAdapter.java
  30. 76
      app/src/main/java/com/novel/read/adapter/StackAdapter.java
  31. 61
      app/src/main/java/com/novel/read/adapter/StackAdapter.kt
  32. 31
      app/src/main/java/com/novel/read/adapter/ViewPageAdapter.java
  33. 22
      app/src/main/java/com/novel/read/adapter/ViewPageAdapter.kt
  34. 23
      app/src/main/java/com/novel/read/adapter/holder/MoreHolder.java
  35. 34
      app/src/main/java/com/novel/read/adapter/holder/MoreHolder.kt
  36. 13
      app/src/main/java/com/novel/read/fragment/BookFragment.kt
  37. 4
      app/src/main/java/com/novel/read/fragment/BookListFragment.kt
  38. 3
      app/src/main/java/com/novel/read/fragment/StackFragment.kt
  39. 2
      app/src/main/java/com/novel/read/model/db/dbManage/BookRepository.java
  40. 2
      app/src/main/java/com/novel/read/widget/dialog/ReadSettingDialog.kt
  41. 18
      app/src/main/res/layout/load_more_layout.xml
  42. 1
      app/src/main/res/values-night/strings.xml
  43. 1
      app/src/main/res/values-zh-rTW-night/strings.xml
  44. 1
      app/src/main/res/values-zh-rTW/strings.xml
  45. 1
      app/src/main/res/values/strings.xml

@ -21,7 +21,7 @@ class NovelBookTypeListActivity : NovelBaseActivity() {
private lateinit var mAdapter: BookListAdapter private lateinit var mAdapter: BookListAdapter
private var mCategoryId: String? = null private var mCategoryId: String? = null
private var mTitle: String? = null private var mTitle: String? = null
private var page = 1 private var page: Int = 1
private var loadSize: Int = 0 private var loadSize: Int = 0
override val layoutId: Int get() = R.layout.activity_book_type_list override val layoutId: Int get() = R.layout.activity_book_type_list
@ -39,11 +39,10 @@ class NovelBookTypeListActivity : NovelBaseActivity() {
mAdapter.setOnLoadMoreListener(object : OnLoadMoreListener { mAdapter.setOnLoadMoreListener(object : OnLoadMoreListener {
override fun onLoadMore() { override fun onLoadMore() {
if (mAdapter.isLoadingMore) { if (mAdapter.isLoadingMore) {
rlv_type_list.stopScroll()
} else { } else {
if (loadSize >= COMMENT_SIZE) { if (loadSize >= COMMENT_SIZE) {
mAdapter.isLoadingMore = true mAdapter.isLoadingMore = true
mList.add(SearchResp.BookBean())
mAdapter.notifyDataSetChanged() mAdapter.notifyDataSetChanged()
page++ page++
getData() getData()
@ -74,10 +73,9 @@ class NovelBookTypeListActivity : NovelBaseActivity() {
} else { } else {
loadSize = event.result!!.book.size loadSize = event.result!!.book.size
if (mAdapter.isLoadingMore) { if (mAdapter.isLoadingMore) {
mList.removeAt(mList.size - 1) mAdapter.isLoadingMore = false
mList.addAll(event.result!!.book) mList.addAll(event.result!!.book)
mAdapter.notifyDataSetChanged() mAdapter.notifyDataSetChanged()
mAdapter.isLoadingMore = false
} else { } else {
mList.clear() mList.clear()
mList.addAll(event.result!!.book) mList.addAll(event.result!!.book)

@ -27,10 +27,10 @@ import kotlinx.android.synthetic.main.activity_main.*
class NovelMainActivity : NovelBaseActivity() { class NovelMainActivity : NovelBaseActivity() {
private var mCurrentFrag: Fragment? = null private var mCurrentFrag: Fragment? = null
private var mMainFragment: BookFragment? = null private lateinit var mMainFragment: BookFragment
private var mRecommendFragment: RecommendFragment? = null private lateinit var mRecommendFragment: RecommendFragment
private var mStackFragment: StackFragment? = null private lateinit var mStackFragment: StackFragment
private var mMoreFragment: MoreFragment? = null private lateinit var mMoreFragment: MoreFragment
//记录用户首次点击返回键的时间 //记录用户首次点击返回键的时间
private var firstTime: Long = 0 private var firstTime: Long = 0
@ -55,19 +55,19 @@ class NovelMainActivity : NovelBaseActivity() {
bottom_bar.setOnNavigationItemSelectedListener { menuItem -> bottom_bar.setOnNavigationItemSelectedListener { menuItem ->
when (menuItem.itemId) { when (menuItem.itemId) {
R.id.tab_one -> { R.id.tab_one -> {
switchFragment(mMainFragment!!) switchFragment(mMainFragment)
return@setOnNavigationItemSelectedListener true return@setOnNavigationItemSelectedListener true
} }
R.id.tab_two -> { R.id.tab_two -> {
switchFragment(mRecommendFragment!!) switchFragment(mRecommendFragment)
return@setOnNavigationItemSelectedListener true return@setOnNavigationItemSelectedListener true
} }
R.id.tab_three -> { R.id.tab_three -> {
switchFragment(mStackFragment!!) switchFragment(mStackFragment)
return@setOnNavigationItemSelectedListener true return@setOnNavigationItemSelectedListener true
} }
R.id.tab_four -> { R.id.tab_four -> {
switchFragment(mMoreFragment!!) switchFragment(mMoreFragment)
return@setOnNavigationItemSelectedListener true return@setOnNavigationItemSelectedListener true
} }
} }
@ -75,7 +75,7 @@ class NovelMainActivity : NovelBaseActivity() {
} }
if (BookRepository.getInstance().collBooks.size > 0) { if (BookRepository.getInstance().collBooks.size > 0) {
switchFragment(mMainFragment!!) switchFragment(mMainFragment)
} else { } else {
bottom_bar.selectedItemId = R.id.tab_two bottom_bar.selectedItemId = R.id.tab_two
} }
@ -119,7 +119,7 @@ class NovelMainActivity : NovelBaseActivity() {
if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) { if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) {
if (!isVisible(bottom_bar)) { if (!isVisible(bottom_bar)) {
bottom_bar.visibility = View.VISIBLE bottom_bar.visibility = View.VISIBLE
mMainFragment!!.updateBook(UpdateBookEvent()) mMainFragment.updateBook(UpdateBookEvent())
} else { } else {
val secondTime = System.currentTimeMillis() val secondTime = System.currentTimeMillis()
if (secondTime - firstTime > 1000) { if (secondTime - firstTime > 1000) {

@ -53,7 +53,6 @@ class NovelRankListActivity : NovelBaseActivity() {
} else { } else {
if (loadSize >= COMMENT_SIZE) { if (loadSize >= COMMENT_SIZE) {
mAdapter.isLoadingMore = true mAdapter.isLoadingMore = true
mList.add(RankByUpdateResp.BookBean())
mAdapter.notifyDataSetChanged() mAdapter.notifyDataSetChanged()
page++ page++
getData() getData()
@ -74,10 +73,9 @@ class NovelRankListActivity : NovelBaseActivity() {
if (response.body() != null) { if (response.body() != null) {
loadSize = response.body()!!.book.size loadSize = response.body()!!.book.size
if (mAdapter.isLoadingMore) { if (mAdapter.isLoadingMore) {
mList.removeAt(mList.size - 1) mAdapter.isLoadingMore = false
mList.addAll(response.body()!!.book) mList.addAll(response.body()!!.book)
mAdapter.notifyDataSetChanged() mAdapter.notifyDataSetChanged()
mAdapter.isLoadingMore = false
} else { } else {
mList.clear() mList.clear()
mList.addAll(response.body()!!.book) mList.addAll(response.body()!!.book)

@ -308,8 +308,7 @@ class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListene
showToast(getString(R.string.sign_exist)) showToast(getString(R.string.sign_exist))
return@setOnClickListener return@setOnClickListener
} }
BookRepository.getInstance() BookRepository.getInstance().addSign(mBookId, mCurrentChapter!!.chapterId, mCurrentChapter!!.title)
.addSign(mBookId, mCurrentChapter!!.chapterId, mCurrentChapter!!.title)
updateMark() updateMark()
} }
} }

@ -150,19 +150,23 @@ class NovelSearchActivity : NovelBaseActivity() {
false false
} }
mHotAdapter.setOnItemClickListener { view, pos -> mHotAdapter.setOnItemClickListener(object :HotAdapter.OnItemClickListener{
mSearchAdapter.setHolderType(true) override fun onItemClick(view: View, pos: Int) {
refresh.visibility = View.VISIBLE mSearchAdapter.setHolderType(true)
tv_search.setText(mHotList[pos]) refresh.visibility = View.VISIBLE
saveKey() tv_search.setText(mHotList[pos])
} saveKey()
}
})
mHisAdapter.setOnItemClickListener { view, pos -> mHisAdapter.setOnItemClickListener(object :HistoryAdapter.OnItemClickListener{
mSearchAdapter.setHolderType(true) override fun onItemClick(view: View, pos: Int) {
refresh.visibility = View.VISIBLE mSearchAdapter.setHolderType(true)
tv_search.setText(mHisList[pos].key) refresh.visibility = View.VISIBLE
saveKey() tv_search.setText(mHisList[pos].key)
} saveKey()
}
})
mSearchAdapter.setOnItemClickListener { view, pos -> mSearchAdapter.setOnItemClickListener { view, pos ->
mSearchAdapter.setHolderType(true) mSearchAdapter.setHolderType(true)

@ -33,10 +33,15 @@ class NovelSettingActivity : NovelBaseActivity(), View.OnClickListener {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun initData() { override fun initData() {
tv_language.text = resources.getStringArray(R.array.setting_dialog_language_choice)[SpUtil.getIntValue(Constant.Language, 1)] tv_language.text =
resources.getStringArray(R.array.setting_dialog_language_choice)[SpUtil.getIntValue(
Constant.Language,
1
)]
tv_version.text = "V" + VersionUtil.getPackageName(this)!! tv_version.text = "V" + VersionUtil.getPackageName(this)!!
try { try {
val cacheSize = CleanCacheUtils.getInstance().getTotalCacheSize(this@NovelSettingActivity) val cacheSize =
CleanCacheUtils.getInstance().getTotalCacheSize(this@NovelSettingActivity)
tv_cache_num.text = cacheSize tv_cache_num.text = cacheSize
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()

@ -1,188 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.activity.NovelReadActivity;
import com.novel.read.model.db.CollBookBean;
import com.novel.read.utlis.GlideImageLoader;
import java.util.ArrayList;
import java.util.List;
public class BookAdapter extends RecyclerView.Adapter {
private List<CollBookBean> mList;
private Context mContext;
private final int VALUE_ITEM = 100; //正常item
private final int EMPTY_ITEM = 101; //空白item
private OnItemClickListener mClickListener;
private boolean mEdit;
public BookAdapter(List<CollBookBean> mList) {
this.mList = mList;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext == null) {
mContext = viewGroup.getContext();
}
View view;
if (i == VALUE_ITEM) {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book, viewGroup, false);
return new ViewHolder(view);
} else if (i == EMPTY_ITEM) {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_add_book, viewGroup, false);
return new EmptyHolder(view);
}
return null;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
if (viewHolder instanceof ViewHolder) {
if (mEdit) { //编辑模式
((ViewHolder) viewHolder).mIvCheck.setSelected(mList.get(i).isSelect());
((ViewHolder) viewHolder).mIvCheck.setVisibility(View.VISIBLE);
((ViewHolder) viewHolder).mTvBookName.setText(mList.get(i).getTitle());
((ViewHolder) viewHolder).mTvBookAuthor.setText(mList.get(i).getAuthor());
if (mList.get(i).isUpdate()) {
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.VISIBLE);
} else {
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.GONE);
}
GlideImageLoader.INSTANCE.displayCornerImage(mContext, mList.get(i).getCover(), ((ViewHolder) viewHolder).mIvBook);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
((ViewHolder) viewHolder).mIvCheck.setSelected(!mList.get(i).isSelect());
mList.get(i).setSelect(!mList.get(i).isSelect());
}
});
} else { //正常模式
((ViewHolder) viewHolder).mIvCheck.setVisibility(View.GONE);
if (mList.size() == i) { //最后的条目
((ViewHolder) viewHolder).mTvBookName.setText("");
((ViewHolder) viewHolder).mTvBookAuthor.setText("");
((ViewHolder) viewHolder).mIvBook.setImageResource(R.drawable.ic_book_add);
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.GONE);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mClickListener.onItemClick(view, i);
}
});
} else {
((ViewHolder) viewHolder).mTvBookName.setText(mList.get(i).getTitle());
((ViewHolder) viewHolder).mTvBookAuthor.setText(mList.get(i).getAuthor());
if (mList.get(i).isUpdate()) {
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.VISIBLE);
} else {
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.GONE);
}
GlideImageLoader.INSTANCE.displayCornerImage(mContext, mList.get(i).getCover(), ((ViewHolder) viewHolder).mIvBook);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mContext, NovelReadActivity.class);
intent.putExtra(NovelReadActivity.EXTRA_IS_COLLECTED, true);
intent.putExtra(NovelReadActivity.EXTRA_COLL_BOOK, mList.get(i));
mContext.startActivity(intent);
}
});
}
}
} else if (viewHolder instanceof EmptyHolder) { //空条目
((EmptyHolder) viewHolder).mBtnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mClickListener.onItemClick(view, i);
}
});
}
}
@Override
public int getItemCount() {
if (mList.size() == 0) {
return 1;
}
if (mEdit) {
return mList.size();
} else {
return mList.size() + 1;
}
}
@Override
public int getItemViewType(int position) {
if (mList == null || mList.size() == 0) {
return EMPTY_ITEM;
} else {
return VALUE_ITEM;
}
}
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView mIvBook;
TextView mTvBookName, mTvBookAuthor;
ImageView mIvCheck;
ImageView mIvGeng;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mIvBook = itemView.findViewById(R.id.iv_book);
mTvBookName = itemView.findViewById(R.id.tv_book_name);
mTvBookAuthor = itemView.findViewById(R.id.tv_book_author);
mIvCheck = itemView.findViewById(R.id.iv_check);
mIvGeng = itemView.findViewById(R.id.iv_geng);
}
}
static class EmptyHolder extends RecyclerView.ViewHolder {
Button mBtnAdd;
public EmptyHolder(@NonNull View itemView) {
super(itemView);
mBtnAdd = itemView.findViewById(R.id.btn_add);
}
}
public void setOnItemClickListener(OnItemClickListener mListener) {
this.mClickListener = mListener;
}
public interface OnItemClickListener {
void onItemClick(View view, int pos);
}
public void setEdit(boolean edit) { //开启编辑模式
mEdit = edit;
notifyDataSetChanged();
}
public List<CollBookBean> getSelectList() {
List<CollBookBean> collBookBeans = new ArrayList<>();
for (int i = 0; i < mList.size(); i++) {
if (mList.get(i).isSelect()) {
collBookBeans.add(mList.get(i));
}
}
return collBookBeans;
}
}

@ -0,0 +1,165 @@
package com.novel.read.adapter
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.activity.NovelReadActivity
import com.novel.read.model.db.CollBookBean
import com.novel.read.utlis.GlideImageLoader
import java.util.ArrayList
class BookAdapter(private val mList: List<CollBookBean>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var mContext: Context? = null
private var mClickListener: OnItemClickListener? = null
private var mEdit: Boolean = false
val selectList: List<CollBookBean>
get() {
val collBookBeans = ArrayList<CollBookBean>()
for (i in mList.indices) {
if (mList[i].isSelect) {
collBookBeans.add(mList[i])
}
}
return collBookBeans
}
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): RecyclerView.ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view: View
if (i == VALUE_ITEM) {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book, viewGroup, false)
return ViewHolder(view)
} else if (i == EMPTY_ITEM) {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_add_book, viewGroup, false)
return EmptyHolder(view)
}
throw IllegalArgumentException()
}
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) {
if (viewHolder is ViewHolder) {
if (mEdit) { //编辑模式
viewHolder.mIvCheck.isSelected = mList[i].isSelect
viewHolder.mIvCheck.visibility = View.VISIBLE
viewHolder.mTvBookName.text = mList[i].title
viewHolder.mTvBookAuthor.text = mList[i].author
if (mList[i].isUpdate) {
viewHolder.mIvGeng.visibility = View.VISIBLE
} else {
viewHolder.mIvGeng.visibility = View.GONE
}
GlideImageLoader.displayCornerImage(mContext!!, mList[i].cover, viewHolder.mIvBook)
viewHolder.itemView.setOnClickListener {
viewHolder.mIvCheck.isSelected = !mList[i].isSelect
mList[i].isSelect = !mList[i].isSelect
}
} else { //正常模式
viewHolder.mIvCheck.visibility = View.GONE
if (mList.size == i) { //最后的条目
viewHolder.mTvBookName.text = ""
viewHolder.mTvBookAuthor.text = ""
viewHolder.mIvBook.setImageResource(R.drawable.ic_book_add)
viewHolder.mIvGeng.visibility = View.GONE
viewHolder.itemView.setOnClickListener { view ->
mClickListener!!.onItemClick(
view,
i
)
}
} else {
viewHolder.mTvBookName.text = mList[i].title
viewHolder.mTvBookAuthor.text = mList[i].author
if (mList[i].isUpdate) {
viewHolder.mIvGeng.visibility = View.VISIBLE
} else {
viewHolder.mIvGeng.visibility = View.GONE
}
GlideImageLoader.displayCornerImage(
mContext!!,
mList[i].cover,
viewHolder.mIvBook
)
viewHolder.itemView.setOnClickListener {
val intent = Intent(mContext, NovelReadActivity::class.java)
intent.putExtra(NovelReadActivity.EXTRA_IS_COLLECTED, true)
intent.putExtra(NovelReadActivity.EXTRA_COLL_BOOK, mList[i])
mContext!!.startActivity(intent)
}
}
}
} else if (viewHolder is EmptyHolder) { //空条目
viewHolder.mBtnAdd.setOnClickListener { view -> mClickListener!!.onItemClick(view, i) }
}
}
override fun getItemCount(): Int {
if (mList.isEmpty()) {
return 1
}
return if (mEdit) {
mList.size
} else {
mList.size + 1
}
}
override fun getItemViewType(position: Int): Int {
return if (mList.isEmpty()) {
EMPTY_ITEM
} else {
VALUE_ITEM
}
}
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book)
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name)
var mTvBookAuthor: TextView = itemView.findViewById(R.id.tv_book_author)
var mIvCheck: ImageView = itemView.findViewById(R.id.iv_check)
var mIvGeng: ImageView = itemView.findViewById(R.id.iv_geng)
}
internal class EmptyHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mBtnAdd: Button = itemView.findViewById(R.id.btn_add)
}
fun setOnItemClickListener(mListener: OnItemClickListener) {
this.mClickListener = mListener
}
interface OnItemClickListener {
fun onItemClick(view: View, pos: Int)
}
fun setEdit(edit: Boolean) { //开启编辑模式
mEdit = edit
notifyDataSetChanged()
}
companion object {
private const val VALUE_ITEM = 100 //正常item
private const val EMPTY_ITEM = 101 //空白item
}
}

@ -1,146 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.activity.NovelBookDetailActivity;
import com.novel.read.adapter.holder.EmptyHolder;
import com.novel.read.adapter.holder.MoreHolder;
import com.novel.read.constants.Constant;
import com.novel.read.inter.OnLoadMoreListener;
import com.novel.read.model.protocol.SearchResp;
import com.novel.read.utlis.GlideImageLoader;
import java.util.List;
import static com.novel.read.constants.Constant.COMMENT_SIZE;
public class BookListAdapter extends RecyclerView.Adapter {
private List<SearchResp.BookBean> mList;
private Context mContext;
private final int VALUE_ITEM = 100; //正常item
private final int EMPTY_ITEM = 101; //空白item
private final int PROCESS_ITEM = 102;
private boolean loadingMore;
private int lastVisibleItem, totalItemCount;
private int visibleThreshold = 1;
private OnLoadMoreListener mOnLoadMoreListener;
public BookListAdapter(List<SearchResp.BookBean> mList, RecyclerView recyclerView) {
this.mList = mList;
if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
final LinearLayoutManager llMangager = (LinearLayoutManager) recyclerView.getLayoutManager();
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
totalItemCount = llMangager.getItemCount();
lastVisibleItem = llMangager.findLastVisibleItemPosition();
if (!loadingMore && totalItemCount == (lastVisibleItem + visibleThreshold) && totalItemCount >= (COMMENT_SIZE)) {
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener.onLoadMore();
}
}
}
});
}
}
public void setLoadingMore(boolean loadingMore) {
this.loadingMore = loadingMore;
}
public boolean isLoadingMore() {
return loadingMore;
}
public void setOnLoadMoreListener(OnLoadMoreListener listener) {
this.mOnLoadMoreListener = listener;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
if (mContext == null) {
mContext = viewGroup.getContext();
}
View view;
if (viewType == VALUE_ITEM) {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_list, viewGroup, false);
return new ViewHolder(view);
} else if (viewType == EMPTY_ITEM) {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_view, viewGroup, false);
return new EmptyHolder(view);
}else if (viewType==PROCESS_ITEM){
view = LayoutInflater.from(mContext).inflate(R.layout.load_more_layout, viewGroup, false);
return new MoreHolder(view);
}
return null;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
if (viewHolder instanceof ViewHolder){
SearchResp.BookBean bookBean = mList.get(i);
((ViewHolder) viewHolder).tvBookName.setText(bookBean.getTitle());
((ViewHolder) viewHolder).tvBookAuthor.setText(bookBean.getAuthor());
((ViewHolder) viewHolder).tvBookDescription.setText(bookBean.getDescription());
GlideImageLoader.INSTANCE.displayCornerImage(mContext,bookBean.getCover(),((ViewHolder) viewHolder).ivBook);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(mContext, NovelBookDetailActivity.class);
intent.putExtra(Constant.Bundle.BookId, bookBean.getId());
mContext.startActivity(intent);
}
});
}
}
@Override
public int getItemCount() {
if (mList.size() == 0) {
return 1;
}
return mList.size();
}
@Override
public int getItemViewType(int position) {
if (mList == null || mList.size() == 0) {
return EMPTY_ITEM;
} else if (mList.get(position) == null) {
return PROCESS_ITEM;
} else {
return VALUE_ITEM;
}
}
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView ivBook;
TextView tvBookName;
TextView tvBookAuthor;
TextView tvBookDescription;
public ViewHolder(@NonNull View itemView) {
super(itemView);
ivBook = itemView.findViewById(R.id.iv_book);
tvBookName = itemView.findViewById(R.id.tv_book_name);
tvBookAuthor = itemView.findViewById(R.id.tv_book_author);
tvBookDescription = itemView.findViewById(R.id.tv_book_description);
}
}
}

@ -0,0 +1,127 @@
package com.novel.read.adapter
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.activity.NovelBookDetailActivity
import com.novel.read.adapter.holder.EmptyHolder
import com.novel.read.adapter.holder.MoreHolder
import com.novel.read.constants.Constant
import com.novel.read.constants.Constant.COMMENT_SIZE
import com.novel.read.inter.OnLoadMoreListener
import com.novel.read.model.protocol.SearchResp
import com.novel.read.utlis.GlideImageLoader
import io.github.lizhangqu.coreprogress.ProgressHelper
class BookListAdapter(private val mList: List<SearchResp.BookBean>, recyclerView: RecyclerView) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var mContext: Context? = null
var isLoadingMore: Boolean = false
private var lastVisibleItem: Int = 0
private var totalItemCount: Int = 0
private val visibleThreshold = 1
private var mOnLoadMoreListener: OnLoadMoreListener? = null
init {
if (recyclerView.layoutManager is LinearLayoutManager) {
val llMangager = recyclerView.layoutManager as LinearLayoutManager?
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
totalItemCount = llMangager!!.itemCount
lastVisibleItem = llMangager.findLastVisibleItemPosition()
if (!isLoadingMore && totalItemCount == lastVisibleItem + visibleThreshold && totalItemCount >= COMMENT_SIZE) {
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener!!.onLoadMore()
}
}
}
})
}
}
fun setOnLoadMoreListener(listener: OnLoadMoreListener) {
this.mOnLoadMoreListener = listener
}
override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view: View
return when (viewType) {
VALUE_ITEM -> {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_list, viewGroup, false)
ViewHolder(view)
}
EMPTY_ITEM -> {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_view, viewGroup, false)
EmptyHolder(view)
}
PROCESS_ITEM -> {
view = LayoutInflater.from(mContext).inflate(R.layout.load_more_layout, viewGroup, false)
MoreHolder(view)
}
else -> throw IllegalArgumentException()
}
}
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) {
if (viewHolder is ViewHolder) {
val bookBean = mList[i]
viewHolder.tvBookName.text = bookBean.title
viewHolder.tvBookAuthor.text = bookBean.author
viewHolder.tvBookDescription.text = bookBean.description
GlideImageLoader.displayCornerImage(mContext!!, bookBean.cover!!, viewHolder.ivBook)
viewHolder.itemView.setOnClickListener {
val intent = Intent(mContext, NovelBookDetailActivity::class.java)
intent.putExtra(Constant.Bundle.BookId, bookBean.id)
mContext!!.startActivity(intent)
}
}else if (viewHolder is MoreHolder){
viewHolder.bindModule(isLoadingMore)
}
}
override fun getItemCount(): Int {
return if (mList.isEmpty()) {
1
} else mList.size + 1
}
override fun getItemViewType(position: Int): Int {
if (position == itemCount - 1) {
return PROCESS_ITEM
}
return when {
mList.isEmpty() -> EMPTY_ITEM
else -> VALUE_ITEM
}
}
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var ivBook: ImageView = itemView.findViewById(R.id.iv_book)
var tvBookName: TextView = itemView.findViewById(R.id.tv_book_name)
var tvBookAuthor: TextView = itemView.findViewById(R.id.tv_book_author)
var tvBookDescription: TextView = itemView.findViewById(R.id.tv_book_description)
}
companion object {
private const val VALUE_ITEM = 100 //正常item
private const val EMPTY_ITEM = 101 //空白item
private const val PROCESS_ITEM = 102
}
}

@ -1,85 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.activity.NovelBookDetailActivity;
import com.novel.read.constants.Constant;
import com.novel.read.model.protocol.RecommendListResp;
import com.novel.read.utlis.GlideImageLoader;
import java.util.List;
/**
* create by zlj on 2019/6/19
* describe:
*/
public class EditRecommendAdapter extends RecyclerView.Adapter<EditRecommendAdapter.ViewHolder> {
private List<RecommendListResp.ListBean> mList;
private Context mContext;
public EditRecommendAdapter(List<RecommendListResp.ListBean> mList) {
this.mList = mList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext==null){
mContext = viewGroup.getContext();
}
View view = LayoutInflater.from(mContext).inflate(R.layout.rlv_edit_recommend_item, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
RecommendListResp.ListBean listBean = mList.get(i);
viewHolder.mTvBookName.setText(listBean.getBook_title());
viewHolder.mTvAuthor.setText(listBean.getAuthor());
viewHolder.mTvDescription.setText(listBean.getDescription());
viewHolder.mTvHumanNum.setText(listBean.getHot());
viewHolder.mTvLoveNum.setText(listBean.getLike());
GlideImageLoader.INSTANCE.displayCornerImage(mContext,listBean.getBook_cover(),viewHolder.mIvBook);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(mContext, NovelBookDetailActivity.class);
intent.putExtra(Constant.Bundle.BookId, listBean.getBook_id());
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return mList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView mIvBook;
TextView mTvBookName;
TextView mTvAuthor;
TextView mTvDescription;
TextView mTvHumanNum;
TextView mTvLoveNum;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mIvBook = itemView.findViewById(R.id.iv_book);
mTvBookName = itemView.findViewById(R.id.tv_book_name);
mTvAuthor = itemView.findViewById(R.id.tv_book_author);
mTvDescription = itemView.findViewById(R.id.tv_book_description);
mTvHumanNum = itemView.findViewById(R.id.tv_human_num);
mTvLoveNum = itemView.findViewById(R.id.tv_love_look_num);
}
}
}

@ -0,0 +1,62 @@
package com.novel.read.adapter
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.activity.NovelBookDetailActivity
import com.novel.read.constants.Constant
import com.novel.read.model.protocol.RecommendListResp
import com.novel.read.utlis.GlideImageLoader
/**
* create by zlj on 2019/6/19
* describe:
*/
class EditRecommendAdapter(private val mList: List<RecommendListResp.ListBean>) : RecyclerView.Adapter<EditRecommendAdapter.ViewHolder>() {
private var mContext: Context? = null
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view = LayoutInflater.from(mContext)
.inflate(R.layout.rlv_edit_recommend_item, viewGroup, false)
return ViewHolder(view)
}
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
val listBean = mList[i]
viewHolder.mTvBookName.text = listBean.book_title
viewHolder.mTvAuthor.text = listBean.author
viewHolder.mTvDescription.text = listBean.description
viewHolder.mTvHumanNum.text = listBean.getHot()
viewHolder.mTvLoveNum.text = listBean.getLike()
GlideImageLoader.displayCornerImage(mContext!!, listBean.book_cover!!, viewHolder.mIvBook)
viewHolder.itemView.setOnClickListener {
val intent = Intent(mContext, NovelBookDetailActivity::class.java)
intent.putExtra(Constant.Bundle.BookId, listBean.book_id)
mContext!!.startActivity(intent)
}
}
override fun getItemCount(): Int {
return mList.size
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book)
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name)
var mTvAuthor: TextView = itemView.findViewById(R.id.tv_book_author)
var mTvDescription: TextView = itemView.findViewById(R.id.tv_book_description)
var mTvHumanNum: TextView = itemView.findViewById(R.id.tv_human_num)
var mTvLoveNum: TextView = itemView.findViewById(R.id.tv_love_look_num)
}
}

@ -1,76 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.model.db.SearchListTable;
import java.util.List;
/**
* create by zlj on 2019/6/17
* describe:
*/
public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHolder> {
private List<SearchListTable> mList;
private Context mContext;
protected OnItemClickListener mClickListener;
public HistoryAdapter(List<SearchListTable> mList) {
this.mList = mList;
}
static class ViewHolder extends RecyclerView.ViewHolder{
TextView mTvLabel;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mTvLabel = itemView.findViewById(R.id.tv_label);
}
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext == null) {
mContext = viewGroup.getContext();
}
View view = LayoutInflater.from(mContext).inflate(R.layout.item_label, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
viewHolder.mTvLabel.setText(mList.get(i).getKey());
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mClickListener.onItemClick(view,i);
}
});
}
@Override
public int getItemCount() {
return mList.size();
}
public void setOnItemClickListener(OnItemClickListener mListener) {
this.mClickListener = mListener;
}
public interface OnItemClickListener{
void onItemClick(View view, int pos);
}
}

@ -0,0 +1,54 @@
package com.novel.read.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.model.db.SearchListTable
/**
* create by zlj on 2019/6/17
* describe:
*/
class HistoryAdapter(private val mList: List<SearchListTable>) :
RecyclerView.Adapter<HistoryAdapter.ViewHolder>() {
private var mContext: Context? = null
private lateinit var mClickListener: OnItemClickListener
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mTvLabel: TextView = itemView.findViewById(R.id.tv_label)
}
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view = LayoutInflater.from(mContext).inflate(R.layout.item_label, viewGroup, false)
return ViewHolder(view)
}
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
viewHolder.mTvLabel.text = mList[i].key
viewHolder.itemView.setOnClickListener { view -> mClickListener.onItemClick(view, i) }
}
override fun getItemCount(): Int {
return mList.size
}
fun setOnItemClickListener(mListener: OnItemClickListener) {
this.mClickListener = mListener
}
interface OnItemClickListener {
fun onItemClick(view: View, pos: Int)
}
}

@ -1,73 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.constants.Constant;
import java.util.List;
/**
* create by 赵利君 on 2019/6/17
* describe:
*/
public class HotAdapter extends RecyclerView.Adapter<HotAdapter.ViewHolder> {
private List<String> mList;
private Context mContext;
protected OnItemClickListener mClickListener;
public HotAdapter(List<String> mList) {
this.mList = mList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext==null){
mContext = viewGroup.getContext();
}
View view = LayoutInflater.from(mContext).inflate(R.layout.item_label, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
viewHolder.mTvLabel.setText(mList.get(i));
viewHolder.mTvLabel.setBackgroundColor(Constant.tagColors[i]);
viewHolder.itemView.setOnClickListener(view -> mClickListener.onItemClick(view,i));
}
@Override
public int getItemCount() {
if (mList.size()>8){
return 8;
}
return mList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder{
TextView mTvLabel;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mTvLabel = itemView.findViewById(R.id.tv_label);
}
}
public void setOnItemClickListener(OnItemClickListener mListener) {
this.mClickListener = mListener;
}
public interface OnItemClickListener{
void onItemClick(View view, int pos);
}
}

@ -0,0 +1,54 @@
package com.novel.read.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.constants.Constant
/**
* create by 赵利君 on 2019/6/17
* describe:
*/
class HotAdapter(private val mList: List<String>) : RecyclerView.Adapter<HotAdapter.ViewHolder>() {
private var mContext: Context? = null
private lateinit var mClickListener: OnItemClickListener
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view = LayoutInflater.from(mContext).inflate(R.layout.item_label, viewGroup, false)
return ViewHolder(view)
}
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
viewHolder.mTvLabel.text = mList[i]
viewHolder.mTvLabel.setBackgroundColor(Constant.tagColors[i])
viewHolder.itemView.setOnClickListener { view -> mClickListener.onItemClick(view, i) }
}
override fun getItemCount(): Int {
return if (mList.size > 8) {
8
} else mList.size
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mTvLabel: TextView = itemView.findViewById(R.id.tv_label)
}
fun setOnItemClickListener(mListener: OnItemClickListener) {
this.mClickListener = mListener
}
interface OnItemClickListener {
fun onItemClick(view: View, pos: Int)
}
}

@ -1,73 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.activity.NovelBookDetailActivity;
import com.novel.read.constants.Constant;
import com.novel.read.model.protocol.RecommendListResp;
import com.novel.read.utlis.GlideImageLoader;
import java.util.List;
/**
* create by zlj on 2019/6/19
* describe:
*/
public class HumanAdapter extends RecyclerView.Adapter<HumanAdapter.ViewHolder> {
private List<RecommendListResp.ListBean> mList;
private Context mContext;
public HumanAdapter(List<RecommendListResp.ListBean> mList) {
this.mList = mList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext==null){
mContext = viewGroup.getContext();
}
View view = LayoutInflater.from(mContext).inflate(R.layout.rlv_human_item, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
viewHolder.mTvBookName.setText(mList.get(i).getBook_title());
viewHolder.mTvAuthor.setText(mList.get(i).getAuthor());
GlideImageLoader.INSTANCE.displayCornerImage(mContext,mList.get(i).getBook_cover(),viewHolder.mIvBook);
viewHolder.itemView.setOnClickListener(view -> {
Intent intent=new Intent(mContext, NovelBookDetailActivity.class);
intent.putExtra(Constant.Bundle.BookId, mList.get(i).getBook_id());
mContext.startActivity(intent);
});
}
@Override
public int getItemCount() {
return mList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView mIvBook;
TextView mTvBookName;
TextView mTvAuthor;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mIvBook = itemView.findViewById(R.id.iv_book);
mTvBookName = itemView.findViewById(R.id.tv_book_name);
mTvAuthor = itemView.findViewById(R.id.tv_book_author);
}
}
}

@ -0,0 +1,55 @@
package com.novel.read.adapter
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.activity.NovelBookDetailActivity
import com.novel.read.constants.Constant
import com.novel.read.model.protocol.RecommendListResp
import com.novel.read.utlis.GlideImageLoader
/**
* create by zlj on 2019/6/19
* describe:
*/
class HumanAdapter(private val mList: List<RecommendListResp.ListBean>) : RecyclerView.Adapter<HumanAdapter.ViewHolder>() {
private var mContext: Context? = null
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view = LayoutInflater.from(mContext).inflate(R.layout.rlv_human_item, viewGroup, false)
return ViewHolder(view)
}
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
viewHolder.mTvBookName.text = mList[i].book_title
viewHolder.mTvAuthor.text = mList[i].author
GlideImageLoader.displayCornerImage(mContext!!, mList[i].book_cover!!, viewHolder.mIvBook)
viewHolder.itemView.setOnClickListener { view ->
val intent = Intent(mContext, NovelBookDetailActivity::class.java)
intent.putExtra(Constant.Bundle.BookId, mList[i].book_id)
mContext!!.startActivity(intent)
}
}
override fun getItemCount(): Int {
return mList.size
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book)
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name)
var mTvAuthor: TextView = itemView.findViewById(R.id.tv_book_author)
}
}

@ -1,81 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.activity.NovelBookDetailActivity;
import com.novel.read.constants.Constant;
import com.novel.read.model.protocol.RecommendBookResp;
import com.novel.read.utlis.GlideImageLoader;
import java.util.List;
/**
* 猜你喜欢adapter
*/
public class LoveLyAdapter extends RecyclerView.Adapter {
private List<RecommendBookResp.BookBean> mList;
private Context mContext;
public LoveLyAdapter(List<RecommendBookResp.BookBean> mList) {
this.mList = mList;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext==null){
mContext = viewGroup.getContext();
}
View view;
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_lovely, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
if (viewHolder instanceof ViewHolder) {
RecommendBookResp.BookBean bookBean = mList.get(i);
GlideImageLoader.INSTANCE.displayCornerImage(mContext, bookBean.getCover(), ((ViewHolder) viewHolder).mIvBook);
((ViewHolder) viewHolder).mTvBookName.setText(bookBean.getTitle());
((ViewHolder) viewHolder).mTvBookAuthor.setText(mContext.getString(R.string.author_zhu,bookBean.getAuthor()));
((ViewHolder) viewHolder).mTvDescription.setText(bookBean.getDescription());
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(mContext, NovelBookDetailActivity.class);
intent.putExtra(Constant.Bundle.BookId, bookBean.getId());
mContext.startActivity(intent);
}
});
}
}
@Override
public int getItemCount() {
return mList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView mIvBook;
TextView mTvBookName;
TextView mTvBookAuthor;
TextView mTvDescription;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mIvBook = itemView.findViewById(R.id.iv_book);
mTvBookName = itemView.findViewById(R.id.tv_book_name);
mTvBookAuthor = itemView.findViewById(R.id.tv_book_author);
mTvDescription = itemView.findViewById(R.id.tv_book_description);
}
}
}

@ -0,0 +1,59 @@
package com.novel.read.adapter
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.activity.NovelBookDetailActivity
import com.novel.read.constants.Constant
import com.novel.read.model.protocol.RecommendBookResp
import com.novel.read.utlis.GlideImageLoader
/**
* 猜你喜欢adapter
*/
class LoveLyAdapter(private val mList: List<RecommendBookResp.BookBean>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var mContext: Context? = null
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): RecyclerView.ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view: View = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_lovely, viewGroup, false)
return ViewHolder(view)
}
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) {
if (viewHolder is ViewHolder) {
val bookBean = mList[i]
GlideImageLoader.displayCornerImage(mContext!!, bookBean.cover!!, viewHolder.mIvBook)
viewHolder.mTvBookName.text = bookBean.title
viewHolder.mTvBookAuthor.text =
mContext!!.getString(R.string.author_zhu, bookBean.author)
viewHolder.mTvDescription.text = bookBean.description
viewHolder.itemView.setOnClickListener {
val intent = Intent(mContext, NovelBookDetailActivity::class.java)
intent.putExtra(Constant.Bundle.BookId, bookBean.id)
mContext!!.startActivity(intent)
}
}
}
override fun getItemCount(): Int {
return mList.size
}
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book)
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name)
var mTvBookAuthor: TextView = itemView.findViewById(R.id.tv_book_author)
var mTvDescription: TextView = itemView.findViewById(R.id.tv_book_description)
}
}

@ -1,98 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.model.db.BookSignTable;
import com.novel.read.model.protocol.MarkResp;
import java.util.List;
public class MarkAdapter extends RecyclerView.Adapter{
private Context mContext;
private List<BookSignTable> mList;
private boolean edit;
public MarkAdapter(List<BookSignTable> mList) {
this.mList = mList;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext==null){
mContext = viewGroup.getContext();
}
View view;
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_mark, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
if (viewHolder instanceof ViewHolder){
if (edit){
((ViewHolder) viewHolder).mCheck.setVisibility(View.VISIBLE);
((ViewHolder) viewHolder).mCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
mList.get(i).setEdit(b);
}
});
}else {
((ViewHolder) viewHolder).mCheck.setVisibility(View.GONE);
}
((ViewHolder) viewHolder).mTvMark.setText(mList.get(i).getContent());
((ViewHolder) viewHolder).mCheck.setChecked(mList.get(i).getEdit());
}
}
@Override
public int getItemCount() {
return mList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder{
TextView mTvMark;
CheckBox mCheck;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mTvMark = itemView.findViewById(R.id.tvMarkItem);
mCheck = itemView.findViewById(R.id.checkbox);
}
}
public void setEdit(boolean edit){
this.edit = edit;
notifyDataSetChanged();
}
public boolean getEdit(){
return edit;
}
public String getSelectList() {
StringBuilder signs = new StringBuilder();
for (int i = 0; i < mList.size(); i++) {
if (mList.get(i).getEdit()) {
if (signs.toString().equals("")){
signs.append(mList.get(i).getArticleId());
}else {
signs.append(",").append(mList.get(i).getArticleId());
}
}
}
return String.valueOf(signs);
}
}

@ -0,0 +1,71 @@
package com.novel.read.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.CheckBox
import android.widget.CompoundButton
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.model.db.BookSignTable
import com.novel.read.model.protocol.MarkResp
class MarkAdapter(private val mList: List<BookSignTable>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var mContext: Context? = null
var edit: Boolean = false
set(edit) {
field = edit
notifyDataSetChanged()
}
val selectList: String
get() {
val signs = StringBuilder()
for (i in mList.indices) {
if (mList[i].edit) {
if (signs.toString() == "") {
signs.append(mList[i].articleId)
} else {
signs.append(",").append(mList[i].articleId)
}
}
}
return signs.toString()
}
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): RecyclerView.ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view: View = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_mark, viewGroup, false)
return ViewHolder(view)
}
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) {
if (viewHolder is ViewHolder) {
if (this.edit) {
viewHolder.mCheck.visibility = View.VISIBLE
viewHolder.mCheck.setOnCheckedChangeListener { compoundButton, b ->
mList[i].edit = b
}
} else {
viewHolder.mCheck.visibility = View.GONE
}
viewHolder.mTvMark.text = mList[i].content
viewHolder.mCheck.isChecked = mList[i].edit
}
}
override fun getItemCount(): Int {
return mList.size
}
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mTvMark: TextView = itemView.findViewById(R.id.tvMarkItem)
var mCheck: CheckBox = itemView.findViewById(R.id.checkbox)
}
}

@ -1,72 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.mango.mangolib.event.EventManager;
import com.novel.read.R;
import com.novel.read.widget.page.PageLoader;
import com.novel.read.widget.page.PageStyle;
import java.util.List;
public class PageStyleAdapter extends RecyclerView.Adapter<PageStyleAdapter.PageHolder> {
private List<Drawable> mList;
private Context mContext;
private int currentChecked;
private PageLoader mPageLoader;
public PageStyleAdapter(List<Drawable> mList, PageLoader mPageLoader) {
this.mList = mList;
this.mPageLoader = mPageLoader;
}
@NonNull
@Override
public PageHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext==null){
mContext = viewGroup.getContext();
}
View view = LayoutInflater.from(mContext).inflate(R.layout.item_read_bg, viewGroup, false);
return new PageHolder(view);
}
@Override
public void onBindViewHolder(@NonNull PageHolder pageHolder, int i) {
pageHolder.mReadBg.setBackground(mList.get(i));
pageHolder.mIvChecked.setVisibility(View.GONE);
if (currentChecked == i){
pageHolder.mIvChecked.setVisibility(View.VISIBLE);
}
pageHolder.itemView.setOnClickListener(view -> {
currentChecked = i;
notifyDataSetChanged();
mPageLoader.setPageStyle(PageStyle.values()[i]);
});
}
public void setPageStyleChecked(PageStyle pageStyle){
currentChecked = pageStyle.ordinal();
}
@Override
public int getItemCount() {
return mList.size();
}
static class PageHolder extends RecyclerView.ViewHolder{
private View mReadBg;
private ImageView mIvChecked;
public PageHolder(@NonNull View itemView) {
super(itemView);
mReadBg = itemView.findViewById(R.id.read_bg_view);
mIvChecked = itemView.findViewById(R.id.read_bg_iv_checked);
}
}
}

@ -0,0 +1,54 @@
package com.novel.read.adapter
import android.content.Context
import android.graphics.drawable.Drawable
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
import com.mango.mangolib.event.EventManager
import com.novel.read.R
import com.novel.read.widget.page.PageLoader
import com.novel.read.widget.page.PageStyle
class PageStyleAdapter(val mList: List<Drawable>, private val mPageLoader: PageLoader) :
RecyclerView.Adapter<PageStyleAdapter.PageHolder>() {
private var mContext: Context? = null
private var currentChecked: Int = 0
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): PageHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view = LayoutInflater.from(mContext).inflate(R.layout.item_read_bg, viewGroup, false)
return PageHolder(view)
}
override fun onBindViewHolder(pageHolder: PageHolder, i: Int) {
pageHolder.mReadBg.background = mList[i]
pageHolder.mIvChecked.visibility = View.GONE
if (currentChecked == i) {
pageHolder.mIvChecked.visibility = View.VISIBLE
}
pageHolder.itemView.setOnClickListener {
currentChecked = i
notifyDataSetChanged()
mPageLoader.setPageStyle(PageStyle.values()[i])
}
}
fun setPageStyleChecked(pageStyle: PageStyle) {
currentChecked = pageStyle.ordinal
}
override fun getItemCount(): Int {
return mList.size
}
class PageHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val mReadBg: View = itemView.findViewById(R.id.read_bg_view)
val mIvChecked: ImageView = itemView.findViewById(R.id.read_bg_iv_checked)
}
}

@ -1,77 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.activity.NovelBookDetailActivity;
import com.novel.read.constants.Constant;
import com.novel.read.model.protocol.RecommendListResp;
import com.novel.read.utlis.GlideImageLoader;
import java.util.List;
/**
* create by 赵利君 on 2019/6/20
* describe:
*/
public class RankAdapter extends RecyclerView.Adapter<RankAdapter.ViewHolder>{
private List<RecommendListResp.ListBean> mList;
private Context mContext;
public RankAdapter(List<RecommendListResp.ListBean> mList) {
this.mList = mList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext==null){
mContext = viewGroup.getContext();
}
View view = LayoutInflater.from(mContext).inflate(R.layout.rlv_human_item, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
viewHolder.mTvBookName.setText(mList.get(i).getBook_title());
viewHolder.mTvAuthor.setText(mList.get(i).getAuthor());
GlideImageLoader.INSTANCE.displayCornerImage(mContext,mList.get(i).getBook_cover(),viewHolder.mIvBook);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(mContext, NovelBookDetailActivity.class);
intent.putExtra(Constant.Bundle.BookId, mList.get(i).getBook_id());
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return mList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView mIvBook;
TextView mTvBookName;
TextView mTvAuthor;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mIvBook = itemView.findViewById(R.id.iv_book);
mTvBookName = itemView.findViewById(R.id.tv_book_name);
mTvAuthor = itemView.findViewById(R.id.tv_book_author);
}
}
}

@ -0,0 +1,55 @@
package com.novel.read.adapter
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.activity.NovelBookDetailActivity
import com.novel.read.constants.Constant
import com.novel.read.model.protocol.RecommendListResp
import com.novel.read.utlis.GlideImageLoader
/**
* create by zlj on 2019/6/20
* describe:
*/
class RankAdapter(private val mList: List<RecommendListResp.ListBean>) : RecyclerView.Adapter<RankAdapter.ViewHolder>() {
private var mContext: Context? = null
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view = LayoutInflater.from(mContext).inflate(R.layout.rlv_human_item, viewGroup, false)
return ViewHolder(view)
}
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
viewHolder.mTvBookName.text = mList[i].book_title
viewHolder.mTvAuthor.text = mList[i].author
GlideImageLoader.displayCornerImage(mContext!!, mList[i].book_cover!!, viewHolder.mIvBook)
viewHolder.itemView.setOnClickListener {
val intent = Intent(mContext, NovelBookDetailActivity::class.java)
intent.putExtra(Constant.Bundle.BookId, mList[i].book_id)
mContext!!.startActivity(intent)
}
}
override fun getItemCount(): Int {
return mList.size
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book)
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name)
var mTvAuthor: TextView = itemView.findViewById(R.id.tv_book_author)
}
}

@ -1,146 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.activity.NovelBookDetailActivity;
import com.novel.read.adapter.holder.EmptyHolder;
import com.novel.read.adapter.holder.MoreHolder;
import com.novel.read.constants.Constant;
import com.novel.read.inter.OnLoadMoreListener;
import com.novel.read.model.protocol.RankByUpdateResp;
import com.novel.read.utlis.GlideImageLoader;
import java.util.List;
import static com.novel.read.constants.Constant.COMMENT_SIZE;
public class RankListAdapter extends RecyclerView.Adapter {
private List<RankByUpdateResp.BookBean> mList;
private Context mContext;
private final int VALUE_ITEM = 100; //正常item
private final int EMPTY_ITEM = 101; //空白item
private final int PROCESS_ITEM = 102;
private boolean loadingMore;
private int lastVisibleItem, totalItemCount;
private int visibleThreshold = 1;
private OnLoadMoreListener mOnLoadMoreListener;
public RankListAdapter(List<RankByUpdateResp.BookBean> mList, RecyclerView recyclerView) {
this.mList = mList;
if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
final LinearLayoutManager llMangager = (LinearLayoutManager) recyclerView.getLayoutManager();
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
totalItemCount = llMangager.getItemCount();
lastVisibleItem = llMangager.findLastVisibleItemPosition();
if (!loadingMore && totalItemCount == (lastVisibleItem + visibleThreshold) && totalItemCount >= (COMMENT_SIZE)) {
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener.onLoadMore();
}
}
}
});
}
}
public void setLoadingMore(boolean loadingMore) {
this.loadingMore = loadingMore;
}
public boolean isLoadingMore() {
return loadingMore;
}
public void setOnLoadMoreListener(OnLoadMoreListener listener) {
this.mOnLoadMoreListener = listener;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
if (mContext == null) {
mContext = viewGroup.getContext();
}
View view;
if (viewType == VALUE_ITEM) {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_list, viewGroup, false);
return new ViewHolder(view);
} else if (viewType == EMPTY_ITEM) {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_view, viewGroup, false);
return new EmptyHolder(view);
}else if (viewType==PROCESS_ITEM){
view = LayoutInflater.from(mContext).inflate(R.layout.load_more_layout, viewGroup, false);
return new MoreHolder(view);
}
return null;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
if (viewHolder instanceof ViewHolder){
RankByUpdateResp.BookBean bookBean = mList.get(i);
((ViewHolder) viewHolder).tvBookName.setText(bookBean.getTitle());
((ViewHolder) viewHolder).tvBookAuthor.setText(bookBean.getAuthor());
((ViewHolder) viewHolder).tvBookDescription.setText(bookBean.getDescription());
GlideImageLoader.INSTANCE.displayCornerImage(mContext,bookBean.getCover(),((ViewHolder) viewHolder).ivBook);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(mContext, NovelBookDetailActivity.class);
intent.putExtra(Constant.Bundle.BookId, bookBean.getId());
mContext.startActivity(intent);
}
});
}
}
@Override
public int getItemCount() {
if (mList.size() == 0) {
return 1;
}
return mList.size();
}
@Override
public int getItemViewType(int position) {
if (mList == null || mList.size() == 0) {
return EMPTY_ITEM;
} else if (mList.get(position).getId() == 0) {
return PROCESS_ITEM;
} else {
return VALUE_ITEM;
}
}
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView ivBook;
TextView tvBookName;
TextView tvBookAuthor;
TextView tvBookDescription;
public ViewHolder(@NonNull View itemView) {
super(itemView);
ivBook = itemView.findViewById(R.id.iv_book);
tvBookName = itemView.findViewById(R.id.tv_book_name);
tvBookAuthor = itemView.findViewById(R.id.tv_book_author);
tvBookDescription = itemView.findViewById(R.id.tv_book_description);
}
}
}

@ -0,0 +1,126 @@
package com.novel.read.adapter
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.activity.NovelBookDetailActivity
import com.novel.read.adapter.holder.EmptyHolder
import com.novel.read.adapter.holder.MoreHolder
import com.novel.read.constants.Constant
import com.novel.read.inter.OnLoadMoreListener
import com.novel.read.model.protocol.RankByUpdateResp
import com.novel.read.utlis.GlideImageLoader
import com.novel.read.constants.Constant.COMMENT_SIZE
class RankListAdapter( val mList: List<RankByUpdateResp.BookBean>, recyclerView: RecyclerView) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private lateinit var mContext: Context
var isLoadingMore: Boolean = false
private var lastVisibleItem: Int = 0
private var totalItemCount: Int = 0
private val visibleThreshold = 1
private var mOnLoadMoreListener: OnLoadMoreListener? = null
init {
if (recyclerView.layoutManager is LinearLayoutManager) {
val llMangager = recyclerView.layoutManager as LinearLayoutManager?
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
totalItemCount = llMangager!!.itemCount
lastVisibleItem = llMangager.findLastVisibleItemPosition()
if (!isLoadingMore && totalItemCount == lastVisibleItem + visibleThreshold && totalItemCount >= COMMENT_SIZE) {
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener!!.onLoadMore()
}
}
}
})
}
}
fun setOnLoadMoreListener(listener: OnLoadMoreListener) {
this.mOnLoadMoreListener = listener
}
override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
mContext = viewGroup.context
val view: View
when (viewType) {
VALUE_ITEM -> {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_list, viewGroup, false)
return ViewHolder(view)
}
EMPTY_ITEM -> {
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_view, viewGroup, false)
return EmptyHolder(view)
}
PROCESS_ITEM -> {
view = LayoutInflater.from(mContext).inflate(R.layout.load_more_layout, viewGroup, false)
return MoreHolder(view)
}
}
throw IllegalArgumentException()
}
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) {
if (viewHolder is ViewHolder) {
val bookBean = mList[i]
viewHolder.tvBookName.text = bookBean.title
viewHolder.tvBookAuthor.text = bookBean.author
viewHolder.tvBookDescription.text = bookBean.description
GlideImageLoader.displayCornerImage(mContext, bookBean.cover, viewHolder.ivBook)
viewHolder.itemView.setOnClickListener {
val intent = Intent(mContext, NovelBookDetailActivity::class.java)
intent.putExtra(Constant.Bundle.BookId, bookBean.id)
mContext.startActivity(intent)
}
}else if (viewHolder is MoreHolder){
viewHolder.bindModule(isLoadingMore)
}
}
override fun getItemCount(): Int {
return if (mList.isEmpty()) {
1
} else mList.size + 1
}
override fun getItemViewType(position: Int): Int {
if (position == itemCount - 1) {
return PROCESS_ITEM
}
return when {
mList.isEmpty() -> EMPTY_ITEM
else -> VALUE_ITEM
}
}
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var ivBook: ImageView = itemView.findViewById(R.id.iv_book)
var tvBookName: TextView = itemView.findViewById(R.id.tv_book_name)
var tvBookAuthor: TextView = itemView.findViewById(R.id.tv_book_author)
var tvBookDescription: TextView = itemView.findViewById(R.id.tv_book_description)
}
companion object {
private const val VALUE_ITEM = 100 //正常item
private const val EMPTY_ITEM = 101 //空白item
private const val PROCESS_ITEM = 102
}
}

@ -32,7 +32,7 @@ public class SearchAdapter extends RecyclerView.Adapter {
private final int BOOK_ITEM = 102; //书本item private final int BOOK_ITEM = 102; //书本item
private final int EMPTY_ITEM = 101; //空白item private final int EMPTY_ITEM = 101; //空白item
private boolean book = false; private boolean book = false;
protected OnItemClickListener mClickListener; private OnItemClickListener mClickListener;
private final int PROCESS_ITEM = 103; //加载更多 private final int PROCESS_ITEM = 103; //加载更多
private boolean loadingMore; private boolean loadingMore;

@ -1,76 +0,0 @@
package com.novel.read.adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R;
import com.novel.read.activity.NovelBookTypeListActivity;
import com.novel.read.constants.Constant;
import com.novel.read.model.protocol.CategoryTypeResp;
import com.novel.read.utlis.GlideImageLoader;
import java.util.List;
public class StackAdapter extends RecyclerView.Adapter {
private List<CategoryTypeResp.CategoryBean> mList;
private Context mContext;
public StackAdapter(List<CategoryTypeResp.CategoryBean> mList) {
this.mList = mList;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (mContext == null) {
mContext = viewGroup.getContext();
}
View view;
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_type, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
if (viewHolder instanceof ViewHolder) {
String input = mList.get(i).getTitle();
String regex = "(.{2})";
input = input.replaceAll(regex, "$1\n");
((ViewHolder) viewHolder).mTvType.setText(input);
viewHolder.itemView.setOnClickListener(view -> {
Intent intent = new Intent(mContext, NovelBookTypeListActivity.class);
intent.putExtra(Constant.Bundle.CategoryId, String.valueOf(mList.get(i).getId()));
intent.putExtra(Constant.Bundle.mTitle, mList.get(i).getTitle());
mContext.startActivity(intent);
});
GlideImageLoader.INSTANCE.displayCornerImage(mContext, mList.get(i).getCover(), ((ViewHolder) viewHolder).mIvType, R.drawable.ic_type_default);
}
}
@Override
public int getItemCount() {
return mList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView mIvType;
TextView mTvType;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mIvType = itemView.findViewById(R.id.iv_book);
mTvType = itemView.findViewById(R.id.tv_book_name);
}
}
}

@ -0,0 +1,61 @@
package com.novel.read.adapter
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
import com.novel.read.activity.NovelBookTypeListActivity
import com.novel.read.constants.Constant
import com.novel.read.model.protocol.CategoryTypeResp
import com.novel.read.utlis.GlideImageLoader
class StackAdapter(private val mList: List<CategoryTypeResp.CategoryBean>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var mContext: Context? = null
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): RecyclerView.ViewHolder {
if (mContext == null) {
mContext = viewGroup.context
}
val view: View = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_type, viewGroup, false)
return ViewHolder(view)
}
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) {
if (viewHolder is ViewHolder) {
var input = mList[i].title
val regex = "(.{2})"
input = input.replace(regex.toRegex(), "$1\n")
viewHolder.mTvType.text = input
viewHolder.itemView.setOnClickListener { view ->
val intent = Intent(mContext, NovelBookTypeListActivity::class.java)
intent.putExtra(Constant.Bundle.CategoryId, mList[i].id.toString())
intent.putExtra(Constant.Bundle.mTitle, mList[i].title)
mContext!!.startActivity(intent)
}
GlideImageLoader.displayCornerImage(
mContext!!,
mList[i].cover!!,
viewHolder.mIvType,
R.drawable.ic_type_default
)
}
}
override fun getItemCount(): Int {
return mList.size
}
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var mIvType: ImageView = itemView.findViewById(R.id.iv_book)
var mTvType: TextView = itemView.findViewById(R.id.tv_book_name)
}
}

@ -1,31 +0,0 @@
package com.novel.read.adapter;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import java.util.List;
/**
* Created by Administrator on 2017/2/24.
*/
public class ViewPageAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
public ViewPageAdapter(FragmentManager fm, List<Fragment> fragmentList) {
super(fm);
this.fragmentList = fragmentList;
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}

@ -0,0 +1,22 @@
package com.novel.read.adapter
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
/**
* Created by Administrator on 2017/2/24.
*/
class ViewPageAdapter(fm: FragmentManager, private val fragmentList: List<Fragment>) :
FragmentPagerAdapter(fm) {
override fun getItem(position: Int): Fragment {
return fragmentList[position]
}
override fun getCount(): Int {
return fragmentList.size
}
}

@ -1,23 +0,0 @@
package com.novel.read.adapter.holder;
import android.view.View;
import androidx.recyclerview.widget.RecyclerView;
/**
* @author: LiJun 390057892@qq.com
* @date: 2018/4/4 9:28
*/
public class MoreHolder extends RecyclerView.ViewHolder{
public MoreHolder(View itemView) {
super(itemView);
}
public void bindModule(){
}
}

@ -0,0 +1,34 @@
package com.novel.read.adapter.holder
import android.view.View
import android.widget.ProgressBar
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.novel.read.R
/**
* @author: LiJun 390057892@qq.com
* @date: 2018/4/4 9:28
*/
class MoreHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val mProgressBar: ProgressBar = itemView.findViewById(R.id.progressBar)
private val mTvName: TextView = itemView.findViewById(R.id.tv_name)
private val mTvEnd: TextView = itemView.findViewById(R.id.tv_end)
fun bindModule(loadMore: Boolean) {
if (loadMore) {
mTvName.visibility = View.VISIBLE
mProgressBar.visibility = View.VISIBLE
mTvEnd.visibility = View.GONE
} else {
mTvName.visibility = View.GONE
mProgressBar.visibility = View.GONE
mTvEnd.visibility = View.VISIBLE
}
}
}

@ -135,16 +135,17 @@ class BookFragment : NovelBaseFragment() {
Log.e("count", "setOnClick: $count") Log.e("count", "setOnClick: $count")
} }
} }
activity!!.showToast( getString(R.string.delete_success)) activity!!.showToast(getString(R.string.delete_success))
EventManager.instance.postEvent(HideBottomBarEvent(false)) EventManager.instance.postEvent(HideBottomBarEvent(false))
updateBook(UpdateBookEvent()) updateBook(UpdateBookEvent())
} }
mAdapter.setOnItemClickListener { _, _ -> mAdapter.setOnItemClickListener(object : BookAdapter.OnItemClickListener {
EventManager.instance.postEvent( override fun onItemClick(view: View, pos: Int) {
SwitchFragmentEvent() EventManager.instance.postEvent(SwitchFragmentEvent())
) }
} })
} }

@ -54,7 +54,6 @@ class BookListFragment : NovelBaseFragment() {
} else { } else {
if (loadSize >= COMMENT_SIZE) { if (loadSize >= COMMENT_SIZE) {
mAdapter.isLoadingMore = true mAdapter.isLoadingMore = true
mList.add(RankByUpdateResp.BookBean())
mAdapter.notifyDataSetChanged() mAdapter.notifyDataSetChanged()
page++ page++
getData() getData()
@ -76,10 +75,9 @@ class BookListFragment : NovelBaseFragment() {
if (response.body() != null) { if (response.body() != null) {
loadSize = response.body()!!.book.size loadSize = response.body()!!.book.size
if (mAdapter.isLoadingMore) { if (mAdapter.isLoadingMore) {
mList.removeAt(mList.size - 1) mAdapter.isLoadingMore = false
mList.addAll(response.body()!!.book) mList.addAll(response.body()!!.book)
mAdapter.notifyDataSetChanged() mAdapter.notifyDataSetChanged()
mAdapter.isLoadingMore = false
} else { } else {
mList.clear() mList.clear()
mList.addAll(response.body()!!.book) mList.addAll(response.body()!!.book)

@ -22,7 +22,7 @@ import java.util.*
class StackFragment : NovelBaseFragment() { class StackFragment : NovelBaseFragment() {
private lateinit var mAdapter: StackAdapter private lateinit var mAdapter: StackAdapter
private var mList: MutableList<CategoryTypeResp.CategoryBean> =ArrayList() private var mList: MutableList<CategoryTypeResp.CategoryBean> = ArrayList()
override fun getLayoutId(): Int { override fun getLayoutId(): Int {
return R.layout.fragment_stack return R.layout.fragment_stack
@ -33,7 +33,6 @@ class StackFragment : NovelBaseFragment() {
rlv_book_type.layoutManager = GridLayoutManager(activity, 2) rlv_book_type.layoutManager = GridLayoutManager(activity, 2)
mAdapter = StackAdapter(mList) mAdapter = StackAdapter(mList)
rlv_book_type.adapter = mAdapter rlv_book_type.adapter = mAdapter
} }
override fun initData() { override fun initData() {

@ -317,7 +317,7 @@ public class BookRepository {
*/ */
public void addSign(String bookId, String articleId, String content) { public void addSign(String bookId, String articleId, String content) {
BookSignTable bookSignTable = new BookSignTable(bookId, articleId, content); BookSignTable bookSignTable = new BookSignTable(bookId, articleId, content);
bookSignTable.saveOrUpdate(); bookSignTable.save();
} }
/** /**

@ -84,7 +84,7 @@ class ReadSettingDialog(mActivity: Activity, private var mPageLoader: PageLoader
getDrawable(R.color.read_bg_five) getDrawable(R.color.read_bg_five)
) )
mPageStyleAdapter = PageStyleAdapter(listOf(*drawables), mPageLoader) mPageStyleAdapter = PageStyleAdapter(listOf(*drawables) as List<Drawable>, mPageLoader)
read_setting_rv_bg.layoutManager = GridLayoutManager(context, 4) read_setting_rv_bg.layoutManager = GridLayoutManager(context, 4)
read_setting_rv_bg.adapter = mPageStyleAdapter read_setting_rv_bg.adapter = mPageStyleAdapter

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp"> android:layout_height="50dp">
@ -12,16 +13,29 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginStart="114dp" /> android:layout_marginStart="114dp"
tools:ignore="RtlHardcoded"
android:visibility="gone"/>
<TextView <TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_toEndOf="@+id/progressBar" android:layout_toEndOf="@+id/progressBar"
android:layout_toRightOf="@+id/progressBar" android:layout_toRightOf="@+id/progressBar"
android:gravity="center" android:gravity="center"
android:text="@string/loading_more" /> android:text="@string/loading_more"
tools:ignore="RtlHardcoded"
android:visibility="gone"/>
<TextView
android:id="@+id/tv_end"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/load_end"
tools:ignore="RtlHardcoded" />
</RelativeLayout> </RelativeLayout>

@ -156,4 +156,5 @@
<string name="download_load_all">已缓存全部章节</string> <string name="download_load_all">已缓存全部章节</string>
<string name="download_progress">%1$d/%2$d</string> <string name="download_progress">%1$d/%2$d</string>
<string name="download_chapter_scope">(%1$d-%2$d章)</string> <string name="download_chapter_scope">(%1$d-%2$d章)</string>
<string name="load_end">已经到底了</string>
</resources> </resources>

@ -153,5 +153,6 @@
<string name="download_load_all">以緩存全部章節</string> <string name="download_load_all">以緩存全部章節</string>
<string name="download_progress">%1$d/%2$d</string> <string name="download_progress">%1$d/%2$d</string>
<string name="download_chapter_scope">(%1$d-%2$d章)</string> <string name="download_chapter_scope">(%1$d-%2$d章)</string>
<string name="load_end">已经到底了</string>
</resources> </resources>

@ -155,5 +155,6 @@
<string name="download_load_all">以緩存全部章節</string> <string name="download_load_all">以緩存全部章節</string>
<string name="download_progress">%1$d/%2$d</string> <string name="download_progress">%1$d/%2$d</string>
<string name="download_chapter_scope">(%1$d-%2$d章)</string> <string name="download_chapter_scope">(%1$d-%2$d章)</string>
<string name="load_end">已经到底了</string>
</resources> </resources>

@ -158,4 +158,5 @@
<string name="download_load_all">已缓存全部章节</string> <string name="download_load_all">已缓存全部章节</string>
<string name="download_progress">%1$d/%2$d</string> <string name="download_progress">%1$d/%2$d</string>
<string name="download_chapter_scope">(%1$d-%2$d章)</string> <string name="download_chapter_scope">(%1$d-%2$d章)</string>
<string name="load_end">已经到底了</string>
</resources> </resources>

Loading…
Cancel
Save