/**
* Copyright 2016 JustWayward Team
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.justwayward.reader.ui.easyadapter;
import android.content.Context;
import android.text.TextUtils;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import com.justwayward.reader.R;
import com.justwayward.reader.base.Constant;
import com.justwayward.reader.bean.Recommend;
import com.justwayward.reader.manager.SettingManager;
import com.justwayward.reader.utils.FileUtils;
import com.justwayward.reader.utils.FormatUtils;
import com.justwayward.reader.view.recyclerview.adapter.BaseViewHolder;
import com.justwayward.reader.view.recyclerview.adapter.RecyclerArrayAdapter;
import java.text.NumberFormat;
/**
* @author yuyh.
* @date 2016/9/7.
*/
public class RecommendAdapter extends RecyclerArrayAdapter<Recommend.RecommendBooks> {
public RecommendAdapter(Context context) {
super(context);
}
@Override
public BaseViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) {
return new BaseViewHolder<Recommend.RecommendBooks>(parent, R.layout.item_recommend_list) {
@Override
public void setData(final Recommend.RecommendBooks item) {
super.setData(item);
String latelyUpdate = "";
if (!TextUtils.isEmpty(FormatUtils.getDescriptionTimeFromDateString(item.updated))) {
latelyUpdate = FormatUtils.getDescriptionTimeFromDateString(item.updated) + ":";
}
holder.setText(R.id.tvRecommendTitle, item.title)
.setText(R.id.tvLatelyUpdate, latelyUpdate)
.setText(R.id.tvRecommendShort, item.lastChapter)
.setVisible(R.id.ivTopLabel, item.isTop)
.setVisible(R.id.ckBoxSelect, item.showCheckBox)
.setVisible(R.id.ivUnReadDot, FormatUtils.formatZhuiShuDateString(item.updated)
.compareTo(item.recentReadingTime) > 0);
if (item.path != null && item.path.endsWith(Constant.SUFFIX_PDF)) {
holder.setImageResource(R.id.ivRecommendCover, R.drawable.ic_shelf_pdf);
} else if (item.path != null && item.path.endsWith(Constant.SUFFIX_EPUB)) {
holder.setImageResource(R.id.ivRecommendCover, R.drawable.ic_shelf_epub);
} else if (item.path != null && item.path.endsWith(Constant.SUFFIX_CHM)) {
holder.setImageResource(R.id.ivRecommendCover, R.drawable.ic_shelf_chm);
} else if (item.isFromSD) {
holder.setImageResource(R.id.ivRecommendCover, R.drawable.ic_shelf_txt);
long fileLen = FileUtils.getChapterFile(item._id, 1).length();
if (fileLen > 10) {
double progress = ((double) SettingManager.getInstance().getReadProgress(item._id)[2]) / fileLen;
NumberFormat fmt = NumberFormat.getPercentInstance();
fmt.setMaximumFractionDigits(2);
holder.setText(R.id.tvRecommendShort, "当前阅读进度:" + fmt.format(progress));
}
} else if (!SettingManager.getInstance().isNoneCover()) {
holder.setRoundImageUrl(R.id.ivRecommendCover, Constant.IMG_BASE_URL + item.cover,
R.drawable.cover_default);
} else {
holder.setImageResource(R.id.ivRecommendCover, R.drawable.cover_default);
}
CheckBox ckBoxSelect = holder.getView(R.id.ckBoxSelect);
ckBoxSelect.setChecked(item.isSeleted);
ckBoxSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
item.isSeleted = isChecked;
}
});
}
};
}
}