Commit b77c81bd by Dell

1、球聚细微调整

parent d2cb8f1c
...@@ -260,7 +260,7 @@ public class SlidingTabLayout extends HorizontalScrollView implements ViewPager. ...@@ -260,7 +260,7 @@ public class SlidingTabLayout extends HorizontalScrollView implements ViewPager.
} }
this.mVp2 = vp; this.mVp2 = vp;
mVp2.setSaveEnabled(false);
this.mVp2.unregisterOnPageChangeCallback(onPageChangeCallback); this.mVp2.unregisterOnPageChangeCallback(onPageChangeCallback);
this.mVp2.registerOnPageChangeCallback(onPageChangeCallback); this.mVp2.registerOnPageChangeCallback(onPageChangeCallback);
notifyDataSetChanged(); notifyDataSetChanged();
...@@ -272,7 +272,7 @@ public class SlidingTabLayout extends HorizontalScrollView implements ViewPager. ...@@ -272,7 +272,7 @@ public class SlidingTabLayout extends HorizontalScrollView implements ViewPager.
} }
this.icons = icons; this.icons = icons;
this.mVp2 = vp; this.mVp2 = vp;
mVp2.setSaveEnabled(false);
this.mVp2.unregisterOnPageChangeCallback(onPageChangeCallback); this.mVp2.unregisterOnPageChangeCallback(onPageChangeCallback);
this.mVp2.registerOnPageChangeCallback(onPageChangeCallback); this.mVp2.registerOnPageChangeCallback(onPageChangeCallback);
notifyDataSetChanged(); notifyDataSetChanged();
......
...@@ -42,30 +42,22 @@ android { ...@@ -42,30 +42,22 @@ android {
} }
flavorDimensions "version" flavorDimensions "version"
productFlavors { productFlavors {
normal {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "0"]
}
qj_01 { qj_01 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_01"] manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_01"]
} }
qj_02 { qj_02 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_02"] manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_02"]
} }
qj_baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_baidu"]
}
qj_vivo_01 { qj_vivo_01 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_vivo_01"] manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_vivo_01"]
} }
qj_oppo_01 { qj_oppo_01 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_oppo_01"] manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_oppo_01"]
} }
qj_huawei_01 { qj_huawei_01 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_huawei_01"] manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qj_huawei_01"]
} }
} }
......
{
"version": 1,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.hupu.tv.player.app",
"variantName": "huawei_01Release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"properties": [],
"versionCode": 16,
"versionName": "16",
"enabled": true,
"outputFile": "hslive_v1.0.3_release_huawei_01_2022-04-14.apk"
}
]
}
\ No newline at end of file
{
"version": 1,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.m.live.app",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"properties": [],
"versionCode": 15,
"versionName": "15",
"enabled": true,
"outputFile": "mLive_v1.0.4_release_2022-04-14.apk"
}
]
}
\ No newline at end of file
...@@ -427,6 +427,8 @@ interface HostUrl { ...@@ -427,6 +427,8 @@ interface HostUrl {
*/ */
const val POST_MATCH_BASKETBALL_ODDS = "match/matchBasketballOdds" const val POST_MATCH_BASKETBALL_ODDS = "match/matchBasketballOdds"
/** /**
* 获取足球指数 * 获取足球指数
*/ */
...@@ -482,6 +484,16 @@ interface HostUrl { ...@@ -482,6 +484,16 @@ interface HostUrl {
const val POST_LIVE_BANNER = "live/getBannerList" const val POST_LIVE_BANNER = "live/getBannerList"
/** /**
* 获取比赛列表
*/
const val POST_MATCH_LIST_NEW = "V2/match/getMatchListPage"
/**
* 添加下载次数
*/
const val ADD_DOWNLOAD = "V1/download/addDownNum"
/**
* 精选专家 * 精选专家
*/ */
const val FEATURED_EXPERTS_LIST = "hotRank/featuredExpertsList" const val FEATURED_EXPERTS_LIST = "hotRank/featuredExpertsList"
......
...@@ -83,7 +83,7 @@ interface RetrofitService {/*@Field("is_new") int is_new*/ ...@@ -83,7 +83,7 @@ interface RetrofitService {/*@Field("is_new") int is_new*/
/** /**
* 获取首页banner * 获取首页banner
*/ */
@POST("http://api.hszhibo.live/excuse/V1/download/addDownNum") @POST(HostUrl.ADD_DOWNLOAD)
fun addDownNum(@Header("api-channel") umChannel: String = ProductFlavors.getChannelId(ProductFlavors.UM_CHANNEL_ID)): Observable<BaseBean<Any>> fun addDownNum(@Header("api-channel") umChannel: String = ProductFlavors.getChannelId(ProductFlavors.UM_CHANNEL_ID)): Observable<BaseBean<Any>>
/** /**
...@@ -302,7 +302,7 @@ interface RetrofitService {/*@Field("is_new") int is_new*/ ...@@ -302,7 +302,7 @@ interface RetrofitService {/*@Field("is_new") int is_new*/
/** /**
* 赛事列表 * 赛事列表
*/ */
@POST("http://api.hszhibo.live/excuse/V2/match/getMatchListPage") @POST(HostUrl.POST_MATCH_LIST_NEW)
fun getMatchList(@Body requestBody: RequestBody): Observable<BaseBean<MatchContentEntity>> fun getMatchList(@Body requestBody: RequestBody): Observable<BaseBean<MatchContentEntity>>
......
...@@ -430,11 +430,11 @@ object Constants { ...@@ -430,11 +430,11 @@ object Constants {
const val FOLLOW_ORDER_TEXT = "预约" const val FOLLOW_ORDER_TEXT = "预约"
const val MATCH_TITLE_ALL = "全部" const val MATCH_TITLE_ALL = "全部"
const val MATCH_TITLE_ALL_ID = -1 const val MATCH_TITLE_ALL_ID = 0
const val MATCH_TITLE_START = "已开赛" const val MATCH_TITLE_START = "已开赛"
const val MATCH_TITLE_START_ID = 2 const val MATCH_TITLE_START_ID = 1
const val MATCH_TITLE_SCHEDULE = "赛程" const val MATCH_TITLE_SCHEDULE = "赛程"
const val MATCH_TITLE_SCHEDULE_ID = 1 const val MATCH_TITLE_SCHEDULE_ID = 2
const val MATCH_TITLE_RESULT = "赛果" const val MATCH_TITLE_RESULT = "赛果"
const val MATCH_TITLE_RESULT_ID = 3 const val MATCH_TITLE_RESULT_ID = 3
......
...@@ -63,6 +63,7 @@ public class MatchContentBean implements Serializable { ...@@ -63,6 +63,7 @@ public class MatchContentBean implements Serializable {
private int status; private int status;
private String matchTime; private String matchTime;
private String matchName; private String matchName;
private String matchDate;
private String matchShortName; private String matchShortName;
private int sportsType; private int sportsType;
private boolean subscribe; private boolean subscribe;
...@@ -73,6 +74,14 @@ public class MatchContentBean implements Serializable { ...@@ -73,6 +74,14 @@ public class MatchContentBean implements Serializable {
return matchDays; return matchDays;
} }
public String getMatchDate() {
return matchDate;
}
public void setMatchDate(String matchDate) {
this.matchDate = matchDate;
}
public int getHomeScore() { public int getHomeScore() {
return homeScore; return homeScore;
} }
......
...@@ -264,31 +264,63 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta ...@@ -264,31 +264,63 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta
} }
mFragment.add(LiveAnchorFragment.newInstance(roomId)) mFragment.add(LiveAnchorFragment.newInstance(roomId))
mFragment.add(MatchIndexFragment.newInstance(matchId, sportType)) if (VersionControl.showIndex()) {
mFragment.add(MatchIndexFragment.newInstance(matchId, sportType))
}
mFragment.add(MatchAnalysisFragment.newInstance(matchId, sportType)) mFragment.add(MatchAnalysisFragment.newInstance(matchId, sportType))
mFragment.add(LiveRedListFragment.newInstance(matchId)) mFragment.add(LiveRedListFragment.newInstance(matchId))
// mFragment.add(LiveMatchFragment.newInstance(roomId)) // mFragment.add(LiveMatchFragment.newInstance(roomId))
val type = when {
isShowChat && VersionControl.showIndex() -> {
mTabLayout.tabWidth = 57.6f
1
}
isShowChat && !VersionControl.showIndex() -> {
mTabLayout.tabWidth = 72f
2
}
!isShowChat && VersionControl.showIndex() -> {
mTabLayout.tabWidth = 72f
3
}
else -> {
mTabLayout.tabWidth = 96f
4
}
}
val mTitles: Array<String?> = val mTitles: Array<String?> =
if (isShowChat) { when (type) {
arrayOf( //聊天和指数都有
1 -> arrayOf(
getString(R.string.string_live_conversation), getString(R.string.string_live_conversation),
getString(R.string.string_live_actor), getString(R.string.string_live_actor),
getString(R.string.string_match_index), getString(R.string.string_match_index),
getString(R.string.string_match_analysis), getString(R.string.string_match_analysis),
getString(R.string.string_live_red_list) getString(R.string.string_live_red_list)
) )
} else { //聊天有 指数无
arrayOf( 2 -> arrayOf(
getString(R.string.string_live_conversation),
getString(R.string.string_live_actor),
getString(R.string.string_match_analysis),
getString(R.string.string_live_red_list)
)
//聊天无 指数有
3 -> arrayOf(
getString(R.string.string_live_actor), getString(R.string.string_live_actor),
getString(R.string.string_match_index), getString(R.string.string_match_index),
getString(R.string.string_match_analysis), getString(R.string.string_match_analysis),
getString(R.string.string_live_red_list) getString(R.string.string_live_red_list)
) )
//聊天无 指数无
else -> arrayOf(
getString(R.string.string_live_actor),
getString(R.string.string_match_analysis),
getString(R.string.string_live_red_list)
)
} }
val mAdapter = val mAdapter =
FragmentBasePager2Adapter(supportFragmentManager, mFragment, mTitles, lifecycle) FragmentBasePager2Adapter(supportFragmentManager, mFragment, mTitles, lifecycle)
vp_live.adapter = mAdapter vp_live.adapter = mAdapter
......
...@@ -31,6 +31,7 @@ import com.hupu.tv.player.app.ui.fragment.* ...@@ -31,6 +31,7 @@ import com.hupu.tv.player.app.ui.fragment.*
import com.hupu.tv.player.app.utils.DialogUtils import com.hupu.tv.player.app.utils.DialogUtils
import com.hupu.tv.player.app.utils.GlideUtils import com.hupu.tv.player.app.utils.GlideUtils
import com.hupu.tv.player.app.utils.UserHelper import com.hupu.tv.player.app.utils.UserHelper
import com.hupu.tv.player.app.utils.VersionControl
import com.softgarden.baselibrary.base.IBaseDisplay import com.softgarden.baselibrary.base.IBaseDisplay
import com.softgarden.baselibrary.base.IBasePresenter import com.softgarden.baselibrary.base.IBasePresenter
import kotlinx.android.synthetic.main.activity_main2.* import kotlinx.android.synthetic.main.activity_main2.*
...@@ -44,14 +45,24 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay { ...@@ -44,14 +45,24 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay {
private lateinit var mainAvatar: ImageView private lateinit var mainAvatar: ImageView
private lateinit var haveAvatar: ImageView private lateinit var haveAvatar: ImageView
private var oldSelected = 0 private var oldSelected = 0
private var mFragment: ArrayList<Fragment> = arrayListOf( private var mFragment: ArrayList<Fragment> =
MatchFragment.newInstance(), if (VersionControl.showRedList()) {
MainNewsFragment.newInstance(), arrayListOf(
MainFragment.newInstance(), MatchFragment.newInstance(),
MainHaveMaterialFragment.newInstance(), MainNewsFragment.newInstance(),
// FollowFragment.newInstance(), MainFragment.newInstance(),
NewMineFragment.newInstance() MainHaveMaterialFragment.newInstance(),
) NewMineFragment.newInstance()
)
} else {
arrayListOf(
MatchFragment.newInstance(),
MainNewsFragment.newInstance(),
MainFragment.newInstance(),
NewMineFragment.newInstance()
)
}
override val layoutId: Int override val layoutId: Int
get() = R.layout.activity_main2 get() = R.layout.activity_main2
...@@ -69,7 +80,6 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay { ...@@ -69,7 +80,6 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay {
override fun initialize() { override fun initialize() {
DialogSettings.modalDialog = true DialogSettings.modalDialog = true
// DialogSettings.init()
showAdDialog() showAdDialog()
initTabLayout() initTabLayout()
EventBus.getDefault().register(this) EventBus.getDefault().register(this)
...@@ -142,29 +152,62 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay { ...@@ -142,29 +152,62 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay {
val adapter = FragmentBasePagerAdapter(supportFragmentManager, mFragment) val adapter = FragmentBasePagerAdapter(supportFragmentManager, mFragment)
mViewPager.offscreenPageLimit = mFragment.size mViewPager.offscreenPageLimit = mFragment.size
mViewPager.adapter = adapter mViewPager.adapter = adapter
val mTitles = arrayOf( val mTitles =
getString(R.string.string_main_schedule), if (VersionControl.showRedList()) {
getString(R.string.string_main_news), arrayOf(
getString(R.string.string_main_home), getString(R.string.string_main_schedule),
getString(R.string.string_main_have_material), getString(R.string.string_main_news),
getString(R.string.string_main_mine) getString(R.string.string_main_home),
) getString(R.string.string_main_have_material),
getString(R.string.string_main_mine)
)
} else {
arrayOf(
getString(R.string.string_main_schedule),
getString(R.string.string_main_news),
getString(R.string.string_main_home),
getString(R.string.string_main_mine)
)
}
val mIconUnSelectIds = intArrayOf(
R.mipmap.icon_main_match_nomal,
R.mipmap.icon_main_news_normal,
R.mipmap.icon_main_live_normal,
R.mipmap.icon_main_follow_normal,
R.mipmap.icon_main_mine_normal
)
val mIconSelectIds = intArrayOf( val mIconUnSelectIds =
R.mipmap.icon_main_match_select, if (VersionControl.showRedList()) {
R.mipmap.icon_main_news_selected, intArrayOf(
R.mipmap.icon_main_live_selected, R.mipmap.icon_main_match_nomal,
R.mipmap.icon_main_follow_selected, R.mipmap.icon_main_news_normal,
R.mipmap.icon_main_mine_selected R.mipmap.icon_main_live_normal,
) R.mipmap.icon_main_follow_normal,
R.mipmap.icon_main_mine_normal
)
} else {
intArrayOf(
R.mipmap.icon_main_match_nomal,
R.mipmap.icon_main_news_normal,
R.mipmap.icon_main_live_normal,
R.mipmap.icon_main_mine_normal
)
}
val mIconSelectIds =
if (VersionControl.showRedList()) {
intArrayOf(
R.mipmap.icon_main_match_select,
R.mipmap.icon_main_news_selected,
R.mipmap.icon_main_live_selected,
R.mipmap.icon_main_follow_selected,
R.mipmap.icon_main_mine_selected
)
} else {
intArrayOf(
R.mipmap.icon_main_match_select,
R.mipmap.icon_main_news_selected,
R.mipmap.icon_main_live_selected,
R.mipmap.icon_main_mine_selected
)
}
val mTabEntities = ArrayList<CustomTabEntity>() val mTabEntities = ArrayList<CustomTabEntity>()
for (i in mTitles.indices) { for (i in mTitles.indices) {
mTabEntities.add(TabEntityBean(mTitles[i], mIconSelectIds[i], mIconUnSelectIds[i])) mTabEntities.add(TabEntityBean(mTitles[i], mIconSelectIds[i], mIconUnSelectIds[i]))
...@@ -173,7 +216,8 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay { ...@@ -173,7 +216,8 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay {
mTabLayout.setOnTabSelectListener(object : OnTabSelectListener { mTabLayout.setOnTabSelectListener(object : OnTabSelectListener {
override fun onTabSelect(position: Int) { override fun onTabSelect(position: Int) {
if (position == 4) { val userPosition = if (VersionControl.showRedList()) 4 else 3
if (position == userPosition) {
if (SPUtil[Constants.USER_LOGIN, false] == true) { if (SPUtil[Constants.USER_LOGIN, false] == true) {
oldSelected = position oldSelected = position
mViewPager.currentItem = position mViewPager.currentItem = position
...@@ -191,6 +235,8 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay { ...@@ -191,6 +235,8 @@ class MainActivity : RefreshActivity<IBasePresenter>(), IBaseDisplay {
}) })
mTabLayout.currentTab = 2 mTabLayout.currentTab = 2
mViewPager.currentItem = 2 mViewPager.currentItem = 2
} }
fun getTabLayout(): CommonTabLayout { fun getTabLayout(): CommonTabLayout {
......
...@@ -20,6 +20,7 @@ import com.hupu.tv.player.app.ui.presenter.NewMatchDetailPresenter ...@@ -20,6 +20,7 @@ import com.hupu.tv.player.app.ui.presenter.NewMatchDetailPresenter
import com.hupu.tv.player.app.utils.CommonUtils import com.hupu.tv.player.app.utils.CommonUtils
import com.hupu.tv.player.app.utils.DialogUtils import com.hupu.tv.player.app.utils.DialogUtils
import com.hupu.tv.player.app.utils.GlideUtils import com.hupu.tv.player.app.utils.GlideUtils
import com.hupu.tv.player.app.utils.VersionControl
import com.mirkowu.statusbarutil.StatusBarUtil import com.mirkowu.statusbarutil.StatusBarUtil
import com.softgarden.baselibrary.utils.DisplayUtil import com.softgarden.baselibrary.utils.DisplayUtil
import kotlinx.android.synthetic.main.activity_new_match_detail.* import kotlinx.android.synthetic.main.activity_new_match_detail.*
...@@ -49,7 +50,7 @@ class NewMatchDetailActivity : RefreshActivity<NewMatchDetailPresenter>(), ...@@ -49,7 +50,7 @@ class NewMatchDetailActivity : RefreshActivity<NewMatchDetailPresenter>(),
get() = R.layout.activity_new_match_detail get() = R.layout.activity_new_match_detail
override fun initialize() { override fun initialize() {
statusBarTranForView(ll_root_detail,false) statusBarTranForView(ll_root_detail, false)
initData() initData()
initStatusLayout(ll_root_detail) initStatusLayout(ll_root_detail)
mStatusLayoutManager.showLoadingLayout() mStatusLayoutManager.showLoadingLayout()
...@@ -135,18 +136,34 @@ class NewMatchDetailActivity : RefreshActivity<NewMatchDetailPresenter>(), ...@@ -135,18 +136,34 @@ class NewMatchDetailActivity : RefreshActivity<NewMatchDetailPresenter>(),
mFragment.add(MatchFootDataFragment.newInstance(id, bean?.gameStat, bean?.matchGoals)) mFragment.add(MatchFootDataFragment.newInstance(id, bean?.gameStat, bean?.matchGoals))
mFragment.add(MatchDetailLiveFragment.newInstance(id)) mFragment.add(MatchDetailLiveFragment.newInstance(id))
mFragment.add(MatchIndexFragment.newInstance(id, Constants.SPORT_TYPE_FOOTBALL)) if (VersionControl.showIndex()) {
mFragment.add(MatchIndexFragment.newInstance(id, Constants.SPORT_TYPE_FOOTBALL))
}
mFragment.add(MatchAnalysisFragment.newInstance(id, sportType)) mFragment.add(MatchAnalysisFragment.newInstance(id, sportType))
mFragment.add(RedListFragment.newInstance(id)) mFragment.add(RedListFragment.newInstance(id))
mFragment.add(MatchNewsFragment.newInstance(id)) mFragment.add(MatchNewsFragment.newInstance(id))
val mTitles: Array<String?> = arrayOf( val mTitles: Array<String?> =
getString(R.string.string_match_team), if (VersionControl.showIndex()) {
getString(R.string.string_match_live), arrayOf(
getString(R.string.string_match_index), getString(R.string.string_match_team),
getString(R.string.string_match_analysis), getString(R.string.string_match_live),
getString(R.string.string_live_red_list), getString(R.string.string_match_index),
getString(R.string.string_main_news) getString(R.string.string_match_analysis),
) getString(R.string.string_live_red_list),
getString(R.string.string_main_news)
)
} else {
arrayOf(
getString(R.string.string_match_team),
getString(R.string.string_match_live),
getString(R.string.string_match_analysis),
getString(R.string.string_live_red_list),
getString(R.string.string_main_news)
)
}
val mAdapter = val mAdapter =
FragmentBasePager2Adapter(supportFragmentManager, mFragment, mTitles, lifecycle) FragmentBasePager2Adapter(supportFragmentManager, mFragment, mTitles, lifecycle)
vp_match.adapter = mAdapter vp_match.adapter = mAdapter
...@@ -189,16 +206,31 @@ class NewMatchDetailActivity : RefreshActivity<NewMatchDetailPresenter>(), ...@@ -189,16 +206,31 @@ class NewMatchDetailActivity : RefreshActivity<NewMatchDetailPresenter>(),
sportType sportType
) )
) )
mFragment.add(MatchIndexFragment.newInstance(id, Constants.SPORT_TYPE_BASKETBALL)) if (VersionControl.showIndex()) {
mFragment.add(MatchIndexFragment.newInstance(id, Constants.SPORT_TYPE_BASKETBALL))
}
mFragment.add(RedListFragment.newInstance(id)) mFragment.add(RedListFragment.newInstance(id))
val mTitles: Array<String?> = arrayOf( val mTitles: Array<String?> =
getString(R.string.string_match_team), if (VersionControl.showIndex()) {
getString(R.string.string_match_player), arrayOf(
getString(R.string.string_match_live), getString(R.string.string_match_team),
getString(R.string.string_match_analysis), getString(R.string.string_match_player),
getString(R.string.string_match_index), getString(R.string.string_match_live),
getString(R.string.string_live_red_list) getString(R.string.string_match_analysis),
) getString(R.string.string_match_index),
getString(R.string.string_live_red_list)
)
} else {
arrayOf(
getString(R.string.string_match_team),
getString(R.string.string_match_player),
getString(R.string.string_match_live),
getString(R.string.string_match_analysis),
getString(R.string.string_live_red_list)
)
}
val mAdapter = val mAdapter =
FragmentBasePager2Adapter(supportFragmentManager, mFragment, mTitles, lifecycle) FragmentBasePager2Adapter(supportFragmentManager, mFragment, mTitles, lifecycle)
vp_match.adapter = mAdapter vp_match.adapter = mAdapter
......
...@@ -30,7 +30,7 @@ class LiveTopAdapter(private val basefragment: BaseFragment<*>) : ...@@ -30,7 +30,7 @@ class LiveTopAdapter(private val basefragment: BaseFragment<*>) :
helper: BaseViewHolder, helper: BaseViewHolder,
item: MatchContentBean.MatchListsBean.MatchInfosBean item: MatchContentBean.MatchListsBean.MatchInfosBean
) { ) {
val time = if (CommonUtils.time == item.matchTime) { val time = if (CommonUtils.time == item.matchDate) {
"今天" "今天"
} else { } else {
"明天" "明天"
......
...@@ -22,11 +22,13 @@ import com.hupu.tv.player.app.ui.adapter.HomeBannerAdapter ...@@ -22,11 +22,13 @@ import com.hupu.tv.player.app.ui.adapter.HomeBannerAdapter
import com.hupu.tv.player.app.ui.contact.MainHaveMaterialContract import com.hupu.tv.player.app.ui.contact.MainHaveMaterialContract
import com.hupu.tv.player.app.ui.presenter.MainHaveMaterialPresenter import com.hupu.tv.player.app.ui.presenter.MainHaveMaterialPresenter
import com.hupu.tv.player.app.utils.GlideUtils import com.hupu.tv.player.app.utils.GlideUtils
import com.hupu.tv.player.app.utils.VersionControl
import com.softgarden.baselibrary.utils.SPUtil import com.softgarden.baselibrary.utils.SPUtil
import com.zhpan.bannerview.BannerViewPager import com.zhpan.bannerview.BannerViewPager
import com.zhpan.bannerview.constants.PageStyle import com.zhpan.bannerview.constants.PageStyle
import com.zhpan.indicator.enums.IndicatorSlideMode import com.zhpan.indicator.enums.IndicatorSlideMode
import kotlinx.android.synthetic.main.fragment_main_have_material.* import kotlinx.android.synthetic.main.fragment_main_have_material.*
import kotlinx.android.synthetic.main.layout_empty.*
import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode import org.greenrobot.eventbus.ThreadMode
...@@ -44,7 +46,6 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M ...@@ -44,7 +46,6 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M
get() = R.layout.fragment_main_have_material get() = R.layout.fragment_main_have_material
private fun initViewPager(list: List<TitleSortBean>) { private fun initViewPager(list: List<TitleSortBean>) {
mFragments.clear() mFragments.clear()
val mTitles = arrayOfNulls<String>(list.size) val mTitles = arrayOfNulls<String>(list.size)
...@@ -66,7 +67,6 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M ...@@ -66,7 +67,6 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M
} }
override fun onBanner(data: ArrayList<BannerBean>?) { override fun onBanner(data: ArrayList<BannerBean>?) {
// mStatusLayoutManager.showSuccessLayout()
initBanner(data) initBanner(data)
} }
...@@ -86,13 +86,10 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M ...@@ -86,13 +86,10 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M
} }
override fun onSpecialist(data: MutableList<SpecialistBean>?) { override fun onSpecialist(data: MutableList<SpecialistBean>?) {
// mStatusLayoutManager.showSuccessLayout()
setLoadData(mAdapter, data) setLoadData(mAdapter, data)
} }
override fun onSchedule(data: MutableList<MaterialScheduleItemEntity>?) { override fun onSchedule(data: MutableList<MaterialScheduleItemEntity>?) {
// mStatusLayoutManager.showSuccessLayout()
if (data?.size ?: 0 > 0) { if (data?.size ?: 0 > 0) {
ll_schedule.visibility = View.VISIBLE ll_schedule.visibility = View.VISIBLE
recycler_schedule.apply { recycler_schedule.apply {
...@@ -104,7 +101,6 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M ...@@ -104,7 +101,6 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M
(activity as? MainActivity)?.topMatch() (activity as? MainActivity)?.topMatch()
} }
} }
} }
...@@ -123,9 +119,8 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M ...@@ -123,9 +119,8 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M
initListener() initListener()
initAdapter() initAdapter()
initViewPager(defaultList()) initViewPager(defaultList())
initStatusLayout(ll_root as View)
setButton() setButton()
// mStatusLayoutManager.showLoadingLayout()
} }
private fun initAdapter() { private fun initAdapter() {
...@@ -149,11 +144,9 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M ...@@ -149,11 +144,9 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M
} }
private fun initListener() { private fun initListener() {
(requireActivity() as MainActivity).setAvatar(iv_avatar_have,false) (requireActivity() as MainActivity).setAvatar(iv_avatar_have, false)
iv_avatar_have.onSingleClick{ iv_avatar_have.onSingleClick {
(requireActivity() as MainActivity).toMineFragment() (requireActivity() as MainActivity).toMineFragment()
} }
...@@ -164,14 +157,17 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M ...@@ -164,14 +157,17 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M
tv_famous_scholars.onSingleClick { tv_famous_scholars.onSingleClick {
type = 0 type = 0
setButton() setButton()
presenter?.getSpecialist(type)
} }
tv_win_rate.onSingleClick { tv_win_rate.onSingleClick {
type = 1 type = 1
setButton() setButton()
presenter?.getSpecialist(type)
} }
tv_continue_red.onSingleClick { tv_continue_red.onSingleClick {
type = 2 type = 2
setButton() setButton()
presenter?.getSpecialist(type)
} }
} }
...@@ -187,16 +183,18 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M ...@@ -187,16 +183,18 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M
1 -> tv_win_rate.isSelected = true 1 -> tv_win_rate.isSelected = true
2 -> tv_continue_red.isSelected = true 2 -> tv_continue_red.isSelected = true
} }
// presenter?.getSpecialist(type)
} }
override fun showError(throwable: Throwable) { // override fun showError(throwable: Throwable) {
super.showError(throwable) // super.showError(throwable)
mStatusLayoutManager.showErrorLayout() // mStatusLayoutManager.showErrorLayout()
} // }
override fun lazyLoad() { override fun lazyLoad() {
if (!VersionControl.showRedList()) {
ll_empty.visibility = View.VISIBLE
}
presenter?.getSpecialist(type) presenter?.getSpecialist(type)
presenter?.getBanner() presenter?.getBanner()
presenter?.getSchedule(mPage, PAGE_COUNT) presenter?.getSchedule(mPage, PAGE_COUNT)
...@@ -216,8 +214,4 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M ...@@ -216,8 +214,4 @@ class MainHaveMaterialFragment : RefreshFragment<MainHaveMaterialPresenter>(), M
} }
} }
} }
\ No newline at end of file
...@@ -44,15 +44,15 @@ class MainFragmentPresenter : IBasePresenter, MainFragmentContact.Presenter { ...@@ -44,15 +44,15 @@ class MainFragmentPresenter : IBasePresenter, MainFragmentContact.Presenter {
} }
override fun getShowConfig() { override fun getShowConfig() {
RetrofitClient.retrofitService // RetrofitClient.retrofitService
.getLiveConfig() // .getLiveConfig()
.compose(NetworkTransformer(mView)) // .compose(NetworkTransformer(mView))
.subscribe(object : RxCallback<ShowConifgEntity>() { // .subscribe(object : RxCallback<ShowConifgEntity>() {
override fun onSuccess(data: ShowConifgEntity?) { // override fun onSuccess(data: ShowConifgEntity?) {
VersionControl.saveConfig(data?.show?:false) // VersionControl.saveConfig(data?.show?:false)
//
} // }
}) // })
} }
......
...@@ -12,6 +12,7 @@ import com.hupu.tv.player.app.bean.* ...@@ -12,6 +12,7 @@ import com.hupu.tv.player.app.bean.*
import com.hupu.tv.player.app.ui.activity.MainActivity import com.hupu.tv.player.app.ui.activity.MainActivity
import com.hupu.tv.player.app.ui.contact.SplashActivityContact import com.hupu.tv.player.app.ui.contact.SplashActivityContact
import com.hupu.tv.player.app.utils.JsonUtils import com.hupu.tv.player.app.utils.JsonUtils
import com.hupu.tv.player.app.utils.VersionControl
/** /**
* @author by Dell * @author by Dell
...@@ -63,6 +64,19 @@ class SplashActivityPresenter : IBasePresenter, SplashActivityContact.Presenter ...@@ -63,6 +64,19 @@ class SplashActivityPresenter : IBasePresenter, SplashActivityContact.Presenter
override fun onSuccess(data: ArrayList<BannerBean>?) { override fun onSuccess(data: ArrayList<BannerBean>?) {
SPUtil.putSerializableObject(Constants.MAIN_BANNER, data) SPUtil.putSerializableObject(Constants.MAIN_BANNER, data)
mTvMessage?.text = mTvMessage?.text.toString() + "\n" + "请求广告成功" mTvMessage?.text = mTvMessage?.text.toString() + "\n" + "请求广告成功"
getConfig()
}
})
}
private fun getConfig() {
RetrofitClient.retrofitService
.getLiveConfig()
.compose(NetworkTransformer(mView))
.subscribe(object : RxCallback<ShowConifgEntity>() {
override fun onSuccess(data: ShowConifgEntity?) {
VersionControl.saveConfig(data?.show?:false)
mTvMessage?.text = mTvMessage?.text.toString() + "\n" + "请求控制成功"
getBannerList() getBannerList()
} }
}) })
...@@ -94,8 +108,8 @@ class SplashActivityPresenter : IBasePresenter, SplashActivityContact.Presenter ...@@ -94,8 +108,8 @@ class SplashActivityPresenter : IBasePresenter, SplashActivityContact.Presenter
private fun getNewsList() { private fun getNewsList() {
RetrofitClient.retrofitService RetrofitClient.retrofitService
.getNewsHeadList(JsonUtils.toRequestBody(hashMapOf<String,Any>().apply { .getNewsHeadList(JsonUtils.toRequestBody(hashMapOf<String, Any>().apply {
put("type",2) put("type", 2)
})) }))
.compose(NetworkTransformer(mView)) .compose(NetworkTransformer(mView))
.subscribe(object : RxCallback<List<BannerBean>>() { .subscribe(object : RxCallback<List<BannerBean>>() {
......
...@@ -8,14 +8,15 @@ import com.softgarden.baselibrary.utils.SPUtil ...@@ -8,14 +8,15 @@ import com.softgarden.baselibrary.utils.SPUtil
* @author by Dell * @author by Dell
* @date on 2022/4/29 * @date on 2022/4/29
* @describe * @describe
*
*/ */
object VersionControl { object VersionControl {
const val OFFICEL_1 = "0" private const val OFFICIAL_1 = "qj_01"
const val OFFICEL_2 = "qj_01" private const val OFFICIAL_2 = "qj_02"
const val OFFICEL_3 = "qj_02" private const val BAIDU = "qj_baidu"
const val VIVO = "qj_vivo_01" private const val VIVO = "qj_vivo_01"
const val HUAWEI = "qj_huawei_01" private const val HUAWEI = "qj_huawei_01"
const val OPPO = "qj_oppo_01" private const val OPPO = "qj_oppo_01"
fun isShowLive(): Boolean { fun isShowLive(): Boolean {
...@@ -24,10 +25,16 @@ object VersionControl { ...@@ -24,10 +25,16 @@ object VersionControl {
fun saveConfig(showConfig: Boolean) { fun saveConfig(showConfig: Boolean) {
when (BuildConfig.FLAVOR) { when (BuildConfig.FLAVOR) {
OFFICEL_1, OFFICEL_2, OFFICEL_3, VIVO, HUAWEI, OPPO -> SPUtil.put(Constants.SHOW_LIVE_CONFIG, showConfig) OFFICIAL_1, OFFICIAL_2 -> SPUtil.put(Constants.SHOW_LIVE_CONFIG, true)
else -> SPUtil.put(Constants.SHOW_LIVE_CONFIG, showConfig)
} }
}
fun showIndex(): Boolean {
return isShowLive()
} }
fun showRedList(): Boolean {
return isShowLive()
}
} }
\ No newline at end of file
...@@ -97,6 +97,7 @@ ...@@ -97,6 +97,7 @@
android:visibility="gone" /> android:visibility="gone" />
<WebView <WebView
android:paddingHorizontal="3dp"
android:id="@+id/mWebView" android:id="@+id/mWebView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
app:srlEnableFooterFollowWhenLoadFinished="true" app:srlEnableFooterFollowWhenLoadFinished="true"
app:srlEnableScrollContentWhenLoaded="true"> app:srlEnableScrollContentWhenLoaded="true">
<!-- elevation 高版本自带一个阴影,不需要去掉即可 --> <!-- elevation 高版本自带一个阴影,不需要去掉即可 -->
<!-- <include layout="@layout/layout_empty"/>--> <include layout="@layout/layout_empty"
android:visibility="gone"/>
<androidx.coordinatorlayout.widget.CoordinatorLayout <androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -105,13 +105,13 @@ ...@@ -105,13 +105,13 @@
<string name="string_user_agreement_title_private">隐私协议</string> <string name="string_user_agreement_title_private">隐私协议</string>
<string name="string_user_agreement">1. 重要须知 <string name="string_user_agreement">1. 重要须知
\n\n1.1、本用户使用许可协议(下称“协议”或“本协议”)是用户与北京添迈科技有限公司旗下“球聚直播”视频直播平台(下称球聚直播)之间关于注册、登录“球聚直播”视频直播平台(下称“视频直播平台”或“平台”)以及使用平台服务所订立的协议,本协议约定了球聚直播与用户之间关于“球聚直播”服务方面的权利义务。 “用户”是指注册、登录、使用、浏览、获取本协议项下服务的个人或组织。 \n\n1.1、本用户使用许可协议(下称“协议”或“本协议”)是用户与河南夜澜网络科技有限公司旗下“球聚直播”视频直播平台(下称球聚直播)之间关于注册、登录“球聚直播”视频直播平台(下称“视频直播平台”或“平台”)以及使用平台服务所订立的协议,本协议约定了球聚直播与用户之间关于“球聚直播”服务方面的权利义务。 “用户”是指注册、登录、使用、浏览、获取本协议项下服务的个人或组织。
\n\n1.2、用户应认真阅读(未成年人应当在监护人陪同下阅读)、充分理解本协议中各条款,特别是免除或者限制球聚直播责任的免责条款及对用户的权利限制条款,并选择接受或不接受本协议。除非用户接受本协议所有条款,否则用户无权注册、登录或使用球聚直播为用户提供的服务。用户的注册、登录、使用等行为将视为对本协议的接受,并同意接受本协议各项条款的约束。 \n\n1.2、用户应认真阅读(未成年人应当在监护人陪同下阅读)、充分理解本协议中各条款,特别是免除或者限制球聚直播责任的免责条款及对用户的权利限制条款,并选择接受或不接受本协议。除非用户接受本协议所有条款,否则用户无权注册、登录或使用球聚直播为用户提供的服务。用户的注册、登录、使用等行为将视为对本协议的接受,并同意接受本协议各项条款的约束。
\n\n1.3、通过访问和/或使用球聚直播,用户表示同意接受本协议的所有条件和条款。球聚直播是面向最终用户提供播客实时在线演绎、互动直播等服务的网站。如果用户不愿接受本协议的全部条件和条款,请用户不要访问或使用球聚直播。如果用户愿意接受本协议,则意味着用户了解及完全同意本协议的各项内容,以及球聚直播对本协议及本协议附件随时所做的任何修改。 \n\n1.3、通过访问和/或使用球聚直播,用户表示同意接受本协议的所有条件和条款。球聚直播是面向最终用户提供播客实时在线演绎、互动直播等服务的网站。如果用户不愿接受本协议的全部条件和条款,请用户不要访问或使用球聚直播。如果用户愿意接受本协议,则意味着用户了解及完全同意本协议的各项内容,以及球聚直播对本协议及本协议附件随时所做的任何修改。
\n\n1.4、本协议下的条款可由球聚直播随时变更,用户须定期审阅本协议。协议条款一旦发生变动,球聚直播将会在网站相关的页面上发布。变更后的协议在相关的页面上公布即有效代替原来的协议,恕不再另行通知。用户如不同意球聚直播对本协议的所作的任何变更,应立即停止使用球聚直播提供的服务。如用户在本协议变更后继续使用球聚直播的服务,即视作用户已完全同意变更后的协议。 \n\n1.4、本协议下的条款可由球聚直播随时变更,用户须定期审阅本协议。协议条款一旦发生变动,球聚直播将会在网站相关的页面上发布。变更后的协议在相关的页面上公布即有效代替原来的协议,恕不再另行通知。用户如不同意球聚直播对本协议的所作的任何变更,应立即停止使用球聚直播提供的服务。如用户在本协议变更后继续使用球聚直播的服务,即视作用户已完全同意变更后的协议。
\n\n1.5、请注意:鉴于用户使用网络服务之习惯,用户有权利且有义务自使用球聚直播服务之日起每月自行主动对本协议之全部内容进行重新阅读,鉴于上述约定,用户因自身怠于行使该等权利或怠于履行该等义务的,无权以未获知上述内容而对相关条款的法律效力提出异议。 \n\n1.5、请注意:鉴于用户使用网络服务之习惯,用户有权利且有义务自使用球聚直播服务之日起每月自行主动对本协议之全部内容进行重新阅读,鉴于上述约定,用户因自身怠于行使该等权利或怠于履行该等义务的,无权以未获知上述内容而对相关条款的法律效力提出异议。
\n\n2. 服务内容 \n\n2. 服务内容
\n\n2.1、本用户使用许可协议(下称“协议”或“本协议”)是用户与北京添迈科技有限公司旗下“球聚直播”视频直播平台(下称球聚直播)之间关于注册、登录“球聚直播”视频直播平台(下称“视频直播平台”或“平台”)以及使用平台服务所订立的协议,本协议约定了球聚直播与用户之间关于“球聚直播”服务方面的权利义务。 “用户”是指注册、登录、使用、浏览、获取本协议项下服务的个人或组织。 \n\n2.1、本用户使用许可协议(下称“协议”或“本协议”)是用户与河南夜澜网络科技有限公司旗下“球聚直播”视频直播平台(下称球聚直播)之间关于注册、登录“球聚直播”视频直播平台(下称“视频直播平台”或“平台”)以及使用平台服务所订立的协议,本协议约定了球聚直播与用户之间关于“球聚直播”服务方面的权利义务。 “用户”是指注册、登录、使用、浏览、获取本协议项下服务的个人或组织。
\n\n2.2、用户应认真阅读(未成年人应当在监护人陪同下阅读)、充分理解本协议中各条款,特别是免除或者限制球聚直播责任的免责条款及对用户的权利限制条款,并选择接受或不接受本协议。除非用户接受本协议所有条款,否则用户无权注册、登录或使用球聚直播为用户提供的服务。用户的注册、登录、使用等行为将视为对本协议的接受,并同意接受本协议各项条款的约束。 \n\n2.2、用户应认真阅读(未成年人应当在监护人陪同下阅读)、充分理解本协议中各条款,特别是免除或者限制球聚直播责任的免责条款及对用户的权利限制条款,并选择接受或不接受本协议。除非用户接受本协议所有条款,否则用户无权注册、登录或使用球聚直播为用户提供的服务。用户的注册、登录、使用等行为将视为对本协议的接受,并同意接受本协议各项条款的约束。
\n\n2.3、通过访问和/或使用球聚直播,用户表示同意接受本协议的所有条件和条款。球聚直播是面向最终用户提供播客实时在线演绎、互动直播等服务的网站。如果用户不愿接受本协议的全部条件和条款,请用户不要访问或使用球聚直播。如果用户愿意接受本协议,则意味着用户了解及完全同意本协议的各项内容,以及球聚直播对本协议及本协议附件随时所做的任何修改。 \n\n2.3、通过访问和/或使用球聚直播,用户表示同意接受本协议的所有条件和条款。球聚直播是面向最终用户提供播客实时在线演绎、互动直播等服务的网站。如果用户不愿接受本协议的全部条件和条款,请用户不要访问或使用球聚直播。如果用户愿意接受本协议,则意味着用户了解及完全同意本协议的各项内容,以及球聚直播对本协议及本协议附件随时所做的任何修改。
\n\n2.4、本协议下的条款可由球聚直播随时变更,用户须定期审阅本协议。协议条款一旦发生变动,球聚直播将会在网站相关的页面上发布。变更后的协议在相关的页面上公布即有效代替原来的协议,恕不再另行通知。用户如不同意球聚直播对本协议的所作的任何变更,应立即停止使用球聚直播提供的服务。如用户在本协议变更后继续使用球聚直播的服务,即视作用户已完全同意变更后的协议。 \n\n2.4、本协议下的条款可由球聚直播随时变更,用户须定期审阅本协议。协议条款一旦发生变动,球聚直播将会在网站相关的页面上发布。变更后的协议在相关的页面上公布即有效代替原来的协议,恕不再另行通知。用户如不同意球聚直播对本协议的所作的任何变更,应立即停止使用球聚直播提供的服务。如用户在本协议变更后继续使用球聚直播的服务,即视作用户已完全同意变更后的协议。
......
{
"version": 1,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.hupu.tv.player.app",
"variantName": "um_10002Release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"properties": [],
"versionCode": 16,
"versionName": "16",
"enabled": true,
"outputFile": "hslive_v1.0.3_release_um_10002_2022-04-02.apk"
}
]
}
\ No newline at end of file
{
"version": 1,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.hupu.tv.player.app",
"variantName": "vivo_01Release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"properties": [],
"versionCode": 15,
"versionName": "15",
"enabled": true,
"outputFile": "hslive_v1.0.2_release_vivo_01_2022-03-18.apk"
}
]
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment