pda/zhuike/.svn/pristine/30/30742c7f821a3eb8bbead6772b6...

896 lines
31 KiB
Plaintext
Raw Normal View History

2024-02-06 22:23:29 +08:00
package com.novelbook.android.Fragments;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomSheetDialog;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
/*import com.androidquery.callback.AQuery2;
import com.novelbook.android.AD.toutiao.TTAdManagerHolder;
import com.novelbook.android.BuildConfig;*/
import com.novelbook.android.Main2Activity;
import com.novelbook.android.R;
import com.novelbook.android.db.Chapter;
import com.novelbook.android.db.DownloadTask;
import com.novelbook.android.db.Novel;
import com.novelbook.android.db.SiteRule;
import com.novelbook.android.filechooser.FileChooserActivity;
import com.novelbook.android.netsubscribe.BookSubscribe;
import com.novelbook.android.netutils.HttpMethods;
import com.novelbook.android.netutils.NetUtil;
import com.novelbook.android.netutils.OnSuccessAndFaultListener;
import com.novelbook.android.netutils.OnSuccessAndFaultSub;
import com.novelbook.android.utils.CommonUtil;
import com.novelbook.android.utils.Config;
import com.novelbook.android.utils.Constants;
import com.novelbook.android.utils.FileUtils;
import com.novelbook.android.utils.Fileutil;
import com.novelbook.android.utils.GsonUtil;
import com.novelbook.android.utils.ImageUtil;
import com.novelbook.android.utils.MyImageLoader;
import com.novelbook.android.utils.OnItemClickListener;
import com.novelbook.android.adapter.BookListAdapter;
import com.umeng.analytics.MobclickAgent;
import org.json.JSONObject;
import org.litepal.LitePal;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
public class Fragment_Shelf extends BasicFragment {
public static final String TAG = Fragment_Shelf.class.getSimpleName();
private boolean[] flag;//此处添加一个boolean类型的数组
private boolean isSelectAll = true;
private MyImageLoader loader = new MyImageLoader();
@BindView(R.id.llShelfBottom)
LinearLayout llShelfBottom;
@BindView(R.id.id_recyclerview)
RecyclerView mRecyclerView;
// private List<Novel> mDatas;
private BookListAdapter mAdapter;
List<Novel> lstUpdate = new ArrayList<Novel>();
private List<Novel> bookLists;
// private ShelfAdapter adapter;
private String noveIds;
BottomSheetDialog bottomSheetDialog;
@BindView(R.id.banner_container)
FrameLayout mBannerContainer;
private Config config ;
public Fragment_Shelf() {
// Required empty public constructor
}
public static Fragment_Shelf newInstance(String param1, String param2) {
Fragment_Shelf fragment = new Fragment_Shelf();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
private void loadNovelsOnShelf() {
Log.d(TAG, String.format("db count info: chapters %s,novels %s,downtask %s,siterule %s,maxsize %s",
LitePal.count(Chapter.class), LitePal.count(Novel.class),LitePal.count(DownloadTask.class),LitePal.count(SiteRule.class)
,Fileutil.formatFileSize( LitePal.getDatabase().getMaximumSize())
));
/* try{
throw new Exception("show trace");
}catch (Exception e){
Log.e(TAG, "loadNovelsOnShelf: ",e);
}*/
bookLists = Novel.getNovelsOnShelf();
noveIds = "";
int i=0;
for (Novel novel : bookLists) {
if (novel.isFinished() || novel.isLocalBook() || novel.isUpdated() && (new Date().getTime() - novel.getLastVisit() > 1*3600*1000 ) ) {
//if(!novel.getName().equals("剑来"))
continue;
}
if(i>Constants.MAX_SHELF_CNT){
break;
}
noveIds += novel.getNovelId() + ",";
i++;
}
}
void test(int maxAge) {
String url = "http://xiaoshuofenxiang.com/api/r/need-update";
Request request = new Request.Builder().url(url) // .header("User-Agent", "OkHttp Example")
.removeHeader("Pragma")
.header("Cache-Control", "public, max-age=" + maxAge)
.build();
if (maxAge == -1) {
request = new Request.Builder().url(url).build();
}
HttpMethods.getOkClient().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
ResponseBody body = response.body();
Log.d(TAG, "onResponse:test " + body.string());
handler.sendEmptyMessage(1);
}
});
}
@Override
protected int getLayoutRes() {
return R.layout.fragment_fragment__shelf;
}
/**
* to get updated info from server,TODO: put it in service ,scheduled
*/
private void getUpdatedData() {
loadNovelsOnShelf();
List<Integer> novelIds;
OnSuccessAndFaultListener successAndFaultListener = new OnSuccessAndFaultListener() {
@Override
public void onSuccess(String result) {
// mFirstPage= gson.fromJson(result, FirstPage.class);
try {
lstUpdate = GsonUtil.parserJsonArray(result, Constants.BLOCK_TITLE_NOVELS);
if (lstUpdate.size() > 0) {
for (Novel novel2 : lstUpdate) {
novel2.checkAndUpdate();
}
}
loadNovelsOnShelf();
/* for(Novel nove : bookLists){
nove.testUpdate();
}*/
} catch (Exception e) {
e.printStackTrace();
}
handler.sendEmptyMessage(1);
}
@Override
public void onFault(String errorMsg) {
//失败
Log.d(TAG, "error on get novel update list: " + errorMsg);
handler.sendEmptyMessage(1);
}
};
if (TextUtils.isEmpty(noveIds)) {
loadNovelsOnShelf();
}
if (!TextUtils.isEmpty(noveIds)) {
BookSubscribe.getNovelsByIds(noveIds, new OnSuccessAndFaultSub(successAndFaultListener, getActivity()));
} else {
handler.sendEmptyMessage(1);
}
}
@Override
public void initData() {
// mDatas = initData(mDatas,'X');
// bookLists = LitePal.where("isOnShelf=? or novelId=? ","1","").find(Novel.class);
loadNovelsOnShelf();
// getUpdatedData();
flag = new boolean[bookLists.size()];
/* if(bookLists.size()>0) { //TODO: to remove
bookLists.get(0).setUpdated(true);
// bookLists.get(bookLists.size()-1).setUpdated(true);
}*/
mAdapter = new BookListAdapter(activity, bookLists, R.layout.recycle_list_item, new OnItemClickListener() {
private long lastTimeMillis;
private static final long MIN_CLICK_INTERVAL = 1000;
protected boolean isTimeEnabled() {
long currentTimeMillis = System.currentTimeMillis();
if ((currentTimeMillis - lastTimeMillis) > MIN_CLICK_INTERVAL) {
lastTimeMillis = currentTimeMillis;
return true;
}
return false;
}
@Override
public void onItemClick(View view, int position) {
if (isTimeEnabled()) {
Novel book = bookLists.get(position);
openBook(book, mAdapter);
} else {
Log.d(TAG, "onclickInterval: bad click");
}
}
@Override
public void onItemLongClick(View view, int position) {
initDialog(position);
// mAdapter.removeData(position);
}
@Override
public void onLinearOutClick(View view, int position, int llId) {
}
});
mAdapter.setNorecord(R.string.noRecordInshelf);
((Main2Activity) activity).setShelfFragment(this);
}
@Override
void initSwipeRefreshLayout() {
super.initSwipeRefreshLayout();
mSwipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
// 开始刷新,设置当前为刷新状态
//swipeRefreshLayout.setRefreshing(true);
pageNo = 1;
getUpdatedData();
}
});
}
@Override
public void initViews() {
initReceyleView();
}
protected void processArguments() {
if (getArguments() != null) {
Bundle bundle = getArguments();
}
}
@Override
protected void fillData() {
/* for(Novel nv :bookLists){
nv.testUpdate();
}*/
mAdapter.setData(bookLists);
}
public void initReceyleView() {
// initData();
// mRecyclerView.setLayoutManager(new LinearLayoutManager(this.activity));
mRecyclerView.setLayoutManager(new GridLayoutManager(activity, 3));
mRecyclerView.setAdapter(mAdapter);
llShelfBottom.setVisibility(View.GONE);
}
public void showShelfMoreSheet() {
BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this.activity);
bottomSheetDialog.setContentView(R.layout.fragment_shelf_more_sheet);
//给布局设置透明背景色
bottomSheetDialog.getDelegate().findViewById(android.support.design.R.id.design_bottom_sheet)
.setBackgroundColor(getResources().getColor(android.R.color.transparent));
Button btnZhengli = bottomSheetDialog.findViewById(R.id.btnZhengli);
btnZhengli.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bottomSheetDialog.dismiss();
initZhengliDialog();
}
});
Button btnImport = bottomSheetDialog.findViewById(R.id.btnImport);
btnImport.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bottomSheetDialog.dismiss();
Intent intent = new Intent(activity, FileChooserActivity.class);
startActivityForResult(intent, Activity.RESULT_FIRST_USER);
// startActivity(intent);
}
});
Button btnCancel = bottomSheetDialog.findViewById(R.id.btnCancel);
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bottomSheetDialog.dismiss();
}
});
if(config==null){
config =Config.getInstance();
}
RadioGroup rgShelfOrder = bottomSheetDialog.findViewById(R.id.rgShelfOrder);
Constants.SHELF_ORDER = config.getShelfOrderOption();
rgShelfOrder.clearCheck();
((RadioButton) rgShelfOrder.getChildAt(Constants.SHELF_ORDER-1)).setChecked(true);
RadioButton radioButton1 = bottomSheetDialog.findViewById(R.id.radioButton1);
RadioButton radioButton2 = bottomSheetDialog.findViewById(R.id.radioButton2);
RadioButton radioButton3 = bottomSheetDialog.findViewById(R.id.radioButton3);
RadioButton radioButton4 = bottomSheetDialog.findViewById(R.id.radioButton4);
radioButton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setShelfOrder(1);
}
});
radioButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setShelfOrder(2);
}
});
radioButton3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setShelfOrder(3);
}
});
radioButton4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setShelfOrder(4);
}
});
bottomSheetDialog.show();
}
private void setShelfOrder(int option) {
Log.d(TAG, "setShelfOrder: new sex option:" +option);
if(option!= Constants.SHELF_ORDER) {
Constants.SHELF_ORDER = option;
config.setShelfOrderOption(option);
getUpdatedData();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// bookLists = LitePal.findAll(Novel.class);
// mAdapter.notifyDataSetChanged();
initViews();
}
private void initDialog(int position) {
bottomSheetDialog = new BottomSheetDialog(this.activity);
bottomSheetDialog.setContentView(R.layout.fragment_shelf_botoomsheetdialog);
//给布局设置透明背景色
bottomSheetDialog.getDelegate().findViewById(android.support.design.R.id.design_bottom_sheet)
.setBackgroundColor(getResources().getColor(android.R.color.transparent));
TextView tvTitle = (TextView) bottomSheetDialog.findViewById(R.id.bdTitle);
TextView tvLatestChapt = (TextView) bottomSheetDialog.findViewById(R.id.txtLatestCate);
TextView tvAuthor = (TextView) bottomSheetDialog.findViewById(R.id.tvAuthor);
tvTitle.setText(bookLists.get(position).getName());
ImageView imageView = (ImageView) bottomSheetDialog.findViewById(R.id.imageG1);
// TextView tvImportTitle = (TextView) bottomSheetDialog.findViewById(R.id.tvImportTitle);
if (!bookLists.get(position).isLocalBook()) {
tvLatestChapt.setText(bookLists.get(position).getChapterName());
tvAuthor.setText(bookLists.get(position).getAuthor());
TextView tvLatest = (TextView) bottomSheetDialog.findViewById(R.id.txtLatestUpdate);
tvLatest.setText(CommonUtil.getDateString(bookLists.get(position).getLastUpdateTime()));
TextView tvLastDomain = (TextView) bottomSheetDialog.findViewById(R.id.txtLastDomain);
tvLastDomain. setText( "[" + bookLists.get(position).getDomainName()+"]") ;
ImageUtil.loadImage(activity, bookLists.get(position).getCover(), imageView);
// tvImportTitle.setVisibility(View.GONE);
imageView.setVisibility(View.VISIBLE);
} else {
tvLatestChapt.setText("本地导入");
tvAuthor.setText("");
// imageView.setImageResource(R.drawable.blankcover);
imageView.setVisibility(View.GONE);
// tvImportTitle.setText(bookLists.get(position).getName());
// tvImportTitle.setVisibility(View.VISIBLE);
}
TextView tvLastVisit = (TextView) bottomSheetDialog.findViewById(R.id.txtLatestVisit);;
tvLastVisit.setText( CommonUtil.getDateString( bookLists.get(position).getLastVisit()));
TextView tvLastReadChpapt = (TextView) bottomSheetDialog.findViewById(R.id.txtLatestReadChapter);
String lastReadChapt = bookLists.get(position).getLastReadChaptName();
lastReadChapt = TextUtils.isEmpty(lastReadChapt)? "":lastReadChapt;
lastReadChapt =lastReadChapt.replace("null","").trim();
tvLastReadChpapt.setText( lastReadChapt) ;
Log.d(TAG, "initDialog: " + lastReadChapt);
LinearLayout lldetail = (LinearLayout) bottomSheetDialog.findViewById(R.id.llBookdetail);
if (!bookLists.get(position).isLocalBook())
lldetail.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showBookDetail(bookLists.get(position));
}
});
TextView tvCache = (TextView) bottomSheetDialog.findViewById(R.id.tvCache);
tvCache.setText(FileUtils.getCacheSizeK(bookLists.get(position).getId()));
if (!bookLists.get(position).isLocalBook()) {
LinearLayout llClearCache = (LinearLayout) bottomSheetDialog.findViewById(R.id.llClearCache);
llClearCache.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
FileUtils.clearChapterCache(bookLists.get(position).getId());
long size = FileUtils.getCacheSize(bookLists.get(position).getId());
size = size / 1024;
tvCache.setText(String.format("%sK", size));
Toast.makeText(activity, "缓存清除成功", Toast.LENGTH_SHORT);
}
});
} else {
TextView tvClearCache = (TextView) bottomSheetDialog.findViewById(R.id.tvClearCache);
tvClearCache.setText("导入文本");
}
LinearLayout lltop = (LinearLayout) bottomSheetDialog.findViewById(R.id.llTop);
TextView tvTop = (TextView) bottomSheetDialog.findViewById(R.id.tvTop);
ImageView imgTop = (ImageView) bottomSheetDialog.findViewById(R.id.imageTop);
if (bookLists.get(position).isTop()) {
tvTop.setText("取消置顶");
imgTop.setImageResource(R.mipmap.star_inactive);
} else {
tvTop.setText("置顶显示");
imgTop.setImageResource(R.mipmap.star_active);
}
lltop.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (bookLists.get(position).isTop()) {
bookLists.get(position).setToDefault("isTop");
tvTop.setText("置顶显示");
imgTop.setImageResource(R.mipmap.star_active);
} else {
bookLists.get(position).setTop(true);
tvTop.setText("取消置顶");
imgTop.setImageResource(R.mipmap.star_inactive);
}
bookLists.get(position).update(bookLists.get(position).getId());
loadNovelsOnShelf();
mAdapter.setData(bookLists);
//Toast.makeText(activity,"缓存清除成功",Toast.LENGTH_SHORT);
}
});
bottomSheetDialog.show();
}
@BindView(R.id.btnDelete)
Button btnDelete;
@BindView(R.id.btnSelect)
Button btnSelectAll;
@OnClick({R.id.btnSelect, R.id.btnDelete})
void shelfZhengliSubmit(View view) {
if (view.getId() == R.id.btnSelect) {
if (isSelectAll) {
btnSelectAll.setText("全不选");
} else {
btnSelectAll.setText("全选");
}
for (int i = 0; i < flag.length; i++) {
flag[i] = isSelectAll;
}
isSelectAll = !isSelectAll;
mChkAdapter.notifyDataSetChanged();
} else if (view.getId() == R.id.btnDelete) {
boolean isChecked = false;
for(boolean b :flag){
if(b) {
isChecked = true;
break;
}
}
if(!isChecked){
new AlertDialog.Builder(activity)
.setTitle(this.getString(R.string.app_name))
.setMessage( "您还没有选择要移除的书籍")
.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
})
.setCancelable(false).show();
return;
}
new AlertDialog.Builder(activity)
.setTitle(this.getString(R.string.app_name))
.setMessage( "您将从书架移除选中的书籍,是否继续?")
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for (int i = 0; i < bookLists.size(); i++) {
if (flag[i]) {
Novel nv = bookLists.get(i);
if (nv.isLocalBook()) {
nv.delete();
LitePal.deleteAllAsync(Chapter.class, "novelId=?", nv.getId() + "");
//TODO: remove cache on a new thread
FileUtils.clearChapterCache(nv.getId());
} else {
Log.d(TAG, "shelfZhengliSubmit: to delete novel " + nv.getName());
nv.setToDefault("isOnShelf");
nv.setToDefault("isTop");
//nv.setOnShelf(false);
nv.update(nv.getId());
// nv.update(nv.getId()); //not work,,,If you set a default value to a field, the corresponding column won't be updated.
}
// flag = new boolean[bookLists.size()];
// bookLists.remove(i);
}
}
btnSelectAll.setText("全选");
bookLists = Novel.getNovelsOnShelf();
flag = new boolean[bookLists.size()];
zhengliShelf();
initData();
}
})
.setCancelable(false).show();
// List<Integer> toRemove = new ArrayList<Integer>();
/*for (int i = 0; i < bookLists.size(); i++) {
if (flag[i]) {
bookLists.remove(i);
flag[i] =false;
}
}
*/
// mChkAdapter.notifyDataSetChanged();
}
}
private void initZhengliDialog() {
if( flag==null || flag.length ==0 ){
flag= new boolean[bookLists.size()];
}
if( flag==null || flag.length ==0 ){
new AlertDialog.Builder(activity)
.setTitle(this.getString(R.string.app_name))
.setMessage( "您书架上还没有书籍可以整理")
.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
})
.setCancelable(false).show();
return;
}
zhengliShelf();
llShelfBottom.setVisibility(View.VISIBLE);
Main2Activity main2Activity = (Main2Activity) activity;
main2Activity.switchShelfZhengli(false);
}
CheckAdapter mChkAdapter;
void zhengliShelf() {
mChkAdapter = new CheckAdapter(activity, bookLists, R.layout.recycle_list_item, new OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
}
@Override
public void onItemLongClick(View view, int position) {
}
@Override
public void onLinearOutClick(View view, int position, int llId) {
}
});
mRecyclerView.setLayoutManager(new GridLayoutManager(activity, 3));
mRecyclerView.setAdapter(mChkAdapter);
}
//--------------------整理 adapter---------------
class CheckAdapter extends RecyclerView.Adapter<CheckAdapter.MyViewHolder> {
private final int EMPTY_VIEW = 1;
private final int PROGRESS_VIEW = 2;
private final int IMAGE_VIEW = 3;
private Context context;
private List<Novel> mDatas = new ArrayList<Novel>();
private OnItemClickListener mOnItemClickListener;
private int listItemID;
public CheckAdapter(Context context, List<Novel> mDatas, int listItemID, OnItemClickListener clickLitener) {
this.context = context;
this.mDatas = mDatas;
this.mOnItemClickListener = clickLitener;
this.listItemID = listItemID;
}
public CheckAdapter(Context context, OnItemClickListener clickLitener) {
this.context = context;
this.mOnItemClickListener = clickLitener;
}
@Override
public int getItemViewType(int position) {
if (mDatas.size() == 0) {
return EMPTY_VIEW;
} else if (mDatas.get(position) == null) {
return PROGRESS_VIEW;
} else {
return super.getItemViewType(position);
}
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
context).inflate(listItemID, parent,
false));
return holder;
}
public void setParameters(List<Novel> mDatas, int listItemID) {
this.mDatas = mDatas;
this.listItemID = listItemID;
}
public void setOnItemClickLitener(OnItemClickListener mOnItemClickLitener) {
this.mOnItemClickListener = mOnItemClickLitener;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.tvTitle.setText(mDatas.get(position).getName());
if (holder.tvAuthor != null) holder.tvAuthor.setText(mDatas.get(position).getAuthor());
if (holder.tvCate != null) holder.tvCate.setText(mDatas.get(position).getNovelType());
if (holder.tvDesc != null) holder.tvDesc.setText(mDatas.get(position).getDesc());
if (holder.checkBox != null) holder.checkBox.setVisibility(View.VISIBLE);
if (holder.imageView != null && !TextUtils.isEmpty(mDatas.get(position).getCover())) {
loader.displayImage(context, NetUtil.getCoverUrl(mDatas.get(position).getCover()), holder.imageView);
}
if (mDatas.get(position).isTop()) {
holder.imageTop.setVisibility(View.VISIBLE);
} else {
holder.imageTop.setVisibility(View.GONE);
}
// 如果设置了回调,则设置点击事件
if (mOnItemClickListener != null) {
holder.checkBox.setOnCheckedChangeListener(null);//先设置一次CheckBox的选中监听器传入参数null
holder.checkBox.setChecked(flag[position]);//用数组中的值设置CheckBox的选中状态
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.checkBox.setChecked(!holder.checkBox.isChecked());
}
});
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false;
}
});
//再设置一次CheckBox的选中监听器当CheckBox的选中状态发生改变时把改变后的状态储存在数组中
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
flag[position] = b;
}
});
}
}
@Override
public int getItemCount() {
return mDatas.size();
}
public void addData(int position) {
// mDatas.add(position, "Insert One");
notifyItemInserted(position);
}
public void removeData(int position) {
mDatas.remove(position);
notifyItemRemoved(position);
}
class MyViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.id_check_box)
CheckBox checkBox;
@BindView(R.id.imageView)
ImageView imageView;
@BindView(R.id.imageTop)
ImageView imageTop;
@BindView(R.id.title)
TextView tvTitle;
@Nullable
@BindView(R.id.author)
TextView tvAuthor;
@Nullable
@BindView(R.id.category)
TextView tvCate;
@Nullable
@BindView(R.id.desc)
TextView tvDesc;
public MyViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
//tvTitle = (TextView) view.findViewById(R.id.title);
// tvAuthor = (TextView) view.findViewById(R.id.author);
}
}
}
@Override
public void onResume() {
super.onResume();
getUpdatedData();
if (bottomSheetDialog != null) {
bottomSheetDialog.hide();
}
MobclickAgent.onPageStart(TAG);
}
@Override
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd(TAG);
}
//----------toutiao ad
}