ItemChannelCommonSubjectLayoutManager.java 4.45 KB
/*
 * Copyright (c) People Technologies Co., Ltd. 2019-2022. All rights reserved.
 */

package com.wd.display.comp.page;

import android.text.TextUtils;
import android.view.View;
import android.widget.FrameLayout;

import androidx.appcompat.widget.LinearLayoutCompat;

import com.orhanobut.logger.Logger;
import com.people.common.widget.CustomTitleBar;
import com.people.component.R;
import com.people.component.comp.layoutmanager.ItemContainerManager;
import com.people.component.ui.channel.listener.PageInforToLayoutManagerCallback;
import com.people.component.ui.fragment.ColumnFragment;
import com.people.entity.custom.MenuBean;
import com.people.entity.custom.comp.ChannelInfoBean;
import com.people.entity.custom.comp.PageBean;
import com.people.entity.custom.comp.TopicInfoBean;
import com.people.entity.custom.content.ContentTypeConstant;
import com.people.entity.theme.ThemeMessage;
import com.wondertek.wheat.ability.tools.ViewUtils;

/**
 * 普通频道
 *
 * @author liyubing
 * @version [V1.0.0, 2022/7/7]
 * @since V1.0.0
 */
public class ItemChannelCommonSubjectLayoutManager extends ItemContainerManager<MenuBean> {

    private static final String TAG = "ItemChannelCommonSubjectLayoutManager";

    private ColumnFragment mColumnFragment;

    // 页面标题涉及到的控件
    private CustomTitleBar customTitleBar;

    private FrameLayout flParent;


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

    @Override
    public void prepareItem(View itemView, int position) {
        Logger.t(TAG).d("prepareItem");

        customTitleBar = ViewUtils.findViewById(itemView, R.id.title_bar);
        flParent = ViewUtils.findViewById(itemView, R.id.flParent);
    }

    @Override
    public int bindItem(View itemView, int position, MenuBean data) {
        if (data == null) {
            return position;
        }
        setCustomTitleBar(data.getTopMargin());
        customTitleBar.setTitle(data.getTitle());
        customTitleBar.setRightImgVisibility(View.GONE);
        customTitleBar.setTitleBarClickListener(new CustomTitleBar.TitleBarClickListener() {
            @Override
            public void onLeftClick() {

                getFragmentActivity().finish();
            }

            @Override
            public void onRightClick() {

//                if (topicInfoBean != null) {
//                    // 分享
//                   // CompentLogicUtil.shareTopicInfoBean(topicInfoBean, customTitleBar.getContext());
//                }

            }
        });
        if (getFragmentActivity() != null) {
            PageBean pageBean =  data.getPageInfor();
            mColumnFragment = ColumnFragment.newInstance(data.getNavId(),  ContentTypeConstant.URL_TYPE_ELEVEN,pageBean);
            mColumnFragment.setPageLayoutManagerListener(pageInforToLayoutManagerCallback);
            mColumnFragment.setSuperRootLayout(flParent);
            getFragmentActivity().getSupportFragmentManager().beginTransaction().add(R.id.rv_content, mColumnFragment).commit();

        }

        return position;
    }


    public void setCustomTitleBar(int topMargin) {
        LinearLayoutCompat.LayoutParams layoutParams = (LinearLayoutCompat.LayoutParams) customTitleBar.getLayoutParams();
        layoutParams.topMargin = topMargin;
    }

    private PageInforToLayoutManagerCallback pageInforToLayoutManagerCallback = new PageInforToLayoutManagerCallback() {

        @Override
        public void onPageThemeChange( ThemeMessage message) {
            if (message == null) {
                return;
            }
            Logger.t(TAG).d("onChangeTheme, getBackgroundColor: " + message.getBackgroundColor());


            if(!TextUtils.isEmpty(message.getBackIconUrl())){
                customTitleBar.onLineLoadLeftImage(message.getBackIconUrl(),R.drawable.icon_page_back_left_black);
            }else {
                customTitleBar.setLeftImg(R.drawable.icon_page_back_left_black);
            }

        }

        @Override
        public void listenerTopicInfoBean(TopicInfoBean bean) {


        }

        @Override
        public void listenerChannelInfoBean(ChannelInfoBean bean) {
            customTitleBar.setTitle(bean.getChannelName());
        }

        @Override
        public void fragmentRequestCallback(boolean isRefresh, boolean isOpenLoadMore) {

        }

        @Override
        public void isTop() {

        }

        @Override
        public void failedPage(int errorCode) {

        }
    };



}