ItemElectronPapterLayoutManager.java 6.7 KB
package com.wd.capability.layout.page;

import android.text.TextUtils;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

import com.wd.capability.layout.R;
import com.wd.capability.layout.comp.layoutmanager.ItemContainerManager;
import com.wd.capability.layout.ui.paper.PaperContract;
import com.wd.capability.layout.ui.paper.PaperHelpFactory;
import com.wd.capability.layout.ui.paper.PaperHelper;
import com.wd.common.imageglide.ImageUtils;
import com.wd.common.viewclick.BaseClickListener;
import com.wd.foundation.bean.custom.MenuBean;
import com.wd.foundation.bean.paper.PaperPageBean;
import com.wd.foundation.bean.utils.TimeUtil;
import com.wd.foundation.wdkit.statusbar.StatusBarCompat;
import com.wd.foundation.wdkit.utils.ToastNightUtil;
import com.wd.foundation.wdkit.utils.ViewUtils;

/**
 * @Description: 电子报
 * @Author: Li Yubing
 * @Email: liyubing@wondert.com.cn
 * @CreateDate: 2023/7/13 14:51
 * @Version: 1.0
 */
public class ItemElectronPapterLayoutManager extends ItemContainerManager<MenuBean> implements PaperContract.onSizeMeasureCallback {


    // -------------- title bar --------------
    public RelativeLayout rlTitle;

    public ImageView imgBack;

    public ImageView imgShare;

    public TextView tvDate;

    // -------------- content --------------

    public TextView tvPageIndicator;

    public ImageView imgPageIndicatorArrow, ivLoadingView, ivImageLayer;

    public RecyclerView rvContentImage;

    public LinearLayout llPageIndicatorContainer;

    public FrameLayout flContent;


    // -------------- bottom-------------

    public RelativeLayout rlBottomLeft, llPaperTitleDate;

    public TextView tvNewsNo;

    public RelativeLayout rlBarBottom;

    public LinearLayout llReadList;

    public RelativeLayout rlTopLeft;

    public ImageView ivBottom, ivPageLayer;

    // -------------- help container --------------
    public PaperHelpFactory helpFactory;

    public String eleDate;

    @Override
    public int getItemViewType() {
        return R.layout.page_item_layout_electro_paper;
    }

    @Override
    public void prepareItem(View itemView, int position) {

    }

    @Override
    public void onDestory() {
        super.onDestory();
        if (helpFactory != null) {

            if (helpFactory.dateChoosePWHelp != null && helpFactory.dateChoosePWHelp.calendarView != null) {
                helpFactory.dateChoosePWHelp.calendarView.clearData();
            }


            helpFactory.dateChoosePWHelp = null;
            helpFactory.browseModeSwitchHelp = null;
            helpFactory.paperPageModel = null;
            helpFactory.paperPageChoosePWHelp = null;
            helpFactory.pagePositionSyncHelp = null;
            helpFactory.paperImageHelp = null;

        }
    }

    @Override
    public void bindItem(View itemView, int position, MenuBean data) {

        rlTitle = ViewUtils.findViewById(itemView, R.id.rl_act_paper_bar_title);
        imgBack = ViewUtils.findViewById(itemView, R.id.img_act_paper_bar_title_back);
        imgBack.setOnClickListener(v -> getFragmentActivity().finish());
        imgShare = ViewUtils.findViewById(itemView, R.id.img_act_paper_bar_title_share);
        imgShare.setOnClickListener(new BaseClickListener() {
            @Override
            protected void onNoDoubleClick(View v) {
                if (helpFactory != null) {
                    PaperPageBean currentPageBean = helpFactory.pagePositionSyncHelp.getCurrentPageBean();
                    if (currentPageBean != null) {

//                        CompentLogicUtil.shareElInfo(currentPageBean, imgShare.getContext());

                    } else {
                        ToastNightUtil.showShort("暂无数据");
                    }
                }
            }
        });


        llPaperTitleDate = ViewUtils.findViewById(itemView, R.id.ll_paper_title_date);
        tvDate = ViewUtils.findViewById(itemView, R.id.tv_act_paper_bar_title_date);
        tvPageIndicator = ViewUtils.findViewById(itemView, R.id.tv_act_paper_content_image_indicator);
        llPageIndicatorContainer = ViewUtils.findViewById(itemView, R.id.ll_act_paper_content_image_indicator_container);
        rvContentImage = ViewUtils.findViewById(itemView, R.id.rv_act_paper_content_image);
        imgPageIndicatorArrow = ViewUtils.findViewById(itemView, R.id.img_act_paper_content_image_indicator_arrow);
        flContent = ViewUtils.findViewById(itemView, R.id.flImageContent);

        rlBottomLeft = ViewUtils.findViewById(itemView, R.id.rlBottomLeft);
        tvNewsNo = ViewUtils.findViewById(itemView, R.id.tvNewsNo);
        rlBarBottom = ViewUtils.findViewById(itemView, R.id.rl_act_paper_bar_bottom);
        llReadList = ViewUtils.findViewById(itemView, R.id.llReadList);

        ivPageLayer = ViewUtils.findViewById(itemView, R.id.ivPageLayer);

        rlTopLeft = ViewUtils.findViewById(itemView, R.id.rlTopLeft);

        ivBottom = ViewUtils.findViewById(itemView, R.id.ivBottom);

        ivLoadingView = ViewUtils.findViewById(itemView, R.id.ivLoadingView);
        ivImageLayer = ViewUtils.findViewById(itemView, R.id.ivImageLayer);

        RelativeLayout.LayoutParams rlTitleLp = (RelativeLayout.LayoutParams) rlTitle.getLayoutParams();
        rlTitleLp.topMargin = StatusBarCompat.getStatusBarHeight(getFragmentActivity());
        rlTitle.setLayoutParams(rlTitleLp);

        initHelp();

        String imageUrl = data.getBackgroundUrl();
        if (!TextUtils.isEmpty(imageUrl)) {
            ImageUtils.getInstance().loadImage(ivLoadingView, imageUrl);
        }
    }

    @Override
    public void sizeMeasure(double w, double h) {

        String data = TimeUtil.getCurrentDate();
        setChoosePaperDate(data);
        helpFactory.paperPageModel.setElWh(w + "x" + h);
        helpFactory.paperPageModel.requestPaperTime(null);

    }

    /**
     * 设置选择电子报日期
     *
     * @param date
     */
    public void setChoosePaperDate(String date) {
        eleDate = PaperHelper.format2YYYYMMDD(date);
        tvDate.setText(PaperHelper.format2TitleStyle(date));

    }

    private void initHelp() {
        helpFactory = PaperHelpFactory.create(this, getFragmentActivity());
        helpFactory.injectView();
        helpFactory.paperImageHelp.measurePaperImageCanvasSize(this);

    }

    public void setShareShow(PaperPageBean currentPageBean) {
        if (currentPageBean != null && currentPageBean.getSharePagePic() != null
                && 1 == currentPageBean.getSharePagePic().getSharePosterOpen()) {
            //判断分享显示或隐藏
            imgShare.setVisibility(View.VISIBLE);
        }
    }

}