mireo 1.2.0
This commit is contained in:
parent
3f53608d63
commit
d3a94a3bad
@ -0,0 +1,11 @@
|
||||
package com.localee.mireo.app.http.api
|
||||
|
||||
import com.hjq.http.config.IRequestApi
|
||||
|
||||
class RevolutionsApi : IRequestApi {
|
||||
|
||||
override fun getApi(): String {
|
||||
return "getRevolutions"
|
||||
}
|
||||
|
||||
}
|
@ -18,6 +18,8 @@ class VideoDetailsApi : IRequestApi {
|
||||
|
||||
var activity_id: Int? = null
|
||||
|
||||
var revolution: String? = null
|
||||
|
||||
|
||||
|
||||
data class Bean(
|
||||
|
@ -0,0 +1,5 @@
|
||||
package com.localee.mireo.app.http.bean
|
||||
|
||||
interface QualityBackClick {
|
||||
fun qualityBackClick(quality: Int)
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.localee.mireo.app.http.bean
|
||||
|
||||
class RevolutionBean(
|
||||
val list: List<RevolutionBeanItem>
|
||||
) {
|
||||
data class RevolutionBeanItem(
|
||||
val can_check: Boolean,
|
||||
val condition: Int,
|
||||
val value: Int
|
||||
)
|
||||
}
|
@ -16,6 +16,10 @@ class TranslatesBean(
|
||||
)
|
||||
|
||||
data class Translates(
|
||||
val mireo_order_record: String,
|
||||
val mireo_activate_vip_content: String,
|
||||
val mireo_activate_vip_title: String,
|
||||
val mireo_quality: String,
|
||||
val mireo_unlock_vip: String,
|
||||
val mireo_vip_splash_tip: String,
|
||||
val mireo_vip_splash_title: String,
|
||||
|
@ -51,6 +51,8 @@ object MsConstants {
|
||||
const val CONSTANTS_short_play_id = "CONSTANTS_short_play_id"
|
||||
const val CONSTANTS_activity_id = "CONSTANTS_activity_id"
|
||||
const val CONSTANTS_stop_play = "CONSTANTS_stop_play"
|
||||
const val CONSTANTS_pause_play = "CONSTANTS_pause_play"
|
||||
const val CONSTANTS_start_play = "CONSTANTS_start_play"
|
||||
|
||||
const val Constants_requestPermissions_photo = "Constants_requestPermissions_photo"
|
||||
const val CONSTANTS_auth_refresh = "CONSTANTS_auth_refresh"
|
||||
|
@ -152,7 +152,7 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
|
||||
|
||||
override fun onLoadFailed(errorDrawable: Drawable?) {
|
||||
super.onLoadFailed(errorDrawable)
|
||||
|
||||
setNotification(intent, title, messageBody, null)
|
||||
}
|
||||
|
||||
override fun onLoadCleared(placeholder: Drawable?) {
|
||||
|
@ -487,7 +487,6 @@ class MyVipActivity : AppActivity() {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
private fun getCustomerUser() {
|
||||
EasyHttp.get(this)
|
||||
.api(UserInfoApi())
|
||||
@ -496,6 +495,7 @@ class MyVipActivity : AppActivity() {
|
||||
result.getData()?.let {
|
||||
MsMMKVUtils.saveUserInfo(it)
|
||||
setUI()
|
||||
finish()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -62,6 +62,7 @@ class StoreActivity : AppActivity() {
|
||||
private val tvBuy: TextView? by lazy { findViewById(R.id.tv_buy) }
|
||||
private val tvVipExpires: TextView? by lazy { findViewById(R.id.tv_vip_expires) }
|
||||
private val tvName: TextView? by lazy { findViewById(R.id.tv_name) }
|
||||
private val tvCoinRecharge: TextView? by lazy { findViewById(R.id.tv_coin_recharge) }
|
||||
private val tvCoinsText: TextView? by lazy { findViewById(R.id.tv_coins_text) }
|
||||
private val tvMemberTitle: TextView? by lazy { findViewById(R.id.tv_member_title) }
|
||||
private val tvMembership: TextView? by lazy { findViewById(R.id.tv_membership) }
|
||||
@ -97,6 +98,7 @@ class StoreActivity : AppActivity() {
|
||||
title?.setRightTitle(TranslatesUtils.translates()?.mireo_restore)
|
||||
tvName?.text = TranslatesUtils.translates()?.mireo_store_recharge_discount
|
||||
tvVipExpires?.text = TranslatesUtils.translates()?.mireo_store_limited
|
||||
tvCoinRecharge?.text = TranslatesUtils.translates()?.mireo_coin_recharege
|
||||
tvCoinsText?.text = TranslatesUtils.translates()?.mireo_store_coins
|
||||
tvMemberTitle?.text = TranslatesUtils.translates()?.mireo_store_benefits
|
||||
tvMembership?.text = TranslatesUtils.translates()?.mireo_store_recharge
|
||||
@ -110,7 +112,7 @@ class StoreActivity : AppActivity() {
|
||||
TranslatesUtils.translates()?.mireo_pay_hint ?: getString(R.string.store_tips),
|
||||
Html.FROM_HTML_MODE_COMPACT
|
||||
)
|
||||
}else{
|
||||
} else {
|
||||
tvHint?.text = Html.fromHtml(
|
||||
TranslatesUtils.translates()?.mireo_pay_hint ?: getString(R.string.store_tips)
|
||||
)
|
||||
|
@ -42,12 +42,15 @@ import com.localee.mireo.app.http.api.CreateHistoryApi
|
||||
import com.localee.mireo.app.http.api.DetailsRecommandApi
|
||||
import com.localee.mireo.app.http.api.DoBuyVideoApi
|
||||
import com.localee.mireo.app.http.api.ExampleRecommendDataRes
|
||||
import com.localee.mireo.app.http.api.RevolutionsApi
|
||||
import com.localee.mireo.app.http.api.UploadHistorySecondsApi
|
||||
import com.localee.mireo.app.http.api.UserInfoApi
|
||||
import com.localee.mireo.app.http.api.UserInfoRes
|
||||
import com.localee.mireo.app.http.api.VideoDetailsApi
|
||||
import com.localee.mireo.app.http.bean.HomeDataHistoryBean
|
||||
import com.localee.mireo.app.http.bean.PaySettingsBean
|
||||
import com.localee.mireo.app.http.bean.QualityBackClick
|
||||
import com.localee.mireo.app.http.bean.RevolutionBean
|
||||
import com.localee.mireo.app.http.bean.UploadHistoryBean
|
||||
import com.localee.mireo.app.http.model.HttpData
|
||||
import com.localee.mireo.app.other.MsConstants
|
||||
@ -58,6 +61,7 @@ import com.localee.mireo.app.other.MsConstants.CONSTANTS_short_play_id
|
||||
import com.localee.mireo.app.other.MsConstants.Constants_Episodes_Series_Data_currentPositionExample
|
||||
import com.localee.mireo.app.other.MsConstants.ExampleDetailCanPlay
|
||||
import com.localee.mireo.app.ui.adapter.RecommendBannerAdapter
|
||||
import com.localee.mireo.app.ui.dialog.DialogUtils
|
||||
import com.localee.mireo.app.ui.fragment.RechargeDialogFragment
|
||||
import com.localee.mireo.app.ui.videoPaly.ExampleSeriesDialogFragment
|
||||
import com.localee.mireo.app.ui.videoPaly.ExampleUnFavoriteDialog
|
||||
@ -100,8 +104,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
private var recommendAdapter: VideoPlayAdapter? = null
|
||||
private var data: ExampleRecommendDataRes.Data? = null
|
||||
private var revolution =
|
||||
MsMMKVUtils.getMMKV().getInt(MsConstants.CONSTANTS_quality, 0).toString()
|
||||
|
||||
MsMMKVUtils.getMMKV().getInt(MsConstants.CONSTANTS_quality, 540).toString()
|
||||
|
||||
private val srRecommend: SmartRefreshLayout? by lazy { findViewById(R.id.sr_recommend) }
|
||||
private val viewPagerExampleRecommend: ViewPager2? by lazy { findViewById(R.id.viewPager_example_recommend) }
|
||||
@ -218,7 +221,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
fun initialization() {
|
||||
|
||||
if (NetworkUtils.isConnected()) {
|
||||
getVideoDetails(shortPlayId, 0, activityId)
|
||||
getVideoDetails(shortPlayId, 0, activityId, revolution)
|
||||
|
||||
} else {
|
||||
if (TranslatesUtils.translates() != null) {
|
||||
@ -235,7 +238,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
detailPlayerView()?.stop()
|
||||
detailPlayerView()?.release()
|
||||
}
|
||||
getVideoDetails(shortPlayId, 0, activityId)
|
||||
getVideoDetails(shortPlayId, 0, activityId, revolution)
|
||||
} else {
|
||||
if (TranslatesUtils.translates() != null) {
|
||||
ToastUtils.show(TranslatesUtils.translates()?.mireo_no_network.toString())
|
||||
@ -357,7 +360,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
)
|
||||
) {
|
||||
if (!first) {
|
||||
getVideoDetails(shortPlayId, 0, activityId)
|
||||
getVideoDetails(shortPlayId, 0, activityId, revolution)
|
||||
} else {
|
||||
first = false
|
||||
}
|
||||
@ -385,7 +388,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
return@singleClick
|
||||
}
|
||||
currentPage = 1
|
||||
getVideoDetails(shortPlayId, 0, activityId)
|
||||
getVideoDetails(shortPlayId, 0, activityId, revolution)
|
||||
}
|
||||
}
|
||||
tvExampleRetry?.setOnClickListener {
|
||||
@ -399,7 +402,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
return@singleClick
|
||||
}
|
||||
currentPage = 1
|
||||
getVideoDetails(shortPlayId, 0, activityId)
|
||||
getVideoDetails(shortPlayId, 0, activityId, revolution)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -420,7 +423,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
detailPlayerView()?.stop()
|
||||
detailPlayerView()?.release()
|
||||
}
|
||||
getVideoDetails(shortPlayId, 0, activityId)
|
||||
getVideoDetails(shortPlayId, 0, activityId, revolution)
|
||||
qualityRefresh = false
|
||||
} else {
|
||||
detailPlayerView()?.play()
|
||||
@ -436,19 +439,25 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
fun getVideoDetails(
|
||||
shortPlayId: Int?,
|
||||
videoId: Int?,
|
||||
activityId: Int?
|
||||
activityId: Int?,
|
||||
mRevolution: String?
|
||||
) {
|
||||
EasyHttp.get(this)
|
||||
.api(VideoDetailsApi().apply {
|
||||
activity_id = activityId;
|
||||
video_id = videoId;
|
||||
short_play_id = shortPlayId;
|
||||
activity_id = activityId
|
||||
video_id = videoId
|
||||
short_play_id = shortPlayId
|
||||
revolution = mRevolution
|
||||
|
||||
})
|
||||
.request(object : HttpCallbackProxy<HttpData<VideoDetailsApi.Bean>>(this) {
|
||||
override fun onHttpSuccess(result: HttpData<VideoDetailsApi.Bean>) {
|
||||
result.getData()?.let {
|
||||
if (it.episodeList.isNotEmpty()) {
|
||||
it.revolution?.let { it1 ->
|
||||
MsMMKVUtils.getMMKV()
|
||||
.putInt(CONSTANTS_quality, it1)
|
||||
}
|
||||
shortVideo = it.shortPlayInfo
|
||||
cover?.visibility = View.INVISIBLE
|
||||
viewPagerExampleRecommend?.visibility = View.VISIBLE
|
||||
@ -461,7 +470,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
createHistory(
|
||||
it.episodeList[0].short_play_id,
|
||||
it.episodeList[0].short_play_video_id
|
||||
);
|
||||
)
|
||||
exampleNetwork?.visibility = View.INVISIBLE
|
||||
exampleEmpty?.visibility = View.INVISIBLE
|
||||
cover?.let { it1 ->
|
||||
@ -493,10 +502,6 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
}
|
||||
})
|
||||
|
||||
// ExampleRecommendRequest.getVideoDetails(current_page, page_size, revolution)
|
||||
// .observeForever { result ->
|
||||
// recommendLiveData.value = result.getOrNull()
|
||||
// }
|
||||
}
|
||||
|
||||
fun createHistory(videoId: Int, shortPlayId: Int) {
|
||||
@ -705,7 +710,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
|
||||
if (CONSTANTS_quality_refresh == event) {
|
||||
revolution =
|
||||
MsMMKVUtils.getMMKV().getInt(MsConstants.CONSTANTS_quality, 0)
|
||||
MsMMKVUtils.getMMKV().getInt(MsConstants.CONSTANTS_quality, 540)
|
||||
.toString()
|
||||
qualityRefresh = true
|
||||
}
|
||||
@ -714,75 +719,35 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
handleCustomLogic()
|
||||
}
|
||||
if (CONSTANTS_quality == event) {
|
||||
startActivity(SearchActivity::class.java)
|
||||
if (episode?.is_lock == false) {
|
||||
getRevolutions()
|
||||
}
|
||||
}
|
||||
if (MsConstants.CONSTANTS_pay_refresh == event) {
|
||||
needRefresh = true
|
||||
getCustomerUser()
|
||||
}
|
||||
if (MsConstants.CONSTANTS_user_refresh == event) {
|
||||
revolution = "720"
|
||||
MsMMKVUtils.getMMKV()
|
||||
.putInt(CONSTANTS_quality, 720)
|
||||
detailRefresh()
|
||||
EventBus.getDefault().post(CONSTANTS_quality_refresh)
|
||||
}
|
||||
if (MsConstants.CONSTANTS_stop_play == event) {
|
||||
recommendAdapter?.items?.get(currentPosition)?.let {
|
||||
rechargeDialog(it)
|
||||
}
|
||||
viewLock?.postDelayed({ detailPlayerView()?.pause() }, 500)
|
||||
}
|
||||
if (MsConstants.CONSTANTS_pause_play == event) {
|
||||
viewLock?.postDelayed({ detailPlayerView()?.pause() }, 500)
|
||||
}
|
||||
if (MsConstants.CONSTANTS_start_play == event) {
|
||||
viewLock?.postDelayed({ detailPlayerView()?.play() }, 500)
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onEvent(event: BaseEventBus<VideoDetailsApi.Bean.ShortPlayInfo>) {
|
||||
// if (MsConstants.Constants_Episodes_Series_DataExample == event.code) {
|
||||
// if (recommendAdapter?.items?.get(currentPosition)?.name == event.data.name) {
|
||||
// val imageView =
|
||||
// detailPlayerView()?.findViewById<AppCompatImageView>(R.id.example_iv_collection_controller)
|
||||
// val textview =
|
||||
// detailPlayerView()?.findViewById<AppCompatTextView>(R.id.example_tv_collection_num_controller)
|
||||
// imageView?.setImageResource(if (event.data.is_collect) R.mipmap.iv_example_collection_h else R.mipmap.iv_example_collection_n)
|
||||
// recommendAdapter?.items?.get(currentPosition)?.collect_total =
|
||||
// event.data.collect_total
|
||||
// recommendAdapter?.items?.get(currentPosition)?.is_collect =
|
||||
// event.data.is_collect
|
||||
// textview?.text = formatNumber(event.data.collect_total)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
// override fun collection(dataRes: ExampleRecommendDataRes.Data) {
|
||||
// singleClick {
|
||||
// data = dataRes
|
||||
// if (dataRes.is_collect) {
|
||||
// val exampleUnFavoriteDialog = ExampleUnFavoriteDialog(this)
|
||||
// val tvThinkAgain =
|
||||
// exampleUnFavoriteDialog.findViewById<AppCompatTextView>(R.id.example_tv_think_again)
|
||||
// val tvUnfavorite =
|
||||
// exampleUnFavoriteDialog.findViewById<AppCompatTextView>(R.id.example_tv_unfavorite)
|
||||
// val tvTitle =
|
||||
// exampleUnFavoriteDialog.findViewById<AppCompatTextView>(R.id.example_tv_title)
|
||||
// val tvContent =
|
||||
// exampleUnFavoriteDialog.findViewById<AppCompatTextView>(R.id.example_tv_content)
|
||||
// if (TranslatesUtils.translates() != null) {
|
||||
// tvThinkAgain.text = TranslatesUtils.translates()?.mireo_try_again
|
||||
// tvUnfavorite.text = TranslatesUtils.translates()?.mireo_unfavorite
|
||||
// tvTitle.text = TranslatesUtils.translates()?.mireo_unfavorite
|
||||
// tvContent.text = TranslatesUtils.translates()?.mireo_not_collect_warning
|
||||
// }
|
||||
// tvThinkAgain.setOnClickListener { exampleUnFavoriteDialog.dismiss() }
|
||||
// tvUnfavorite.setOnClickListener {
|
||||
// dataRes.video_info?.short_play_id?.let {
|
||||
// dataRes.video_info.short_play_video_id.let { it1 ->
|
||||
// doCancelCollect(
|
||||
// it, it1
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
// exampleUnFavoriteDialog.dismiss()
|
||||
// }
|
||||
// exampleUnFavoriteDialog.show()
|
||||
// } else {
|
||||
// dataRes.video_info?.short_play_id?.let {
|
||||
// dataRes.video_info.short_play_video_id.let { it1 ->
|
||||
// doCollect(
|
||||
// it, it1
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
override fun collection(episode: VideoDetailsApi.Bean.Episode) {
|
||||
singleClick {
|
||||
if (shortVideo?.is_collect == true) {
|
||||
@ -946,6 +911,36 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
})
|
||||
}
|
||||
|
||||
fun getRevolutions() {
|
||||
EasyHttp.get(this)
|
||||
.api(RevolutionsApi())
|
||||
.request(object : HttpCallbackProxy<HttpData<RevolutionBean>>(this) {
|
||||
override fun onHttpSuccess(result: HttpData<RevolutionBean>) {
|
||||
result.getData()?.let {
|
||||
setQuality(it)
|
||||
} ?: kotlin.run {
|
||||
if (TranslatesUtils.translates() != null) {
|
||||
toast(TranslatesUtils.translates()?.mireo_network_error.toString())
|
||||
} else {
|
||||
toast(getString(R.string.example_service_exception_please_try_again))
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun setQuality(revolutionRes: RevolutionBean) {
|
||||
DialogUtils.showQuality(this, object : QualityBackClick {
|
||||
override fun qualityBackClick(quality: Int) {
|
||||
MsMMKVUtils.getMMKV()
|
||||
.putInt(CONSTANTS_quality, quality)
|
||||
EventBus.getDefault().post(CONSTANTS_quality_refresh)
|
||||
revolution = quality.toString()
|
||||
detailRefresh()
|
||||
}
|
||||
}, revolutionRes)
|
||||
}
|
||||
|
||||
private fun detailRefresh() {
|
||||
detailPlayerView()?.pause()
|
||||
detailPlayerView()?.stop()
|
||||
@ -955,6 +950,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
it1.short_play_id,
|
||||
it1.short_play_video_id,
|
||||
activityId,
|
||||
revolution
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -1123,7 +1119,7 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle
|
||||
if (short_play_id != null) {
|
||||
shortPlayId = short_play_id
|
||||
}
|
||||
getVideoDetails(shortPlayId, 0, activityId)
|
||||
getVideoDetails(shortPlayId, 0, activityId, revolution)
|
||||
}
|
||||
}, 300)
|
||||
viewVideoRecommend?.visibility = View.INVISIBLE
|
||||
|
@ -0,0 +1,31 @@
|
||||
package com.localee.mireo.app.ui.dialog
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.view.Gravity
|
||||
import android.view.Window
|
||||
import android.view.WindowManager
|
||||
import com.localee.mireo.shortapp.R
|
||||
|
||||
class ActivateVipDialog (context: Context) : Dialog(context) {
|
||||
|
||||
init {
|
||||
init()
|
||||
}
|
||||
|
||||
private fun init() {
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE)
|
||||
setContentView(R.layout.dialog_activate_vip)
|
||||
|
||||
window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
window?.setLayout(
|
||||
WindowManager.LayoutParams.WRAP_CONTENT,
|
||||
WindowManager.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
window?.setGravity(Gravity.CENTER)
|
||||
setCancelable(true)
|
||||
}
|
||||
|
||||
}
|
174
app/src/main/java/com/localee/mireo/app/ui/dialog/DialogUtils.kt
Normal file
174
app/src/main/java/com/localee/mireo/app/ui/dialog/DialogUtils.kt
Normal file
@ -0,0 +1,174 @@
|
||||
package com.localee.mireo.app.ui.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
import androidx.appcompat.widget.AppCompatImageView
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import com.hjq.shape.view.ShapeTextView
|
||||
import com.localee.mireo.app.http.bean.QualityBackClick
|
||||
import com.localee.mireo.app.http.bean.RevolutionBean
|
||||
import com.localee.mireo.app.other.MsConstants
|
||||
import com.localee.mireo.app.ui.activity.HomeActivity
|
||||
import com.localee.mireo.app.utils.MsMMKVUtils
|
||||
import com.localee.mireo.app.utils.TranslatesUtils
|
||||
import com.localee.mireo.shortapp.R
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
object DialogUtils {
|
||||
|
||||
fun showQuality(
|
||||
context: Context,
|
||||
qualityBack: QualityBackClick?,
|
||||
revolutionRes: RevolutionBean?
|
||||
) {
|
||||
val size = revolutionRes?.list?.size ?: 0
|
||||
val exampleQualityDialog = QualityDialog(context)
|
||||
val tv_quality =
|
||||
exampleQualityDialog.findViewById<AppCompatTextView>(R.id.tv_quality)
|
||||
val tv_quality_info_480 =
|
||||
exampleQualityDialog.findViewById<ShapeTextView>(R.id.tv_quality_480)
|
||||
val tv_quality_info_720 =
|
||||
exampleQualityDialog.findViewById<ShapeTextView>(R.id.tv_quality_720)
|
||||
val tv_quality_info_1080 =
|
||||
exampleQualityDialog.findViewById<ShapeTextView>(R.id.tv_quality_1080)
|
||||
val iv_login_tag = exampleQualityDialog.findViewById<AppCompatImageView>(R.id.iv_login_tag)
|
||||
val iv_vip_tag = exampleQualityDialog.findViewById<AppCompatImageView>(R.id.iv_vip_tag)
|
||||
val int = MsMMKVUtils.getMMKV().getInt(MsConstants.CONSTANTS_quality, 0)
|
||||
if (size > 0 && null != revolutionRes?.list?.get(0)) {
|
||||
val revolution = revolutionRes.list[0]
|
||||
tv_quality_info_480.text = revolution.value.toString().plus("p")
|
||||
if (revolution.can_check) {
|
||||
if (int == revolution.value) {
|
||||
tv_quality_info_480.shapeDrawableBuilder?.setStrokeSize(1)
|
||||
?.intoBackground()
|
||||
tv_quality_info_480.setTextColor(Color.parseColor("#F56490"))
|
||||
} else {
|
||||
tv_quality_info_480.shapeDrawableBuilder?.setStrokeSize(0)
|
||||
?.intoBackground()
|
||||
tv_quality_info_480.setTextColor(Color.parseColor("#FFFFFF"))
|
||||
}
|
||||
tv_quality_info_480.setOnClickListener {
|
||||
if (int != revolution.value) {
|
||||
qualityBack?.qualityBackClick(revolution.value)
|
||||
exampleQualityDialog.dismiss()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
tv_quality_info_480.shapeDrawableBuilder?.setStrokeSize(0)
|
||||
?.intoBackground()
|
||||
tv_quality_info_480.setTextColor(Color.parseColor("#8B8B8B"))
|
||||
}
|
||||
}
|
||||
if (size > 1 && null != revolutionRes?.list?.get(1)) {
|
||||
val revolution = revolutionRes.list[1]
|
||||
tv_quality_info_720.text = revolution.value.toString().plus("p")
|
||||
if (revolution.can_check) {
|
||||
if (int == revolution.value) {
|
||||
tv_quality_info_720.shapeDrawableBuilder?.setStrokeSize(1)
|
||||
?.intoBackground()
|
||||
tv_quality_info_720.setTextColor(Color.parseColor("#F56490"))
|
||||
} else {
|
||||
tv_quality_info_720.shapeDrawableBuilder?.setStrokeSize(0)
|
||||
?.intoBackground()
|
||||
tv_quality_info_720.setTextColor(Color.parseColor("#FFFFFF"))
|
||||
}
|
||||
iv_login_tag.setImageResource(R.mipmap.ic_login_tag)
|
||||
tv_quality_info_720.setOnClickListener {
|
||||
if (int != revolution.value) {
|
||||
qualityBack?.qualityBackClick(revolution.value)
|
||||
exampleQualityDialog.dismiss()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
tv_quality_info_720.shapeDrawableBuilder?.setStrokeSize(0)
|
||||
?.intoBackground()
|
||||
tv_quality_info_720.setTextColor(Color.parseColor("#8B8B8B"))
|
||||
iv_login_tag.setImageResource(R.mipmap.ic_login_tag)
|
||||
tv_quality_info_720.setOnClickListener {
|
||||
context.startActivity(
|
||||
Intent(
|
||||
context,
|
||||
HomeActivity::class.java
|
||||
)
|
||||
)
|
||||
EventBus.getDefault().post(MsConstants.CONSTANTS_Login)
|
||||
exampleQualityDialog.dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (size > 2 && null != revolutionRes?.list?.get(2)) {
|
||||
val revolution = revolutionRes.list[2]
|
||||
tv_quality_info_1080.text = revolution.value.toString().plus("p")
|
||||
if (revolution.can_check) {
|
||||
if (int == revolution.value) {
|
||||
tv_quality_info_1080.shapeDrawableBuilder?.setStrokeSize(1)
|
||||
?.intoBackground()
|
||||
tv_quality_info_1080.setTextColor(Color.parseColor("#F56490"))
|
||||
} else {
|
||||
tv_quality_info_1080.shapeDrawableBuilder?.setStrokeSize(0)
|
||||
?.intoBackground()
|
||||
tv_quality_info_1080.setTextColor(Color.parseColor("#FFFFFF"))
|
||||
}
|
||||
tv_quality_info_1080.setOnClickListener {
|
||||
if (int != revolution.value) {
|
||||
qualityBack?.qualityBackClick(revolution.value)
|
||||
exampleQualityDialog.dismiss()
|
||||
}
|
||||
}
|
||||
iv_vip_tag.setImageResource(R.mipmap.ic_vip_tag)
|
||||
} else {
|
||||
tv_quality_info_1080.shapeDrawableBuilder?.setStrokeSize(0)
|
||||
?.intoBackground()
|
||||
iv_vip_tag.setImageResource(R.mipmap.ic_vip_tag)
|
||||
tv_quality_info_1080.setTextColor(Color.parseColor("#8B8B8B"))
|
||||
tv_quality_info_1080.setOnClickListener {
|
||||
EventBus.getDefault()
|
||||
.post(MsConstants.CONSTANTS_pause_play)
|
||||
showActivate(context)
|
||||
exampleQualityDialog.dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
tv_quality?.text =
|
||||
TranslatesUtils.translates()?.mireo_quality
|
||||
?: "Playback Quality"
|
||||
exampleQualityDialog.show()
|
||||
}
|
||||
|
||||
private fun showActivate(context: Context) {
|
||||
val activateVIPDialog = ActivateVipDialog(context)
|
||||
val tv_title =
|
||||
activateVIPDialog.findViewById<AppCompatTextView>(R.id.tv_title)
|
||||
val tv_content =
|
||||
activateVIPDialog.findViewById<AppCompatTextView>(R.id.tv_content)
|
||||
val iv_close_vip =
|
||||
activateVIPDialog.findViewById<AppCompatImageView>(R.id.iv_close_vip)
|
||||
val tv_later =
|
||||
activateVIPDialog.findViewById<AppCompatTextView>(R.id.tv_later)
|
||||
val tv_open =
|
||||
activateVIPDialog.findViewById<AppCompatTextView>(R.id.tv_open)
|
||||
tv_title?.text =
|
||||
TranslatesUtils.translates()?.mireo_activate_vip_title
|
||||
?: "Unlock HD VIP Access!"
|
||||
tv_content?.text =
|
||||
TranslatesUtils.translates()?.mireo_activate_vip_content
|
||||
?: "Activate vip and enjoy HD video privileges"
|
||||
tv_later?.text = TranslatesUtils.translates()?.mireo_open_notification_later ?: "Later"
|
||||
tv_open?.text = TranslatesUtils.translates()?.mireo_open_notification_open ?: "Open"
|
||||
tv_open?.setOnClickListener {
|
||||
EventBus.getDefault()
|
||||
.post(MsConstants.CONSTANTS_stop_play)
|
||||
activateVIPDialog.dismiss()
|
||||
}
|
||||
tv_later?.setOnClickListener {
|
||||
EventBus.getDefault()
|
||||
.post(MsConstants.CONSTANTS_start_play)
|
||||
activateVIPDialog.dismiss()
|
||||
}
|
||||
iv_close_vip?.setOnClickListener { activateVIPDialog.dismiss() }
|
||||
activateVIPDialog.show()
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.localee.mireo.app.ui.dialog
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.view.Gravity
|
||||
import android.view.Window
|
||||
import android.view.WindowManager
|
||||
import com.localee.mireo.shortapp.R
|
||||
|
||||
class QualityDialog(context: Context) : Dialog(context) {
|
||||
|
||||
init {
|
||||
init()
|
||||
}
|
||||
|
||||
private fun init() {
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE)
|
||||
setContentView(R.layout.dialog_quality)
|
||||
|
||||
window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
window?.setLayout(
|
||||
WindowManager.LayoutParams.MATCH_PARENT,
|
||||
WindowManager.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
window?.setGravity(Gravity.BOTTOM)
|
||||
setCancelable(true)
|
||||
}
|
||||
}
|
@ -437,6 +437,7 @@ class ExploreFragment : TitleBarFragment<HomeActivity>(),
|
||||
.toString()
|
||||
qualityRefresh = true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
|
@ -77,6 +77,7 @@ class MineFragment : TitleBarFragment<HomeActivity>(), OnRefreshLoadMoreListener
|
||||
private val sbAbout: SettingBar? by lazy { findViewById(R.id.sb_about) }
|
||||
private val sbFeedback: SettingBar? by lazy { findViewById(R.id.sb_feedback) }
|
||||
private val sbLanguage: SettingBar? by lazy { findViewById(R.id.sb_language) }
|
||||
private val sbOrder: SettingBar? by lazy { findViewById(R.id.sb_order) }
|
||||
private var vipSplashDialog: VipSplashDialog? = null
|
||||
private var bind: DialogVipSplashBinding? = null
|
||||
private var isVipSplash = false
|
||||
@ -109,7 +110,8 @@ class MineFragment : TitleBarFragment<HomeActivity>(), OnRefreshLoadMoreListener
|
||||
R.id.ll_wallet,
|
||||
R.id.ll_vip,
|
||||
R.id.ll_store,
|
||||
R.id.tv_login
|
||||
R.id.tv_login,
|
||||
R.id.sb_order
|
||||
)
|
||||
|
||||
recyclerView?.layoutManager =
|
||||
@ -149,6 +151,7 @@ class MineFragment : TitleBarFragment<HomeActivity>(), OnRefreshLoadMoreListener
|
||||
sbAbout?.setLeftText(TranslatesUtils.translates()?.mireo_about_us)
|
||||
sbFeedback?.setLeftText(TranslatesUtils.translates()?.mireo_feedback)
|
||||
sbLanguage?.setLeftText(TranslatesUtils.translates()?.mireo_choose_language)
|
||||
sbOrder?.setLeftText(TranslatesUtils.translates()?.mireo_order_record)
|
||||
}
|
||||
|
||||
if (MsMMKVUtils.isTourist()) {
|
||||
@ -279,7 +282,7 @@ class MineFragment : TitleBarFragment<HomeActivity>(), OnRefreshLoadMoreListener
|
||||
startActivity(LanguageSwitchActivity::class.java)
|
||||
}
|
||||
|
||||
R.id.ll_wallet -> {
|
||||
R.id.ll_wallet, R.id.sb_order -> {
|
||||
startActivity(MyWalletActivity::class.java)
|
||||
}
|
||||
|
||||
@ -343,17 +346,23 @@ class MineFragment : TitleBarFragment<HomeActivity>(), OnRefreshLoadMoreListener
|
||||
bind?.tvVipBenefits?.text = TranslatesUtils.translates()?.mireo_unlock_vip
|
||||
|
||||
bind?.ivClose?.setOnClickListener {
|
||||
MsMMKVUtils.getMMKV().putLong(
|
||||
MsConstants.CONSTANTS_PREF_LAST_POPUP_TIME_VIP,
|
||||
System.currentTimeMillis()
|
||||
)
|
||||
vipSplashDialog?.dismiss()
|
||||
isVipSplash = false
|
||||
System.gc()
|
||||
}
|
||||
bind?.tvVipBenefits?.setOnClickListener {
|
||||
MsMMKVUtils.getMMKV().putLong(
|
||||
MsConstants.CONSTANTS_PREF_LAST_POPUP_TIME_VIP,
|
||||
System.currentTimeMillis()
|
||||
)
|
||||
startActivity(StoreActivity::class.java)
|
||||
startActivity(MyVipActivity::class.java)
|
||||
vipSplashDialog?.dismiss()
|
||||
isVipSplash = false
|
||||
System.gc()
|
||||
}
|
||||
vipSplashDialog?.show()
|
||||
isVipSplash = true
|
||||
|
@ -229,21 +229,21 @@ class ExampleRecommendPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
ivCover?.visibility = View.VISIBLE
|
||||
MsConstants.Exampleready = false
|
||||
exampleTvTitlePlayerController?.text = dataRes.name
|
||||
if (TranslatesUtils.translates() != null) {
|
||||
exampleTvEpisodePlayerController?.text = TranslatesUtils.replace(
|
||||
TranslatesUtils.translates()?.mireo_episode_set.toString(),
|
||||
dataRes.video_info.episode.toString()
|
||||
).plus(" / ").plus(
|
||||
TranslatesUtils.replace(
|
||||
TranslatesUtils.translates()?.mireo_complete_episode.toString(),
|
||||
dataRes.episode_total.toString()
|
||||
)
|
||||
)
|
||||
} else {
|
||||
// if (TranslatesUtils.translates() != null) {
|
||||
// exampleTvEpisodePlayerController?.text = TranslatesUtils.replace(
|
||||
// TranslatesUtils.translates()?.mireo_episode_set.toString(),
|
||||
// dataRes.video_info.episode.toString()
|
||||
// ).plus(" / ").plus(
|
||||
// TranslatesUtils.replace(
|
||||
// TranslatesUtils.translates()?.mireo_complete_episode.toString(),
|
||||
// dataRes.episode_total.toString()
|
||||
// )
|
||||
// )
|
||||
// } else {
|
||||
exampleTvEpisodePlayerController?.text =
|
||||
"EP.".plus(dataRes.video_info.episode).plus(" / EP.")
|
||||
.plus(dataRes.episode_total)
|
||||
}
|
||||
// }
|
||||
exampleTvCollectionNumController?.text = dataRes.collect_total?.let { formatNumber(it) }
|
||||
exampleTvCollectionNumController?.setTextColor(
|
||||
if (dataRes.is_collect) resources.getColor(
|
||||
|
@ -54,11 +54,11 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
private var player: ExoPlayer? = builder.build()
|
||||
private val viewLifecycleScope = MainScope()
|
||||
private var isDragging = false
|
||||
private var exampleSeekbarPlayerController: AppCompatSeekBar? = null
|
||||
private var seekbarPlayerController: AppCompatSeekBar? = null
|
||||
private var exampleProgressJob: Job? = null
|
||||
private var exampleIvPlayPlayerController: AppCompatImageView? = null
|
||||
private var exampleIvCollectionController: AppCompatImageView? = null
|
||||
private var exampleIvBackController: AppCompatImageView? = null
|
||||
private var ivPlayPlayerController: AppCompatImageView? = null
|
||||
private var ivCollectionController: AppCompatImageView? = null
|
||||
private var ivBackController: AppCompatImageView? = null
|
||||
private var ivCover: AppCompatImageView? = null
|
||||
private var exampleTvEpisodePlayerController: ShapeTextView? = null
|
||||
private var ivEpisodePlayerController: AppCompatImageView? = null
|
||||
@ -80,13 +80,13 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
.inflate(R.layout.example_detail_player_view, this, true)
|
||||
val exampleDetailPlayerViewBinding = ExampleDetailPlayerViewBinding.bind(inflate)
|
||||
exampleDetailPlayerViewBinding.playerView.player = player
|
||||
exampleSeekbarPlayerController =
|
||||
seekbarPlayerController =
|
||||
exampleDetailPlayerViewBinding.playerView.findViewById(R.id.example_seekBar_player_controller)
|
||||
exampleIvPlayPlayerController =
|
||||
ivPlayPlayerController =
|
||||
exampleDetailPlayerViewBinding.playerView.findViewById(R.id.example_iv_play_player_controller)
|
||||
exampleIvCollectionController =
|
||||
ivCollectionController =
|
||||
exampleDetailPlayerViewBinding.playerView.findViewById(R.id.example_iv_collection_controller)
|
||||
exampleIvBackController =
|
||||
ivBackController =
|
||||
exampleDetailPlayerViewBinding.playerView.findViewById(R.id.example_iv_back_controller)
|
||||
ivCover = exampleDetailPlayerViewBinding.playerView.findViewById(R.id.iv_cover_detail)
|
||||
tvExampleSeries =
|
||||
@ -119,7 +119,7 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
}
|
||||
|
||||
Player.STATE_READY -> {
|
||||
exampleIvPlayPlayerController?.isEnabled = true
|
||||
ivPlayPlayerController?.isEnabled = true
|
||||
if (ExampleDetailCanPlay && !ExampleLock) {
|
||||
if (seek && progress > 0) {
|
||||
player?.seekTo(progress)
|
||||
@ -139,7 +139,7 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
}
|
||||
|
||||
Player.STATE_IDLE -> {
|
||||
exampleIvPlayPlayerController?.isEnabled = false
|
||||
ivPlayPlayerController?.isEnabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -150,7 +150,7 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
loadingLine?.visibility = View.INVISIBLE
|
||||
}
|
||||
})
|
||||
exampleIvPlayPlayerController?.setOnClickListener {
|
||||
ivPlayPlayerController?.setOnClickListener {
|
||||
if (!ExampleLock) {
|
||||
if (MsConstants.ExampleDetailPlaying) {
|
||||
pause()
|
||||
@ -181,21 +181,21 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
private fun setProgress() {
|
||||
exampleProgressJob?.cancel()
|
||||
val duration = player!!.duration
|
||||
exampleSeekbarPlayerController?.max = duration.toInt()
|
||||
exampleSeekbarPlayerController?.progress = player!!.currentPosition.toInt()
|
||||
exampleSeekbarPlayerController?.setOnSeekBarChangeListener(null)
|
||||
seekbarPlayerController?.max = duration.toInt()
|
||||
seekbarPlayerController?.progress = player!!.currentPosition.toInt()
|
||||
seekbarPlayerController?.setOnSeekBarChangeListener(null)
|
||||
exampleProgressJob = viewLifecycleScope.launch {
|
||||
while (isActive) {
|
||||
if (!isDragging) {
|
||||
withContext(Dispatchers.Main) {
|
||||
exampleSeekbarPlayerController?.progress = player!!.currentPosition.toInt()
|
||||
seekbarPlayerController?.progress = player!!.currentPosition.toInt()
|
||||
}
|
||||
}
|
||||
delay(1000)
|
||||
}
|
||||
}
|
||||
|
||||
exampleSeekbarPlayerController?.setOnSeekBarChangeListener(object :
|
||||
seekbarPlayerController?.setOnSeekBarChangeListener(object :
|
||||
SeekBar.OnSeekBarChangeListener {
|
||||
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
|
||||
if (fromUser) {
|
||||
@ -222,14 +222,14 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
|
||||
fun play() {
|
||||
player?.play()
|
||||
exampleIvPlayPlayerController?.setImageResource(R.mipmap.iv_example_stop)
|
||||
ivPlayPlayerController?.setImageResource(R.mipmap.iv_example_stop)
|
||||
MsConstants.ExampleDetailPlaying = true
|
||||
isDragging = false
|
||||
}
|
||||
|
||||
fun pause() {
|
||||
player?.pause()
|
||||
exampleIvPlayPlayerController?.setImageResource(R.mipmap.iv_example_play)
|
||||
ivPlayPlayerController?.setImageResource(R.mipmap.iv_example_play)
|
||||
MsConstants.ExampleDetailPlaying = false
|
||||
isDragging = true
|
||||
}
|
||||
@ -282,23 +282,23 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
seek = true
|
||||
ivCover?.visibility = View.VISIBLE
|
||||
exampleTvTitlePlayerController?.text = shortVideo.name
|
||||
if (TranslatesUtils.translates() != null) {
|
||||
exampleTvEpisodePlayerController?.text = TranslatesUtils.replace(
|
||||
TranslatesUtils.translates()?.mireo_episode_set.toString(),
|
||||
episode.episode.toString()
|
||||
).plus(" / ").plus(
|
||||
TranslatesUtils.replace(
|
||||
TranslatesUtils.translates()?.mireo_complete_episode.toString(),
|
||||
shortVideo.episode_total.toString()
|
||||
)
|
||||
)
|
||||
// tvExampleSeries?.text = TranslatesUtils.translates()?.recommand_series
|
||||
} else {
|
||||
// if (TranslatesUtils.translates() != null) {
|
||||
// exampleTvEpisodePlayerController?.text = TranslatesUtils.replace(
|
||||
// TranslatesUtils.translates()?.mireo_episode_set.toString(),
|
||||
// episode.episode.toString()
|
||||
// ).plus(" / ").plus(
|
||||
// TranslatesUtils.replace(
|
||||
// TranslatesUtils.translates()?.mireo_complete_episode.toString(),
|
||||
// shortVideo.episode_total.toString()
|
||||
// )
|
||||
// )
|
||||
//// tvExampleSeries?.text = TranslatesUtils.translates()?.recommand_series
|
||||
// } else {
|
||||
exampleTvEpisodePlayerController?.text =
|
||||
"EP.".plus(episode.episode).plus(" / EP.")
|
||||
.plus(shortVideo.episode_total)
|
||||
// tvExampleSeries?.text = context.getString(R.string.example_series)
|
||||
}
|
||||
// }
|
||||
exampleTvDesPlayerController?.text = shortVideo.description
|
||||
exampleTvCollectionNumController?.text = formatNumber(shortVideo.collect_total)
|
||||
exampleTvCollectionNumController?.setTextColor(
|
||||
@ -306,7 +306,7 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
R.color.example_color_F56490
|
||||
) else resources.getColor(R.color.white)
|
||||
)
|
||||
exampleIvCollectionController?.setImageResource(if (shortVideo.is_collect) R.mipmap.iv_example_collection_h else R.mipmap.iv_example_collection_n)
|
||||
ivCollectionController?.setImageResource(if (shortVideo.is_collect) R.mipmap.iv_example_collection_h else R.mipmap.iv_example_collection_n)
|
||||
player?.setMediaSource(buildMediaSource(episode.video_url))
|
||||
player?.prepare()
|
||||
exampleTvEpisodePlayerController?.setOnClickListener {
|
||||
@ -316,12 +316,10 @@ class VideoPlayerView(context: Context, attrs: AttributeSet?) :
|
||||
}
|
||||
}
|
||||
ivEpisodePlayerController?.setOnClickListener {
|
||||
if (!episode.is_lock) {
|
||||
EventBus.getDefault()
|
||||
.post(MsConstants.Constants_RecommendPlayerView_DramaSeriesExample)
|
||||
}
|
||||
EventBus.getDefault()
|
||||
.post(MsConstants.CONSTANTS_quality)
|
||||
}
|
||||
exampleIvBackController?.setOnClickListener {
|
||||
ivBackController?.setOnClickListener {
|
||||
EventBus.getDefault()
|
||||
.post(MsConstants.Constants_RecommendPlayerView_CLOSEExample)
|
||||
}
|
||||
|
@ -182,8 +182,9 @@
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:drawableTop="@mipmap/ic_vip_no_ads"
|
||||
android:drawablePadding="@dimen/dp_8"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:text="Ad-FreeStreaming"
|
||||
android:textColor="#c4c4c4"
|
||||
android:textSize="@dimen/sp_12"
|
||||
@ -195,10 +196,11 @@
|
||||
android:id="@+id/tv_member_2"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_8"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:drawableTop="@mipmap/ic_vip_free"
|
||||
android:drawablePadding="@dimen/dp_8"
|
||||
android:layout_marginHorizontal="@dimen/dp_8"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:text="Exclusive Episodes"
|
||||
@ -212,13 +214,14 @@
|
||||
android:id="@+id/tv_member_3"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_8"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:drawableTop="@mipmap/ic_vip_exclusive"
|
||||
android:drawablePadding="@dimen/dp_8"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="Daily free coins"
|
||||
android:maxLines="2"
|
||||
android:layout_marginHorizontal="@dimen/dp_8"
|
||||
android:text="Daily free coins"
|
||||
android:textColor="#c4c4c4"
|
||||
android:textSize="@dimen/sp_12"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_member_4"
|
||||
@ -229,13 +232,14 @@
|
||||
android:id="@+id/tv_member_4"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_8"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:drawableTop="@mipmap/ic_vip_only_coupons"
|
||||
android:drawablePadding="@dimen/dp_8"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="VIP-Only Coupons"
|
||||
android:layout_marginHorizontal="@dimen/dp_8"
|
||||
android:maxLines="2"
|
||||
android:text="VIP-Only Coupons"
|
||||
android:textColor="#c4c4c4"
|
||||
android:textSize="@dimen/sp_12"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -120,15 +120,28 @@
|
||||
app:layout_constraintTop_toTopOf="@+id/iv_right_coin" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_coin_recharge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:drawableStart="@mipmap/ic_vip_member"
|
||||
android:drawableEnd="@mipmap/ic_vip_member"
|
||||
android:drawablePadding="@dimen/dp_20"
|
||||
android:text="COIN RECHARGE"
|
||||
android:textColor="#FCACB8"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_right_coin" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_coin"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_11"
|
||||
android:layout_marginTop="@dimen/dp_14"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_right_coin" />
|
||||
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_coin_recharge" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_member_title"
|
||||
@ -153,6 +166,7 @@
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:drawableTop="@mipmap/ic_vip_no_ads"
|
||||
android:drawablePadding="@dimen/dp_8"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:text="Ad-Free Streaming"
|
||||
@ -170,6 +184,7 @@
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:drawableTop="@mipmap/ic_vip_free"
|
||||
android:drawablePadding="@dimen/dp_8"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:text="Exclusive Episodes"
|
||||
@ -187,6 +202,7 @@
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:drawableTop="@mipmap/ic_vip_exclusive"
|
||||
android:drawablePadding="@dimen/dp_8"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:text="Daily free coins"
|
||||
@ -204,6 +220,7 @@
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:drawableTop="@mipmap/ic_vip_only_coupons"
|
||||
android:drawablePadding="@dimen/dp_8"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:text="VIP-Only Coupons"
|
||||
|
134
app/src/main/res/layout/dialog_activate_vip.xml
Normal file
134
app/src/main/res/layout/dialog_activate_vip.xml
Normal file
@ -0,0 +1,134 @@
|
||||
<?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:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
<com.hjq.shape.layout.ShapeFrameLayout
|
||||
android:layout_width="304dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/cl"
|
||||
app:layout_constraintEnd_toEndOf="@id/cl"
|
||||
app:layout_constraintStart_toStartOf="@id/cl"
|
||||
app:layout_constraintTop_toTopOf="@id/cl"
|
||||
app:shape_radius="@dimen/dp_16"
|
||||
app:shape_solidColor="#50080b16" />
|
||||
|
||||
<net.center.blurview.ShapeBlurView
|
||||
android:layout_width="304dp"
|
||||
android:layout_height="0dp"
|
||||
app:blur_border_color="#080b16"
|
||||
app:blur_corner_radius="16dp"
|
||||
app:blur_mode="rectangle"
|
||||
app:blur_radius="10dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/cl"
|
||||
app:layout_constraintEnd_toEndOf="@id/cl"
|
||||
app:layout_constraintStart_toStartOf="@id/cl"
|
||||
app:layout_constraintTop_toTopOf="@id/cl" />
|
||||
|
||||
<com.hjq.shape.layout.ShapeConstraintLayout
|
||||
android:id="@+id/cl"
|
||||
android:layout_width="304dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:shape_radius="@dimen/dp_16"
|
||||
app:shape_solidColor="#95d9d9d9">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="32dp"
|
||||
android:src="@mipmap/iv_activate_vip"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_10"
|
||||
android:layout_marginTop="@dimen/dp_4"
|
||||
android:paddingHorizontal="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:text="Unlock HD VIP Access!"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_17"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_title" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_10"
|
||||
android:paddingHorizontal="@dimen/dp_10"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:gravity="center"
|
||||
android:text="Activate vip and enjoy HD video privileges"
|
||||
android:textColor="#C9C9C9"
|
||||
android:textSize="@dimen/sp_12"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_title" />
|
||||
|
||||
<com.hjq.shape.view.ShapeTextView
|
||||
android:id="@+id/tv_later"
|
||||
android:layout_width="123dp"
|
||||
android:layout_height="@dimen/dp_42"
|
||||
android:layout_marginLeft="26dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginRight="26dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:gravity="center"
|
||||
android:text="Later"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/mireo_color_d2d2d2"
|
||||
android:textSize="@dimen/sp_13"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_content"
|
||||
app:shape_radius="@dimen/dp_30"
|
||||
app:shape_strokeColor="@color/mireo_color_d2d2d2"
|
||||
app:shape_strokeSize="@dimen/dp_1" />
|
||||
|
||||
<com.hjq.shape.view.ShapeTextView
|
||||
android:id="@+id/tv_open"
|
||||
android:layout_width="123dp"
|
||||
android:layout_height="@dimen/dp_42"
|
||||
android:layout_marginLeft="26dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginRight="26dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:gravity="center"
|
||||
android:text="Go"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_13"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_content"
|
||||
app:shape_radius="@dimen/dp_30"
|
||||
app:shape_solidGradientEndColor="#F24C92"
|
||||
app:shape_solidGradientStartColor="#F8726D" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_close_vip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/dp_14"
|
||||
android:src="@mipmap/iv_example_close"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</com.hjq.shape.layout.ShapeConstraintLayout>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
126
app/src/main/res/layout/dialog_quality.xml
Normal file
126
app/src/main/res/layout/dialog_quality.xml
Normal file
@ -0,0 +1,126 @@
|
||||
<?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:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_example_dialog_series"
|
||||
android:paddingBottom="@dimen/dp_50"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_quality"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:layout_marginTop="24dp"
|
||||
android:text="Playback Quality"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_14"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_19"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_quality">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1">
|
||||
|
||||
<com.hjq.shape.view.ShapeTextView
|
||||
android:id="@+id/tv_quality_480"
|
||||
android:layout_width="@dimen/dp_70"
|
||||
android:layout_height="@dimen/dp_52"
|
||||
android:gravity="center"
|
||||
android:text="480p"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_13"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:shape_radius="@dimen/dp_7"
|
||||
app:shape_solidColor="#313337"
|
||||
app:shape_strokeColor="@color/example_color_F56490"
|
||||
app:shape_strokeSize="0dp" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1">
|
||||
|
||||
<com.hjq.shape.view.ShapeTextView
|
||||
android:id="@+id/tv_quality_720"
|
||||
android:layout_width="@dimen/dp_70"
|
||||
android:layout_height="@dimen/dp_52"
|
||||
android:gravity="center"
|
||||
android:text="720p"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_13"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:shape_radius="@dimen/dp_7"
|
||||
app:shape_solidColor="#313337"
|
||||
app:shape_strokeColor="@color/example_color_F56490"
|
||||
app:shape_strokeSize="0dp" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_login_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@mipmap/ic_vip_tag"
|
||||
app:layout_constraintStart_toStartOf="@+id/tv_quality_720"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1">
|
||||
|
||||
<com.hjq.shape.view.ShapeTextView
|
||||
android:id="@+id/tv_quality_1080"
|
||||
android:layout_width="@dimen/dp_70"
|
||||
android:layout_height="@dimen/dp_52"
|
||||
android:gravity="center"
|
||||
android:text="1080p"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_13"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:shape_radius="@dimen/dp_7"
|
||||
app:shape_solidColor="#313337"
|
||||
app:shape_strokeColor="@color/example_color_F56490"
|
||||
app:shape_strokeSize="0dp" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_vip_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@mipmap/ic_vip_tag"
|
||||
app:layout_constraintStart_toStartOf="@+id/tv_quality_1080"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -25,6 +25,7 @@
|
||||
android:text="Go Premium Elevate Your Binge!"
|
||||
android:textColor="#712B2B"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:textSize="@dimen/sp_17"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
@ -53,6 +54,7 @@
|
||||
android:drawablePadding="@dimen/dp_2"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="Ad-FreeStreaming"
|
||||
android:textColor="#712B2B"
|
||||
android:textSize="@dimen/sp_11"
|
||||
@ -70,6 +72,7 @@
|
||||
android:drawablePadding="@dimen/dp_2"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="Exclusive Episodes"
|
||||
android:textColor="#712B2B"
|
||||
android:textSize="@dimen/sp_11"
|
||||
@ -87,6 +90,7 @@
|
||||
android:drawablePadding="@dimen/dp_2"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="Daily free coins"
|
||||
android:textColor="#712B2B"
|
||||
android:textSize="@dimen/sp_11"
|
||||
@ -105,6 +109,7 @@
|
||||
android:drawablePadding="@dimen/dp_2"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="VIP-Only Coupons"
|
||||
android:textColor="#712B2B"
|
||||
android:textSize="@dimen/sp_11"
|
||||
|
@ -4,6 +4,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rl"
|
||||
android:layout_width="match_parent"
|
||||
@ -17,12 +18,21 @@
|
||||
app:layout_constraintRight_toRightOf="parent">
|
||||
|
||||
|
||||
<com.hjq.shape.view.ShapeImageView
|
||||
android:id="@+id/iv_img"
|
||||
android:layout_width="@dimen/dp_69"
|
||||
android:layout_height="@dimen/dp_94"
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/cardview"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
app:shape_radius="@dimen/dp_10" />
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<com.hjq.shape.view.ShapeImageView
|
||||
android:id="@+id/iv_img"
|
||||
android:layout_width="@dimen/dp_69"
|
||||
android:layout_height="@dimen/dp_94"
|
||||
/>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_name"
|
||||
@ -31,7 +41,7 @@
|
||||
android:layout_marginLeft="14dp"
|
||||
android:layout_marginTop="7dp"
|
||||
android:layout_toLeftOf="@+id/iv_close_dialog_series"
|
||||
android:layout_toEndOf="@+id/iv_img"
|
||||
android:layout_toEndOf="@+id/cardview"
|
||||
android:text="Membership"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_14" />
|
||||
@ -43,7 +53,7 @@
|
||||
android:layout_below="@+id/tv_name"
|
||||
android:layout_marginLeft="14dp"
|
||||
android:layout_marginTop="11dp"
|
||||
android:layout_toEndOf="@+id/iv_img"
|
||||
android:layout_toEndOf="@+id/cardview"
|
||||
android:text="Total 80 Episodes"
|
||||
android:textColor="#9D9D9D"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
@ -55,7 +65,7 @@
|
||||
android:layout_below="@+id/tv_total"
|
||||
android:layout_marginStart="@dimen/dp_14"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:layout_toRightOf="@+id/iv_img"
|
||||
android:layout_toRightOf="@+id/cardview"
|
||||
android:paddingHorizontal="@dimen/dp_9"
|
||||
android:paddingVertical="@dimen/dp_3"
|
||||
android:text="sweet favor"
|
||||
@ -87,7 +97,7 @@
|
||||
android:id="@+id/tv_content_dialog_series"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/iv_img"
|
||||
android:layout_below="@+id/cardview"
|
||||
android:layout_marginHorizontal="@dimen/dp_17"
|
||||
android:layout_marginTop="@dimen/sp_10"
|
||||
android:lineSpacingExtra="@dimen/dp_2"
|
||||
|
@ -20,7 +20,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textSize="@dimen/sp_11"
|
||||
android:singleLine="true"
|
||||
app:shape_textColor="#888888"
|
||||
app:shape_textSelectedColor="#F56490"
|
||||
|
@ -53,6 +53,7 @@
|
||||
android:lineSpacingExtra="@dimen/dp_2"
|
||||
android:minLines="2"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text=""
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
@ -104,6 +105,7 @@
|
||||
android:layout_toRightOf="@+id/iv_card"
|
||||
android:lineSpacingExtra="@dimen/dp_2"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="On her wedding day, Lydia Murphy catches her fiance, Justin, cheati..."
|
||||
android:textColor="#78D2D2D2"
|
||||
android:textSize="@dimen/sp_10" />
|
||||
|
@ -54,6 +54,7 @@
|
||||
android:layout_marginBottom="@dimen/dp_8"
|
||||
android:lineSpacingExtra="@dimen/dp_2"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="He paid for salvation in blood—but the debt was never meant to be..."
|
||||
android:textColor="@color/mireo_color_d2d2d2"
|
||||
android:textSize="@dimen/sp_10"
|
||||
|
@ -78,6 +78,7 @@
|
||||
android:layout_marginBottom="@dimen/dp_4"
|
||||
android:lineSpacingExtra="@dimen/dp_2"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="Salvation Mispaid"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_13"
|
||||
|
@ -32,6 +32,7 @@
|
||||
android:layout_marginBottom="@dimen/dp_4"
|
||||
android:lineSpacingExtra="@dimen/dp_2"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="Salvation Mispaid"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_13"
|
||||
|
@ -33,6 +33,7 @@
|
||||
android:layout_marginEnd="@dimen/dp_9"
|
||||
android:layout_toRightOf="@+id/iv_card"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="Caged Marriage"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_13" />
|
||||
@ -47,6 +48,7 @@
|
||||
android:layout_marginEnd="@dimen/dp_9"
|
||||
android:layout_toRightOf="@+id/iv_card"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:text="Caged Marriage"
|
||||
android:textColor="@color/example_color_9d9d9d"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
@ -248,6 +248,35 @@
|
||||
app:layout_constraintTop_toBottomOf="@+id/sb_play_list" />
|
||||
|
||||
|
||||
<com.localee.mireo.app.widget.layout.SettingBar
|
||||
android:id="@+id/sb_order"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_50"
|
||||
android:background="@color/transparent"
|
||||
app:bar_leftDrawable="@mipmap/iv_me_order"
|
||||
app:bar_leftDrawablePadding="@dimen/dp_10"
|
||||
app:bar_leftText="Order Record"
|
||||
app:bar_leftTextColor="@color/white"
|
||||
app:bar_lineVisible="false"
|
||||
app:bar_rightDrawable="@mipmap/iv_me_right"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/recyclerView" />
|
||||
|
||||
<com.localee.mireo.app.widget.layout.SettingBar
|
||||
android:id="@+id/sb_language"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_50"
|
||||
android:background="@color/transparent"
|
||||
android:visibility="visible"
|
||||
app:bar_leftDrawable="@mipmap/ic_me_language"
|
||||
app:bar_leftDrawablePadding="@dimen/dp_10"
|
||||
app:bar_leftText="Choose language"
|
||||
app:bar_leftTextColor="@color/white"
|
||||
app:bar_lineVisible="false"
|
||||
app:bar_rightDrawable="@mipmap/iv_me_right"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/sb_order" />
|
||||
|
||||
<com.localee.mireo.app.widget.layout.SettingBar
|
||||
android:id="@+id/sb_setting"
|
||||
android:layout_width="match_parent"
|
||||
@ -260,7 +289,7 @@
|
||||
app:bar_lineVisible="false"
|
||||
app:bar_rightDrawable="@mipmap/iv_me_right"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/recyclerView" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/sb_language" />
|
||||
|
||||
<com.localee.mireo.app.widget.layout.SettingBar
|
||||
android:id="@+id/sb_privacy"
|
||||
@ -333,20 +362,6 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/sb_about" />
|
||||
|
||||
<com.localee.mireo.app.widget.layout.SettingBar
|
||||
android:id="@+id/sb_language"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_50"
|
||||
android:background="@color/transparent"
|
||||
android:visibility="visible"
|
||||
app:bar_leftDrawable="@mipmap/ic_me_language"
|
||||
app:bar_leftDrawablePadding="@dimen/dp_10"
|
||||
app:bar_leftText="Choose language"
|
||||
app:bar_leftTextColor="@color/white"
|
||||
app:bar_lineVisible="false"
|
||||
app:bar_rightDrawable="@mipmap/iv_me_right"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/sb_feedback" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
@ -14,6 +14,7 @@
|
||||
android:layout_centerHorizontal="true"
|
||||
android:gravity="center"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:paddingVertical="@dimen/dp_12"
|
||||
android:textSize="@dimen/sp_15"
|
||||
app:shape_textColor="@color/white"
|
||||
|
@ -34,6 +34,7 @@
|
||||
android:layout_marginTop="@dimen/dp_5"
|
||||
android:layout_marginBottom="@dimen/dp_10"
|
||||
android:maxLines="3"
|
||||
android:ellipsize="end"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_14"
|
||||
tools:text="提示语" />
|
||||
|
BIN
app/src/main/res/mipmap-xxhdpi/ic_login_tag.webp
Normal file
BIN
app/src/main/res/mipmap-xxhdpi/ic_login_tag.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_vip_tag.webp
Normal file
BIN
app/src/main/res/mipmap-xxhdpi/ic_vip_tag.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/iv_activate_vip.webp
Normal file
BIN
app/src/main/res/mipmap-xxhdpi/iv_activate_vip.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/iv_me_order.webp
Normal file
BIN
app/src/main/res/mipmap-xxhdpi/iv_me_order.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
@ -7,8 +7,8 @@ android {
|
||||
defaultConfig {
|
||||
minSdk 24
|
||||
targetSdk 34
|
||||
versionName '1.1.2'
|
||||
versionCode 10
|
||||
versionName '1.2.0'
|
||||
versionCode 12
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
|
Loading…
x
Reference in New Issue
Block a user