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

package com.wd.capability.layout.comp;


import android.os.Bundle;

import androidx.fragment.app.Fragment;

import com.wd.capability.router.WdRouterRule;
import com.wd.foundation.bean.custom.video.VodDetailIntentBean;
import com.wd.foundation.wdinterface.comp.IProcess;
import com.wd.foundation.wdinterface.constant.InterfaceConstant;
import com.wd.foundation.wdkit.constant.IntentConstants;
import com.wd.foundation.wdkitcore.router.ArouterServiceManager;
import com.wd.foundation.wdkitcore.tools.JsonUtils;


/**
 * comp组件的相关Service实现<BR>
 *
 * @author zhangbo
 * @version [V1.0.0, 2020/7/23]
 * @since V1.0.0
 */
public class CompServiceImpl implements ICompService {


    @Override
    public Fragment createMainFragment(String id) {
        return null;
    }

    @Override
    public Fragment createChannelFragment(String pageId) {
        return null;
    }

    @Override
    public Fragment createColumnFragment(String pageId) {
        return null;
    }

    @Override
    public Fragment createLiveChannelFragment(boolean isGray, String level1ChannelId, String pageId, String channelId) {
        IProcess process = ArouterServiceManager.provide(InterfaceConstant.PATH_COMP_PROCESS);
        Fragment myFragment = WdRouterRule.getInstance().getFragment(process.getHomeFullPlayPath());
        if (myFragment != null) {
            VodDetailIntentBean intentBean = new VodDetailIntentBean();
            intentBean.setGray(isGray);
            intentBean.setType(VodDetailIntentBean.Type.COMP);
            intentBean.setLevel1ChannelId(level1ChannelId);
            intentBean.setPageId(pageId);
            intentBean.setChannelId(channelId);
            Bundle bundle = new Bundle();
            bundle.putString(IntentConstants.PARAMS_VIDEO_DETAIL, JsonUtils.convertObjectToJson(intentBean));
            myFragment.setArguments(bundle);
            return myFragment;
        }

        return new Fragment();
    }


    @Override
    public Fragment createDefaultFragment() {
        // 这里默认直接创建Fragment
        return new Fragment();
    }

    @Override
    public Fragment createFollowFragment(String pageId) {
        return null;
    }

    @Override
    public Fragment createCommonFragment(String pageId) {
        //return CommonFragment.newInstance(pageId);
        return null;
    }

    @Override
    public Fragment createMiFragment(String pageId, String pageName, Integer statuesBar, String backgroundUrl, String homeColor, String noticeColor) {
        IProcess process = ArouterServiceManager.provide(InterfaceConstant.PATH_COMP_PROCESS);
        Fragment myFragment =
                (Fragment) WdRouterRule.getInstance().getFragment(process.getMyFragmentPath());
        Bundle bundle = new Bundle();
        if (myFragment != null) {
            bundle.putString(IntentConstants.PARAM_PAGE_ID, pageId);
            bundle.putString(IntentConstants.TAB_NEWS_TITLE, pageName);
            bundle.putString(IntentConstants.PAGE_BACKGROUND_URL, backgroundUrl);

            bundle.putInt(IntentConstants.PAGE_STATUS_COLOR, statuesBar == null ? 1 : statuesBar);
            bundle.putString(IntentConstants.PAGE_HOME_COLOR, homeColor);
            bundle.putString(IntentConstants.PAGE_NOTICE_COLOR, noticeColor);
            myFragment.setArguments(bundle);
            return myFragment;
        }
        return createDefaultFragment();
    }

    @Override
    public Fragment createShortVideoFragment(String pageId, int color) {
        IProcess process = ArouterServiceManager.provide(InterfaceConstant.PATH_COMP_PROCESS);
        Fragment shortVideoFragment = (Fragment) WdRouterRule.getInstance().getFragment(process.getShortVideoPath());
        if (shortVideoFragment != null) {
            VodDetailIntentBean intentBean = new VodDetailIntentBean();
            intentBean.setType(VodDetailIntentBean.Type.COMP);
            intentBean.setPageId(pageId);
            intentBean.color = color;
            intentBean.isImmerse = true;
            Bundle bundle = new Bundle();
            bundle.putString(IntentConstants.PARAMS_VIDEO_DETAIL, JsonUtils.convertObjectToJson(intentBean));
            shortVideoFragment.setArguments(bundle);
            return shortVideoFragment;
        }
        return createDefaultFragment();
    }
}