Commit 4b6c74ff by Dell

改版

parent f526fc53
......@@ -6,7 +6,7 @@ def config = rootProject.ext.ver
def library = rootProject.ext.library
def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getDefault())
return new Date().format("yyyy-MM-dd", TimeZone.getDefault())
}
android {
......@@ -42,7 +42,7 @@ android {
applicationVariants.all { variant ->
variant.outputs.all {
// outputFileName = "A_v${variant.versionName}_${variant.buildType.name}_id_0_250.apk"
outputFileName = "v${variant.versionName}_${variant.buildType.name}.apk"
outputFileName = "v${variant.versionName}_${variant.buildType.name}_${releaseTime()}.apk"
}
}
......@@ -176,6 +176,8 @@ dependencies {
//图片选择器
implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0'
implementation 'com.github.zhpanvip:bannerviewpager:3.5.4'
}
repositories {
mavenCentral()
......
......@@ -60,7 +60,7 @@
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.hupu.tv.player.app.FileProvider"
android:authorities="com.m.live.app.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
......@@ -72,11 +72,11 @@
<!-- 设置环信应用的AppKey -->
<meta-data
android:name="EASEMOB_APPKEY"
android:value="1118210302098649#hongshanliving" />
android:value="1102211214116810#room" />
<meta-data
android:name="UMENG_APPKEY"
android:value="606eca9818b72d2d244b25bb" />
android:value="61d3fba6e0f9bb492bb94a46" />
<meta-data
android:name="UMENG_CHANNEL"
android:value="UMENG_CHANNEL" />
......
......@@ -20,7 +20,8 @@ interface HostUrl {
// const val HOST_URL = "http://129.226.169.250:8051/excuse/"
const val HOST_URL = "http://hszhibo.live/excuse/"
// const val HOST_URL = "http://hszhibo.live/excuse/"
const val HOST_URL = "http://api.mzhibo.cc/excuse/"
/**
......@@ -49,12 +50,12 @@ interface HostUrl {
/**
* 登接口
* 登接口
*/
const val POST_LOGIN = "capi/user/login"
/**
* 登注册接口
* 登注册接口
*/
const val POST_LOGIN_LIVE = "user/register"
......@@ -385,7 +386,7 @@ interface HostUrl {
const val POST_USER_FORGET_PASSWORD = "user/forgotPassword"
/**
* 设置登密码
* 设置登密码
*/
const val POST_USER_SETTING_PASSWORD = "user/userSetLoginPwd"
......@@ -496,14 +497,14 @@ interface HostUrl {
/**
* 获取用户关注的主播列表
* 需要登可用
* 需要登可用
*/
const val POST_MATCH_USER_ANCHOR = "match/userGetAnchorList"
/**
* 获取用户关注的比赛列表
* 需要登可用
* 需要登可用
*/
const val POST_MATCH_USER_MATCH = "match/userGetReserveMatch"
......
......@@ -106,73 +106,73 @@ interface RetrofitService {/*@Field("is_new") int is_new*/
fun getWinnerListParam(@Body requestBody: RequestBody): Observable<BaseBean<List<String>>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_LOGIN)
fun login(@Body requestBody: RequestBody): Observable<BaseBean<UserBean>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_LOGIN_LIVE)
fun loginLive(@Body requestBody: RequestBody): Observable<BaseBean<String>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_LOGIN_PASSWORD)
fun loginPassword(@Body requestBody: RequestBody): Observable<BaseBean<String>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_FEEDBACK)
fun feedBack(@Body requestBody: RequestBody): Observable<BaseBean<String>>
/**
* 登接口
* 登接口
*/
@FormUrlEncoded
@POST(HostUrl.POST_TEST)
fun postTest(@Field("phone")phone:String,@Field("password")password:String): Observable<BaseBean<String>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_FEEDBACK_LIST)
fun getFeedBackList(): Observable<BaseBean<String>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_FEEDBACK_TYPE)
fun getFeedBackTypeList(): Observable<BaseBean<String>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_USER_CODE)
fun getSmsCode(@Body requestBody: RequestBody): Observable<BaseBean<String>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_USER_FORGET_PASSWORD)
fun forgetPassword(@Body requestBody: RequestBody): Observable<BaseBean<String>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_USER_SETTING_PASSWORD)
fun settingPassword(@Body requestBody: RequestBody): Observable<BaseBean<String>>
/**
* 登接口
* 登接口
*/
@POST(HostUrl.POST_VERIFICATION_SMS_CODE)
fun verficationSmsCode(@Body requestBody: RequestBody): Observable<BaseBean<String>>
......@@ -692,8 +692,8 @@ interface RetrofitService {/*@Field("is_new") int is_new*/
/**
* 获取新闻头部List
*/
@GET(HostUrl.POST_HEAD_NEWS)
fun getNewsHeadList(): Observable<BaseBean<List<NewsHeadEntity>>>
@POST(HostUrl.POST_LIVE_BANNER)
fun getNewsHeadList(@Body requestBody: RequestBody): Observable<BaseBean<List<BannerBean>>>
/**
* 退出登录
......
......@@ -105,7 +105,7 @@ class App : BaseApplication() {
private fun initUmeng() {
UMConfigure.init(
instance,
"606eca9818b72d2d244b25bb",
"61d3fba6e0f9bb492bb94a46",
BuildConfig.CHANNEL_ID.toString(),
UMConfigure.DEVICE_TYPE_PHONE,
""
......
......@@ -25,6 +25,7 @@ import com.softgarden.baselibrary.widget.GridDividerDecoration
import com.hupu.tv.player.app.R
import com.hupu.tv.player.app.app.Constants
import com.hupu.tv.player.app.ui.activity.LoginActivity
import com.hupu.tv.player.app.utils.CommonUtils
import com.hupu.tv.player.app.utils.EmptyConfig
import com.softgarden.baselibrary.utils.ActivityManager
import com.softgarden.baselibrary.utils.ScreenUtil
......@@ -304,7 +305,8 @@ abstract class RefreshActivity<P : IBasePresenter?> : ToolbarActivity<P>(), Requ
override fun onApiException(t: ApiException) {
super.onApiException(t)
if (t.message == Constants.ERROR_TOKEN) {
ActivityManager.instance.finishAll()
// ActivityManager.instance.finishAll()
CommonUtils.exitLogOut()
val intent = Intent(this, LoginActivity::class.java)
intent.putExtra(Constants.ERROR_TOKEN, true)
startActivity(intent)
......
......@@ -27,10 +27,7 @@ import com.hupu.tv.player.app.app.Constants
import com.hupu.tv.player.app.base.RefreshActivity
import com.hupu.tv.player.app.bean.GiftBean
import com.hupu.tv.player.app.bean.RoomInfoBean
import com.hupu.tv.player.app.event.FollowAnchorEvent
import com.hupu.tv.player.app.event.GiftEvent
import com.hupu.tv.player.app.event.MessageEvent
import com.hupu.tv.player.app.event.ReportEvent
import com.hupu.tv.player.app.event.*
import com.hupu.tv.player.app.ui.contact.LiveActivityContact
import com.hupu.tv.player.app.ui.fragment.*
import com.hupu.tv.player.app.ui.presenter.LiveActivityPresenter
......@@ -212,7 +209,7 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta
EMClient.getInstance().login(userName, "123456", object : EMCallBack {
override fun onSuccess() {
runOnUiThread {
addMessage("环信登成功")
addMessage("环信登成功")
initTabLayout()
}
}
......@@ -225,7 +222,7 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta
if (code == 200) {
initTabLayout()
} else {
addMessage("环信登失败:code : $code error : $error")
addMessage("环信登失败:code : $code error : $error")
if (code == 204) {
CommonUtils.copy(userName)
addMessage("用户id已经复制到剪切板,请粘贴发送于我,后台注册用户")
......@@ -245,7 +242,12 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta
mFragment.add(LiveRankFragment.newInstance(roomId))
mFragment.add(LiveRedListFragment.newInstance(matchId))
// mFragment.add(LiveMatchFragment.newInstance(roomId))
val mTitles: Array<String?> = arrayOf(getString(R.string.string_live_conversation), getString(R.string.string_live_actor), getString(R.string.string_live_rank), getString(R.string.string_live_red_list))
val mTitles: Array<String?> = arrayOf(
getString(R.string.string_live_conversation),
getString(R.string.string_live_actor),
getString(R.string.string_live_rank),
getString(R.string.string_live_red_list)
)
val mAdapter = FragmentBaseStatePagerAdapter(supportFragmentManager, mFragment, mTitles)
vp_live.adapter = mAdapter
vp_live.offscreenPageLimit = mFragment.size
......@@ -265,7 +267,11 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta
mFragment.add(LiveAnchorFragment.newInstance(roomId))
mFragment.add(LiveRankFragment.newInstance(roomId))
mFragment.add(LiveMatchFragment.newInstance(roomId))
val mTitles: Array<String?> = arrayOf(getString(R.string.string_live_actor), getString(R.string.string_live_rank), getString(R.string.string_live_match))
val mTitles: Array<String?> = arrayOf(
getString(R.string.string_live_actor),
getString(R.string.string_live_rank),
getString(R.string.string_live_match)
)
val mAdapter = FragmentBaseStatePagerAdapter(supportFragmentManager, mFragment, mTitles)
vp_live.adapter = mAdapter
vp_live.offscreenPageLimit = mFragment.size
......@@ -285,7 +291,7 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta
override fun onRequestRoomInfo(bean: RoomInfoBean?) {
matchId = bean?.matchId?:""
matchId = bean?.matchId ?: ""
addMessage("请求房间信息成功 直播间 IM userId = ${bean?.huanXinUserId}")
bean?.let {
roomId = it.roomId
......@@ -327,7 +333,10 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta
if (TextUtils.isEmpty(qqNum)) {
CommonUtils.copy(it.qqNum, getString(R.string.string_live_copy_success_qq))
} else if (TextUtils.isEmpty(qqGroupNum)) {
CommonUtils.copy(it.qqGroupNum, getString(R.string.string_live_copy_success_qq_group))
CommonUtils.copy(
it.qqGroupNum,
getString(R.string.string_live_copy_success_qq_group)
)
}
}
}
......@@ -373,6 +382,7 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta
fun onEventDamMu(event: MessageEvent) {
sendDanmu(event.message, false)
}
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true, priority = 1)
fun onReport(event: ReportEvent) {
startActivity(Intent(this, ReportActivity::class.java))
......@@ -384,6 +394,7 @@ class LiveActivity : RefreshActivity<LiveActivityPresenter>(), LiveActivityConta
}
override fun onBackPressed() {
orientationUtils?.backToProtVideo()
if (GSYVideoManager.backFromWindowFull(this)) {
......
......@@ -43,7 +43,7 @@ class LoginActivity : RefreshActivity<LoginActivityPresenter>(), LoginActivityCo
intent.getBooleanExtra(Constants.FORCE_EXIT, false)
WaitDialog.dismiss()
CommonUtils.umengLogin()
startActivity(MainActivity::class.java)
// startActivity(MainActivity::class.java)
finish()
}
......
......@@ -97,13 +97,13 @@ class NewMatchDetailActivity : RefreshActivity<NewMatchDetailPresenter>(), NewMa
1 -> {
tv_status.background = getDrawable(R.drawable.shape_match_status_live)
tv_status.text = "直播中"
tv_status.setOnClickListener {
DialogUtils.showMatchLive(this, liveBeanList, object : DialogUtils.OnClickTextListener {
override fun onClick(text: String) {
startActivity(CommonUtils.toWeb(text))
}
})
}
// tv_status.setOnClickListener {
// DialogUtils.showMatchLive(this, liveBeanList, object : DialogUtils.OnClickTextListener {
// override fun onClick(text: String) {
// startActivity(CommonUtils.toWeb(text))
// }
// })
// }
}
3 -> {
tv_status.background = getDrawable(R.drawable.shape_match_status_end)
......
......@@ -27,7 +27,8 @@ import com.softgarden.baselibrary.utils.RecyclerViewUtil
import com.softgarden.baselibrary.utils.SPUtil
import com.softgarden.baselibrary.utils.ToastUtil
import kotlinx.android.synthetic.main.activity_news_detail.*
import kotlinx.android.synthetic.main.layout_title.*
import java.util.regex.Matcher
import java.util.regex.Pattern
class NewsDetailActivity : ToolbarActivity<NewsDetailPresenter>(), NewsDetailContact.Display {
......@@ -47,8 +48,6 @@ class NewsDetailActivity : ToolbarActivity<NewsDetailPresenter>(), NewsDetailCon
override fun initialize() {
id = intent.getStringExtra(Constants.NEWS_DETAIL) ?: ""
tv_title_middle.text = "新闻详情"
tv_title_middle.setTextColor(resources.getColor(R.color.black))
iv_left_icon.setOnClickListener {
finish()
......@@ -114,7 +113,6 @@ class NewsDetailActivity : ToolbarActivity<NewsDetailPresenter>(), NewsDetailCon
fun initWebView() {
// mWebView.setBackgroundColor(ContextCompat.getColor(this, R.color.colorTheme)); // 设置背景色
val webSettings = mWebView.settings
//如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript
webSettings.javaScriptEnabled = true
//支持插件
......@@ -245,12 +243,14 @@ class NewsDetailActivity : ToolbarActivity<NewsDetailPresenter>(), NewsDetailCon
fun loadText(content: String?) {
val webSettings = mWebView.settings
//设置自适应屏幕,两者合用
val data = replaceImg(content ?: "")
val data = cancelStyle(content ?: "")
val cancelLink = cancelLink(data)
val cancelHead = cancelHead(cancelLink)
webSettings?.useWideViewPort = false //将图片调整到适合webview的大小
webSettings?.loadWithOverviewMode = false // 缩放至屏幕的大小
/*** 完美自适应屏幕 */
val sb = StringBuilder()
sb.append(data)
sb.append(cancelHead)
.append("<html>")
.append("<head>")
.append("<meta charset=\\\"utf-8\\\">")
......@@ -261,7 +261,7 @@ class NewsDetailActivity : ToolbarActivity<NewsDetailPresenter>(), NewsDetailCon
.append("<style>img{width:100%;}</style>")
.append("<style>iframe{width:100%;}</style>")
.append("<style>table{width:100%;}</style>")
.append("<style>body{font-size:18px;}</style>")
.append("<style>body{font-size:14px;color:#666666}</style>")
.append("<title>mWebView</title>")
mWebView.loadDataWithBaseURL(null, sb.toString(), "text/html", "utf-8", null)
......@@ -280,6 +280,43 @@ class NewsDetailActivity : ToolbarActivity<NewsDetailPresenter>(), NewsDetailCon
return temp
}
private fun cancelStyle(text:String):String{
var content = text
// 先把所有的style干掉 - 正则表达式
val regEx = " style=\"(.*?)\""
val p: Pattern = Pattern.compile(regEx)
val m: Matcher = p.matcher(text)
if (m.find()) {
content = m.replaceAll("")
}
return content;
}
private fun cancelLink(text: String):String{
var content = text
// 先把所有的style干掉 - 正则表达式
val regEx = " href=\"(.*?)\""
val p: Pattern = Pattern.compile(regEx)
val m: Matcher = p.matcher(text)
if (m.find()) {
content = m.replaceAll("")
}
return content;
}
private fun cancelHead(text: String):String{
var content = text
// 去掉head
val regEx = ".*[h]1>"
val p: Pattern = Pattern.compile(regEx)
val m: Matcher = p.matcher(text)
if (m.find()) {
content = m.replaceAll("")
}
return content
}
override fun onDetail(entity: NewDetailEntity?) {
loadText(entity?.content)
......@@ -301,6 +338,8 @@ class NewsDetailActivity : ToolbarActivity<NewsDetailPresenter>(), NewsDetailCon
}
}
tv_like_count.text = entity?.likeCount.toString()
tv_title.text = entity?.title
tv_time.text = entity?.releaseTime
moreAdapter.setNewData(entity?.associateArticle)
}
......
......@@ -46,7 +46,7 @@ class NickNameActivity : RefreshActivity<NickNameActivityPresenter>(), NickNameA
CommonUtils.umengLogin()
WaitDialog.dismiss()
hideProgressDialog()
ToastUtil.s("登成功")
ToastUtil.s("登成功")
startActivity(MainActivity::class.java)
finish()
}
......
......@@ -149,7 +149,7 @@ class SettingActivity : RefreshActivity<SettingPresenter>(), SettingContact.Disp
override fun onExit() {
ToastUtil.s("退出成功")
startActivity(LoginActivity::class.java)
ActivityManager.instance.finishAll()
// ActivityManager.instance.finishAll()
// EventBus.getDefault().post(ExitLoginEvent())
}
......
package com.hupu.tv.player.app.ui.adapter
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import com.hupu.tv.player.app.R
import com.hupu.tv.player.app.bean.BannerBean
import com.hupu.tv.player.app.utils.GlideUtils
import com.zhpan.bannerview.BaseBannerAdapter
import com.zhpan.bannerview.BaseViewHolder
class HomeBannerAdapter(private val isNews: Boolean = false) : BaseBannerAdapter<BannerBean?>() {
override fun bindData(
holder: BaseViewHolder<BannerBean?>,
data: BannerBean?,
position: Int,
pageSize: Int
) {
holder.itemView.findViewById<ImageView>(R.id.banner_image).apply {
GlideUtils.loadImage(holder.itemView, data?.picPath, this,0)
if (isNews) {
holder.itemView.findViewById<TextView>(R.id.tv_title).apply {
visibility = View.VISIBLE
text = data?.title
}
}
}
}
override fun getLayoutId(viewType: Int): Int {
return R.layout.item_slide_mode
}
}
\ No newline at end of file
......@@ -73,7 +73,7 @@ public class ImagesPagerAdapter extends PagerAdapter {
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
imageView.setLayoutParams(lp);
// GlideUtils.loadRoundCircleImageCenterCrop(mFragment, (String) SPUtil.Companion.get(Constants.SITE,"")+url, imageView, 9);
GlideUtils.loadRoundCircleImageCenterCrop(mFragment, url, imageView, 8, R.mipmap.bg_live_main_place_holder);
GlideUtils.loadRoundCircleImageCenterCrop(mFragment, url, imageView, 8, 0);
viewPager.addView(imageView);
imageView.setOnClickListener(v -> {
if (onItemClickListener!=null){
......
......@@ -71,16 +71,21 @@ class MatchContentIncludeAdapter(layoutResId: Int, private val baseFragment: Bas
// });
guidesAdapter.onItemClickListener = OnItemClickListener { adapter: BaseQuickAdapter<*, *>, view: View?, position: Int ->
if (SPUtil[Constants.USER_LOGIN, false] as Boolean) {
val guidesBean = adapter.getItem(position) as GuidesBean?
val intent = Intent(baseFragment.activity, LiveActivity::class.java)
intent.putExtra(Constants.ROOM_ID, guidesBean!!.roomId)
intent.putExtra(Constants.ROOM_COVER, guidesBean.matchCutImg)
baseFragment.startActivity(intent)
} else {
DialogUtils.showLogin(mContext as AppCompatActivity)
// startActivity(LoginActivity::class.java)
}
// if (SPUtil[Constants.USER_LOGIN, false] as Boolean) {
// val guidesBean = adapter.getItem(position) as GuidesBean?
// val intent = Intent(baseFragment.activity, LiveActivity::class.java)
// intent.putExtra(Constants.ROOM_ID, guidesBean!!.roomId)
// intent.putExtra(Constants.ROOM_COVER, guidesBean.matchCutImg)
// baseFragment.startActivity(intent)
// } else {
// DialogUtils.showLogin(mContext as AppCompatActivity)
//// startActivity(LoginActivity::class.java)
// }
}
......
......@@ -18,7 +18,6 @@ import com.hupu.tv.player.app.widget.ImageCarousel
*/
interface MainContentAllContract {
interface Display : IBaseDisplay {
fun onDot(imageCarousel: ImageCarousel)
fun onRequestLiveData(data:List<LiveBean.DataListBean>?)
fun onTopLiveData(data:List<MatchContentBean.MatchListsBean.MatchInfosBean>?)
fun onSubscribeMatch(message:String)
......@@ -26,7 +25,6 @@ interface MainContentAllContract {
}
interface Presenter {
fun initDot(linearLayout: LinearLayout, viewPager: ViewPager, textView: TextView)
fun getMatchData(pageNo:Int)
fun getTopLive(pageNo: Int)
fun reserveMatch(id: String)
......
......@@ -16,13 +16,11 @@ import com.hupu.tv.player.app.widget.ImageCarousel
interface MainNewsContentAllContract {
interface Display : IBaseDisplay {
fun onNewsData(data: NewsDataBean?)
fun onDot(imageCarousel: ImageCarousel)
fun onRequestLiveData(data:List<LiveBean.DataListBean>?)
}
interface Presenter {
fun initDot(linearLayout: LinearLayout, viewPager: ViewPager, textView: TextView)
fun getNewsList(id:String,pageNo:Int)
}
......
......@@ -14,6 +14,8 @@ import com.hupu.tv.player.app.bean.RoomInfoBean
import com.hupu.tv.player.app.ui.adapter.MainPlayerAdapter
import com.hupu.tv.player.app.ui.contact.BasketBallPlayerFragmentContact
import com.hupu.tv.player.app.ui.presenter.BasketBallPlayerFragmentPresenter
import com.softgarden.baselibrary.base.IBaseDisplay
import com.softgarden.baselibrary.base.IBasePresenter
import kotlinx.android.synthetic.main.fragment_match_player.*
import kotlinx.android.synthetic.main.layout_empty.*
......@@ -23,7 +25,7 @@ import kotlinx.android.synthetic.main.layout_empty.*
* @date on 2020/6/15
* @describe
*/
class BasketBallPlayerFragment : RefreshFragment<BasketBallPlayerFragmentPresenter>(), BasketBallPlayerFragmentContact.Display {
class BasketBallPlayerFragment : RefreshFragment<IBasePresenter>(), IBaseDisplay {
private var roomid = ""
private lateinit var adapter: MainPlayerAdapter
private lateinit var awayAdapter: MainPlayerAdapter
......@@ -36,9 +38,9 @@ class BasketBallPlayerFragment : RefreshFragment<BasketBallPlayerFragmentPresent
override val baseActivity: BaseActivity<*>?
get() = activity as BaseActivity<*>
override fun onRequestRoomInfo(bean: RoomInfoBean?) {
}
// override fun onRequestRoomInfo(bean: RoomInfoBean?) {
//
// }
override val ctx: Context?
......@@ -108,7 +110,7 @@ class BasketBallPlayerFragment : RefreshFragment<BasketBallPlayerFragmentPresent
override fun lazyLoad() {
presenter?.getRoomInfo(roomid)
// presenter?.getRoomInfo(roomid)
// presenter?.getBaseketballInfo(roomid)
mRecyclerView?.postDelayed({
finishRefresh()
......
......@@ -16,6 +16,8 @@ import com.hupu.tv.player.app.ui.adapter.MatchTeamTopAdapter
import com.hupu.tv.player.app.ui.contact.BasketBallTeamFragmentContact
import com.hupu.tv.player.app.ui.presenter.BasketBallTeamFragmentPresenter
import com.hupu.tv.player.app.utils.GlideUtils
import com.softgarden.baselibrary.base.IBaseDisplay
import com.softgarden.baselibrary.base.IBasePresenter
import kotlinx.android.synthetic.main.fragment_team_new.*
import kotlinx.android.synthetic.main.layout_empty.*
......@@ -25,7 +27,7 @@ import kotlinx.android.synthetic.main.layout_empty.*
* @date on 2020/6/15
* @describe
*/
class BasketBallTeamFragment : RefreshFragment<BasketBallTeamFragmentPresenter>(), BasketBallTeamFragmentContact.Display {
class BasketBallTeamFragment : RefreshFragment<IBasePresenter>(),IBaseDisplay {
/**
* 因为两个View叠加在一起,没办法使用LinearLayout 的weight,所以要通过得分来计算
* 因为最大长度为200
......@@ -60,10 +62,10 @@ class BasketBallTeamFragment : RefreshFragment<BasketBallTeamFragmentPresenter>(
override val baseActivity: BaseActivity<*>?
get() = activity as BaseActivity<*>
override fun onRequestRoomInfo(bean: RoomInfoBean?) {
}
//
// override fun onRequestRoomInfo(bean: RoomInfoBean?) {
//
// }
override val ctx: Context?
......@@ -170,7 +172,7 @@ class BasketBallTeamFragment : RefreshFragment<BasketBallTeamFragmentPresenter>(
override fun lazyLoad() {
presenter?.getRoomInfo(roomid)
// presenter?.getRoomInfo(roomid)
mRecyclerView?.postDelayed({
finishRefresh()
}, 3000)
......
......@@ -127,11 +127,13 @@ public class ChatFragment extends CustomEaseChatFragment implements OnRecallMess
public void sendJoinRoomData() {
if (!isSend) {
boolean isLogin = (boolean) SPUtil.Companion.get(Constants.USER_LOGIN, false);
if (isLogin) {
chatLayout.sendTextMessage("进入直播间");
sendFakeMessage();
isSend = true;
}
}
}
private void sendFakeMessage() {
......
......@@ -69,7 +69,7 @@ class FollowAnchorFragment : ToolbarFragment<FollowAnchorPresenter>(), FollowAnc
ll_not_login.visibility = View.VISIBLE
mRecyclerView?.visibility = View.GONE
}
iv_login.setOnClickListener {
tv_login.setOnClickListener {
DialogUtils.showLogin(activity as AppCompatActivity)
}
}
......@@ -90,10 +90,10 @@ class FollowAnchorFragment : ToolbarFragment<FollowAnchorPresenter>(), FollowAnc
activity?.let { RecyclerViewUtil.addGridItemDecoration(it, mRecyclerView_down!!, R.color.transparent, 2 * Constants.item_divider) }
mRecyclerView_down?.adapter = liveItemAdapter
liveItemAdapter?.setOnItemClickListener { adapter, view, position ->
if (!(SPUtil[Constants.USER_LOGIN, false] as Boolean)) {
DialogUtils.showLogin(requireActivity() as AppCompatActivity)
return@setOnItemClickListener
}
// if (!(SPUtil[Constants.USER_LOGIN, false] as Boolean)) {
// DialogUtils.showLogin(requireActivity() as AppCompatActivity)
// return@setOnItemClickListener
// }
val item: LiveBean.DataListBean = adapter.getItem(position) as LiveBean.DataListBean
val intent = Intent(activity, LiveActivity::class.java)
......
......@@ -63,7 +63,7 @@ class FollowMatchFragment : ToolbarFragment<FollowMatchPresenter>(), FollowMatch
ll_not_login.visibility = View.VISIBLE
ll_data.visibility = View.GONE
}
iv_login.setOnClickListener {
tv_login.setOnClickListener {
DialogUtils.showLogin(activity as AppCompatActivity)
}
}
......
......@@ -85,6 +85,7 @@ class LiveConversationFragment : RefreshFragment<LiveConversationFragmentPresent
fun onEventRefresh(event: RefreshUserEvent) {
needLogin()
chatFragment?.setShowChatPrimaryMenu()
chatFragment?.sendJoinRoomData()
}
fun sendDanmu(text: String, isMine: Boolean) {
......
......@@ -24,6 +24,7 @@ import com.hupu.tv.player.app.event.VisibleEvent
import com.hupu.tv.player.app.ui.activity.LiveActivity
import com.hupu.tv.player.app.ui.activity.MatchDetailActivity
import com.hupu.tv.player.app.ui.activity.NewMatchDetailActivity
import com.hupu.tv.player.app.ui.adapter.HomeBannerAdapter
import com.hupu.tv.player.app.ui.adapter.LiveItemAdapter
import com.hupu.tv.player.app.ui.adapter.LiveTopAdapter
import com.hupu.tv.player.app.ui.contact.MainContentAllContract
......@@ -32,6 +33,9 @@ import com.hupu.tv.player.app.utils.DialogUtils
import com.hupu.tv.player.app.widget.ImageCarousel
import com.softgarden.baselibrary.utils.SPUtil
import com.softgarden.baselibrary.utils.ToastUtil
import com.zhpan.bannerview.BannerViewPager
import com.zhpan.bannerview.constants.PageStyle
import com.zhpan.indicator.enums.IndicatorSlideMode
import kotlinx.android.synthetic.main.fragment_match_all.*
import me.jessyan.autosize.utils.LogUtils
import org.greenrobot.eventbus.EventBus
......@@ -44,7 +48,6 @@ import org.greenrobot.eventbus.ThreadMode
* @describe
*/
class MainContentAllFragment : ToolbarFragment<MainContentAllPresenter>(), MainContentAllContract.Display {
private var imageCarousel: ImageCarousel? = null
private var sportId: String = ""
private var liveItemAdapter: LiveItemAdapter? = null
private var liveTopAdapter: LiveTopAdapter? = null
......@@ -63,23 +66,18 @@ class MainContentAllFragment : ToolbarFragment<MainContentAllPresenter>(), MainC
}
private fun initView() {
presenter?.initDot(lineLayout_dot, main_view_pager, tv_pager_title)
initBanner()
liveItemAdapter = LiveItemAdapter(R.layout.item_match_normal_live, this)
mRecyclerView?.layoutManager = GridLayoutManager(activity, 2)
activity?.let { RecyclerViewUtil.addGridItemDecoration(it, mRecyclerView!!, R.color.transparent, 2 * Constants.item_divider_4) }
mRecyclerView?.adapter = liveItemAdapter
liveItemAdapter?.setOnItemClickListener { adapter, view, position ->
if (SPUtil[Constants.USER_LOGIN, false] as Boolean) {
val item: LiveBean.DataListBean = adapter.getItem(position) as LiveBean.DataListBean
val intent = Intent(activity, LiveActivity::class.java)
intent.putExtra(Constants.ROOM_ID, item.roomId)
intent.putExtra(Constants.ROOM_COVER, item.matchCutImg)
// intent.putExtra(Constants.SPORT_ID,item.anchorName)
startActivity(intent)
} else {
DialogUtils.showLogin(mContext as AppCompatActivity)
// startActivity(LoginActivity::class.java)
}
}
......@@ -110,32 +108,23 @@ class MainContentAllFragment : ToolbarFragment<MainContentAllPresenter>(), MainC
}
}
/**
* 暂停已经隐藏Fragment的轮播图
* 继续现在显示Fragment的轮播图
*/
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true, priority = 1)
fun onEventVisible(event: VisibleEvent) {
if (event.className == parentFragment?.javaClass?.simpleName) {
if (event.isVisible) {
imageCarousel?.startAutoPlay()
} else {
imageCarousel?.stopAutoPlay()
}
private fun initBanner() {
val list = SPUtil.getSerializableObject<ArrayList<BannerBean>>(Constants.BANNER_LIST)
val bannerViewPager = banner_view as BannerViewPager<BannerBean>
bannerViewPager
.setIndicatorVisibility(View.GONE)
.setLifecycleRegistry(lifecycle)
.setIndicatorSlideMode(IndicatorSlideMode.SMOOTH)
.setPageStyle(PageStyle.NORMAL)
//再MultiPageScale的模式下,左右各突出多少
// .setRevealWidth(30, 30)
.setOnPageClickListener { clickedView: View?, position: Int ->
//点击事件
}
.setAdapter(HomeBannerAdapter()).create(list)
}
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if (isVisibleToUser) {
imageCarousel?.startAutoPlay()
} else {
imageCarousel?.stopAutoPlay()
}
L.e("isVisible", "$this=======visibleToUser$isVisibleToUser")
}
override fun lazyLoad() {
......@@ -166,15 +155,6 @@ class MainContentAllFragment : ToolbarFragment<MainContentAllPresenter>(), MainC
}
override fun onDot(imageCarousel: ImageCarousel) {
this.imageCarousel = imageCarousel
imageCarousel.startAutoPlay()
imageCarousel.setOnItemClickListener(object : ImageCarousel.OnItemClickListener {
override fun onClick(url: String?, adType: String) {
//轮播图点击事件
}
})
}
override fun onRequestLiveData(data: List<LiveBean.DataListBean>?) {
liveItemAdapter?.let {
......@@ -196,7 +176,7 @@ class MainContentAllFragment : ToolbarFragment<MainContentAllPresenter>(), MainC
override fun onMessage(data: List<MessageBean.DataListBean>?) {
data?.let {list->
if (list.isNotEmpty()){
ll_message.visibility = View.VISIBLE
ll_message.visibility = View.GONE
tv_message.text =list[0].title
ll_message.setOnClickListener {
DialogUtils.showMessage(requireActivity() as AppCompatActivity,list[0].content)
......
......@@ -60,17 +60,23 @@ class MainContentNormalFragment : ToolbarFragment<MainContentNormalPresenter>(),
mRecyclerView?.layoutManager = GridLayoutManager(activity, 2)
activity?.let { RecyclerViewUtil.addGridItemDecoration(it, mRecyclerView!!, R.color.transparent, 2 * Constants.item_divider) }
liveItemAdapter?.setOnItemClickListener { adapter, view, position ->
if (SPUtil[Constants.USER_LOGIN, false] as Boolean) {
val item:LiveBean.DataListBean = adapter.getItem(position) as LiveBean.DataListBean
val intent = Intent(activity, LiveActivity::class.java)
intent.putExtra(Constants.ROOM_ID,item.roomId)
intent.putExtra(Constants.ROOM_COVER,item.matchCutImg)
// intent.putExtra(Constants.SPORT_ID,item.anchorName)
startActivity(intent)
} else {
DialogUtils.showLogin(mContext as AppCompatActivity)
// startActivity(LoginActivity::class.java)
}
// if (SPUtil[Constants.USER_LOGIN, false] as Boolean) {
// val item:LiveBean.DataListBean = adapter.getItem(position) as LiveBean.DataListBean
// val intent = Intent(activity, LiveActivity::class.java)
// intent.putExtra(Constants.ROOM_ID,item.roomId)
// intent.putExtra(Constants.ROOM_COVER,item.matchCutImg)
//// intent.putExtra(Constants.SPORT_ID,item.anchorName)
// startActivity(intent)
// } else {
// DialogUtils.showLogin(mContext as AppCompatActivity)
//// startActivity(LoginActivity::class.java)
// }
}
......
......@@ -2,6 +2,7 @@ package com.hupu.tv.player.app.ui.fragment
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
......@@ -15,10 +16,15 @@ import com.hupu.tv.player.app.base.ToolbarFragment
import com.hupu.tv.player.app.bean.*
import com.hupu.tv.player.app.event.VisibleEvent
import com.hupu.tv.player.app.ui.activity.NewsDetailActivity
import com.hupu.tv.player.app.ui.adapter.HomeBannerAdapter
import com.hupu.tv.player.app.ui.adapter.NewsListAdapter
import com.hupu.tv.player.app.ui.contact.MainNewsContentAllContract
import com.hupu.tv.player.app.ui.presenter.MainNewsContentAllPresenter
import com.hupu.tv.player.app.widget.ImageCarousel
import com.softgarden.baselibrary.utils.SPUtil
import com.zhpan.bannerview.BannerViewPager
import com.zhpan.bannerview.constants.PageStyle
import com.zhpan.indicator.enums.IndicatorSlideMode
import kotlinx.android.synthetic.main.fragment_news_all.*
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
......@@ -30,7 +36,6 @@ import org.greenrobot.eventbus.ThreadMode
* @describe
*/
class MainNewsContentAllFragment : ToolbarFragment<MainNewsContentAllPresenter>(), MainNewsContentAllContract.Display {
private var imageCarousel: ImageCarousel? = null
private var tagId: String = ""
private lateinit var newsAdapter: NewsListAdapter
override val layoutId: Int
......@@ -41,14 +46,15 @@ class MainNewsContentAllFragment : ToolbarFragment<MainNewsContentAllPresenter>(
}
override fun initEventAndData() {
EventBus.getDefault().register(this)
initRefreshLayout()
initRecyclerView()
initView()
}
private fun initView() {
presenter?.initDot(lineLayout_dot, main_view_pager, tv_pager_title)
initBanner()
newsAdapter = NewsListAdapter(R.layout.item_news, this)
mRecyclerView?.layoutManager = LinearLayoutManager(requireContext())
activity?.let { RecyclerViewUtil.addItemDecoration(it, mRecyclerView!!, R.color.view_color, 1) }
......@@ -65,34 +71,22 @@ class MainNewsContentAllFragment : ToolbarFragment<MainNewsContentAllPresenter>(
}
}
/**
* 暂停已经隐藏Fragment的轮播图
* 继续现在显示Fragment的轮播图
*/
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true, priority = 1)
fun onEventVisible(event: VisibleEvent) {
if (event.className == parentFragment?.javaClass?.simpleName) {
if (event.isVisible) {
imageCarousel?.startAutoPlay()
} else {
imageCarousel?.stopAutoPlay()
}
}
}
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if (isVisibleToUser) {
imageCarousel?.startAutoPlay()
} else {
imageCarousel?.stopAutoPlay()
private fun initBanner() {
val list = SPUtil.getSerializableObject<ArrayList<BannerBean>>(Constants.NEWS_HEAD_LIST)
val bannerViewPager = banner_view as BannerViewPager<BannerBean>
bannerViewPager
.setIndicatorVisibility(View.GONE)
.setLifecycleRegistry(lifecycle)
.setIndicatorSlideMode(IndicatorSlideMode.SMOOTH)
.setPageStyle(PageStyle.NORMAL)
//再MultiPageScale的模式下,左右各突出多少
// .setRevealWidth(30, 30)
.setOnPageClickListener { clickedView: View?, position: Int ->
//点击事件
}
L.e("isVisible", "$this=======visibleToUser$isVisibleToUser")
.setAdapter(HomeBannerAdapter()).create(list)
}
override fun lazyLoad() {
presenter?.getNewsList(tagId, mPage)
}
......@@ -114,30 +108,9 @@ class MainNewsContentAllFragment : ToolbarFragment<MainNewsContentAllPresenter>(
}
override fun onDot(imageCarousel: ImageCarousel) {
this.imageCarousel = imageCarousel
imageCarousel.startAutoPlay()
imageCarousel.setOnItemClickListener(object : ImageCarousel.OnItemClickListener {
override fun onClick(url: String?, adType: String) {
//轮播图点击事件
}
})
}
override fun onRequestLiveData(data: List<LiveBean.DataListBean>?) {
newsAdapter?.let {
setLoadMore(it, data)
}
}
override fun onDestroy() {
EventBus.getDefault().unregister(this)
super.onDestroy()
}
override fun onDestroyView() {
super.onDestroyView()
EventBus.getDefault().unregister(this)
}
}
\ No newline at end of file
......@@ -14,6 +14,8 @@ import com.hupu.tv.player.app.bean.MatchOddEntity
import com.hupu.tv.player.app.ui.contact.MatchIndexContact
import com.hupu.tv.player.app.ui.presenter.MatchIndexPresenter
import com.softgarden.baselibrary.base.FragmentBasePagerAdapter
import com.softgarden.baselibrary.base.IBaseDisplay
import com.softgarden.baselibrary.base.IBasePresenter
import kotlinx.android.synthetic.main.fragment_detail_index.*
......@@ -23,7 +25,7 @@ import kotlinx.android.synthetic.main.fragment_detail_index.*
* @date on 2020/6/14
* @describe
*/
class MatchIndexFragment : ToolbarFragment<MatchIndexPresenter>(), MatchIndexContact.Display {
class MatchIndexFragment : ToolbarFragment<IBasePresenter>(), IBaseDisplay {
private val handicapList = arrayListOf<MatchIndexDataEntity>()
private val indemnityList = arrayListOf<MatchIndexDataEntity>()
private val totalList = arrayListOf<MatchIndexDataEntity>()
......@@ -121,39 +123,39 @@ class MatchIndexFragment : ToolbarFragment<MatchIndexPresenter>(), MatchIndexCon
}
}
override fun onodds(data: List<MatchOddEntity?>?) {
data?.forEach {
val companyInfo = it?.companyInfos?.get(0)
val companyName = companyInfo?.companyName
val handicapFirst = companyInfo?.ranFen?.initialOdds?.away?.toString()
val handicapSecond = companyInfo?.ranFen?.initialOdds?.handicap?.toString()
val handicapThird = companyInfo?.ranFen?.initialOdds?.home?.toString()
val handicapFourth = companyInfo?.ranFen?.nowOdds?.away?.toString()
val handicapFifth = companyInfo?.ranFen?.nowOdds?.handicap?.toString()
val handicapSixth = companyInfo?.ranFen?.nowOdds?.home?.toString()
val handicapEntity = MatchIndexDataEntity(companyName, handicapFirst, handicapSecond, handicapThird, handicapFourth, handicapFifth, handicapSixth)
handicapList.add(handicapEntity)
val indemnityFirst = companyInfo?.ouZhi?.initialOdds?.away?.toString()
val indemnitySecond = companyInfo?.ouZhi?.initialOdds?.handicap?.toString()
val indemnityThird = companyInfo?.ouZhi?.initialOdds?.home?.toString()
val indemnityFourth = companyInfo?.ouZhi?.nowOdds?.away?.toString()
val indemnityFifth = companyInfo?.ouZhi?.nowOdds?.handicap?.toString()
val indemnitySixth = companyInfo?.ouZhi?.nowOdds?.home?.toString()
val indemnityEntity = MatchIndexDataEntity(companyName, indemnityFirst, indemnitySecond, indemnityThird, indemnityFourth, indemnityFifth, indemnitySixth)
indemnityList.add(indemnityEntity)
val totalFirst = companyInfo?.daXiao?.initialOdds?.away?.toString()
val totalSecond = companyInfo?.daXiao?.initialOdds?.handicap?.toString()
val totalThird = companyInfo?.daXiao?.initialOdds?.home?.toString()
val totalFourth = companyInfo?.daXiao?.nowOdds?.away?.toString()
val totalFifth = companyInfo?.daXiao?.nowOdds?.handicap?.toString()
val totalSixth = companyInfo?.daXiao?.nowOdds?.home?.toString()
val totalEntity = MatchIndexDataEntity(companyName, totalFirst, totalSecond, totalThird, totalFourth, totalFifth, totalSixth)
totalList.add(totalEntity)
initViewPager()
}
}
// override fun onodds(data: List<MatchOddEntity?>?) {
//
// data?.forEach {
// val companyInfo = it?.companyInfos?.get(0)
// val companyName = companyInfo?.companyName
// val handicapFirst = companyInfo?.ranFen?.initialOdds?.away?.toString()
// val handicapSecond = companyInfo?.ranFen?.initialOdds?.handicap?.toString()
// val handicapThird = companyInfo?.ranFen?.initialOdds?.home?.toString()
// val handicapFourth = companyInfo?.ranFen?.nowOdds?.away?.toString()
// val handicapFifth = companyInfo?.ranFen?.nowOdds?.handicap?.toString()
// val handicapSixth = companyInfo?.ranFen?.nowOdds?.home?.toString()
// val handicapEntity = MatchIndexDataEntity(companyName, handicapFirst, handicapSecond, handicapThird, handicapFourth, handicapFifth, handicapSixth)
// handicapList.add(handicapEntity)
//
// val indemnityFirst = companyInfo?.ouZhi?.initialOdds?.away?.toString()
// val indemnitySecond = companyInfo?.ouZhi?.initialOdds?.handicap?.toString()
// val indemnityThird = companyInfo?.ouZhi?.initialOdds?.home?.toString()
// val indemnityFourth = companyInfo?.ouZhi?.nowOdds?.away?.toString()
// val indemnityFifth = companyInfo?.ouZhi?.nowOdds?.handicap?.toString()
// val indemnitySixth = companyInfo?.ouZhi?.nowOdds?.home?.toString()
// val indemnityEntity = MatchIndexDataEntity(companyName, indemnityFirst, indemnitySecond, indemnityThird, indemnityFourth, indemnityFifth, indemnitySixth)
// indemnityList.add(indemnityEntity)
//
//
// val totalFirst = companyInfo?.daXiao?.initialOdds?.away?.toString()
// val totalSecond = companyInfo?.daXiao?.initialOdds?.handicap?.toString()
// val totalThird = companyInfo?.daXiao?.initialOdds?.home?.toString()
// val totalFourth = companyInfo?.daXiao?.nowOdds?.away?.toString()
// val totalFifth = companyInfo?.daXiao?.nowOdds?.handicap?.toString()
// val totalSixth = companyInfo?.daXiao?.nowOdds?.home?.toString()
// val totalEntity = MatchIndexDataEntity(companyName, totalFirst, totalSecond, totalThird, totalFourth, totalFifth, totalSixth)
// totalList.add(totalEntity)
// initViewPager()
// }
// }
}
\ No newline at end of file
......@@ -53,20 +53,20 @@ public class CustomTextRow extends EaseChatRowText {
@Override
protected void onInflateView() {
inflater.inflate(!showSenderType ? R.layout.custom_row_received_message
: R.layout.custom_row_sent_message, this);
inflater.inflate(R.layout.custom_row_received_message, this);
}
@Override
protected void setAvatarAndNick() {
String userNick = message.getStringAttribute(Constants.USER_NICK, message.getFrom());
int level = message.getIntAttribute(Constants.USER_LEVEL, 1);
userNick = userNick.replace("\n", "");
if (isSender()) {
EaseUserUtils.setUserAvatar(context, EMClient.getInstance().getCurrentUser(), userAvatarView);
//只要不是常规布局形式,就展示昵称
if (EaseChatItemStyleHelper.getInstance().getStyle().getItemShowType() != EaseChatMessageListLayout.ShowType.NORMAL.ordinal()) {
EaseUserUtils.setUserNick(userNick+ ":", usernickView);
EaseUserUtils.setUserNick(userNick+":", usernickView);
tvLevel.setText("LV." +level);
}
......@@ -74,7 +74,7 @@ public class CustomTextRow extends EaseChatRowText {
//todo 接受来的昵称
EaseUserUtils.setUserAvatar(context, message.getFrom(), userAvatarView);
EaseUserUtils.setUserNick(userNick + ":", usernickView);
EaseUserUtils.setUserNick(userNick+":", usernickView);
tvLevel.setText("LV." + level);
}
}
......
......@@ -67,7 +67,7 @@ class LoginActivityPresenter : IBasePresenter, LoginActivityContact.Present {
// else {
// DialogUtils.showReContact(mView as AppCompatActivity, object : DialogUtils.OnClickSingleListener {
// override fun onClick() {
// mTvMessage?.text = mTvMessage?.text.toString() + "\n" + "重新登"
// mTvMessage?.text = mTvMessage?.text.toString() + "\n" + "重新登"
// login(phone,nickName,smsCode,userAvatar)
// }
// })
......
......@@ -26,38 +26,15 @@ import com.hupu.tv.player.app.widget.ImageCarousel
*/
class MainContentAllPresenter : IBasePresenter, MainContentAllContract.Presenter {
private var mView: MainContentAllContract.Display? = null
private var imageInfoList = ArrayList<ImageInfo>()
private var dots: ArrayList<View?>? = arrayListOf()
private var imageCarousel: ImageCarousel? = null
override fun attachView(view: IBaseDisplay?) {
mView = view as MainContentAllContract.Display?
}
override fun detachView() {
imageCarousel?.stopAutoPlay()
imageCarousel?.adapter = null
imageCarousel?.weakReference = null
imageCarousel?.weakReferenceT = null
imageCarousel?.weakReferenceV = null
imageCarousel = null
dots = null
}
override fun initDot(linearLayout: LinearLayout, viewPager: ViewPager, textView: TextView) {
if (imageCarousel == null) {
val list = SPUtil.getSerializableObject<ArrayList<BannerBean>>(Constants.BANNER_LIST)
linearLayout.removeAllViews()
dots = addDots(linearLayout, mView?.baseActivity?.resources?.getDrawable(R.drawable.shape_dot_normal), list?.size
?: 0)
imageCarousel = mView?.baseFragment?.let { ImageCarousel(it, viewPager, textView, dots, Constants.IMAGE_CAROUSEL_TIME) }
imageCarousel?.init(list)
imageCarousel?.start()
imageCarousel?.let {
mView?.onDot(it)
}
}
}
override fun reserveMatch(id: String) {
......@@ -145,39 +122,4 @@ class MainContentAllPresenter : IBasePresenter, MainContentAllContract.Presenter
}
})
}
private fun addDots(linearLayout: LinearLayout, background: Drawable?, number: Int): ArrayList<View?>? {
for (index in 2..number - 1) { // 注意这里的 i 从 2 开始,只画出number个点
var dotId = addDot(linearLayout, background)
dots?.add(mView?.baseActivity?.findViewById(dotId))
}
return dots
}
/**
* 动态添加一个点
*
* @param linearLayout 添加到LinearLayout布局
* @param backgount 设置
* @return 小点的Id
*/
private fun addDot(linearLayout: LinearLayout, backgount: Drawable?): Int {
var dot = View(mView?.baseActivity)
var dotParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT)
dotParams.width = 16
dotParams.height = 16
dotParams.setMargins(4, 0, 4, 0)
dot.layoutParams = dotParams
dot.background = backgount
dot.id = View.generateViewId()
this.run {
linearLayout.addView(dot)
}
return dot.id
}
}
\ No newline at end of file
......@@ -26,37 +26,13 @@ import com.hupu.tv.player.app.widget.ImageCarousel
*/
class MainNewsContentAllPresenter : IBasePresenter, MainNewsContentAllContract.Presenter {
private var mView: MainNewsContentAllContract.Display? = null
private var imageInfoList = ArrayList<ImageInfo>()
private var dots: ArrayList<View?>? = arrayListOf()
private var imageCarousel: ImageCarousel? = null
override fun attachView(view: IBaseDisplay?) {
mView = view as MainNewsContentAllContract.Display?
}
override fun detachView() {
imageCarousel?.stopAutoPlay()
imageCarousel?.adapter = null
imageCarousel?.weakReference = null
imageCarousel?.weakReferenceT = null
imageCarousel?.weakReferenceV = null
imageCarousel = null
dots = null
}
override fun initDot(linearLayout: LinearLayout, viewPager: ViewPager, textView: TextView) {
if (imageCarousel == null) {
val list = SPUtil.getSerializableObject<ArrayList<BannerBean>>(Constants.NEWS_HEAD_LIST)
linearLayout.removeAllViews()
dots = addDots(linearLayout, mView?.baseActivity?.resources?.getDrawable(R.drawable.shape_dot_normal), list?.size
?: 0)
imageCarousel = mView?.baseFragment?.let { ImageCarousel(it, viewPager, textView, dots, Constants.IMAGE_CAROUSEL_TIME) }
imageCarousel?.init(list)
imageCarousel?.start()
imageCarousel?.let {
mView?.onDot(it)
}
}
}
......@@ -76,39 +52,4 @@ class MainNewsContentAllPresenter : IBasePresenter, MainNewsContentAllContract.P
}
private fun addDots(linearLayout: LinearLayout, background: Drawable?, number: Int): ArrayList<View?>? {
for (index in 2..number - 1) { // 注意这里的 i 从 2 开始,只画出number个点
var dotId = addDot(linearLayout, background)
dots?.add(mView?.baseActivity?.findViewById(dotId))
}
return dots
}
/**
* 动态添加一个点
*
* @param linearLayout 添加到LinearLayout布局
* @param backgount 设置
* @return 小点的Id
*/
private fun addDot(linearLayout: LinearLayout, backgount: Drawable?): Int {
var dot = View(mView?.baseActivity)
var dotParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT)
dotParams.width = 16
dotParams.height = 16
dotParams.setMargins(4, 0, 4, 0)
dot.layoutParams = dotParams
dot.background = backgount
dot.id = View.generateViewId()
this.run {
linearLayout.addView(dot)
}
return dot.id
}
}
\ No newline at end of file
......@@ -42,10 +42,7 @@ class SettingPresenter : IBasePresenter, SettingContact.presenter {
.compose(NetworkTransformer(mView, false))
.subscribe(object : RxCallback<String>() {
override fun onSuccess(data: String?) {
SPUtil.put(Constants.TOKEN, "")
SPUtil.put(Constants.USER_LOGIN, false)
EventBus.getDefault().post(RefreshUserEvent())
CommonUtils.umengLoginOut()
CommonUtils.exitLogOut()
mView?.onExit()
}
})
......@@ -57,10 +54,7 @@ class SettingPresenter : IBasePresenter, SettingContact.presenter {
.compose(NetworkTransformer(mView, false))
.subscribe(object : RxCallback<String>() {
override fun onSuccess(data: String?) {
SPUtil.put(Constants.TOKEN, "")
SPUtil.put(Constants.USER_LOGIN, false)
EventBus.getDefault().post(RefreshUserEvent())
CommonUtils.umengLoginOut()
CommonUtils.exitLogOut()
mView?.onExit()
}
})
......
......@@ -59,7 +59,7 @@ class SplashActivityPresenter : IBasePresenter, SplashActivityContact.Presenter
.compose(NetworkTransformer(mView,false))
.subscribe(object : RxCallback<ArrayList<BannerBean>>() {
override fun onSuccess(data: ArrayList<BannerBean>?) {
SPUtil.putSerializableObject(Constants.BANNER_LIST,BannerBean.dealData(data))
SPUtil.putSerializableObject(Constants.BANNER_LIST,data)
mTvMessage?.text = mTvMessage?.text.toString() + "\n" + "请求Banner成功"
getNewsList()
}
......@@ -68,12 +68,13 @@ class SplashActivityPresenter : IBasePresenter, SplashActivityContact.Presenter
private fun getNewsList() {
RetrofitClient.retrofitService
.getNewsHeadList()
.getNewsHeadList(JsonUtils.toRequestBody(hashMapOf<String,Any>().apply {
put("adType",2)
}))
.compose(NetworkTransformer(mView))
.subscribe(object : RxCallback<List<NewsHeadEntity>>() {
override fun onSuccess(data: List<NewsHeadEntity>?) {
val newHeadToBanner = newHeadToBanner(data)
SPUtil.putSerializableObject(Constants.NEWS_HEAD_LIST,BannerBean.dealData(newHeadToBanner))
.subscribe(object : RxCallback<List<BannerBean>>() {
override fun onSuccess(data: List<BannerBean>?) {
SPUtil.putSerializableObject(Constants.NEWS_HEAD_LIST,data)
mTvMessage?.text = mTvMessage?.text.toString() + "\n" + "请求HeadList成功"
getShareConfig()
}
......
......@@ -21,6 +21,7 @@ import com.hupu.tv.player.app.app.App
import com.hupu.tv.player.app.app.App.Companion.instance
import com.hupu.tv.player.app.app.Constants
import com.hupu.tv.player.app.bean.MovieBean.RecordsBean
import com.hupu.tv.player.app.event.RefreshUserEvent
import com.hupu.tv.player.app.utils.DateUtil.unitFormat
import com.hupu.tv.player.app.widget.LinkTextView
import com.hyphenate.util.UriUtils.*
......@@ -30,6 +31,7 @@ import com.softgarden.baselibrary.utils.SPUtil.Companion.putSerializableObject
import com.softgarden.baselibrary.utils.ToastUtil
import com.softgarden.baselibrary.utils.ToastUtil.Companion.s
import com.umeng.analytics.MobclickAgent
import org.greenrobot.eventbus.EventBus
import java.io.Serializable
import java.text.ParseException
import java.text.SimpleDateFormat
......@@ -611,6 +613,13 @@ object CommonUtils {
MobclickAgent.onProfileSignOff()
}
fun exitLogOut(){
SPUtil.put(Constants.TOKEN, "")
SPUtil.put(Constants.USER_LOGIN, false)
EventBus.getDefault().post(RefreshUserEvent())
CommonUtils.umengLoginOut()
}
// fun getTestDeviceInfo(context: Context?): Array<String?>? {
// val deviceInfo = arrayOfNulls<String>(2)
......
......@@ -4,6 +4,7 @@ import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ImageView;
import androidx.core.graphics.drawable.RoundedBitmapDrawable;
......@@ -109,6 +110,13 @@ public class GlideUtils {
.diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(context).load(url).placeholder(placeHolder).error(placeHolder).apply(options).into(imageView);
}
public static void loadImage(View context, String url, ImageView imageView, int placeHolder) {
RequestOptions options = new RequestOptions()
.centerCrop()
// .priority(Priority.HIGH)
.diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(context).load(url).placeholder(placeHolder).error(placeHolder).apply(options).into(imageView);
}
public static void loadImage(Fragment context, String url, ImageView imageView, int placeHolder) {
RequestOptions options = new RequestOptions()
......
......@@ -11,23 +11,23 @@
<ImageView
android:id="@+id/iv_about"
android:layout_marginTop="100dp"
android:layout_centerHorizontal="true"
android:src="@mipmap/icon_about"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:src="@mipmap/icon_about" />
<TextView
android:id="@+id/tv_name"
android:layout_marginTop="@dimen/dp_15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/iv_about"
android:layout_centerHorizontal="true"
android:textSize="23sp"
android:layout_marginTop="@dimen/dp_15"
android:text="M直播"
android:textColor="@color/black"
android:textStyle="bold"
android:text="红杉直播"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:textSize="23sp"
android:textStyle="bold" />
<TextView
android:textStyle="bold"
......
......@@ -38,7 +38,7 @@
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="手机登"
android:text="手机登"
android:textColor="@color/black"
android:textSize="@dimen/sp_19" />
......
......@@ -7,7 +7,14 @@
android:background="@color/white"
android:orientation="vertical">
<include layout="@layout/layout_title_live" />
<ImageView
android:id="@+id/iv_left_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/dp_8"
android:scaleType="centerInside"
android:src="@mipmap/icon_live_back_black" />
<androidx.core.widget.NestedScrollView
android:id="@+id/scroll_view"
......@@ -27,29 +34,58 @@
android:max="100"
android:visibility="gone" />
<LinearLayout
android:layout_marginTop="@dimen/dp_5"
android:paddingStart="@dimen/dp_8"
android:paddingEnd="@dimen/dp_8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:textColor="@color/text_normal"
tools:text="标题标题标题标题标题标题标题"
android:textSize="19sp"
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginTop="@dimen/dp_10"
tools:text="2022-01-30 10:31:00"
android:textColor="@color/grey_normal"
android:textSize="@dimen/sp_13"
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<WebView
android:layout_marginTop="@dimen/dp_10"
android:id="@+id/mWebView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:visibility="gone"
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:orientation="vertical"
android:visibility="gone">
<androidx.recyclerview.widget.RecyclerView
android:layout_marginTop="@dimen/dp_10"
android:layout_marginStart="@dimen/dp_10"
android:id="@+id/recycler_label"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10" />
<LinearLayout
android:layout_marginTop="@dimen/dp_10"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_marginTop="@dimen/dp_10"
android:gravity="center"
android:orientation="horizontal">
......@@ -123,7 +159,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/dp_5"
android:paddingEnd="5dp"/>
android:paddingEnd="5dp" />
</LinearLayout>
......
......@@ -355,7 +355,7 @@
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_20"
android:background="@drawable/shape_main_exit_login"
android:background="@drawable/shape_get_code"
android:gravity="center"
android:textStyle="bold"
android:text="注销账号"
......@@ -370,7 +370,7 @@
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_20"
android:background="@drawable/shape_main_exit_login"
android:background="@drawable/shape_get_code"
android:gravity="center"
android:textStyle="bold"
android:text="退出登录"
......
......@@ -45,11 +45,13 @@
android:layout_marginTop="@dimen/dp_10"
android:layout_marginStart="@dimen/dp_15"
android:text="登录获得金币"
android:drawablePadding="@dimen/dp_5"
android:drawableStart="@mipmap/icon_tips_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:drawablePadding="@dimen/dp_5"
android:textColor="@color/text_normal"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginStart="@dimen/dp_15"
......
......@@ -3,7 +3,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:gravity="center_vertical"
android:orientation="vertical"
android:minHeight="@dimen/dp_25"
>
<TextView
......@@ -15,6 +17,7 @@
android:layout_gravity="center" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
......@@ -25,7 +28,7 @@
<LinearLayout
android:id="@+id/bubble"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/margin_chat_activity"
android:layout_toRightOf="@id/iv_userhead"
......@@ -43,7 +46,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:minHeight="@dimen/dp_25"
android:id="@+id/tv_userid"
android:layout_toEndOf="@id/tv_level"
style="@style/chat_text_name_style"
......@@ -58,16 +60,15 @@
android:layout_marginStart="@dimen/dp_5"
android:layout_toEndOf="@id/tv_userid"
android:id="@+id/tv_chatcontent"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="web"
android:layout_centerInParent="true"
android:gravity="center|left"
android:lineSpacingExtra="2dp"
android:maxWidth="225.0dip"
android:textColor="#ff000000"
android:textSize="15sp"
tools:text="文案文案文案文案文文案文案文案文案文文案文案文案文案文文案文案文案文案文文案文案文案文案文文案文案文案文案文文案文案文案文案文文案文案文案文案文"/>
tools:text="文案文案"/>
</LinearLayout>
......
......@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:gravity="center"
android:text="登失败"
android:text="登失败"
android:textColor="@color/black"
android:textSize="@dimen/sp_17"
android:textStyle="bold" />
......
......@@ -36,16 +36,20 @@
android:layout_marginTop="@dimen/dp_10"
android:textSize="@dimen/sp_12"
android:textColor="@color/grey_normal"
android:text="登账号关注喜欢的主播"
android:text="登账号关注喜欢的主播"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_login"
android:src="@mipmap/icon_login"
<TextView
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/sp_13"
android:text="登录/快速注册"
android:id="@+id/tv_login"
android:background="@drawable/shape_get_code"
android:layout_marginTop="@dimen/dp_15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_width="130dp"
android:layout_height="@dimen/dp_40"/>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
......
......@@ -29,15 +29,19 @@
android:layout_marginTop="@dimen/dp_10"
android:textSize="@dimen/sp_12"
android:textColor="@color/grey_normal"
android:text="登账号预约想看的赛事"
android:text="登账号预约想看的赛事"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_login"
android:src="@mipmap/icon_login"
<TextView
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/sp_13"
android:text="登录/快速注册"
android:id="@+id/tv_login"
android:background="@drawable/shape_get_code"
android:layout_marginTop="@dimen/dp_15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_width="130dp"
android:layout_height="@dimen/dp_40"/>
</LinearLayout>
......
......@@ -36,52 +36,13 @@
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:layout_marginTop="@dimen/dp_5"
<com.zhpan.bannerview.BannerViewPager
android:id="@+id/banner_view"
android:layout_width="match_parent"
android:layout_height="165dp"
android:background="@color/transparent"
>
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_30"
android:layout_gravity="bottom"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_pager_title"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_35"
android:gravity="center_vertical"
android:paddingStart="6dp"
android:textColor="@android:color/white"
android:visibility="gone"
tools:text="加载图片轮播失败" />
<LinearLayout
android:id="@+id/lineLayout_dot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="1"
android:gravity="center|right"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_3"
android:paddingEnd="@dimen/dp_3" />
</LinearLayout>
</FrameLayout>
android:layout_height="165dp" />
<androidx.recyclerview.widget.RecyclerView
android:layout_marginTop="@dimen/dp_20"
android:id="@+id/mRecyclerView_top"
android:layout_width="wrap_content"
......
......@@ -10,11 +10,9 @@
app:srlEnableScrollContentWhenLoaded="true">
<!-- elevation 高版本自带一个阴影,不需要去掉即可 -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
android:layout_height="match_parent" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
\ No newline at end of file
......@@ -49,7 +49,7 @@
android:layout_height="@dimen/dp_28"
android:background="@drawable/shape_login_text"
android:gravity="center"
android:text="登/注册"
android:text="登/注册"
android:textColor="@color/white"
android:textSize="@dimen/sp_16"
android:textStyle="bold" />
......
......@@ -36,50 +36,10 @@
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:layout_marginTop="@dimen/dp_5"
<com.zhpan.bannerview.BannerViewPager
android:id="@+id/banner_view"
android:layout_width="match_parent"
android:layout_height="130dp"
android:background="@color/transparent"
>
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_30"
android:layout_gravity="bottom"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_pager_title"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_35"
android:gravity="center_vertical"
android:paddingStart="6dp"
android:textColor="@android:color/white"
android:visibility="gone"
tools:text="加载图片轮播失败" />
<LinearLayout
android:id="@+id/lineLayout_dot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="1"
android:gravity="center|right"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_3"
android:paddingEnd="@dimen/dp_3" />
</LinearLayout>
</FrameLayout>
android:layout_height="165dp" />
......
......@@ -8,12 +8,12 @@
<ImageView
android:layout_marginTop="@dimen/dp_10"
android:layout_centerHorizontal="true"
android:src="@mipmap/icon_default_avatar"
android:id="@+id/iv_actor"
android:layout_width="@dimen/dp_42"
android:layout_height="@dimen/dp_42" />
android:layout_height="@dimen/dp_42"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_10"
android:src="@mipmap/icon_default_avatar" />
<ImageView
android:layout_marginTop="-10dp"
......
......@@ -15,8 +15,7 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_10"
android:paddingEnd="@dimen/dp_10">
>
<LinearLayout
android:layout_width="0dp"
......@@ -102,42 +101,53 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:paddingStart="@dimen/dp_10"
android:paddingEnd="@dimen/dp_10">
>
<LinearLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/ll_left"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/tv_center"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="end">
<ImageView
android:id="@+id/iv_home"
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center"
android:layout_marginEnd="@dimen/dp_5"
tools:src="@mipmap/match_subscribe" />
<TextView
android:id="@+id/tv_home"
android:maxEms="7"
android:maxLines="1"
android:ellipsize="end"
android:gravity="end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/text_normal5"
android:textColor="@color/text_normal"
android:textSize="@dimen/sp_13"
android:layout_marginEnd="@dimen/dp_5"
tools:text="Academic普罗夫迪夫" />
<ImageView
android:id="@+id/iv_home"
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center"
tools:text="帕森拉" />
tools:src="@mipmap/match_subscribe" />
</LinearLayout>
<TextView
android:layout_width="0dp"
android:id="@+id/tv_center"
app:layout_constraintStart_toEndOf="@id/ll_left"
app:layout_constraintEnd_toStartOf="@id/ll_right"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_8"
......@@ -149,32 +159,41 @@
android:textStyle="bold" />
<LinearLayout
app:layout_constraintStart_toEndOf="@id/tv_center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:id="@+id/ll_right"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_away"
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center"
tools:src="@mipmap/match_subscribe" />
<TextView
android:layout_marginStart="@dimen/dp_5"
android:id="@+id/tv_away"
android:maxEms="7"
android:ellipsize="end"
android:maxLines="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/text_normal5"
android:textColor="@color/text_normal"
android:textSize="@dimen/sp_13"
tools:text="佩斯克" />
<ImageView
android:id="@+id/iv_away"
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_5"
tools:src="@mipmap/match_subscribe" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
......
......@@ -115,6 +115,7 @@
</LinearLayout>
<RelativeLayout
android:id="@+id/info"
android:layout_width="match_parent"
android:layout_height="match_parent"
......@@ -151,6 +152,7 @@
<!-- android:textSize="@dimen/sp_9" />-->
<ImageView
android:layout_marginEnd="@dimen/dp_10"
android:id="@+id/iv_subscribe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="@dimen/dp_4"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/banner_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop" />
<TextView
android:visibility="gone"
android:id="@+id/tv_title"
android:paddingStart="@dimen/dp_17"
android:paddingEnd="@dimen/dp_17"
android:textSize="@dimen/sp_13"
android:textColor="@color/white"
android:maxLines="1"
android:ellipsize="end"
tools:text="吹杨28分老鹰轻取魔术 罗斯18+7+8"
android:layout_alignParentBottom="true"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_35">
</TextView>
</RelativeLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
\ No newline at end of file
......@@ -15,13 +15,13 @@
android:layout_height="match_parent">
<!-- 返回箭头-->
<ImageView
android:padding="@dimen/dp_10"
android:id="@+id/iv_left_icon"
android:layout_width="@dimen/dp_30"
android:layout_height="36dp"
android:layout_centerVertical="true"
android:padding="@dimen/dp_10"
android:scaleType="centerCrop"
android:src="@mipmap/icon_live_back_black"
android:layout_width="@dimen/dp_30"
android:layout_height="36dp" />
android:src="@mipmap/icon_live_back_black" />
<!-- 标题-->
<TextView
tools:text="标题"
......
......@@ -325,7 +325,7 @@ abstract class BaseActivity<P : IBasePresenter?> : RxAppCompatActivity(), IBaseD
if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_LOGIN) {
var eventId = 0
if (data != null) eventId = data.getIntExtra(KEY_LOGIN_EVENT, 0)
backFromLogin(eventId) //从登界面返回 登录成功
backFromLogin(eventId) //从登界面返回 登录成功
}
}
......
......@@ -139,7 +139,7 @@ abstract class BaseFragment<P : IBasePresenter?> : RxFragment(), IBaseDisplay {
if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_LOGIN) {
var eventId = 0
if (data != null) eventId = data.getIntExtra(KEY_LOGIN_EVENT, 0)
backFromLogin(eventId) //从登界面返回 登录成功
backFromLogin(eventId) //从登界面返回 登录成功
}
}
......
......@@ -106,7 +106,7 @@ class CompressUtil internal constructor() {
// 图片不支持获取角度
return 0
}
val orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,
val orientation = exifInterface?.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL)
when (orientation) {
ExifInterface.ORIENTATION_ROTATE_90 -> degree = 90
......
......@@ -3,7 +3,7 @@ apply from: "config.gradle"
buildscript {
ext.kotlin_version = '1.3.72'
ext.kotlin_version = '1.5.31'
repositories {
google()
......
......@@ -5,8 +5,8 @@ ext {
ver = [
//Version
versionCode : 11,
versionName : "1.0",
versionCode : 14,
versionName : "1.0.3",
//SDK And Tools
minSdkVersion : 23,
......
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