Commit b12a66e6 authored by mengcuiguang's avatar mengcuiguang

代码合并

parents 75faabca aea93da5
......@@ -10,4 +10,8 @@
app/build
picture_library/build
ucrop/build
videocache/build
\ No newline at end of file
videocache/build
wxpay/build
rxpay/build
alipay/build
\ No newline at end of file
......@@ -75,7 +75,7 @@
android:name=".ui.activitys.SplashActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="true"
android:theme="@style/AppTheme.TranslucentSplish">
android:theme="@style/AppTheme.TranslucentSplash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
......@@ -160,12 +160,6 @@
android:hardwareAccelerated="true"
android:screenOrientation="portrait" />
<activity
android:name=".video.tx.newrecommend.NewTxVideoActivity"
android:exported="false"
android:hardwareAccelerated="true"
android:screenOrientation="portrait" />
<service
android:name=".ui.service.UpdateService"
android:exported="true" />
......
......@@ -14,7 +14,6 @@ import com.duben.dayplaylet.mvp.model.VedioBean
import com.duben.dayplaylet.utils.AppPreferencesManager
import com.duben.dayplaylet.utils.ToastUtil
import com.duben.dayplaylet.video.csj.DramaApiDetailActivity
import com.duben.dayplaylet.video.tx.newrecommend.NewTxVideoActivity
import com.duben.dayplaylet.video.tx.TxVideoActivity
/**
......@@ -108,12 +107,6 @@ object LocalVedioManager {
// bundle.putBoolean(Constant.VEDIO_NEXT, isPlayNext)
// bundle.putBoolean(Constant.VEDIO_THIRD, isThirdId)
// readyGo(activity, TxVideoActivity::class.java, bundle)
// }
// 3 -> {
// //推荐短剧
// val bundle = Bundle()
// bundle.putString(Constant.VEDIO_BEAN, JsonUtil.toJson(data))
// readyGo(activity, NewTxVideoActivity::class.java, bundle)
// }
else -> {
requestDrama(activity, data)
......
package com.duben.dayplaylet.mvp.model
data class MusicBean(
val completeCount: Int, //完成的次数(这里的次数不包括翻倍)
val nextIsAd: Boolean, //接下来是不是要看广告了
val openCash: Boolean, //还能不能提现,不能提现就不展示提现入口了
val turnNeedCount: Int //提现需要的次数
)
\ No newline at end of file
package com.duben.dayplaylet.mvp.presenters
import com.duben.dayplaylet.manager.AppHttpManager
import com.duben.dayplaylet.mvp.model.BaseResponse
import com.duben.dayplaylet.mvp.model.MusicBean
import com.duben.dayplaylet.mvp.views.MusicView
import com.duben.library.net.neterror.BaseSubscriber
import com.duben.library.net.neterror.Throwable
class MusicPresenter : BasePresenter<MusicView>() {
// 猜歌页信息
fun rdSongMsg() {
AppHttpManager.getInstance(loanApplication)
.call(loanService.rdSongMsg(),
object : BaseSubscriber<BaseResponse<MusicBean>>() {
override fun onCompleted() {
if (isLinkView) return
}
override fun onError(e: Throwable) {
if (isLinkView) return
view.showToast(e.message)
}
override fun onNext(baseResponse: BaseResponse<MusicBean>) {
if (isLinkView) return
val code = baseResponse.status
val message = baseResponse.message
when (code) {
200 -> {
view.rdSongMsgSuc(baseResponse.data)
}
else -> {
view.showToast(message)
}
}
}
})
}
}
\ No newline at end of file
package com.duben.dayplaylet.mvp.presenters
import com.duben.library.net.neterror.BaseSubscriber
import com.duben.library.net.neterror.Throwable
import com.duben.dayplaylet.manager.AppHttpManager
import com.duben.dayplaylet.mvp.model.BaseResponse
import com.duben.dayplaylet.mvp.model.IndexList
import com.duben.dayplaylet.mvp.model.NineShowBean
import com.duben.dayplaylet.mvp.views.VideoView
import java.util.HashMap
import com.duben.library.net.neterror.BaseSubscriber
import com.duben.library.net.neterror.Throwable
import com.google.gson.JsonObject
class VideoPresenter : BasePresenter<VideoView>() {
......@@ -53,44 +52,6 @@ class VideoPresenter : BasePresenter<VideoView>() {
})
}
fun getIndexList2(thirdId: String, csj: Boolean = false) {
val vo = HashMap<String, Any>()
vo["vedioId"] = thirdId
AppHttpManager.getInstance(loanApplication)
.call(loanService.getIndexList2(vo),
object : BaseSubscriber<BaseResponse<IndexList>>() {
override fun onCompleted() {
if (isLinkView) return
view.hideLoading()
}
override fun onNext(baseResponse: BaseResponse<IndexList>) {
if (isLinkView) return
view.hideLoading()
val code = baseResponse.status
val message = baseResponse.message
when (code) {
200 -> view.getIndexListSuc(baseResponse.data)
else -> {
view.getIndexListFail()
view.showToast(message)
}
}
}
override fun onError(e: Throwable?) {
if (isLinkView) return
view.hideLoading()
view.showToast(e?.message)
view.getIndexListFail()
}
})
}
fun unlock(vo: HashMap<String, Any>) {
AppHttpManager.getInstance(loanApplication)
.call(
......@@ -129,16 +90,16 @@ class VideoPresenter : BasePresenter<VideoView>() {
}
fun showTurn() {
fun rdVedioMsg() {
AppHttpManager.getInstance(loanApplication)
.call(loanService.showTurn(),
object : BaseSubscriber<BaseResponse<NineShowBean>>() {
.call(loanService.rdVedioMsg(),
object : BaseSubscriber<BaseResponse<JsonObject>>() {
override fun onCompleted() {
if (isLinkView) return
view.hideLoading()
}
override fun onNext(baseResponse: BaseResponse<NineShowBean>) {
override fun onNext(baseResponse: BaseResponse<JsonObject>) {
if (isLinkView) return
view.hideLoading()
......@@ -146,8 +107,17 @@ class VideoPresenter : BasePresenter<VideoView>() {
val message = baseResponse.message
when (code) {
200 -> view.showTurnSuc(baseResponse.data)
200 -> {
val data = baseResponse.data
if (data != null) {
view.rdVedioMsgSuc(
data["surplusCount"].asInt,
data["surplusSeconds"].asInt
)
}
}
else -> {
view.rdVedioMsgSuc(0, 0)
view.showToast(message)
}
}
......
package com.duben.dayplaylet.mvp.views
import com.duben.dayplaylet.mvp.model.MusicBean
interface MusicView : BaseView {
fun rdSongMsgSuc(data: MusicBean)
}
\ No newline at end of file
......@@ -11,6 +11,6 @@ interface VideoView : BaseView {
fun unlockSuc(indexList: IndexList)
fun unlockFail()
fun showTurnSuc(data: NineShowBean)
fun rdVedioMsgSuc(surplusCount: Int, surplusSeconds: Int)
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import android.content.Context;
import android.text.TextUtils;
import com.duben.dayplaylet.mvp.model.SignInfoBean;
import com.duben.dayplaylet.mvp.model.MusicBean;
import com.google.gson.JsonObject;
import com.duben.dayplaylet.BuildConfig;
import com.duben.dayplaylet.mvp.model.BannerList;
......@@ -138,14 +139,6 @@ public interface LoanService {
@POST("api/vedio/getIndexList")
Observable<BaseResponse<IndexList>> getIndexList(@Body Map<String, Object> vo);
/**
* 优选剧 剧情列表
*
* @return
*/
@POST("api/vedio/getIndexList/vedio3")
Observable<BaseResponse<IndexList>> getIndexList2(@Body Map<String, Object> vo);
/**
* 收藏
*
......@@ -234,6 +227,22 @@ public interface LoanService {
@POST("api/reward/rdSignMsg")
Observable<BaseResponse<SignInfoBean>> getSignInfo();
/**
* 猜歌页信息
*
* @return
*/
@POST("api/reward/rdSongMsg")
Observable<BaseResponse<MusicBean>> rdSongMsg();
/**
* 短剧内视频-转圈广告
*
* @return
*/
@POST("api/reward/rdVedioMsg")
Observable<BaseResponse<JsonObject>> rdVedioMsg();
/**
* 默认http工厂
*/
......
......@@ -5,14 +5,11 @@ import android.os.Bundle
import android.view.KeyEvent
import android.view.View
import com.duben.dayplaylet.R
import com.duben.dayplaylet.ad.AdManager
import com.duben.dayplaylet.ad.splash.SplashManager
import com.duben.dayplaylet.common.Constant
import com.duben.dayplaylet.common.Constant.PRIVACY_URL
import com.duben.dayplaylet.common.Constant.REGISTER_URL
import com.duben.dayplaylet.manager.LocalVedioManager
import com.duben.dayplaylet.manager.TrackManager
import com.duben.dayplaylet.manager.UserManager
import com.duben.dayplaylet.ui.activitys.base.BaseActivity
import com.duben.dayplaylet.ui.widgets.CycleProgress
import com.duben.dayplaylet.ui.widgets.DialogListener
......@@ -20,7 +17,6 @@ import com.duben.dayplaylet.ui.widgets.PowerDialog
import com.duben.dayplaylet.ui.widgets.PowerDialog2
import com.duben.dayplaylet.ui.widgets.countdowntimer.CountDownTimerSupport
import com.duben.dayplaylet.ui.widgets.countdowntimer.OnCountDownTimerListener
import com.duben.dayplaylet.utils.AppPreferencesManager
import com.duben.dayplaylet.utils.AppPreferencesManager.get
import com.duben.dayplaylet.utils.LogUtil
import java.util.*
......
......@@ -31,6 +31,7 @@ import com.duben.dayplaylet.mvp.model.*
import com.duben.dayplaylet.mvp.presenters.HomePresenter
import com.duben.dayplaylet.mvp.views.HomeView
import com.duben.dayplaylet.ui.activitys.LoadingActivity
import com.duben.dayplaylet.ui.activitys.MainActivity
import com.duben.dayplaylet.ui.activitys.WatchRecordActivity
import com.duben.dayplaylet.ui.adapter.HomeVideoPageAdapter
import com.duben.dayplaylet.ui.adapter.ImageTitleAdapter
......@@ -141,9 +142,16 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
showSignDrawDialog(2)
}
}
R.id.btn_draw_gold -> {
(requireActivity() as MainActivity).clickTab4Layout()
}
R.id.btn_draw_cash -> {
(requireActivity() as MainActivity).clickTab4Layout()
}
}
}
/**
* 点击关闭广告
*/
......
......@@ -13,22 +13,31 @@ import android.widget.ImageView
import android.widget.RelativeLayout
import android.widget.Toast
import androidx.annotation.Nullable
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import com.bytedance.sdk.dp.*
import com.duben.dayplaylet.R
import com.duben.dayplaylet.common.AppConfig
import com.duben.dayplaylet.common.Constant
import com.duben.dayplaylet.manager.DPHolder
import com.duben.dayplaylet.mvp.model.MusicBean
import com.duben.dayplaylet.mvp.presenters.MusicPresenter
import com.duben.dayplaylet.mvp.views.MusicView
import com.duben.dayplaylet.ui.fragment.base.LazyLoadBaseFragment
import com.duben.dayplaylet.utils.BubbleUtils
import com.duben.dayplaylet.utils.LogUtil
import kotlinx.android.synthetic.main.fragment_music.*
import kotlinx.android.synthetic.main.layout_draw_header.*
class MusicFragment : LazyLoadBaseFragment() {
/**
* 猜歌
*/
class MusicFragment : LazyLoadBaseFragment(), MusicView {
private val TAG = "MusicFragment"
private val musicPresenter by lazy { MusicPresenter() }
private var mIDPWidget: IDPWidget? = null
private var mDrawFragment: Fragment? = null
......@@ -37,6 +46,7 @@ class MusicFragment : LazyLoadBaseFragment() {
override fun getContentViewLayoutID() = R.layout.fragment_music
override fun initViewsAndEvents() {
musicPresenter.attachView(this)
btn1.setOnClickListener {
addAnimation(it, iv_gold)
......@@ -64,8 +74,9 @@ class MusicFragment : LazyLoadBaseFragment() {
if (AppConfig.fragmentClickFlag == Constant.FRAGMENT_CLICK_TWO) {
mIDPWidget?.fragment?.onResume()
mIDPWidget?.fragment?.userVisibleHint = true
musicPresenter.rdSongMsg()
}
}
......@@ -88,307 +99,222 @@ class MusicFragment : LazyLoadBaseFragment() {
private fun initDrawWidget() {
mIDPWidget =
DPHolder.getInstance().buildDrawWidget(DPWidgetDrawParams.obtain().liveAdCodeId(
"947474066"
).liveNativeAdCodeId("947474068")
.adOffset(0) //单位 dp,为 0 时可以不设置
.quizMode(1)
.hideClose(true, null)
.listener(object : IDPDrawListener() {
override fun onDPRefreshFinish() {
LogUtil.d(
TAG,
"onDPRefreshFinish"
)
}
override fun onDPPageChange(position: Int) {
LogUtil.d(
TAG,
"onDPPageChange: $position"
)
}
override fun onDPPageChange(position: Int, map: Map<String, Any>) {
if (map == null) {
return
}
mPos = position
LogUtil.d(
TAG,
"onDPPageChange: $position, map = $map"
)
}
override fun onCreateQuizView(container: ViewGroup): View {
val quizView: View = LayoutInflater.from(container.context)
.inflate(R.layout.media_layout_quiz, container, false)
LogUtil.d(
TAG,
"onCreateQuizView"
)
return quizView
}
override fun onQuizBindData(
view: View,
options: List<String>,
answer: Int,
lastAnswer: Int,
quizHandler: IDPQuizHandler,
feedParamsForCallback: Map<String, Any>
) {
super.onQuizBindData(
view,
options,
answer,
lastAnswer,
quizHandler,
feedParamsForCallback
)
val option0 = view.findViewById<Button>(R.id.quiz_option0)
val option1 = view.findViewById<Button>(R.id.quiz_option1)
val optionsList: MutableList<Button> = ArrayList()
optionsList.add(option0)
optionsList.add(option1)
for (i in optionsList.indices) {
val right = answer == i
val background: Int =
if (right) R.drawable.selector_quzi_button_ok else R.drawable.selector_quzi_button_error
val button = optionsList[i]
button.text = options[i]
button.setBackgroundResource(R.drawable.selector_quzi_button_default)
button.setOnClickListener {
if (right) {
Toast.makeText(view.context, "回答正确", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(view.context, "回答错误", Toast.LENGTH_SHORT).show()
}
for (btn in optionsList) {
btn.setBackgroundResource(R.drawable.selector_quzi_button_default)
DPHolder.getInstance()
.buildDrawWidget(DPWidgetDrawParams.obtain().liveAdCodeId("947474066")
.liveNativeAdCodeId("947474068")
.adOffset(0) //单位 dp,为 0 时可以不设置
.quizMode(1)
.hideClose(true, null)
.listener(object : IDPDrawListener() {
override fun onDPRefreshFinish() {
LogUtil.d(TAG, "onDPRefreshFinish")
}
override fun onDPPageChange(position: Int) {
LogUtil.d(TAG, "onDPPageChange: $position")
}
override fun onDPPageChange(position: Int, map: Map<String, Any>) {
if (map == null) {
return
}
mPos = position
LogUtil.d(TAG, "onDPPageChange: $position, map = $map")
}
override fun onCreateQuizView(container: ViewGroup): View {
val quizView: View = LayoutInflater.from(container.context)
.inflate(R.layout.media_layout_quiz, container, false)
LogUtil.d(TAG, "onCreateQuizView")
return quizView
}
override fun onQuizBindData(
view: View,
options: List<String>,
answer: Int,
lastAnswer: Int,
quizHandler: IDPQuizHandler,
feedParamsForCallback: Map<String, Any>
) {
super.onQuizBindData(
view,
options,
answer,
lastAnswer,
quizHandler,
feedParamsForCallback
)
val option0 = view.findViewById<Button>(R.id.quiz_option0)
val option1 = view.findViewById<Button>(R.id.quiz_option1)
val optionsList: MutableList<Button> = ArrayList()
optionsList.add(option0)
optionsList.add(option1)
for (i in optionsList.indices) {
val right = answer == i
val background: Int =
if (right) R.drawable.selector_quzi_button_ok else R.drawable.selector_quzi_button_error
val button = optionsList[i]
button.text = options[i]
button.setBackgroundResource(R.drawable.selector_quzi_button_default)
button.setOnClickListener {
if (right) {
Toast.makeText(view.context, "回答正确", Toast.LENGTH_SHORT)
.show()
} else {
Toast.makeText(view.context, "回答错误", Toast.LENGTH_SHORT)
.show()
}
for (btn in optionsList) {
btn.setBackgroundResource(R.drawable.selector_quzi_button_default)
}
button.setBackgroundResource(background)
quizHandler.reportResult(i)
if (mIDPWidget != null) {
mIDPWidget!!.setCurrentPage(mPos + 1)
}
}
button.setBackgroundResource(background)
quizHandler.reportResult(i)
if (mIDPWidget != null) {
mIDPWidget!!.setCurrentPage(mPos + 1)
if (lastAnswer == i) {
button.setBackgroundResource(background)
}
}
if (lastAnswer == i) {
button.setBackgroundResource(background)
}
}
}
override fun onDPVideoPlay(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPVideoPlay map = $map"
)
}
override fun onDPVideoOver(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPVideoOver map = $map"
)
}
override fun onDPVideoCompletion(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPVideoCompletion map = $map"
)
}
override fun onDPClose() {
LogUtil.d(
TAG,
"onDPClose"
)
}
override fun onDPReportResult(isSucceed: Boolean) {
LogUtil.d(
TAG,
"onDPReportResult isSucceed = $isSucceed"
)
}
override fun onDPPageStateChanged(pageState: DPPageState) {
LogUtil.d(
TAG,
"onDPPageStateChanged pageState = $pageState"
)
}
override fun onDPReportResult(isSucceed: Boolean, map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPReportResult isSucceed = $isSucceed, map = $map"
)
}
override fun onDPRequestStart(@Nullable map: Map<String, Any>?) {
LogUtil.d(
TAG,
"onDPRequestStart"
)
}
override fun onDPRequestSuccess(list: List<Map<String, Any>>) {
if (list == null) {
return
}
for (i in list.indices) {
override fun onDPVideoPlay(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPVideoPlay map = $map")
}
override fun onDPVideoOver(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPVideoOver map = $map")
}
override fun onDPVideoCompletion(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPVideoCompletion map = $map")
}
override fun onDPClose() {
LogUtil.d(TAG, "onDPClose")
}
override fun onDPReportResult(isSucceed: Boolean) {
LogUtil.d(TAG, "onDPReportResult isSucceed = $isSucceed")
}
override fun onDPPageStateChanged(pageState: DPPageState) {
LogUtil.d(TAG, "onDPPageStateChanged pageState = $pageState")
}
override fun onDPReportResult(
isSucceed: Boolean,
map: Map<String, Any>
) {
LogUtil.d(
TAG,
"onDPRequestSuccess i = " + i + ", map = " + list[i].toString()
"onDPReportResult isSucceed = $isSucceed, map = $map"
)
}
}
override fun onDPRequestFail(
code: Int,
msg: String,
@Nullable map: Map<String, Any>?
) {
if (map == null) {
override fun onDPRequestStart(@Nullable map: Map<String, Any>?) {
LogUtil.d(TAG, "onDPRequestStart")
}
override fun onDPRequestSuccess(list: List<Map<String, Any>>) {
if (list == null) {
return
}
for (i in list.indices) {
LogUtil.d(TAG, "onDPRequestSuccess i=$i,map=${list[i]}")
}
}
override fun onDPRequestFail(
code: Int,
msg: String,
@Nullable map: Map<String, Any>?
) {
if (map == null) {
LogUtil.d(TAG, "onDPRequestFail code = $code, msg = $msg")
return
}
LogUtil.d(
TAG,
"onDPRequestFail code = $code, msg = $msg"
"onDPRequestFail code = $code, msg = $msg, map = $map"
)
return
}
LogUtil.d(
TAG,
"onDPRequestFail code = $code, msg = $msg, map = $map"
)
}
override fun onDPClickAuthorName(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPClickAuthorName map = $map"
)
}
override fun onDPClickAvatar(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPClickAvatar map = $map"
)
}
override fun onDPClickComment(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPClickComment map = $map"
)
}
override fun onDPClickLike(isLike: Boolean, map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPClickLike isLike = $isLike, map = $map"
)
}
override fun onDPVideoPause(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPVideoPause map = $map"
)
}
override fun onDPVideoContinue(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPVideoContinue map = $map"
)
}
override fun onDPClickShare(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPClickShare map = $map"
)
}
}).adListener(object : IDPAdListener() {
override fun onDPAdRequest(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPAdRequest map = $map"
)
}
override fun onDPAdRequestSuccess(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPAdRequestSuccess map = $map"
)
}
override fun onDPAdRequestFail(
code: Int,
msg: String,
map: Map<String, Any>
) {
LogUtil.d(
TAG,
"onDPAdRequestFail map = $map"
)
}
override fun onDPAdFillFail(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPAdFillFail map = $map"
)
}
override fun onDPAdShow(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPAdShow map = $map"
)
}
override fun onDPAdPlayStart(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPAdPlayStart map = $map"
)
}
override fun onDPAdPlayPause(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPAdPlayPause map = $map"
)
}
override fun onDPAdPlayContinue(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPAdPlayContinue map = $map"
)
}
override fun onDPAdPlayComplete(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPAdPlayComplete map = $map"
)
}
override fun onDPAdClicked(map: Map<String, Any>) {
LogUtil.d(
TAG,
"onDPAdClicked map = $map"
)
}
})
)
}
override fun onDPClickAuthorName(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPClickAuthorName map = $map")
}
override fun onDPClickAvatar(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPClickAvatar map = $map")
}
override fun onDPClickComment(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPClickComment map = $map")
}
override fun onDPClickLike(isLike: Boolean, map: Map<String, Any>) {
LogUtil.d(TAG, "onDPClickLike isLike = $isLike, map = $map")
}
override fun onDPVideoPause(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPVideoPause map = $map")
}
override fun onDPVideoContinue(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPVideoContinue map = $map")
}
override fun onDPClickShare(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPClickShare map = $map")
}
}).adListener(object : IDPAdListener() {
override fun onDPAdRequest(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPAdRequest map = $map")
}
override fun onDPAdRequestSuccess(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPAdRequestSuccess map = $map")
}
override fun onDPAdRequestFail(
code: Int,
msg: String,
map: Map<String, Any>
) {
LogUtil.d(TAG, "onDPAdRequestFail map = $map")
}
override fun onDPAdFillFail(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPAdFillFail map = $map")
}
override fun onDPAdShow(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPAdShow map = $map")
}
override fun onDPAdPlayStart(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPAdPlayStart map = $map")
}
override fun onDPAdPlayPause(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPAdPlayPause map = $map")
}
override fun onDPAdPlayContinue(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPAdPlayContinue map = $map")
}
override fun onDPAdPlayComplete(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPAdPlayComplete map = $map")
}
override fun onDPAdClicked(map: Map<String, Any>) {
LogUtil.d(TAG, "onDPAdClicked map = $map")
}
})
)
}
//计算path路径中点的坐标
......@@ -406,13 +332,8 @@ class MusicFragment : LazyLoadBaseFragment() {
// 一、创造出执行动画的主题---imageview
//代码new一个imageview,图片资源是上面的imageview的图片
// (这个图片就是执行动画的图片,从开始位置出发,经过一个抛物线(贝塞尔曲线),移动到购物车里)
val goods = ImageView(requireContext())
goods.setImageDrawable(
resources.getDrawable(
R.mipmap.ic_launcher_main,
null
)
)
val goods = ImageView(mContext)
goods.setImageDrawable(ContextCompat.getDrawable(mContext, R.mipmap.ic_launcher_main))
val params = RelativeLayout.LayoutParams(BubbleUtils.dp2px(30), BubbleUtils.dp2px(30))
rl.addView(goods, params)
......@@ -491,4 +412,8 @@ class MusicFragment : LazyLoadBaseFragment() {
override fun onAnimationRepeat(animation: Animator) {}
})
}
override fun rdSongMsgSuc(data: MusicBean) {
}
}
\ No newline at end of file
......@@ -13,6 +13,7 @@ import com.duben.dayplaylet.ui.activitys.SettingsActivity
import com.duben.dayplaylet.ui.adapter.TasksAdapter
import com.duben.dayplaylet.ui.fragment.base.LazyLoadBaseFragment
import com.duben.dayplaylet.ui.fragment.draw.DrawCashDialog
import com.duben.dayplaylet.utils.BubbleUtils
import com.duben.dayplaylet.utils.SpanUtils
import com.duben.library.utils.nodoubleclick.AntiShake
import kotlinx.android.synthetic.main.fragment_main_my.*
......@@ -102,6 +103,8 @@ class MyFragment : LazyLoadBaseFragment(), MyView, View.OnClickListener {
rg_my_income.setOnCheckedChangeListener { group, checkedId ->
if (checkedId == R.id.rb_my_cash) {
tv_my_cash.visibility = View.VISIBLE
tv_my_gold.visibility = View.INVISIBLE
tv_my_title.text = "红包余额(元)"
tv_my_money.text = SpanUtils()
.setFontSize(30, true)
......@@ -110,6 +113,8 @@ class MyFragment : LazyLoadBaseFragment(), MyView, View.OnClickListener {
.append(" ≈ ")
.create()
} else {
tv_my_cash.visibility = View.INVISIBLE
tv_my_gold.visibility = View.VISIBLE
tv_my_title.text = "金元宝余额(个)"
tv_my_money.text = SpanUtils()
.setFontSize(30, true)
......@@ -122,7 +127,12 @@ class MyFragment : LazyLoadBaseFragment(), MyView, View.OnClickListener {
}
private fun showDrawCashDialog() {
drawCashDialog = DrawCashDialog()
val dialogIndex = if (rb_my_cash.isChecked) {
0
} else {
1
}
drawCashDialog = DrawCashDialog(dialogIndex)
drawCashDialog?.let {
if (!it.isAdded && !it.isVisible && !it.isRemoving) {
it.show(supportFragmentManager, this.javaClass.simpleName)
......
......@@ -20,7 +20,7 @@ import com.duben.dayplaylet.ui.widgets.bottomsheet.BaseBottomSheetDialog
*
* @desc 提现弹框
*/
class DrawCashDialog : BaseBottomSheetDialog() {
class DrawCashDialog(private val index: Int = 0) : BaseBottomSheetDialog() {
private lateinit var tabLayout: TabLayout
private lateinit var vp2: ViewPager2
......@@ -73,6 +73,8 @@ class DrawCashDialog : BaseBottomSheetDialog() {
}
})
vp2.currentItem = index
}
private fun updateTab(tab: TabLayout.Tab?, isSelected: Boolean) {
......
package com.duben.dayplaylet.ui.widgets;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import com.daimajia.androidanimations.library.Techniques;
import com.daimajia.androidanimations.library.YoYo;
import com.duben.dayplaylet.R;
public class CountDownVideoView extends LinearLayout {
private CountDownVideoListener countDownVideoListener;
private CountDownView cdCountVedioView;
private ImageView ivCountVedioRedbox;
private boolean isPlaying = false;
private YoYo.YoYoString rope;
public CountDownVideoView(Context context) {
this(context, null);
}
public CountDownVideoView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public CountDownVideoView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
initListener();
}
private void initView(Context context) {
View view = View.inflate(context, R.layout.view_countdown_video, this);
ivCountVedioRedbox = view.findViewById(R.id.iv_count_redbox);
cdCountVedioView = view.findViewById(R.id.cd_count_vedio);
}
private void initListener() {
cdCountVedioView.setOnLoadingFinishListener(() -> {
if (countDownVideoListener != null) {
countDownVideoListener.onLoadingFinish();
}
});
}
public void start() {
cdCountVedioView.start();
isPlaying = true;
}
public void pause() {
cdCountVedioView.pause();
}
public void resume() {
cdCountVedioView.resume();
}
public void reset() {
cdCountVedioView.reset();
isPlaying = true;
}
public void stop() {
stopStatus();
cdCountVedioView.reset();
cdCountVedioView.pause();
}
public void stopStatus() {
isPlaying = false;
}
public boolean isPlaying() {
return isPlaying;
}
public void setTime(int time) {
cdCountVedioView.setTime(time);
}
public void setRedpkgImg(int img) {
ivCountVedioRedbox.setImageResource(img);
}
public void setCountDownVideoListener(CountDownVideoListener countDownVideoListener) {
this.countDownVideoListener = countDownVideoListener;
}
public interface CountDownVideoListener {
void onLoadingFinish();
}
/**
* 显示红包动画
*/
public void showRedbox() {
if (ivCountVedioRedbox != null) {
rope = null;
rope = YoYo.with(Techniques.Tada).duration(600).repeat(-1).playOn(ivCountVedioRedbox);
}
}
/**
* 开始红包动画
*/
public void startAnim() {
if (rope != null && !rope.isRunning()) {
showRedbox();
}
}
/**
* 暂停红包动画
*/
public void stopAnim() {
if (rope != null && rope.isRunning()) {
rope.stop();
}
}
public void stopRedbox() {
if (ivCountVedioRedbox != null && rope != null) {
rope.stop();
}
}
public void destroy() {
if (cdCountVedioView.callOnClick())
if (rope != null) {
rope.stop();
rope = null;
}
}
}
......@@ -10,7 +10,9 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import androidx.core.content.ContextCompat;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
......@@ -91,6 +93,7 @@ public class CountDownView extends View {
mPaintArc.setAntiAlias(true);
mPaintArc.setColor(mPaintArcColor);
mPaintArc.setStrokeWidth(mPaintArcWidth);
mPaintArc.setStrokeCap(Paint.Cap.ROUND);//线条尾部设置成圆角
// mPaintText = new Paint();
// mPaintText.setStyle(Paint.Style.STROKE);
......@@ -184,7 +187,6 @@ public class CountDownView extends View {
, mWidth - mPaintArcWidth / 2, mHeight - mPaintArcWidth / 2);
canvas.drawArc(rectF, startAngle, mSweepAngle, false, mPaintArc);
// //画文字
// float mTetxWidth = mPaintText.measureText(mText, 0, mText.length());
// float dx = mWidth / 2 - mTetxWidth / 2;
......
......@@ -14,19 +14,19 @@ import com.duben.dayplaylet.ad.express.ExpressManager
import com.duben.dayplaylet.common.Constant
import com.duben.dayplaylet.manager.LocalVedioManager
import com.duben.dayplaylet.mvp.model.IndexList
import com.duben.dayplaylet.mvp.model.NineShowBean
import com.duben.dayplaylet.mvp.model.VedioBean
import com.duben.dayplaylet.mvp.presenters.VideoPresenter
import com.duben.dayplaylet.mvp.views.VideoView
import com.duben.dayplaylet.ui.activitys.base.BaseActivity
import com.duben.dayplaylet.ui.adapter.VideoEpisodeAdapter
import com.duben.dayplaylet.ui.widgets.CountDownVideoView
import com.duben.dayplaylet.ui.widgets.DialogListener
import com.duben.dayplaylet.ui.widgets.VideoEpisodeDialog
import com.duben.dayplaylet.ui.widgets.VideoLockDialog
import com.duben.dayplaylet.utils.AppPreferencesManager
import com.duben.library.utils.GlideUtils
import com.duben.library.utils.nodoubleclick.AntiShake
import kotlinx.android.synthetic.main.drama_activity_api_detail.*
import kotlinx.android.synthetic.main.layout_draw_header.*
import kotlinx.android.synthetic.main.layout_red_box.*
/**
* @author Assen
......@@ -34,7 +34,7 @@ import kotlinx.android.synthetic.main.drama_activity_api_detail.*
* @desc
*/
class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClickListener,
VideoView, View.OnClickListener {
VideoView, View.OnClickListener, CountDownVideoView.CountDownVideoListener {
companion object {
private const val TAG = "DramaApiDetailActivity"
......@@ -95,6 +95,7 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
ExpressManager.instance.preLoadAd()
leave.visibility = View.VISIBLE
fm_bottom.setOnClickListener(this)
leave.setOnClickListener(this)
iv_pause.setOnClickListener(this)
......@@ -115,7 +116,6 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
}
info_tv.text = String.format("第%d集", mVedioBean!!.seeIndex)
}
ll_lucky.setOnClickListener(this)
if (DPSdk.isStartSuccess()) {
init()
......@@ -136,6 +136,11 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
}
isInited = true
cl_red_box.visibility = View.VISIBLE
cdvv.setTime(10)
cdvv.setCountDownVideoListener(this)
cdvv.start()
}
private fun initWidget() {
......@@ -165,13 +170,16 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
override fun onDestroy() {
dpWidget?.destroy()
ExpressManager.instance.destroy()
cdvv.destroy()
cdvv.setCountDownVideoListener(null)
super.onDestroy()
}
override fun onResume() {
super.onResume()
videoPresenter.showTurn()
videoPresenter.rdVedioMsg()
}
private var dramaListener: IDPDramaListener = object : IDPDramaListener() {
......@@ -197,11 +205,19 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
override fun onDPVideoPause(map: MutableMap<String, Any>?) {
super.onDPVideoPause(map)
Log.d(TAG, "onDPVideoPause:" + map?.toString())
if (cdvv.isPlaying) {
cdvv.pause()
}
}
override fun onDPVideoContinue(map: MutableMap<String, Any>?) {
super.onDPVideoContinue(map)
Log.d(TAG, "onDPVideoContinue:" + map?.toString())
if (cdvv.isPlaying) {
cdvv.resume()
}
}
override fun onDPVideoCompletion(map: MutableMap<String, Any>?) {
......@@ -212,6 +228,10 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
override fun onDPVideoOver(map: MutableMap<String, Any>?) {
super.onDPVideoOver(map)
Log.d(TAG, "onDPVideoOver:" + map?.toString())
if (cdvv.isPlaying) {
cdvv.pause()
}
}
override fun onDPClose() {
......@@ -253,7 +273,6 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
info_tv.text = String.format("第%d集", index)
mCurrentIndex = index
localShowLucky(index - 1)
val needBlock = index > unlockIndex && hasUnlockList.contains(index).not()
if (!needBlock) {
......@@ -376,7 +395,18 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
}
override fun showTurnSuc(data: NineShowBean) {
override fun rdVedioMsgSuc(surplusCount: Int, surplusSeconds: Int) {
// if (surplusCount > 0) {
// cl_red_box.visibility = View.VISIBLE
// cdvv.setTime(surplusSeconds)
// cdvv.setCountDownVideoListener(this)
// } else {
// cl_red_box.visibility = View.GONE
// }
}
override fun onLoadingFinish() {
}
override fun onClick(v: View?) {
......@@ -395,31 +425,6 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
}
}
private fun localShowLucky(position: Int) {
val localLucky = AppPreferencesManager.get()
.getBoolean(Constant.LUCKY_FLAG, false)
if (mVedioBean != null && localLucky) {
if (position > mVedioBean!!.unlockIndex - 1) {
// 解锁界面
ll_lucky.visibility = View.GONE
} else {
// 超过免费剧
if (position >= mVedioBean!!.freeIndex) {
ll_lucky.visibility = View.VISIBLE
context?.let {
GlideUtils.loadRoundImageViewGif(
it,
R.drawable.ic_nine,
iv_lucky_gif
)
}
} else {
ll_lucky.visibility = View.GONE
}
}
}
}
private fun showLockDialog(drama: DPDrama, widget: IDPWidget) {
mVideoLockDialog = VideoLockDialog(
this,
......
......@@ -22,10 +22,7 @@ import com.duben.dayplaylet.ui.adapter.VideoEpisodeAdapter
import com.duben.dayplaylet.ui.widgets.DialogListener
import com.duben.dayplaylet.ui.widgets.VideoEpisodeDialog
import com.duben.dayplaylet.ui.widgets.VipCountDialog
import com.duben.dayplaylet.utils.AppPreferencesManager
import com.duben.dayplaylet.utils.SpanUtils
import com.duben.dayplaylet.video.tx.adapter.TxVideoAdapter
import com.duben.library.utils.GlideUtils
import com.duben.library.utils.nodoubleclick.AntiShake
import kotlinx.android.synthetic.main.activity_tx_video.*
......@@ -37,7 +34,6 @@ class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
var videos = ArrayList<VedioEpisodeBean>()
private var dialog: VideoEpisodeDialog? = null
private var isLuckyShow = false
private val videoPresenter by lazy { VideoPresenter() }
......@@ -75,7 +71,6 @@ class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
override fun onResume() {
super.onResume()
super_short_video_view.resume()
videoPresenter.showTurn()
if (mVipFlag != UserManager.getInstance().vipFlag && UserManager.getInstance().vipFlag) {
// 重置状态
......@@ -116,7 +111,6 @@ class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
super_short_video_view.setOnPageChangeListener {
if (super_short_video_view.isAdPosition(it) || super_short_video_view.isLuckPosition(it)) {
fm_bottom.visibility = View.GONE
ll_lucky.visibility = View.GONE
super_short_video_view.pause()
return@setOnPageChangeListener
}
......@@ -125,7 +119,6 @@ class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
val readIndex = getRealIndex(it)
showVipCountDialog(readIndex)
localShowLucky(readIndex)
// videoIndex -> seeIndex
val data = super_short_video_view.data
......@@ -138,7 +131,6 @@ class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
fm_bottom.setOnClickListener(this)
close_iv.setOnClickListener(this)
ll_lucky.setOnClickListener(this)
}
......@@ -152,8 +144,6 @@ class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
R.id.fm_bottom -> {
showEpisodeDialog()
}
R.id.ll_lucky -> {
}
else -> {}
}
}
......@@ -206,34 +196,8 @@ class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
override fun unlockFail() {
}
override fun showTurnSuc(data: NineShowBean) {
AppPreferencesManager.get()
.put(Constant.LUCKY_FLAG, data.isShow)
isLuckyShow = data.isShow
if (isLuckyShow) {
val complete = data.complete
val need = data.need
if (complete >= need) {
tv_lucky_status.text = SpanUtils()
.append("可领取")
.setForegroundColor(resources.getColor(R.color.apk_uninstalled))
.create()
} else {
tv_lucky_status.text = SpanUtils()
.append(complete.toString())
.setForegroundColor(resources.getColor(R.color.red))
.append("/")
.append(need.toString())
.create()
}
override fun rdVedioMsgSuc(surplusCount: Int, surplusSeconds: Int) {
// 匹配
// ll_lucky.visibility = View.VISIBLE
} else {
// 未匹配
// ll_lucky.visibility = View.GONE
}
}
override fun onEpisodeClick(position: Int) {
......@@ -346,22 +310,6 @@ class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
}
/**
* @param index 当前下标的集数
*/
private fun localShowLucky(index: Int) {
val localLucky = AppPreferencesManager.get()
.getBoolean(Constant.LUCKY_FLAG, false)
if (isLuckyShow || localLucky) {
ll_lucky.visibility = View.VISIBLE
context?.let { GlideUtils.loadRoundImageViewGif(it, R.drawable.ic_nine, iv_lucky_gif) }
} else {
ll_lucky.visibility = View.GONE
}
}
// 获取当前下标真正代表的集数
private fun getRealIndex(position: Int): Int {
var readIndex = position
......
package com.duben.dayplaylet.video.tx.newrecommend;
import static com.duben.dayplaylet.mvp.model.Vedio3dosKt.VEDIO3DOS_FREE;
import static com.duben.dayplaylet.mvp.model.VideoMultiItemEntityKt.MULTI_ITEM_1;
import static com.duben.dayplaylet.mvp.model.VideoMultiItemEntityKt.MULTI_ITEM_2;
import static com.duben.dayplaylet.mvp.model.VideoMultiItemEntityKt.MULTI_ITEM_3;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.PagerSnapHelper;
import androidx.recyclerview.widget.RecyclerView;
import com.duben.dayplaylet.R;
import com.duben.dayplaylet.mvp.model.VedioBean;
import com.duben.dayplaylet.mvp.model.VideoMultiItemEntity4;
import com.duben.dayplaylet.video.tx.PlayerManager;
import com.duben.dayplaylet.video.tx.TXVideoBaseView;
import com.duben.dayplaylet.video.tx.TXVodPlayerWrapper;
import com.duben.dayplaylet.video.tx.VideoModel;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class NewSuperShortVideoView extends RelativeLayout {
private static final String TAG = "NewSuperShortVideoView";
private static final int MAX_PLAYER_COUNT_ON_PASS = 3;
private RecyclerView mRecyclerView;
private NewTxVideoAdapter mAdapter;
private LinearLayoutManager mLayoutManager;
private PagerSnapHelper mSnapHelper;
private int mLastPositionInIDLE = -1;
private TXVideoBaseView mBaseItemView;
private boolean mIsOnDestroy;
private PlayerManager mPlayerManager;
private int mCurrentPosition = 0;
public NewSuperShortVideoView(Context context) {
this(context, null);
}
public NewSuperShortVideoView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public NewSuperShortVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
public void loadData(VedioBean vedioBean, List<VideoMultiItemEntity4> list, int currentPosition) {
mLastPositionInIDLE = -1;
this.mCurrentPosition = currentPosition;
mAdapter.setVedioBean(vedioBean);
mAdapter.setNewInstance(list);
onItemClick(mCurrentPosition);
}
public void updateData(int currentPosition) {
this.mCurrentPosition = currentPosition;
VideoMultiItemEntity4 videoMultiItemEntity4 = getData().get(currentPosition);
videoMultiItemEntity4.setItemType(MULTI_ITEM_1);
videoMultiItemEntity4.setType(VEDIO3DOS_FREE);
mAdapter.setData(currentPosition, videoMultiItemEntity4);
onItemClick(mCurrentPosition);
}
public void init(Context context) {
View mRootView = LayoutInflater.from(context).inflate(R.layout.super_short_video_view, null);
addView(mRootView);
mPlayerManager = new PlayerManager(getContext());
mRecyclerView = mRootView.findViewById(R.id.rv_super_short_video);
mSnapHelper = new PagerSnapHelper();
mSnapHelper.attachToRecyclerView(mRecyclerView);
mAdapter = new NewTxVideoAdapter();
mAdapter.setNewInstance(new ArrayList<>());
mAdapter.setOnVideoEndListener(() -> onItemClick(mCurrentPosition + 1, true));
mLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false) {
@Override
protected int getExtraLayoutSpace(RecyclerView.State state) {
return 300;
}
};
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setItemViewCacheSize(6);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setDrawingCacheEnabled(true);
mRecyclerView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW);
mRecyclerView.setAdapter(mAdapter);
addListener();
}
private void addListener() {
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
if (!recyclerView.canScrollVertically(1) || !recyclerView.canScrollVertically(-1)) {
onScrollStateChanged(recyclerView, RecyclerView.SCROLL_STATE_IDLE);
}
}
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
switch (newState) {
case RecyclerView.SCROLL_STATE_IDLE://停止滚动
View view = mSnapHelper.findSnapView(mLayoutManager);
int position = recyclerView.getChildAdapterPosition(view);
if (position == mCurrentPosition || position == RecyclerView.NO_POSITION)
return;
Log.i(TAG, "[SCROLL_STATE_IDLE] mLastPositionInIDLE " + mLastPositionInIDLE + " position " + position);
mCurrentPosition = position;
onPageSelectedMethod(position);
if (isLuckPosition(position)) {
mAdapter.notifyItemChanged(position);
}
break;
case RecyclerView.SCROLL_STATE_DRAGGING://拖动
break;
case RecyclerView.SCROLL_STATE_SETTLING://惯性滑动
break;
}
}
});
}
private void onPageSelectedMethod(int position) {
if (mOnPageChangeListener != null) mOnPageChangeListener.onPageChange(position);
if (position >= getData().size() || getData().get(position).getItemType() != MULTI_ITEM_1)
return;
if (position == getData().size()) {
if (mBaseItemView != null) {
mLastPositionInIDLE = -1;
mBaseItemView.stopForPlaying();
}
return;
}
if (mLastPositionInIDLE != position) {
View view = mSnapHelper.findSnapView(mLayoutManager);
if (view == null) {
return;
}
mBaseItemView = view.findViewById(R.id.baseItemView);
Log.i(TAG, "onPageSelected " + position);
List<VideoModel> tempUrlList = initUrlList(position, MAX_PLAYER_COUNT_ON_PASS);
mPlayerManager.updateManager(tempUrlList);
TXVodPlayerWrapper txVodPlayerWrapper = mPlayerManager.getPlayer(getData().get(position).getVideoModel());
if (txVodPlayerWrapper != null && mBaseItemView != null) {
Log.i(TAG, "txVodPlayerWrapper " + txVodPlayerWrapper + "url-- " + getData().get(position).getVideoModel().videoURL);
Log.i(TAG, "txVodPlayerWrapper " + txVodPlayerWrapper);
mBaseItemView.setTXVodPlayer(txVodPlayerWrapper);
}
mLastPositionInIDLE = position;
}
if (mBaseItemView != null && !mIsOnDestroy) {
mBaseItemView.startPlay();
}
}
/**
* 初始化向PlayManager传递的urlList
*
* @param startIndex 开始的索引
* @param maxCount 传递的urlList的数目
* @return
*/
private List<VideoModel> initUrlList(int startIndex, int maxCount) {
List<VideoModel> videoModels = new ArrayList<>();
for (VideoMultiItemEntity4 videoMultiItemEntity : getData()) {
videoModels.add(videoMultiItemEntity.getVideoModel());
}
int i = startIndex - 1;
if (i + maxCount > videoModels.size()) {
i = videoModels.size() - maxCount;
}
if (i < 0) {
i = 0;
}
int addedCount = 0;
List<VideoModel> cacheList = new ArrayList<>();
while (i < videoModels.size() && addedCount < maxCount) {
cacheList.add(videoModels.get(i));
addedCount++;
i++;
}
return cacheList;
}
public void resume() {
if (mBaseItemView != null && !isLuckPosition(mCurrentPosition) && !isAdPosition(mCurrentPosition)) {
mBaseItemView.startPlay();
}
}
public void pause() {
if (mBaseItemView != null) {
mBaseItemView.pausePlayer();
}
}
public void releasePlayer() {
if (mBaseItemView != null) {
mBaseItemView.stopPlayer();
}
mPlayerManager.releasePlayer();
}
public void onItemClick(final int position) {
onItemClick(position, false);
}
public void onItemClick(final int position, boolean isVideoEnd) {
if (getData() == null || position >= getData().size()) return;
if (isVideoEnd) {
changeLayoutPosition(position);
// 执行 onScrollListener
mRecyclerView.smoothScrollToPosition(position);
} else {
mRecyclerView.scrollToPosition(position);
mRecyclerView.post(() -> {
Log.i(TAG, "onItemClick");
mCurrentPosition = position;
onPageSelectedMethod(position);
});
}
}
private void changeLayoutPosition(int position) {
try {
Class<LinearLayoutManager> lm = LinearLayoutManager.class;
Field mPendingScrollPosition = lm.getDeclaredField("mPendingScrollPosition");
mPendingScrollPosition.setAccessible(true);
mPendingScrollPosition.set(mLayoutManager, position);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
public List<VideoMultiItemEntity4> getData() {
return mAdapter.getData();
}
public int getRealSeeIndex() {
if (getData() != null && getData().size() > 0) {
VideoMultiItemEntity4 videoMultiItemEntity = getData().get(mCurrentPosition);
if (videoMultiItemEntity.getItemType() == MULTI_ITEM_1) {
return videoMultiItemEntity.getVideo().getVedioIndex() - 1;
}
}
return mCurrentPosition;
}
public int getCurrentPosition() {
return mCurrentPosition;
}
public void setOnCustomChildClickListener(NewTxVideoAdapter.OnCustomChildClickListener onCustomChildClickListener) {
mAdapter.setOnCustomChildClickListener(onCustomChildClickListener);
}
public void onDestroy() {
mIsOnDestroy = true;
}
public interface OnPageChangeListener {
void onPageChange(int position);
}
private OnPageChangeListener mOnPageChangeListener;
public void setOnPageChangeListener(OnPageChangeListener onPageChangeListener) {
this.mOnPageChangeListener = onPageChangeListener;
}
public boolean isAdPosition(int position) {
if (getData() != null && getData().size() > 0 && position < getData().size()) {
return getData().get(position).getItemType() == MULTI_ITEM_3;
}
return false;
}
public boolean isLuckPosition(int position) {
if (getData() != null && getData().size() > 0 && position < getData().size()) {
return getData().get(position).getItemType() == MULTI_ITEM_2;
}
return false;
}
}
package com.duben.dayplaylet.video.tx.newrecommend
import android.os.Bundle
import android.view.View
import androidx.core.content.ContextCompat
import com.google.gson.Gson
import com.duben.dayplaylet.R
import com.duben.dayplaylet.ad.AdManager
import com.duben.dayplaylet.ad.AdStatusListener
import com.duben.dayplaylet.ad.NoPreAdManager
import com.duben.dayplaylet.ad.express.ExpressManager
import com.duben.dayplaylet.common.Constant
import com.duben.dayplaylet.manager.LocalVedioManager
import com.duben.dayplaylet.manager.UserManager
import com.duben.dayplaylet.mvp.model.*
import com.duben.dayplaylet.mvp.model.IndexList.VedioEpisodeBean
import com.duben.dayplaylet.mvp.presenters.VideoPresenter
import com.duben.dayplaylet.mvp.views.VideoView
import com.duben.dayplaylet.ui.activitys.base.BaseActivity
import com.duben.dayplaylet.ui.adapter.VideoEpisodeAdapter
import com.duben.dayplaylet.ui.widgets.NewVideoEpisodeDialog
import com.duben.dayplaylet.utils.AppPreferencesManager
import com.duben.dayplaylet.utils.SpanUtils
import com.duben.dayplaylet.video.tx.VideoModel
import com.duben.library.utils.GlideUtils
import com.duben.library.utils.nodoubleclick.AntiShake
import kotlinx.android.synthetic.main.activity_new_tx_video.*
/**
* 推荐剧集二级页
*/
class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
VideoEpisodeAdapter.OnEpisodeClickListener, NewTxVideoAdapter.OnCustomChildClickListener {
private var mVipFlag = UserManager.getInstance().vipFlag
private var mAllData = arrayListOf<VedioEpisodeBean>()
private var dialog: NewVideoEpisodeDialog? = null
private val videoPresenter by lazy { VideoPresenter() }
private var mVedioBean: VedioBean? = null
private var indexBean: IndexList? = null
private var orderTagsList: ArrayList<String>? = null
private var playIndex = 1
override fun getContentViewLayoutID() = R.layout.activity_new_tx_video
override fun initViewsAndEvents() {
videoPresenter.attachView(this)
mVedioBean?.let { videoPresenter.getIndexList2("" + it.vedioId) }
initView()
}
override fun getBundleExtras(extras: Bundle?) {
val json = extras?.getString(Constant.VEDIO_BEAN)
mVedioBean = Gson().fromJson(json, VedioBean::class.java)
mVedioBean?.isRecommendVedio = true
orderTagsList = mVedioBean?.orderTags
super.getBundleExtras(extras)
}
override fun isApplyKitKatTranslucency() = false
override fun onResume() {
super.onResume()
new_super_short_video_view.resume()
videoPresenter.showTurn()
if (mVipFlag != UserManager.getInstance().vipFlag && UserManager.getInstance().vipFlag) {
// 重置状态
playIndex = new_super_short_video_view.currentPosition
mVedioBean?.let { videoPresenter.getIndexList2("" + it.vedioId) }
}
}
override fun onPause() {
super.onPause()
new_super_short_video_view.pause()
}
override fun onDestroy() {
new_super_short_video_view.onDestroy()
super.onDestroy()
new_super_short_video_view.releasePlayer()
ExpressManager.instance.destroy()
videoPresenter.detachView()
}
private fun initView() {
if (!UserManager.getInstance().vipFlag) {
ExpressManager.instance.preLoadAd()
}
episode_tv.text = String.format(
"共%d集 %s",
mVedioBean?.vedioTotal,
if (mVedioBean?.completeStatus == 0) "已完结" else "更新中"
)
new_super_short_video_view.setOnCustomChildClickListener(this)
new_super_short_video_view.setOnPageChangeListener {
if (new_super_short_video_view.isAdPosition(it) || new_super_short_video_view.isLuckPosition(
it
)
) {
// fm_bottom.visibility = View.GONE
new_super_short_video_view.pause()
return@setOnPageChangeListener
}
// fm_bottom.visibility = View.VISIBLE
// videoIndex -> seeIndex
val data = new_super_short_video_view.data
if (data.size > it && data[it].itemType == MULTI_ITEM_1) {
mVedioBean!!.seeIndex = data[it].video!!.vedioIndex
mVedioBean!!.orderTags = orderTagsList
mVedioBean!!.isRecommendVedio = true
LocalVedioManager.commitVedio(mVedioBean!!)
}
}
fm_bottom.setOnClickListener(this)
close_iv.setOnClickListener(this)
ll_lucky.setOnClickListener(this)
}
override fun onClick(v: View?) {
if (AntiShake.check(v?.id)) return
when (v?.id) {
R.id.close_iv -> finish()
R.id.fm_bottom -> showEpisodeDialog()
else -> {}
}
}
private fun showEpisodeDialog() {
if (dialog != null && dialog!!.isShowing) return
val vedioBean = VedioBean()
mVedioBean?.let {
vedioBean.title = it.title
vedioBean.vedioTotal = it.vedioTotal
vedioBean.seeIndex = it.seeIndex
vedioBean.vedioTotal = it.vedioTotal
}
dialog = NewVideoEpisodeDialog(this, vedioBean, new_super_short_video_view.data)
dialog?.setCurrentIndex(new_super_short_video_view.realSeeIndex)
dialog?.setOnEpisodeClickListener(this)
dialog?.show()
}
override fun getIndexListSuc(indexList: IndexList) {
// 处理推荐页跳转自动播放下一集逻辑
mVedioBean = indexList.vedioMsg
playIndex = mVedioBean!!.seeIndex - 1
mVedioBean?.isRecommendVedio = true
indexBean = indexList
mAllData.clear()
mAllData.addAll(indexList.list)
new_super_short_video_view.loadData(mVedioBean, getAdapterData(), playIndex)
}
override fun getIndexListFail() {
}
override fun unlockSuc(indexList: IndexList) {
}
override fun unlockFail() {
}
override fun showTurnSuc(data: NineShowBean) {
AppPreferencesManager.get()
.put(Constant.LUCKY_FLAG, data.isShow)
if (!data.isShow || UserManager.getInstance().vipFlag) {
ll_lucky.visibility = View.GONE
return
} else {
ll_lucky.visibility = View.VISIBLE
context?.let { GlideUtils.loadRoundImageViewGif(it, R.drawable.ic_nine, iv_lucky_gif) }
}
val complete = data.complete
val need = data.need
if (complete >= need) {
tv_lucky_status.text = SpanUtils()
.append("可领取")
.setForegroundColor(ContextCompat.getColor(this, R.color.apk_uninstalled))
.create()
} else {
tv_lucky_status.text = SpanUtils()
.append(complete.toString())
.setForegroundColor(ContextCompat.getColor(this, R.color.red))
.append("/")
.append(need.toString())
.create()
}
}
override fun onEpisodeClick(position: Int) {
dialog?.dismiss()
// val data = new_super_short_video_view.data
// if (position >= mVedioBean!!.unlockIndex) {
// new_super_short_video_view.onItemClick(data.size - 1)
// return
// }
// val readPosition = getRealPosition(position + 1)
val readPosition = position
new_super_short_video_view.onItemClick(readPosition)
}
private fun getAdapterData(): MutableList<VideoMultiItemEntity4> {
val data = mutableListOf<VideoMultiItemEntity4>()
for (i in 0 until mAllData.size) {
val item = mAllData[i]
when (mAllData[i].dos) {
VEDIO3DOS_FREE -> {
data.add(
i,
VideoMultiItemEntity4(
MULTI_ITEM_1,
item,
VideoModel(item.vedioUrl),
VEDIO3DOS_FREE
)
)
}
VEDIO3DOS_AD -> {
data.add(
i, VideoMultiItemEntity4(
MULTI_ITEM_2,
item,
VideoModel(item.vedioUrl),
VEDIO3DOS_AD
)
)
}
VEDIO3DOS_PAY -> {
data.add(
i, VideoMultiItemEntity4(
MULTI_ITEM_2,
item,
VideoModel(item.vedioUrl),
VEDIO3DOS_PAY
)
)
}
}
}
return data
}
override fun onCustomChildClick(view: View, position: Int) {
when (view.id) {
R.id.ll_collect -> {
// 无收藏
}
R.id.leave -> {
// 返回
finish()
}
R.id.unlock -> {
// 看广告解锁
val carrierType = Constant.CARRIERTYPE_TX_VEDIO
AdManager.instance.showAd(this, carrierType,
object : AdStatusListener {
var canFail = false
override fun adSuccess() {
canFail = true
}
override fun adFail() {
if (canFail) return
NoPreAdManager.loadVideoAd(
this@NewTxVideoActivity,
carrierType, object : AdStatusListener {
override fun adFail() {
showToast("广告太火爆了,请稍候再试")
}
override fun adSuccess() {
}
override fun adClose(vo: HashMap<String, Any>?) {
updateEpisodeData(position, vo)
}
})
}
override fun adClose(vo: HashMap<String, Any>?) {
updateEpisodeData(position, vo)
}
})
}
R.id.vip -> {
// 开通VIP
}
else -> {}
}
}
private fun updateEpisodeData(position: Int, vo: HashMap<String, Any>?) {
vo?.let {
// 解锁剧集
vo["vedioId"] = mVedioBean!!.vedioId
vo["num"] = (position + 1)
videoPresenter.unlock(vo)
}
if (position >= mAllData.size) return
new_super_short_video_view.updateData(position)
}
// 用于点击匹配当前剧集对应的具体下标
private fun getRealPosition(position: Int): Int {
var readPosition = position
val data = new_super_short_video_view.data
if (data != null && data.size > 0) {
for (i in 0 until data.size) {
if (data[i].itemType == MULTI_ITEM_1) {
if (data[i].video!!.vedioIndex == position) {
readPosition = i
break
}
}
}
}
return readPosition
}
}
\ No newline at end of file
package com.duben.dayplaylet.video.tx.newrecommend
import android.view.View
import android.widget.FrameLayout
import android.widget.LinearLayout
import android.widget.TextView
import com.airbnb.lottie.LottieAnimationView
import com.airbnb.lottie.LottieComposition
import com.airbnb.lottie.LottieCompositionFactory
import com.airbnb.lottie.LottieDrawable
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.duben.dayplaylet.R
import com.duben.dayplaylet.ad.express.ExpressAdCallback
import com.duben.dayplaylet.ad.express.ExpressManager
import com.duben.dayplaylet.manager.UserManager
import com.duben.dayplaylet.mvp.model.*
import com.duben.dayplaylet.utils.UIUtils
import com.duben.dayplaylet.video.tx.TXVideoBaseView
class NewTxVideoAdapter : BaseMultiItemQuickAdapter<VideoMultiItemEntity4, BaseViewHolder>() {
private var vedioBean: VedioBean? = null
init {
addItemType(MULTI_ITEM_1, R.layout.player_item_short_video_play)
addItemType(MULTI_ITEM_2, R.layout.item_block_view)
}
override fun convert(holder: BaseViewHolder, item: VideoMultiItemEntity4) {
when (holder.itemViewType) {
MULTI_ITEM_1 -> {
initVideoHolder(holder, item.video)
}
MULTI_ITEM_2 -> {
initLockHolder(holder, item.type)
}
}
}
private fun initLockHolder(holder: BaseViewHolder, type: String?) {
Glide.with(context).load(vedioBean?.coverImage)
.into(holder.getView(R.id.iv_bg))
val vipBtn = holder.getView<View>(R.id.vip)
if (UserManager.getInstance().newFlag) {
// 匹配
vipBtn.visibility = View.VISIBLE
vipBtn.setOnClickListener {
mOnCustomChildClickListener?.onCustomChildClick(it, holder.adapterPosition)
}
} else {
// 未匹配
vipBtn.visibility = View.GONE
}
val adBtn = holder.getView<View>(R.id.unlock)
vedioBean?.let {
when (type) {
VEDIO3DOS_AD -> { // 观看激励视频解锁
vipBtn.visibility = View.GONE
adBtn.visibility = View.VISIBLE
holder.getView<TextView>(R.id.tv_title).text = String.format(
"解锁%s·第%d集",
it.title,
holder.adapterPosition + 1
)
holder.getView<TextView>(R.id.tv_info).text = String.format(
"看激励视频解锁1集剧情\n请按照顺序解锁"
)
}
VEDIO3DOS_PAY -> { // 开通会员解锁
adBtn.visibility = View.GONE
vipBtn.visibility = View.VISIBLE
holder.getView<TextView>(R.id.tv_info).visibility = View.GONE
vipBtn.setBackgroundResource(R.mipmap.bg_detail_bottom_vip)
holder.getView<TextView>(R.id.tv_title).text =
String.format("解锁%s·全集", it.title)
}
else -> {
adBtn.visibility = View.VISIBLE
holder.getView<TextView>(R.id.tv_title).text = String.format(
"解锁%s·第%d-%d集",
it.title,
it.unlockIndex + 1,
it.unlockIndex + it.adGiveVedioNum
)
holder.getView<TextView>(R.id.tv_info).text = String.format(
"看激励视频解锁%d集剧情\n请按照顺序解锁",
it.adGiveVedioNum
)
}
}
holder.getView<TextView>(R.id.unlock).text = String.format("查看激励视频")
holder.getView<View>(R.id.unlock).setOnClickListener { it2 ->
mOnCustomChildClickListener?.onCustomChildClick(it2, holder.adapterPosition)
}
}
ExpressManager.instance.getAdView(
object : ExpressAdCallback {
override fun loadSuccess(adView: FrameLayout?) {
adView?.let {
UIUtils.removeFromParent(it)
val fmAd = holder.getView<FrameLayout>(R.id.fl_ad)
fmAd.removeAllViews()
fmAd.addView(it)
}
ExpressManager.instance.preLoadAd()
}
override fun renderSuccess(adView: FrameLayout?): Boolean {
adView?.let {
UIUtils.removeFromParent(it)
val fmAd = holder.getView<FrameLayout>(R.id.fl_ad)
fmAd.removeAllViews()
fmAd.addView(it)
}
ExpressManager.instance.preLoadAd()
return false
}
override fun loadFail() {
}
})
}
private fun initVideoHolder(holder: BaseViewHolder, item: IndexList.VedioEpisodeBean?) {
//标题
holder.setText(R.id.title_tv, vedioBean?.title)
//集数
holder.setText(R.id.info_tv, "第" + item?.vedioIndex + "集")
//缩略图
Glide.with(context).load(vedioBean?.coverImage)
.skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.ALL).centerCrop()
.into(holder.getView<TXVideoBaseView>(R.id.baseItemView).findViewById(R.id.iv_cover))
vedioBean?.let {
if (it.isRecommendVedio) {
holder.getView<LinearLayout>(R.id.ll_collect).visibility = View.GONE
} else {
holder.getView<LinearLayout>(R.id.ll_collect).visibility = View.VISIBLE
//收藏数量
holder.setText(R.id.zan_num_tv, "" + it.hot)
if (vedioBean?.collect == 0) {
// 未收藏
setCollectImage(holder.getView(R.id.zan_iv))
} else {
// 已收藏
setCancelCollectImage(holder.getView(R.id.zan_iv))
}
holder.getView<LinearLayout>(R.id.ll_collect).setOnClickListener { it2 ->
mOnCustomChildClickListener?.onCustomChildClick(it2, holder.adapterPosition)
if (it.collect == 0) {
playCollectAnim(holder.getView(R.id.zan_iv))
} else {
playCancelCollectAnim(holder.getView(R.id.zan_iv))
}
}
}
}
holder.getView<TXVideoBaseView>(R.id.baseItemView)
.setOnVideoEndListener(mOnVideoEndListener)
}
override fun onViewDetachedFromWindow(holder: BaseViewHolder) {
super.onViewDetachedFromWindow(holder)
if (holder.itemViewType == MULTI_ITEM_1) {
vedioBean?.let {
if (it.seeIndex == data[holder.layoutPosition].video!!.vedioIndex) {
holder.getView<TXVideoBaseView>(R.id.baseItemView).pausePlayer()
holder.getView<TXVideoBaseView>(R.id.baseItemView).stopForPlaying()
}
}
}
}
override fun onViewRecycled(holder: BaseViewHolder) {
super.onViewRecycled(holder)
if (holder.itemViewType == MULTI_ITEM_1) {
Glide.with(context).clear(holder.getView<View>(R.id.iv_cover))
}
}
private fun setCollectImage(view: LottieAnimationView) {
val lottieDrawable = LottieDrawable()
LottieCompositionFactory.fromAsset(context, "home_collect.json")
.addListener { result: LottieComposition? ->
lottieDrawable.setImagesAssetsFolder("images/")
lottieDrawable.composition = result
}
view.setImageDrawable(lottieDrawable)
}
private fun setCancelCollectImage(view: LottieAnimationView) {
val lottieDrawable = LottieDrawable()
LottieCompositionFactory.fromAsset(context, "home_cancel_collect.json")
.addListener { result: LottieComposition? ->
lottieDrawable.setImagesAssetsFolder("images/")
lottieDrawable.composition = result
}
view.setImageDrawable(lottieDrawable)
}
private fun playCollectAnim(view: LottieAnimationView) {
val lottieDrawable = LottieDrawable()
LottieCompositionFactory.fromAsset(context, "home_collect.json")
.addListener { result: LottieComposition? ->
lottieDrawable.setImagesAssetsFolder("images/")
lottieDrawable.composition = result
lottieDrawable.loop(false)
lottieDrawable.playAnimation()
}
view.setImageDrawable(lottieDrawable)
}
private fun playCancelCollectAnim(view: LottieAnimationView) {
val lottieDrawable = LottieDrawable()
LottieCompositionFactory.fromAsset(context, "home_cancel_collect.json")
.addListener { result: LottieComposition? ->
lottieDrawable.setImagesAssetsFolder("images/")
lottieDrawable.composition = result
lottieDrawable.loop(false)
lottieDrawable.playAnimation()
}
view.setImageDrawable(lottieDrawable)
}
private var mOnVideoEndListener: TXVideoBaseView.OnVideoEndListener? = null
fun setOnVideoEndListener(onVideoEndListener: TXVideoBaseView.OnVideoEndListener) {
this.mOnVideoEndListener = onVideoEndListener
}
private var mOnCustomChildClickListener: OnCustomChildClickListener? = null
fun setOnCustomChildClickListener(onCustomChildClickListener: OnCustomChildClickListener) {
this.mOnCustomChildClickListener = onCustomChildClickListener
}
interface OnCustomChildClickListener {
fun onCustomChildClick(view: View, position: Int)
}
fun setVedioBean(vedioBean: VedioBean) {
this.vedioBean = vedioBean
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/ic_cb_selected" android:state_checked="true" />
<item android:drawable="@mipmap/ic_cb_selected" android:state_selected="true" />
<item android:drawable="@mipmap/ic_cb_selected" android:state_pressed="true" />
<item android:drawable="@mipmap/ic_cb_unselected" android:state_checked="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_back_cash_selected" android:state_checked="true" />
<item android:drawable="@drawable/shape_back_cash_unselected" android:state_checked="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#F9B600" android:state_checked="true" />
<item android:color="#909090" android:state_checked="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<corners android:radius="6dp" />
<stroke
android:width="1dp"
android:color="#B8B8B8" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#eeeeee" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="#99000000" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="15dip" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="#E6985D" />
<corners android:radius="2dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="2dp" />
<solid android:color="@color/red"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="2dp" />
<solid android:color="@color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/loading_bg" />
<!-- 边缘线的宽度和颜色 -->
<stroke
android:width="1dp"
android:color="@color/full_transparent" />
<corners android:radius="5dip" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="#5B1500" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="30dip" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="#DEDFE0" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="30dip" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="#714808" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="30dip" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="#bcb8b5" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="30dip" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFBF0" />
<corners android:radius="6dp" />
<stroke
android:width="1dp"
android:color="#F9B601" />
<solid android:color="@color/color_20000000" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="#F2B691" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="30dip" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<!-- <item android:duration="100">-->
<!-- <clip-->
<!-- android:clipOrientation="horizontal"-->
<!-- android:drawable="@mipmap/loading_u0"-->
<!-- android:gravity="left" />-->
<!-- </item>-->
<item android:duration="100">
<clip
android:clipOrientation="horizontal"
android:drawable="@mipmap/loading_u1"
android:gravity="left" />
</item>
<item android:duration="100">
<clip
android:clipOrientation="horizontal"
android:drawable="@mipmap/loading_u2"
android:gravity="left" />
</item>
<item android:duration="100">
<clip
android:clipOrientation="horizontal"
android:drawable="@mipmap/loading_u3"
android:gravity="left" />
</item>
<item android:duration="100">
<clip
android:clipOrientation="horizontal"
android:drawable="@mipmap/loading_u4"
android:gravity="left" />
</item>
<item android:duration="100">
<clip
android:clipOrientation="horizontal"
android:drawable="@mipmap/loading_u5"
android:gravity="left" />
</item>
<item android:duration="100">
<clip
android:clipOrientation="horizontal"
android:drawable="@mipmap/loading_u6"
android:gravity="left" />
</item>
</animation-list>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item
android:drawable="@mipmap/loading_u1"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u2"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u3"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u4"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u5"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u7"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u8"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u9"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u10"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u11"
android:duration="100" />
<item
android:drawable="@mipmap/loading_u12"
android:duration="100" />
</animation-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<include layout="@layout/header_layout" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:orientation="vertical">
<TextView
android:id="@+id/tv_order_nickname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp" />
<EditText
android:id="@+id/et_order_nickname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:hint="请输入"
android:inputType="text"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_order_mobile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp" />
<EditText
android:id="@+id/et_order_mobile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:hint="请输入"
android:inputType="phone"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_order_cause"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_1"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="10dp"
android:layout_weight="1"
android:background="@drawable/shape_back_cash_selector"
android:button="@null"
android:gravity="center"
android:text="7天无理由"
android:textColor="@drawable/shape_back_cash_text_selector" />
<RadioButton
android:id="@+id/rb_2"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="20dp"
android:layout_weight="1"
android:background="@drawable/shape_back_cash_selector"
android:button="@null"
android:gravity="center"
android:text="没有我想要的功能"
android:textColor="@drawable/shape_back_cash_text_selector" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="20dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_3"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="10dp"
android:layout_weight="1"
android:background="@drawable/shape_back_cash_selector"
android:button="@null"
android:gravity="center"
android:text="产品体验较差"
android:textColor="@drawable/shape_back_cash_text_selector" />
<RadioButton
android:id="@+id/rb_4"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="20dp"
android:layout_weight="1"
android:background="@drawable/shape_back_cash_selector"
android:button="@null"
android:gravity="center"
android:text="其他"
android:textColor="@drawable/shape_back_cash_text_selector" />
</LinearLayout>
<TextView
android:id="@+id/tv_order_suggest"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp" />
<EditText
android:id="@+id/et_order_suggest"
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_marginTop="10dp"
android:background="@drawable/shape_back_cash_unselected"
android:gravity="top"
android:hint="请留下您的批评、表扬或者建议,我们会虚心听取, 认真改正。(请保持在5-150字内)"
android:maxLength="150"
android:padding="10dp"
android:textSize="14sp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<Button
android:id="@+id/btn_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:background="@drawable/shape_yellow"
android:text="提 交"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
\ No newline at end of file
......@@ -23,7 +23,7 @@
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:background="@color/authentic_text"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/bg_manage_order"
android:orientation="vertical">
<include layout="@layout/header_layout" />
<com.duben.dayplaylet.ui.widgets.ElasticScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.duben.dayplaylet.ui.widgets.CircleImageView
android:id="@+id/civ_my"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center_horizontal"
android:layout_marginEnd="10dp"
android:src="@mipmap/ic_my_avat" />
<TextView
android:id="@+id/tv_my_account"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/civ_my"
android:layout_marginTop="4dp"
android:layout_toEndOf="@id/civ_my"
android:text="手机号"
android:textColor="@color/black"
android:textSize="18sp" />
<TextView
android:id="@+id/tv_my_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/civ_my"
android:layout_marginTop="10dp"
android:layout_marginBottom="4dp"
android:layout_toEndOf="@id/civ_my"
android:text="用户ID"
android:textSize="14sp" />
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="自动续费订单"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:background="@mipmap/bg_manage_order_content"
android:padding="20dp">
<TextView
android:id="@+id/tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.01元试用会员"
android:textColor="#74380C"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_1"
android:layout_marginTop="20dp"
android:text="下次扣款日期"
android:textColor="#74380C"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/tv_2"
android:layout_alignParentEnd="true"
android:text="-"
android:textColor="#74380C"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_2"
android:layout_marginTop="10dp"
android:text="下次扣款金额"
android:textColor="#74380C"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_coin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/tv_3"
android:layout_alignParentEnd="true"
android:text="-"
android:textColor="#74380C"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_3"
android:layout_marginTop="10dp"
android:text="支付方式"
android:textColor="#74380C"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_channel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/tv_4"
android:layout_alignParentEnd="true"
android:text="-"
android:textColor="#74380C"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_4"
android:layout_alignParentEnd="true"
android:layout_marginTop="20dp"
android:background="@drawable/shape_cancel_order"
android:paddingStart="20dp"
android:paddingTop="5dp"
android:paddingEnd="20dp"
android:paddingBottom="5dp"
android:text="取消自动续费"
android:textColor="#763904" />
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="会员权益"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<ImageView
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_marginTop="20dp"
android:src="@mipmap/bg_my_hint2" />
</LinearLayout>
</com.duben.dayplaylet.ui.widgets.ElasticScrollView>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
android:orientation="vertical">
<com.duben.dayplaylet.video.tx.newrecommend.NewSuperShortVideoView
android:id="@+id/new_super_short_video_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/close_iv"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
android:padding="10dp"
android:src="@mipmap/ic_arrow_white" />
<FrameLayout
android:id="@+id/fm_bottom"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="bottom">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_gravity="center"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:background="@drawable/shape_half_trans"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_10"
android:paddingEnd="@dimen/dp_10">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/ic_video_epsiode" />
<TextView
android:id="@+id/episode_tv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:text="共100集 已完结"
android:textColor="@color/white" />
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/ic_arrow_top" />
</LinearLayout>
</FrameLayout>
<LinearLayout
android:id="@+id/ll_lucky"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginEnd="1dp"
android:layout_marginBottom="220dp"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
<ImageView
android:id="@+id/iv_lucky_gif"
android:layout_width="80dp"
android:layout_height="70dp" />
<TextView
android:id="@+id/tv_lucky_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:background="@drawable/shape_bg_black2"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="0/5"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</FrameLayout>
\ No newline at end of file
<?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"
android:background="#90000000"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/shape_bg_nine">
<com.sunfusheng.marqueeview.MarqueeView
android:id="@+id/marqueeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="6dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="6dp"
app:mvAnimDuration="1000"
app:mvInterval="3000"
app:mvSingleLine="true"
app:mvTextColor="@color/white"
app:mvTextSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_lucky"
android:layout_width="315dp"
android:layout_height="315dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="14dp">
<com.duben.dayplaylet.ui.widgets.luckymonkeypanel.LuckyMonkeyPanelView2
android:id="@+id/lucky_panel2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RelativeLayout
android:id="@+id/btn_action"
android:layout_width="82dp"
android:layout_height="82dp"
android:layout_centerInParent="true"
android:background="@mipmap/ic_luckly_btn">
<TextView
android:id="@+id/tv_nine_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:text="-/-"
android:textColor="@color/white"
android:textSize="10dp"></TextView>
</RelativeLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_nine_rule"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:background="@drawable/shape_bg_nine"
android:orientation="vertical"
android:visibility="gone">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/ic_nine_rule"></ImageView>
<TextView
android:id="@+id/tv_nine_rule"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:textColor="#FFC1C3"
android:textSize="12sp"></TextView>
</LinearLayout>
<ImageView
android:id="@+id/iv_nine_back"
android:layout_width="44dp"
android:layout_height="44dp"
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:src="@mipmap/ic_quit_yuan" />
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"
android:background="#80000000">
<LinearLayout
android:layout_width="290dp"
android:layout_height="360dp"
android:layout_gravity="center"
android:layout_marginTop="-30dp"
android:background="@mipmap/bg_ninepay"
android:orientation="vertical">
<LinearLayout
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="156dp"
android:background="@drawable/shape_banner_write"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_nine_pay_type"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@mipmap/ic_nine_vip"></ImageView>
<TextView
android:id="@+id/tv_nine_pay_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="8dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:textColor="#A24240"
android:textSize="12sp"></TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:layout_marginTop="20dp"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_nine_left_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_ninepay_left"></ImageView>
<ImageView
android:id="@+id/iv_nine_right_next"
android:layout_marginLeft="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_ninepay_right"></ImageView>
</LinearLayout>
</LinearLayout>
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F9FAFB"
android:orientation="vertical">
<include layout="@layout/header_layout" />
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/srl_drawcash"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srlAccentColor="@color/gray"
app:srlPrimaryColor="@color/white">
<com.scwang.smartrefresh.layout.header.ClassicsHeader
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recy_drawcash"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:background="@null"
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</LinearLayout>
\ No newline at end of file
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#90000000"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginBottom="8dp"
android:text="刚刚看的"
android:textColor="@color/white"
android:textSize="18sp" />
<RelativeLayout
android:layout_width="310dp"
android:layout_height="440dp">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardBackgroundColor="@android:color/transparent"
app:cardCornerRadius="@dimen/dp_10">
<com.duben.dayplaylet.video.tx.TXVideoBaseView
android:id="@+id/baseItemView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:id="@+id/tv_recommend_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginLeft="14dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="65dp"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_recommend_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginLeft="12dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="35dp"
android:drawableLeft="@mipmap/ic_recommend_vedio"
android:drawablePadding="2dp"
android:gravity="center_vertical"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="12sp" />
</androidx.cardview.widget.CardView>
<ImageView
android:id="@+id/ic_recommend_quit"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentEnd="true"
android:layout_gravity="end"
android:layout_marginTop="2dp"
android:elevation="2dp"
android:padding="10dp"
android:scaleType="centerCrop"
android:src="@mipmap/ic_quit_yuan" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="10dp">
<ImageView
android:id="@+id/iv_recommend_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleType="centerCrop" />
<Button
android:id="@+id/btn_recommend_next"
android:layout_width="210dp"
android:layout_height="50dp"
android:layout_centerInParent="true"
android:background="@drawable/shape_bg_recommend"
android:text="立即试看"
android:textColor="@color/white"
android:textSize="16sp" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
......@@ -60,32 +60,4 @@
</FrameLayout>
<LinearLayout
android:id="@+id/ll_lucky"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="1dp"
android:visibility="gone"
android:layout_gravity="bottom|right"
android:layout_marginBottom="220dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_lucky_gif"
android:layout_width="80dp"
android:layout_height="70dp" />
<TextView
android:id="@+id/tv_lucky_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:background="@drawable/shape_bg_black2"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="0/5"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"
android:background="@color/black"
android:orientation="vertical">
<ImageView
android:id="@+id/ic_vip_top"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/bg_vip_black"
android:scaleType="fitXY" />
<ImageView
android:id="@+id/ic_vip_quit"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="right"
android:layout_marginTop="30dp"
android:layout_marginRight="10dp"
android:padding="10dp"
android:scaleType="centerCrop"
android:src="@mipmap/ic_quit_yuan" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="30dp"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="30dp"
android:src="@mipmap/bg_vip_top"></ImageView>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvVip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@null"
android:overScrollMode="never" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/ll_vip_alipay"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:paddingLeft="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/ic_alipay"
android:drawablePadding="6dp"
android:gravity="center_vertical"
android:text="支付宝支付"
android:textColor="@color/white"
android:textSize="14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/iv_vip_alipay"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="center"
android:src="@mipmap/ic_vip_enable_blue" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_vip_wx"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:paddingRight="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/ic_call_wx"
android:drawablePadding="6dp"
android:gravity="center_vertical"
android:text="微信支付"
android:textColor="@color/white"
android:textSize="14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/iv_vip_wx"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="center"
android:src="@mipmap/ic_vip_none" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_vip_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="试用到期后将按终身xx元自动续费,可随时关闭"
android:textColor="#97ffffff"
android:textSize="10sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="6dp"
android:orientation="horizontal">
<CheckBox
android:id="@+id/cbVipAgreement"
style="@style/CustomCheckboxTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
<TextView
android:id="@+id/tvVipAgreement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="点击购买即表示您同意《会员付费协议》"
android:textColor="@color/white"
android:textSize="10sp" />
</LinearLayout>
<io.supercharge.shimmerlayout.ShimmerLayout
android:id="@+id/shimmer_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="10dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="10dp"
app:shimmer_animation_duration="1200"
app:shimmer_color="#50ffffff">
<TextView
android:id="@+id/tvVipPay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@mipmap/bg_vip_btn"
android:gravity="center"
android:text="立即开通"
android:textColor="@color/white"
android:textSize="18sp" />
</io.supercharge.shimmerlayout.ShimmerLayout>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/shape_bg_write"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="每日小短剧自动续费协议"
android:textColor="@color/black"
android:textSize="16sp"
android:textStyle="bold"></TextView>
<ImageView
android:id="@+id/iv_agreement_quit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:paddingTop="10dp"
android:paddingRight="20dp"
android:src="@mipmap/ic_activity_quit"></ImageView>
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="8dp"
android:background="#E1E1E1" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="300dp"
android:fadingEdge="none"
android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="300dp"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:enabled="false"
android:inputType="textMultiLine"
android:scrollbars="vertical"
android:text="@string/str_agreement_vip"
android:textColor="@color/black"
android:textSize="13sp" />
</LinearLayout>
</ScrollView>
<TextView
android:id="@+id/tv_agreement_next"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@mipmap/bg_vip_btn"
android:gravity="center"
android:text="同意并继续"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="260dp"
android:background="@mipmap/bg_pay_top"></FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<TextView
android:id="@+id/iv_dialog_backpay_cancel"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginLeft="30dp"
android:layout_marginTop="22dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="20dp"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:background="@drawable/shape_pay_left"
android:gravity="center"
android:text="忍痛拒绝"
android:textColor="@color/white"
android:textSize="20sp"></TextView>
<FrameLayout
android:id="@+id/tv_dialog_backpay"
android:layout_width="0dp"
android:layout_height="70dp"
android:layout_gravity="center_vertical"
android:layout_marginTop="12dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="10dp"
android:layout_weight="1">
<TextView
android:id="@+id/tv_vip_next"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/shape_pay_right"
android:gravity="center"
android:layout_marginBottom="20dp"
android:text="试用"
android:textColor="@color/white"
android:textSize="20sp"></TextView>
<ImageView
android:id="@+id/iv_vip_new"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:visibility="gone"
android:layout_marginRight="10dp"
android:src="@mipmap/ic_my_new"/>
</FrameLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/shape_banner_write"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="40dp"
android:layout_marginBottom="20dp"
android:gravity="center"
android:text="会员到期后将无法享受服\n务,是否取消订阅?"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#EEEEEE" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_cancel"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:gravity="center"
android:text="确认取消"
android:textSize="18sp" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#EEEEEE" />
<TextView
android:id="@+id/tv_go"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="继续订阅"
android:textColor="#EB904C"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="250dp"
android:layout_height="170dp"
android:layout_centerInParent="true"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@mipmap/bg_vip_count" />
<ImageView
android:id="@+id/tv_nine_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:src="@mipmap/ic_close" />
<TextView
android:id="@+id/tv_nine_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:gravity="center"
android:textColor="@color/black"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_nine_next"
android:layout_width="200dp"
android:layout_height="40dp"
android:layout_below="@id/tv_nine_text"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_marginTop="24dp"
android:layout_marginBottom="18dp"
android:background="@mipmap/bg_vip_count_btn"
android:gravity="center"
android:text="继续观看"
android:textColor="#6C4D22"
android:textSize="14sp" />
</RelativeLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="400dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/shape_bg_write"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginTop="40dp"
android:text="请选择支付方式"
android:textColor="@color/gray"
android:textSize="14sp" />
<ImageView
android:id="@+id/iv_dialogpay_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="12dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_activity_quit" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="#E1E1E1" />
<LinearLayout
android:id="@+id/ll_dialogpay_alipay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingBottom="34dp"
android:gravity="center_vertical|center_horizontal"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/ic_alipay"
android:drawablePadding="6dp"
android:gravity="center_vertical"
android:text="支付宝支付"
android:textColor="@color/black"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:background="@drawable/shape_red"
android:paddingLeft="4dp"
android:paddingTop="1dp"
android:paddingRight="4dp"
android:paddingBottom="1dp"
android:text="单单立减 最高免单"
android:textColor="@color/white"
android:textSize="10sp" />
<ImageView
android:id="@+id/iv_dialogpay_alipay"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="20dp"
android:scaleType="center"
android:src="@mipmap/ic_vip_enable" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_dialogpay_wx"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:orientation="horizontal"
android:paddingTop="26dp"
android:paddingBottom="24dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/ic_call_wx"
android:drawablePadding="6dp"
android:gravity="center_vertical"
android:text="微信支付 "
android:textColor="@color/black"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:background="@drawable/shape_red"
android:paddingLeft="4dp"
android:paddingTop="1dp"
android:paddingRight="4dp"
android:paddingBottom="1dp"
android:text="单单立减 最高免单"
android:textColor="@color/white"
android:textSize="10sp" />
<ImageView
android:id="@+id/iv_dialogpay_wx"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="20dp"
android:scaleType="center"
android:src="@mipmap/ic_vip_none" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="#E1E1E1" />
<TextView
android:id="@+id/tv_dialogpay_pay"
android:layout_width="280dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:layout_marginBottom="30dp"
android:background="@drawable/shape_green"
android:gravity="center"
android:text="立即订阅"
android:textColor="@color/white"
android:textSize="16sp" />
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/rl_dialog_vip_bg"
android:layout_width="340dp"
android:layout_height="550dp"
android:layout_centerInParent="true"
android:background="@mipmap/bg_vip_dialog_zero"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_dialog_vip_quit"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:src="@mipmap/ic_quit_yuan"></ImageView>
<TextView
android:id="@+id/tv_dialog_vip_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="70dp"
android:background="@mipmap/bg_vip_dialog_btn"
android:gravity="center"
android:text="立即开通"
android:textColor="#6B3D1A"
android:textSize="20sp"></TextView>
<FrameLayout
android:id="@+id/fl_dialog_vip_money_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone">
<TextView
android:id="@+id/tv_dialog_vip_money_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="45dp"
android:layout_marginTop="200dp"
android:text="¥123"
android:textColor="@color/red"
android:textSize="22sp"></TextView>
<TextView
android:id="@+id/tv_dialog_vip_money_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="200dp"
android:layout_marginRight="45dp"
android:text="¥123"
android:textColor="@color/red"
android:textSize="22sp"></TextView>
<TextView
android:id="@+id/tv_dialog_vip_money_center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="260dp"
android:text="¥123"
android:textColor="@color/red"
android:textSize="22sp"></TextView>
</FrameLayout>
</RelativeLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#77090909">
......@@ -12,18 +11,17 @@
android:layout_marginBottom="50dp"
android:keepScreenOn="true" />
<androidx.constraintlayout.widget.ConstraintLayout
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginStart="15dp"
android:layout_marginBottom="100dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent">
android:orientation="vertical">
<TextView
android:id="@+id/title_tv"
......@@ -47,42 +45,28 @@
android:maxLines="3"
android:text="-"
android:textColor="#fff"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" />
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_lucky"
<include
layout="@layout/layout_red_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="1dp"
android:layout_marginBottom="220dp"
android:gravity="center"
android:orientation="vertical"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent">
<ImageView
android:id="@+id/iv_lucky_gif"
android:layout_width="80dp"
android:layout_height="70dp" />
<TextView
android:id="@+id/tv_lucky_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:background="@drawable/shape_bg_black2"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="0/5"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
android:layout_gravity="bottom|end"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="200dp" />
<ImageView
android:id="@+id/iv_pause"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_gravity="center"
android:background="@drawable/shape_round_trans"
android:src="@mipmap/player_pause"
android:visibility="gone" />
</androidx.constraintlayout.widget.ConstraintLayout>
<include layout="@layout/layout_draw_header" />
</FrameLayout>
<FrameLayout
android:id="@+id/fm_bottom"
......@@ -126,20 +110,4 @@
</FrameLayout>
<ImageView
android:id="@+id/iv_pause"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_gravity="center"
android:background="@drawable/shape_round_trans"
android:src="@mipmap/player_pause"
android:visibility="gone" />
<ImageView
android:id="@+id/leave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:padding="10dp"
android:src="@mipmap/ic_arrow_white" />
</FrameLayout>
\ No newline at end of file
......@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false">
android:background="@color/my_color_gray">
<LinearLayout
android:layout_width="match_parent"
......@@ -61,6 +61,7 @@
android:id="@+id/tv_my_explain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_round_trans"
android:paddingStart="@dimen/dp_10"
android:paddingTop="6dp"
android:paddingEnd="@dimen/dp_10"
......@@ -73,41 +74,103 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<RadioGroup
android:id="@+id/rg_my_income"
<FrameLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginTop="20dp"
android:background="@color/red"
android:orientation="horizontal">
android:layout_marginTop="20dp">
<RadioButton
android:id="@+id/rb_my_cash"
android:layout_width="0dp"
<RadioGroup
android:id="@+id/rg_my_income"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@mipmap/ic_launcher_main"
android:button="@null"
android:gravity="center"
android:text="红包券收益" />
<RadioButton
android:id="@+id/rb_my_gold"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="金元宝收益" />
android:layout_marginTop="20dp"
android:background="@drawable/shape_bg_write"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_my_cash"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:layout_weight="1"
android:button="@null"
android:checked="true"
android:drawableStart="@mipmap/ic_redpkg_small"
android:drawablePadding="-30dp"
android:gravity="center"
android:paddingStart="30dp"
android:text="红包券收益"
android:textColor="@color/red"
android:textSize="@dimen/font_size_16"
android:textStyle="bold" />
<RadioButton
android:id="@+id/rb_my_gold"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:layout_weight="1"
android:button="@null"
android:drawableStart="@mipmap/ic_yuanbao_small"
android:drawablePadding="-26dp"
android:gravity="center"
android:paddingStart="30dp"
android:text="金元宝收益"
android:textColor="@color/red"
android:textSize="@dimen/font_size_16"
android:textStyle="bold" />
</RadioGroup>
</RadioGroup>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_my_cash"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_marginEnd="-20dp"
android:layout_weight="1"
android:background="@drawable/shape_bg_blue"
android:checked="true"
android:drawablePadding="-30dp"
android:gravity="center"
android:paddingStart="30dp"
android:text="红包券收益"
android:textColor="@color/red"
android:textSize="@dimen/font_size_16"
android:textStyle="bold"
app:drawableStartCompat="@mipmap/ic_redpkg_small" />
<TextView
android:id="@+id/tv_my_gold"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_marginStart="-20dp"
android:layout_weight="1"
android:background="@drawable/shape_bg_blue"
android:drawablePadding="-30dp"
android:gravity="center"
android:paddingStart="30dp"
android:text="金元宝收益"
android:textColor="@color/red"
android:textSize="@dimen/font_size_16"
android:textStyle="bold"
android:visibility="invisible"
app:drawableStartCompat="@mipmap/ic_yuanbao_small" />
</LinearLayout>
</FrameLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="@dimen/dp_10"
android:background="@drawable/shape_bg_write"
android:padding="@dimen/dp_10">
<TextView
......@@ -141,7 +204,10 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_10"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="@drawable/shape_bg_write"
android:padding="@dimen/dp_10">
<ImageView
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fl_sign"
android:layout_width="76dp"
android:layout_height="76dp"
android:background="@drawable/shape_bg_nine"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingTop="2dp"
android:paddingBottom="2dp">
<ImageView
android:id="@+id/iv"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_horizontal"
android:visibility="gone" />
<TextView
android:id="@+id/tv2"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:lineSpacingExtra="-3dp"
android:text="最高\n10元"
android:textColor="@color/white"
android:textSize="15sp"
android:visibility="visible" />
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:text="第一天"
android:textColor="@color/white"
android:textSize="12sp" />
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/shape_banner_write"
android:orientation="vertical">
<TextView
android:id="@+id/tv_orderrecord_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="8dp"
android:text="年卡会员"
android:textColor="#454A69"
android:layout_marginLeft="15dp"
android:textSize="15sp"
android:textStyle="bold" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="10dp">
<TextView
android:id="@+id/tv_orderrecord_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2020-10-19"
android:layout_centerVertical="true"
android:textColor="#9D9D9D"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_orderrecord_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="¥50"
android:textColor="@color/red"
android:textSize="20sp" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_orderrecord_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="15dp"
android:text="订单编号:123123123123"
android:textColor="#9D9D9D"
android:textSize="12sp" />
<View
android:layout_width="1dp"
android:layout_height="10dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:background="#9D9D9D"></View>
<TextView
android:id="@+id/tv_orderrecord_copy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
android:text="复制"
android:textColor="#9D9D9D"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:orientation="vertical">
<TextView
android:id="@+id/item_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_8D8F90"
android:textStyle="bold"
android:textSize="16sp" />
<View
android:id="@+id/item_line"
android:layout_width="20dp"
android:layout_height="2dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="6dp" />
</LinearLayout>
\ No newline at end of file
......@@ -5,36 +5,47 @@
android:paddingTop="40dp"
android:paddingBottom="10dp">
<ImageView
android:id="@+id/leave"
android:layout_width="20dp"
android:layout_height="40dp"
android:contentDescription="@string/app_name"
android:src="@mipmap/ic_arrow_white"
android:visibility="gone" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp">
android:layout_height="42dp"
android:layout_marginStart="16dp">
<LinearLayout
android:id="@+id/ll_draw_cash"
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:layout_centerVertical="true"
android:layout_marginStart="12dp"
android:background="@drawable/shape_half_trans"
android:gravity="center_vertical">
<TextView
android:id="@+id/tv_cash"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="30dp"
android:gravity="center"
android:paddingLeft="30dp"
android:text="0元"
android:maxWidth="60dp"
android:minWidth="40dp"
android:text="-"
android:textColor="@color/white"
android:textSize="14sp" />
<Button
android:id="@+id/btn_draw_cash"
android:layout_width="50dp"
android:layout_height="28dp"
android:layout_height="26dp"
android:layout_marginEnd="6dp"
android:background="@drawable/shape_green"
android:text="提现"
android:text="@string/draw_cash"
android:textColor="@color/white"
android:textSize="15sp" />
......@@ -42,46 +53,46 @@
<ImageView
android:id="@+id/iv_cash"
android:layout_width="wrap_content"
android:layout_marginBottom="-4dp"
android:layout_height="wrap_content"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:src="@mipmap/ic_redpkg" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginRight="3dp">
android:layout_height="42dp"
android:layout_gravity="end"
android:layout_marginEnd="16dp">
<LinearLayout
android:id="@+id/ll_draw_gold"
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="10dp"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:layout_centerVertical="true"
android:layout_marginStart="12dp"
android:background="@drawable/shape_half_trans"
android:gravity="center_vertical">
<TextView
android:id="@+id/tv_gold"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="30dp"
android:gravity="center"
android:paddingLeft="30dp"
android:text="0个"
android:maxWidth="60dp"
android:minWidth="40dp"
android:text="-"
android:textColor="@color/white"
android:textSize="14sp" />
<Button
android:id="@+id/btn_draw_gold"
android:layout_width="50dp"
android:layout_height="28dp"
android:layout_height="26dp"
android:layout_marginEnd="6dp"
android:background="@drawable/shape_green"
android:text="提现"
android:text="@string/draw_cash"
android:textColor="@color/white"
android:textSize="15sp" />
......@@ -89,10 +100,8 @@
<ImageView
android:id="@+id/iv_gold"
android:layout_width="46dp"
android:layout_height="46dp"
android:layout_centerVertical="true"
android:layout_marginBottom="-4dp"
android:layout_width="42dp"
android:layout_height="42dp"
android:src="@mipmap/ic_yuanbao" />
</RelativeLayout>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cl_red_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_tips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_tips"
android:elevation="2dp"
android:padding="5dp"
android:text="点击红包可以领取金币哦~"
android:textColor="@color/white"
android:textSize="14sp"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/linearLayout"
app:layout_constraintEnd_toStartOf="@+id/linearLayout" />
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/tv_tips">
<ImageView
android:id="@+id/iv_red_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="20dp"
android:visibility="gone" />
<com.duben.dayplaylet.ui.widgets.CountDownVideoView
android:id="@+id/cdvv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_loading_bg"
android:gravity="center"
android:orientation="vertical"
android:paddingLeft="14dp"
android:paddingRight="14dp"
android:paddingTop="10dp">
<!-- 正在加载 -->
<ProgressBar
android:id="@+id/loading_bar"
style="@style/loading_small"
android:layout_width="74dip"
android:layout_height="74dip" />
<LinearLayout
android:id="@+id/loading_ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8.0dip"
android:layout_marginTop="4.0dip">
<TextView
android:id="@+id/loading_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="加载中..."
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_write">
<com.duben.dayplaylet.ui.widgets.CountDownView
android:id="@+id/cd_count_vedio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="4dp"
app:cd_animator_time="8"
app:cd_arc_color="@color/color_FF9837"
app:cd_arc_width="3dp"
app:cd_bg_color="#20FF9837"
app:cd_circle_radius="25dp"
app:cd_location="top"
app:cd_retreat_type="forward"
app:cd_text_color="#00000000"
app:cd_text_size="14sp" />
<ImageView
android:id="@+id/iv_count_redbox"
android:layout_width="28dp"
android:layout_height="32dp"
android:layout_gravity="center"
android:src="@mipmap/ic_launcher_main"
tools:visibility="gone" />
</FrameLayout>
......@@ -65,7 +65,7 @@
android:enabled="true"
android:background="@drawable/btn_user_loginselecter"
android:text="@string/dialog_update_now"
android:textColor="@color/authentic_text"
android:textColor="@color/white"
android:textSize="14sp" />
</RelativeLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
......@@ -8,15 +8,13 @@
<color name="green">#00ff00</color>
<color name="red">#ED385B</color>
<color name="graya">#AAAAAA</color>
<color name="color_FF7563">#FF7563</color>
<color name="full_transparent">#00000000</color>
<color name="half_transparent">#80000000</color>
<color name="color_20000000">#10000000</color>
<color name="title_bg">#2B3238</color>
<color name="loading_bg">#600c224b</color>
<color name="btn_enabled">#F1F2F8</color>
<color name="black_text">#333333</color>
<color name="tv_message_recente_money">#FF5E5E</color>
<color name="authentic_text">#FFFFFF</color>
<color name="product_net_text">#121B32</color>
<color name="order_color">#63677E</color>
<color name="my_color_gray">#E6E6E6</color>
......
......@@ -8,7 +8,6 @@
<string name="register_name">用户注册协议</string>
<string name="privacy_name">用户隐私协议</string>
<string name="members_name">会员付费协议</string>
<string name="dialog_update_hint">更新提示</string>
<string name="dialog_update_now">立即更新</string>
<string name="update_text4">请更新至最新版本,以便我们为您提供更良好的体验</string>
......@@ -22,52 +21,7 @@
<string name="bottom_tab_redpkg">红包</string>
<string name="bottom_tab_my">提现</string>
<string name="str_agreement_vip">尊敬的每日小短剧用户:\n
鉴于本协议是每日小短剧用户(下称“用户”或“您”)(下称 “本公司”或“我们”)关于使用每日小短剧产品提供的自动续费委托扣款服务(下称“本服务”)所订立的协议。您使用本服务前,已经注册成为每日小短剧的用户,且已同意为使用每日小短剧及本服务的相关用户协议及其它平台规则。\n
本协议描述我们与用户之间关于本服务的使用及相关方面的权利义务。本协议构成用户使用我们所提供的本服务之先决条件,除非用户接受本协议条款,否则用户无法使用本服务,用户选择使用本服务的行为将视为同意接受本协议当中的各项条款约束。\n
本协议未约定的内容,以用户在使用每日小短剧时同意的相关用户协议及其它平台规则为准。 【注意】如您未满18周岁,请在监护人陪同下仔细阅读并充分理解本协议,并征得监护人的同意后使用本产品及相关服务。\n
本公司有权根据需要不定时地制定、修改本协议或各类规则,经修订的协议、规则一经公布,立即自动生效。对新协议、规则生效之后注册的用户发生法律效力,对于协议、规则生效之前注册的用户,若用户在新规则生效后继续使用本产品提供的各项服务,则表明用户已充分阅读并认可和同意遵守新的协议或规则。\n
若用户拒绝接受新的协议和规则,用户有权放弃或终止继续使用本产品提供的各项服务,但该用户应承担在本产品已经进行的交易下所应承担的任何法律责任,且应遵循该用户发生交易时有效的协议或规则内容。\n
您点击同意、接受或下一步,或您购买/开通自动续费会员服务的行为均视为您已阅读、理解并同意签署本协议。\n\n
一、连续包月服务条款确认及接纳\n
本公司提供的连续包月服务涉及到的相关知识产权均归本公司所有,受中华人民共和国法律及国际公约的依法保护。本服务协议项下的条款效力范围及于本公司的一切网络服务,用户在完成注册程序并开始使用每日小短剧所提供的自动续费服务时,均应当受本服务协议下的各项条款约束。\n
一旦本协议发生修改,本公司将通过系统提示和/或信息推送和/或后台公告等形式发布,请您务必仔细阅读。如您对本协议的修改有任何问题,可以停止使用本服务并咨询客服,但需要提醒您的是,更新后的本协议自更新版本发布之日起生效。\n\n
二、自动续费服务相关说明\n
2.1 本服务是基于用户对自动续费需求,在用户已开通本服务的前提下,为避免用户因疏忽或其他原因导致未能及时续费造成损失而推出的服务。用户开通该服务后,即授权本公司可在会员自动续费期限到期前48小时和到期后,委托支付渠道(如支付宝、微信等)代扣下一个计费周期的费用,部分由运营商或支付渠道根据实际情况自行决定扣费周期的以实际扣费时间为准,如手机话费渠道、ios渠道等。选择自动续费的用户,即同意支付渠道在不验证账户密码、支付密码、短信校验码等信息的情况下从账户中扣划下一个计费周期的费用。一旦扣款成功,本公司将开通下一个计费周期的服务,并同时相应延长服务期限。该服务实现的前提是用户已将其每日小短剧用户账号与上述账户绑定,且可成功从其上述账户中扣款。计费周期:如月度、季度、年度等(具体以每日小短剧订购页面提供的为准),会员可自行选择。\n
2.2 自动续费具体指基于2.1的前提下,本公司通过上述账户收取用户下一计费周期费用的扣费方式。用户需保证本公司可以从上述账户扣款成功,如因账户可扣款余额不足等其他用户自身原因导致的续费失败,应由用户自行承担责任。\n
2.3 自动续费服务所涉及或可能衍生的相关一切知识产权权利均由本公司依法所有,用户不得因使用自动续费服务而自动获得其任一或全部权利。\n
2.4 本公司将根据自身产品和服务的调整以及中华人民共和国有关法律、法规的变化,不断地完善服务质量并依此修改服务条款。本公司有权就服务协议随时更新,并在每日小短剧产品相应服务页面进行显著、及时的提示。\n
2.5 本公司建议用户,定期关注本服务协议的条款。当用户认为本服务协议之任一或全部条款的调整不可接受时,请及时终止对本公司所提供之相关服务。\n\n
三、自动续费服务协议有效期限及终止\n
3.1 本协议自用户选择接受并使用本服务后生效。除非本公司或用户主动明确地取消了自动续费,否则用户获得的自动续费服务视为持续有效、不受次数限制。\n
3.2 用户有权随时选择终止本服务,取消方式:您可以随时以任何理由取消自动续费服务。\n
3.3 用户在选择终止本服务前已经委托本公司自动续费扣款的该指令仍然有效,一旦扣款成功,本公司将为您开通本次计费周期对应的服务。\n\n
四、自动续费服务双方的权利和义务\n
4.1 本公司扣除的下一计费周期费用,并同时延长对应服务有效期。\n
4.2 如在扣费过程出现问题,本公司应与用户密切配合查明原因,各自承担己方过错造成的损失;若因双方各自存在不均等过错造成损失,应由双方按过错程度承担对应程度的责任;双方共负责任的,由双方均摊责任。\n
4.3 本公司可根据自身业务开展或技术升级等情况变更或修改本协议的有关服务内容、规则及条款。本公司在做出上述变更或修改前,在每日小短剧产品相应服务页面进行显著、及时的提示。\n
4.4 本服务由用户自主选择是否取消,若用户未取消服务,则视为用户同意本公司继续按照一定规则进行续费扣款(长期有效、不受次数限制)。一旦完成扣款,本公司将为用户开通下一个计费周期服务。\n
4.5 对于所选择的支付渠道,用户有义务定期关注并确保该支付方式的账户下有充足的余额用于满足自动续费服务的应用。如因前述原因(包括但不限于余额不足)而导致无法完成自动续费服务,则本公司有权在不再作另行通知的前提下,暂停用户通过自动续费服务所接入的相关服务。\n\n
五、退费\n
本公司特别提醒用户:当用户开通使用自动续费服务后,即委托本公司在用户默认的支付渠道进行扣款,本公司将视为用户选择认购了本公司的相关付费服务。一旦扣费成功,本公司将立即开通或延长相关服务且无法对用户所支付的费用予以退还。\n\n
六、合法性保证\n
用户认可并保证:不使用自动续费服务,直接或间接地从事以下违反国家法律法规及社会公序良俗之道德保留之行为:\n
·• 违反宪法确定的基本原则的;\n
·• 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;\n
·• 损害国家荣誉和利益的;\n
·• 煽动民族仇恨、民族歧视,破坏民族团结的;\n
·• 破坏国家宗教政策,宣扬邪教和封建迷信的;\n
·• 散布谣言,扰乱社会秩序,破坏社会稳定的;\n
·• 散布淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的;\n
·• 侮辱或者诽谤他人,侵害他人合法权益的;\n
·• 煽动非法集会、结社、游行、示威、聚众扰乱社会秩序的;\n
·• 以非法民间组织名义活动的;\n
·• 含有法律、行政法规禁止的其他内容的。\n
本公司有权对用户使用自动续费服务相关行为进行不定期监督,一旦发现用户涉及上述违反国家法律法规及社会公序良俗之道德保留之行为,本公司有权收回用户对自动续费服务的使用权而不对用户作出任何的赔偿。且本公司将依法向国家机关就用户之行为进行举报并保留进一步追究用户行为而导致本公司损失之权利。\n\n
七、商业化禁止\n
用户认可并同意:在未获得本公司正式书面公开许可之前,用户不得就其所获得之自动续费服务用于非本公司服务的其它领域,也不得直接或间接地对自动续费服务进行任何商业化(包括但不限于:转售、贩卖、等价置换等)的行为。一旦发现用户涉及上述之行为,本公司有权收回用户对自动续费服务的使用权而不对用户作出任何的赔偿,并保留进一步追究用户行为而导致本公司损失之权利。</string>
<string name="draw_cash">提现</string>
<!--内存页-->
......
......@@ -19,13 +19,6 @@
<item name="android:gravity">bottom</item>
</style>
<style name="loading_small" parent="@android:style/Widget.ProgressBar.Small">
<item name="android:indeterminateDrawable">@drawable/ufo_loading</item>
<item name="android:layout_width">25dip</item>
<item name="android:layout_height">25dip</item>
<item name="android:layout_gravity">center</item>
</style>
<!-- activity 切换 anim -->
<style name="line_1">
......@@ -48,10 +41,6 @@
<item name="android:textStyle">bold</item>
</style>
<style name="AppTheme.TranslucentSplish" parent="AppTheme.Base">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
</style>
<style name="NotificationText">
<item name="android:textColor">?android:attr/textColorPrimary</item>
......
......@@ -28,4 +28,8 @@
<item name="colorAccent">@drawable/sr_primary</item>
</style>
<style name="AppTheme.TranslucentSplash" parent="AppTheme.Base">
<item name="android:windowIsTranslucent">true</item>
</style>
</resources>
\ 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