Commit 0db7d983 authored by mengcuiguang's avatar mengcuiguang

短剧首页开发

parent 4e2e7482
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="CompilerConfiguration"> <component name="CompilerConfiguration">
<bytecodeTargetLevel target="15" /> <bytecodeTargetLevel target="11" />
</component> </component>
</project> </project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_15" default="true" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">
......
...@@ -9,6 +9,7 @@ import com.bumptech.glide.Glide ...@@ -9,6 +9,7 @@ import com.bumptech.glide.Glide
import com.bumptech.glide.Priority import com.bumptech.glide.Priority
import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.load.resource.bitmap.CenterCrop
import com.bumptech.glide.load.resource.bitmap.FitCenter
import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.bumptech.glide.load.resource.gif.GifDrawable import com.bumptech.glide.load.resource.gif.GifDrawable
import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.RequestOptions
...@@ -78,6 +79,32 @@ object GlideUtils { ...@@ -78,6 +79,32 @@ object GlideUtils {
).dontAnimate().into(mImageView!!) ).dontAnimate().into(mImageView!!)
} }
fun loadImageViewGifForFitCenter(mContext: Context, drawable: String, imageView: ImageView) {
val options = RequestOptions()
.transform(
FitCenter(),
RoundedCorners(BubbleUtils.dp2px(5))
)
.diskCacheStrategy(DiskCacheStrategy.DATA)
Glide.with(mContext)
.load(drawable)
.apply(options)
.into(imageView)
}
fun loadImageViewGifForCenterCrop(mContext: Context, drawable: String, imageView: ImageView) {
val options = RequestOptions()
.transform(
CenterCrop(),
RoundedCorners(BubbleUtils.dp2px(5))
)
.diskCacheStrategy(DiskCacheStrategy.DATA)
Glide.with(mContext)
.load(drawable)
.apply(options)
.into(imageView)
}
//设置加载中图片 //设置加载中图片
fun loadImageViewLoding( fun loadImageViewLoding(
mContext: Context?, mContext: Context?,
......
...@@ -10,23 +10,22 @@ object Constant { ...@@ -10,23 +10,22 @@ object Constant {
* 首次弹出权限声明 * 首次弹出权限声明
*/ */
const val LOAN_PERMISSION_FLAG = "loan_permission_flag" const val LOAN_PERMISSION_FLAG = "loan_permission_flag"
const val FIRST_GUILD = "first_guild"
const val FIRST_SPLASH = "first_splash" const val FIRST_SPLASH = "first_splash"
const val IS_FIRST_AGREE_BTN = "is_first_agree_btn" const val IS_FIRST_AGREE_BTN = "is_first_agree_btn"
const val TAG_NAME = "SUN" const val TAG_NAME = "SUN"
const val MINTS_APP_NAME = "乐看短剧" const val MINTS_APP_NAME = "河狸短视频"
const val MINTS_PKG_NAME = "com.mints.wisdomclean" const val MINTS_PKG_NAME = "com.mints.wisdomclean"
const val ACTION_EXIT_APP = "package.exit" const val ACTION_EXIT_APP = "package.exit"
/** /**
* app应用首页 0-主页 1-赚赚 2-我 * app应用首页 0-主页 1-中间 2-我
*/ */
const val FRAGMENT_CLICK_ONE = 0 const val FRAGMENT_CLICK_ONE = 0
const val FRAGMENT_CLICK_TWO = 1 const val FRAGMENT_CLICK_TWO = 1
const val FRAGMENT_CLICK_THREE = 2 const val FRAGMENT_CLICK_THREE = 2
// 协议地址 // 协议地址
var REGISTER_URL = "http://mints-web.mints-id.com/agreements/wisdomclean/yhxy.html"//注册协议 var REGISTER_URL = "http://mints-web.mints-id.com/agreements/helivideo/yhxy.html"//注册协议
var PRIVACY_URL = "http://mints-web.mints-id.com/agreements/wisdomclean/syzc.html"//隐私协议 var PRIVACY_URL = "http://mints-web.mints-id.com/agreements/helivideo/syzc.html"//隐私协议
var MEMBERS_URL = "https://mints-web.mints-id.com/agreements/wisdomclean/gmxy.html"//会员付费服务协议 var MEMBERS_URL = "https://mints-web.mints-id.com/agreements/helivideo/gmxy.html"//会员付费服务协议
} }
\ No newline at end of file
...@@ -56,7 +56,7 @@ public class UserManager { ...@@ -56,7 +56,7 @@ public class UserManager {
private static final String VIP_FOREVER = "VIP_FOREVER"; private static final String VIP_FOREVER = "VIP_FOREVER";
private static final String VIP_DATE = "VIP_DATE"; private static final String VIP_DATE = "VIP_DATE";
private static final String CODE_ID = "codeId"; private static final String CODE_ID = "codeId";
// 新人专享 // 匹配用户
private static final String NEW_FLAG = "new_flag"; private static final String NEW_FLAG = "new_flag";
public static UserManager getInstance() { public static UserManager getInstance() {
......
...@@ -5,12 +5,6 @@ import android.os.Parcelable ...@@ -5,12 +5,6 @@ import android.os.Parcelable
import kotlinx.android.parcel.Parcelize import kotlinx.android.parcel.Parcelize
import java.io.Serializable import java.io.Serializable
/**
*
* @author jyx
* @date 2021/4/20
* @des
*/
data class HotStyleListBean( data class HotStyleListBean(
val list: List<HotStyleBean> val list: List<HotStyleBean>
) : Serializable ) : Serializable
...@@ -29,11 +23,6 @@ data class HotStyleBean( ...@@ -29,11 +23,6 @@ data class HotStyleBean(
var typeId: Int = 0, var typeId: Int = 0,
) : Parcelable ) : Parcelable
@SuppressLint("ParcelCreator")
@Parcelize
data class HotStyleTypesListBean(
val list: List<HotStyleTypesBean>
) : Parcelable
@SuppressLint("ParcelCreator") @SuppressLint("ParcelCreator")
@Parcelize @Parcelize
...@@ -43,21 +32,3 @@ data class HotStyleTypesBean( ...@@ -43,21 +32,3 @@ data class HotStyleTypesBean(
var id: Int = 0, var id: Int = 0,
var imageCount: Int = -1, var imageCount: Int = -1,
) : Parcelable ) : Parcelable
\ No newline at end of file
@SuppressLint("ParcelCreator")
@Parcelize
data class PreStyleBean(
var type: Int? = 1,
var effectUrl: String? = null,
var imageUrl: String? = null,
var imageid: Int? = 0,
var lock: Boolean? = false,
var name: String? = null,
var remark: String? = null,
var isOriginal: Boolean? = false
) : Parcelable
data class HotStyleMsgBean(
val images: List<HotStyleBean>,
val types: List<HotStyleTypesBean>
) : Serializable
\ No newline at end of file
...@@ -60,7 +60,7 @@ class SettingsActivity : BaseActivity(), View.OnClickListener { ...@@ -60,7 +60,7 @@ class SettingsActivity : BaseActivity(), View.OnClickListener {
item_back.setOnClickListener(this) item_back.setOnClickListener(this)
item_phone.setOnClickListener(this) item_phone.setOnClickListener(this)
item_invitedCode.findViewById<TextView>(R.id.tv_title).text = "乐看短剧ID" item_invitedCode.findViewById<TextView>(R.id.tv_title).text = "河狸短视频ID"
val invitedCode = ContextCompat.getDrawable(this, R.mipmap.icon_settings_invite) val invitedCode = ContextCompat.getDrawable(this, R.mipmap.icon_settings_invite)
invitedCode?.setBounds(0, 0, 56, 56) invitedCode?.setBounds(0, 0, 56, 56)
item_invitedCode.findViewById<TextView>(R.id.tv_title) item_invitedCode.findViewById<TextView>(R.id.tv_title)
......
...@@ -143,13 +143,14 @@ class SplashActivity : BaseActivity() { ...@@ -143,13 +143,14 @@ class SplashActivity : BaseActivity() {
* 跳转到主页面 * 跳转到主页面
*/ */
private fun goToMainActivity() { private fun goToMainActivity() {
if (UserManager.getInstance().vipFlag) {
readyGoThenKill(MainActivity::class.java) readyGoThenKill(MainActivity::class.java)
} else { // if (UserManager.getInstance().vipFlag) {
val bundle = Bundle() // readyGoThenKill(MainActivity::class.java)
bundle.putBoolean(VipActivity.IS_GUIDE, true) // } else {
readyGoThenKill(VipActivity::class.java, bundle) // val bundle = Bundle()
} // bundle.putBoolean(VipActivity.IS_GUIDE, true)
// readyGoThenKill(VipActivity::class.java, bundle)
// }
} }
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
......
...@@ -52,7 +52,6 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On ...@@ -52,7 +52,6 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On
} }
private var breathAnim: YoYo.YoYoString? = null private var breathAnim: YoYo.YoYoString? = null
private var breathBotAnim: YoYo.YoYoString? = null
private var payAgreementDialog: PayAgreementDialog? = null private var payAgreementDialog: PayAgreementDialog? = null
private var payYesDialog: PayYesDialog? = null private var payYesDialog: PayYesDialog? = null
private var ruleAgreementDialog: RuleAgreementDialog? = null private var ruleAgreementDialog: RuleAgreementDialog? = null
...@@ -77,10 +76,6 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On ...@@ -77,10 +76,6 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On
} }
override fun initViewsAndEvents() { override fun initViewsAndEvents() {
tv_title.text = "支付中心"
iv_left_icon.visibility = View.VISIBLE
iv_left_icon.setImageResource(R.mipmap.ic_arrow_back)
vipPresenter.attachView(this) vipPresenter.attachView(this)
if (!TextUtils.isEmpty(UserManager.getInstance().userID)) { if (!TextUtils.isEmpty(UserManager.getInstance().userID)) {
vipPresenter.getVipProducts(isAliPayInstalled()) vipPresenter.getVipProducts(isAliPayInstalled())
...@@ -95,7 +90,6 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On ...@@ -95,7 +90,6 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
breathAnim?.stop() breathAnim?.stop()
breathBotAnim?.stop()
vipPresenter.detachView() vipPresenter.detachView()
} }
...@@ -149,11 +143,9 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On ...@@ -149,11 +143,9 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On
if (!TextUtils.isEmpty(bean.buttonText)) { if (!TextUtils.isEmpty(bean.buttonText)) {
tvVipPay.text = bean.buttonText tvVipPay.text = bean.buttonText
tvVipBottom.text = bean.buttonText
tvVipAgreement.text = "点击购买即表示您同意《自动续费协议》" tvVipAgreement.text = "点击购买即表示您同意《自动续费协议》"
} else { } else {
tvVipPay.text = "立即开通" tvVipPay.text = "立即开通"
tvVipBottom.text = "立即开通"
tvVipAgreement.text = "点击购买即表示您同意《会员付费协议》" tvVipAgreement.text = "点击购买即表示您同意《会员付费协议》"
} }
} }
...@@ -226,7 +218,7 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On ...@@ -226,7 +218,7 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On
if (AntiShake.check(v?.id)) return if (AntiShake.check(v?.id)) return
when (v?.id) { when (v?.id) {
R.id.iv_left_icon -> { R.id.ic_vip_quit -> {
if (!UserManager.getInstance().vipFlag && vipList != null && vipList!!.size > 0) { if (!UserManager.getInstance().vipFlag && vipList != null && vipList!!.size > 0) {
vipAdapter.setPosition(0) vipAdapter.setPosition(0)
vipAdapter.notifyDataSetChanged() vipAdapter.notifyDataSetChanged()
...@@ -247,7 +239,7 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On ...@@ -247,7 +239,7 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On
} }
} }
} }
R.id.tvVipPay, R.id.tvVipBottom -> { R.id.tvVipPay -> {
if (vipList != null && vipList!!.size > 0) { if (vipList != null && vipList!!.size > 0) {
val vipBean = vipList!![vipAdapter.getPosition()] val vipBean = vipList!![vipAdapter.getPosition()]
...@@ -288,7 +280,7 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On ...@@ -288,7 +280,7 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On
} }
R.id.ll_vip_wx -> { R.id.ll_vip_wx -> {
payType = WEIXIN_PAY payType = WEIXIN_PAY
iv_vip_wx.setImageResource(R.mipmap.ic_vip_enable) iv_vip_wx.setImageResource(R.mipmap.ic_vip_enable_blue)
iv_vip_alipay.setImageResource(R.mipmap.ic_vip_none) iv_vip_alipay.setImageResource(R.mipmap.ic_vip_none)
} }
} }
...@@ -320,15 +312,9 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On ...@@ -320,15 +312,9 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, VipAdapter.On
breathAnim = breathAnim =
YoYo.with(Techniques.Pulse).duration(700).repeat(-1).playOn(shimmer_text) YoYo.with(Techniques.Pulse).duration(700).repeat(-1).playOn(shimmer_text)
}, 200) }, 200)
shimmer_bottom?.postDelayed({
shimmer_bottom?.startShimmerAnimation()
breathBotAnim =
YoYo.with(Techniques.Pulse).duration(700).repeat(-1).playOn(shimmer_bottom)
}, 200)
iv_left_icon.setOnClickListener(this) ic_vip_quit.setOnClickListener(this)
tvVipPay.setOnClickListener(this) tvVipPay.setOnClickListener(this)
tvVipBottom.setOnClickListener(this)
tvVipAgreement.setOnClickListener(this) tvVipAgreement.setOnClickListener(this)
ll_vip_alipay.setOnClickListener(this) ll_vip_alipay.setOnClickListener(this)
ll_vip_wx.setOnClickListener(this) ll_vip_wx.setOnClickListener(this)
......
package com.mints.wisdomclean.ui.adapter package com.mints.wisdomclean.ui.adapter
import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
...@@ -7,71 +8,74 @@ import android.view.ViewGroup ...@@ -7,71 +8,74 @@ import android.view.ViewGroup
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.airbnb.lottie.* import com.mints.library.utils.GlideUtils
import com.daimajia.androidanimations.library.Techniques
import com.daimajia.androidanimations.library.YoYo
import com.itheima.roundedimageview.RoundedImageView
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.mvp.model.HotStyleBean import com.mints.wisdomclean.mvp.model.HotStyleBean
import com.mints.wisdomclean.ui.adapter.base.OnItemClickListener import com.mints.wisdomclean.ui.adapter.base.OnItemClickListener
class HotStyleAdapter(val context: Context, val dataList: ArrayList<HotStyleBean>) : class HotStyleAdapter(val context: Context, val dataList: ArrayList<HotStyleBean>) :
RecyclerView.Adapter<RecyclerView.ViewHolder>() { RecyclerView.Adapter<HotStyleAdapter.ViewHolder>() {
lateinit var mOnItemClickListener: OnItemClickListener lateinit var mOnItemClickListener: OnItemClickListener
private var showAnim = true
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val rivXmlyPage: RoundedImageView = view.findViewById(R.id.riv_img) val ivVedioItem: ImageView = view.findViewById(R.id.ivVedioItem)
val ivXmlyPage: ImageView = view.findViewById(R.id.iv_img) val tvVedioItemCount: TextView = view.findViewById(R.id.tvVedioItemCount)
val tvTitle: TextView = view.findViewById(R.id.tv_title) val tvVedioItemTitle: TextView = view.findViewById(R.id.tvVedioItemTitle)
val tvHotBtn: TextView = view.findViewById(R.id.tv_hot_btn) val tvVedioItemText: TextView = view.findViewById(R.id.tvVedioItemText)
} }
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(context).inflate(R.layout.item_hot_style, parent, false) val view = LayoutInflater.from(context).inflate(R.layout.item_hot_style, parent, false)
return ViewHolder(view) return ViewHolder(view)
} }
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val viewHolder = holder as ViewHolder // if (dataList.size > 0) {
if (dataList.size > 0) { // val data = dataList[position]
val data = dataList[position] // if (position == 0 && showAnim) {
if (position == 0 && showAnim) { // val lottieDrawable = LottieDrawable()
val lottieDrawable = LottieDrawable() // LottieCompositionFactory.fromAsset(context, "guide_template_category.json")
LottieCompositionFactory.fromAsset(context, "guide_template_category.json") // .addListener { result: LottieComposition? ->
.addListener { result: LottieComposition? -> // lottieDrawable.setImagesAssetsFolder("guild_template_category/")
lottieDrawable.setImagesAssetsFolder("guild_template_category/") // lottieDrawable.composition = result
lottieDrawable.composition = result // lottieDrawable.loop(true)
lottieDrawable.loop(true) // lottieDrawable.playAnimation()
lottieDrawable.playAnimation() // }
} // holder.ivXmlyPage.setImageDrawable(lottieDrawable)
holder.ivXmlyPage.setImageDrawable(lottieDrawable) // holder.ivXmlyPage.visibility = View.VISIBLE
holder.ivXmlyPage.visibility = View.VISIBLE // holder.tvHotBtn.visibility = View.VISIBLE
holder.tvHotBtn.visibility = View.VISIBLE // holder.rivXmlyPage.visibility = View.GONE
holder.rivXmlyPage.visibility = View.GONE // holder.tvHotBtn.postDelayed({
holder.tvHotBtn.postDelayed({ // YoYo.with(Techniques.Pulse).duration(500).repeat(-1).playOn(holder.tvHotBtn)
YoYo.with(Techniques.Pulse).duration(500).repeat(-1).playOn(holder.tvHotBtn) // }, 300)
}, 300) // } else {
} else { //// GlideUtils.loadRoundImageViewGif(
// GlideUtils.loadRoundImageViewGif( //// holder.itemView.context,
// holder.itemView.context, //// data.imageUrl!!,
// data.imageUrl!!, //// holder.rivXmlyPage
// holder.rivXmlyPage //// )
// holder.ivXmlyPage.visibility = View.GONE
// holder.tvHotBtn.visibility = View.GONE
// holder.rivXmlyPage.visibility = View.VISIBLE
// }
// viewHolder.tvTitle.text = data.name
//
// }
// GlideUtils.loadImageViewGifForFitCenter(
// context,
// "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg-bcurd/img/bg_vip_top3.png",
// holder.ivVedioItem
// ) // )
holder.ivXmlyPage.visibility = View.GONE
holder.tvHotBtn.visibility = View.GONE
holder.rivXmlyPage.visibility = View.VISIBLE
}
viewHolder.tvTitle.text = data.name
viewHolder.itemView.setOnClickListener { holder.itemView.setOnClickListener {
if (::mOnItemClickListener.isInitialized) {
mOnItemClickListener.onItemClick(holder.itemView, position) mOnItemClickListener.onItemClick(holder.itemView, position)
} }
}
} holder.itemView.setTag(position)
} }
override fun getItemCount(): Int = 30 override fun getItemCount(): Int = 30
...@@ -79,8 +83,4 @@ class HotStyleAdapter(val context: Context, val dataList: ArrayList<HotStyleBean ...@@ -79,8 +83,4 @@ class HotStyleAdapter(val context: Context, val dataList: ArrayList<HotStyleBean
fun setOnItemClickListener(listener: OnItemClickListener) { fun setOnItemClickListener(listener: OnItemClickListener) {
mOnItemClickListener = listener mOnItemClickListener = listener
} }
fun setShowAnim(showAnim: Boolean) {
this.showAnim = showAnim
}
} }
\ No newline at end of file
package com.mints.wisdomclean.ui.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.mints.library.utils.GlideUtils
import com.mints.wisdomclean.R
import com.mints.wisdomclean.mvp.model.VipBean
class TopAdapter(val vipList: MutableList<VipBean.ListBean>?) :
RecyclerView.Adapter<TopAdapter.ViewHolder>() {
lateinit var context: Context
lateinit var mOnItemClickListener: OnItemClickListener
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val rlTopItemRoot: LinearLayout = view.findViewById(R.id.rlTopItemRoot)
val ivTopItem: ImageView = view.findViewById(R.id.ivTopItem)
val tvTopItemLable: TextView = view.findViewById(R.id.tvTopItemLable)
val tvTopItemCount: TextView = view.findViewById(R.id.tvTopItemCount)
val tvTopItemTitle: TextView = view.findViewById(R.id.tvTopItemTitle)
val tvTopItemText: TextView = view.findViewById(R.id.tvTopItemText)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
context = parent.context
val view = LayoutInflater.from(context).inflate(R.layout.item_rv_top, parent, false)
val viewHolder = ViewHolder(view)
return viewHolder
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
// val vipBean = vipList[position]
holder.tvTopItemLable.text = "${position + 1}"
GlideUtils.loadImageViewGifForFitCenter(context,"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg-bcurd/img/bg_vip_top1.png",holder.ivTopItem)
when (position) {
0 -> {
holder.tvTopItemLable.setBackgroundResource(R.mipmap.y43)
}
1 -> {
holder.tvTopItemLable.setBackgroundResource(R.mipmap.y42)
}
2 -> {
holder.tvTopItemLable.setBackgroundResource(R.mipmap.y41)
}
else -> {
holder.tvTopItemLable.setBackgroundResource(R.mipmap.y4)
}
}
holder.rlTopItemRoot.setOnClickListener {
mOnItemClickListener.onItemClick(position)
}
holder.itemView.setTag(position)
}
// override fun getItemCount() = vipList?.size
override fun getItemCount() = 20
interface OnItemClickListener {
fun onItemClick(position: Int)
}
fun setOnItemClickListener(listener: OnItemClickListener) {
mOnItemClickListener = listener
}
}
\ No newline at end of file
package com.mints.wisdomclean.ui.adapter.base
import android.view.View
interface OnItemChildClickListener {
fun onItemChildClick(view: View?, position: Int)
}
\ No newline at end of file
package com.mints.wisdomclean.ui.adapter.listener
import android.view.View
interface OnItemChildClickListener {
fun onItemChildClick(view: View?, position: Int)
}
\ No newline at end of file
package com.mints.wisdomclean.ui.adapter.listener
import android.view.View
//define interface
interface OnItemClickListener {
fun onItemClick(view: View?, position: Int)
}
\ No newline at end of file
...@@ -6,9 +6,11 @@ import android.view.View ...@@ -6,9 +6,11 @@ import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import com.mints.library.utils.GlideUtils
import com.mints.library.utils.nodoubleclick.AntiShake import com.mints.library.utils.nodoubleclick.AntiShake
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.common.AppConfig import com.mints.wisdomclean.common.AppConfig
...@@ -19,6 +21,7 @@ import com.mints.wisdomclean.mvp.model.UserBean ...@@ -19,6 +21,7 @@ import com.mints.wisdomclean.mvp.model.UserBean
import com.mints.wisdomclean.mvp.presenters.HomePresenter import com.mints.wisdomclean.mvp.presenters.HomePresenter
import com.mints.wisdomclean.mvp.views.HomeView import com.mints.wisdomclean.mvp.views.HomeView
import com.mints.wisdomclean.ui.adapter.HomeVideoPageAdapter import com.mints.wisdomclean.ui.adapter.HomeVideoPageAdapter
import com.mints.wisdomclean.ui.adapter.TopAdapter
import com.mints.wisdomclean.ui.fragment.base.BaseFragment import com.mints.wisdomclean.ui.fragment.base.BaseFragment
import com.mints.wisdomclean.video.VideoActivity import com.mints.wisdomclean.video.VideoActivity
import com.scwang.smartrefresh.layout.api.RefreshLayout import com.scwang.smartrefresh.layout.api.RefreshLayout
...@@ -27,7 +30,7 @@ import com.youth.banner.Banner ...@@ -27,7 +30,7 @@ import com.youth.banner.Banner
import com.youth.banner.adapter.BannerImageAdapter import com.youth.banner.adapter.BannerImageAdapter
import com.youth.banner.holder.BannerImageHolder import com.youth.banner.holder.BannerImageHolder
import com.youth.banner.indicator.CircleIndicator import com.youth.banner.indicator.CircleIndicator
import kotlinx.android.synthetic.main.fragment_main_first2.* import kotlinx.android.synthetic.main.fragment_main.*
import java.util.* import java.util.*
import kotlin.concurrent.schedule import kotlin.concurrent.schedule
...@@ -47,12 +50,13 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi ...@@ -47,12 +50,13 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi
private var mSelectTabIndex = -1 private var mSelectTabIndex = -1
private val tabsData = mutableListOf<HotStyleTypesBean>() private val tabsData = mutableListOf<HotStyleTypesBean>()
private var vpAdapter: HomeVideoPageAdapter? = null private var vpAdapter: HomeVideoPageAdapter? = null
private var topAdapter: TopAdapter? = null
private val homePresenter by lazy { HomePresenter() } private val homePresenter by lazy { HomePresenter() }
private val userManager by lazy { UserManager.getInstance() } private val userManager by lazy { UserManager.getInstance() }
override fun getContentViewLayoutID() = R.layout.fragment_main_first2 override fun getContentViewLayoutID() = R.layout.fragment_main
override fun initViewsAndEvents() { override fun initViewsAndEvents() {
homePresenter.attachView(this) homePresenter.attachView(this)
...@@ -60,7 +64,7 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi ...@@ -60,7 +64,7 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi
initView() initView()
initListener() initListener()
initVp()
loadData() loadData()
} }
...@@ -88,6 +92,7 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi ...@@ -88,6 +92,7 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi
homePresenter.getMyInfo() homePresenter.getMyInfo()
} }
banner?.start() banner?.start()
setWatchingStatus(Any())
} }
} }
...@@ -111,9 +116,7 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi ...@@ -111,9 +116,7 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi
size: Int size: Int
) { ) {
holder.imageView.scaleType = ImageView.ScaleType.FIT_XY holder.imageView.scaleType = ImageView.ScaleType.FIT_XY
Glide.with(activity!!) GlideUtils.loadImageViewGifForFitCenter(activity!!, data, holder.imageView)
.load(data)
.into(holder.imageView)
} }
}) })
setOnBannerListener { data, position -> setOnBannerListener { data, position ->
...@@ -125,10 +128,13 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi ...@@ -125,10 +128,13 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi
} }
} }
initVp()
} }
private fun initListener() { private fun initListener() {
tv_test.setOnClickListener(this) tv_test.setOnClickListener(this)
iv_main_watching_close.setOnClickListener(this)
tv_main_watching_goto.setOnClickListener(this)
} }
override fun onClick(v: View?) { override fun onClick(v: View?) {
...@@ -138,6 +144,12 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi ...@@ -138,6 +144,12 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi
R.id.tv_test -> { R.id.tv_test -> {
readyGo(VideoActivity::class.java) readyGo(VideoActivity::class.java)
} }
R.id.iv_main_watching_close -> {
ll_main_watching_root.visibility = View.GONE
}
R.id.tv_main_watching_goto -> {
}
} }
} }
...@@ -159,6 +171,18 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi ...@@ -159,6 +171,18 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi
} }
private fun initVp() { private fun initVp() {
topAdapter = TopAdapter(null)
val ma = LinearLayoutManager(requireContext())
ma.orientation = LinearLayoutManager.HORIZONTAL
rv_main_list.layoutManager = ma
rv_main_list.adapter = topAdapter
topAdapter?.setOnItemClickListener(object : TopAdapter.OnItemClickListener {
override fun onItemClick(position: Int) {
showToast(position.toString())
}
})
vpAdapter = HomeVideoPageAdapter(tabsData, this) vpAdapter = HomeVideoPageAdapter(tabsData, this)
vp2.adapter = vpAdapter vp2.adapter = vpAdapter
TabLayoutMediator(tablayout, vp2) { tab, position -> TabLayoutMediator(tablayout, vp2) { tab, position ->
...@@ -187,11 +211,11 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi ...@@ -187,11 +211,11 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi
tab?.customView?.let { tab?.customView?.let {
val text = it.findViewById<TextView>(R.id.item_tv) val text = it.findViewById<TextView>(R.id.item_tv)
if (isSelected) { if (isSelected) {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.white)) text.setTextColor(ContextCompat.getColor(requireContext(), R.color.red))
text.setBackgroundResource(R.drawable.shape_bg_home_selected) // text.setBackgroundResource(R.drawable.shape_bg_home_selected)
} else { } else {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.color_8D8F90)) text.setTextColor(ContextCompat.getColor(requireContext(), R.color.color_8D8F90))
text.setBackgroundResource(R.drawable.shape_bg_home_unselected) // text.setBackgroundResource(R.drawable.shape_bg_home_unselected)
} }
} }
} }
...@@ -206,16 +230,26 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi ...@@ -206,16 +230,26 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener, OnRefreshLi
vpAdapter?.run { vpAdapter?.run {
if (getFragments().isNotEmpty()) { if (getFragments().isNotEmpty()) {
val fragment = getFragments()[mSelectTabIndex] val fragment = getFragments()[mSelectTabIndex]
if (fragment != null) {
(fragment as MovieFragment).onRefresh() (fragment as MovieFragment).onRefresh()
refreshLayout.finishRefresh() refreshLayout.finishRefresh()
} }
} }
} }
}
override fun getUserSuc(data: UserBean) { override fun getUserSuc(data: UserBean) {
} }
fun setWatchingStatus(bean: Any) {
GlideUtils.loadImageViewGifForFitCenter(
requireContext(),
"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg-bcurd/img/bg_vip_top1.png",
iv_main_watching_pic
)
// tv_main_watching_name.text=""
// tv_main_watching_text1.text=""
// tv_main_watching_text2.text=""
}
} }
\ No newline at end of file
...@@ -7,6 +7,7 @@ import androidx.recyclerview.widget.GridLayoutManager ...@@ -7,6 +7,7 @@ import androidx.recyclerview.widget.GridLayoutManager
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.mvp.model.* import com.mints.wisdomclean.mvp.model.*
import com.mints.wisdomclean.ui.adapter.HotStyleAdapter import com.mints.wisdomclean.ui.adapter.HotStyleAdapter
import com.mints.wisdomclean.ui.adapter.base.OnItemClickListener
import com.mints.wisdomclean.ui.fragment.base.LazyLoadBaseFragment import com.mints.wisdomclean.ui.fragment.base.LazyLoadBaseFragment
import com.scwang.smartrefresh.layout.api.RefreshLayout import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener
...@@ -114,15 +115,15 @@ class MovieFragment : LazyLoadBaseFragment(), OnLoadMoreListener { ...@@ -114,15 +115,15 @@ class MovieFragment : LazyLoadBaseFragment(), OnLoadMoreListener {
val gridLayoutManager = GridLayoutManager(context, 3) val gridLayoutManager = GridLayoutManager(context, 3)
rv_pic_list.layoutManager = gridLayoutManager rv_pic_list.layoutManager = gridLayoutManager
hotStyleAdapter = HotStyleAdapter(requireContext(), hotList) hotStyleAdapter = HotStyleAdapter(requireContext(), hotList)
hotStyleAdapter.setShowAnim(mPosition == 0)
rv_pic_list.adapter = hotStyleAdapter rv_pic_list.adapter = hotStyleAdapter
// hotStyleAdapter.setOnItemClickListener(object : OnItemClickListener { hotStyleAdapter.setOnItemClickListener(object : OnItemClickListener {
// override fun onItemClick(view: View?, position: Int) { override fun onItemClick(view: View?, position: Int) {
// if (hotList.size > 0) { // if (hotList.size > 0) {
// //
// } // }
// } showToast(position.toString())
// }) }
})
} }
private fun initListener() { private fun initListener() {
......
package com.mints.wisdomclean.ui.widgets
import android.app.Dialog
import android.content.Context
import android.graphics.Bitmap
import android.text.Spanned
import android.text.TextUtils
import android.view.*
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import cn.sharesdk.framework.Platform
import cn.sharesdk.framework.Platform.ShareParams
import cn.sharesdk.framework.PlatformActionListener
import cn.sharesdk.framework.ShareSDK
import cn.sharesdk.wechat.friends.Wechat
import cn.sharesdk.wechat.moments.WechatMoments
import com.bumptech.glide.Glide
import com.mints.wisdomclean.BuildConfig
import com.mints.wisdomclean.R
import com.mints.wisdomclean.manager.UserManager
import com.mints.wisdomclean.utils.QRCodeUtil
import com.mints.wisdomclean.utils.ToastUtil
import com.mints.library.utils.GlideUtils
import kotlinx.android.synthetic.main.fragment_main_my.*
import java.util.*
class ShareSingleDialog(context: Context, val imgBitmap: Bitmap, imgBottom: Boolean) :
Dialog(context, R.style.dialog) {
private val llDialogShareWx: LinearLayout
private val llDialogShareQq: LinearLayout
private val tvDialogShareNext: TextView
private val tvDialogShareTips: TextView
private var mOnShareOKListener: OnShareOKListener? = null
private var mOnShareCompleteListener: OnShareCompleteListener? = null
private val wechat by lazy { ShareSDK.getPlatform(Wechat.NAME) }
private val wechatMoments by lazy { ShareSDK.getPlatform(WechatMoments.NAME) }
init {
setContentView(R.layout.dialog_single_share)
// 设置window属性
window?.let {
val lp = it.attributes
lp.gravity = Gravity.BOTTOM
lp.width = WindowManager.LayoutParams.MATCH_PARENT
lp.height = WindowManager.LayoutParams.WRAP_CONTENT
lp.windowAnimations = R.style.DialogAnimBottom
it.attributes = lp
}
// 设置外部不可关闭
setCancelable(false)
setCanceledOnTouchOutside(false)
setOnKeyListener { _, i, _ ->
i == KeyEvent.KEYCODE_BACK
}
llDialogShareWx = findViewById<View>(R.id.llDialogShareWx) as LinearLayout
llDialogShareQq = findViewById<View>(R.id.llDialogShareQq) as LinearLayout
tvDialogShareNext = findViewById<View>(R.id.tvDialogShareNext) as TextView
tvDialogShareTips = findViewById<View>(R.id.tvDialogShareTips) as TextView
// Glide.with(context)
// .load(imgBitmap)
// .into(object : SimpleTarget<Drawable?>() {
// override fun onResourceReady(
// resource: Drawable,
// transition: Transition<in Drawable?>?
// ) {
// findViewById<View>(R.id.item_iv_bg).setBackgroundDrawable(resource)
// }
// })
val itemIvBg = findViewById<View>(R.id.item_iv_bg) as ImageView
if (imgBottom) {
itemIvBg.setPadding(0, 0, 0, 300)
}
Glide.with(context)
.load(imgBitmap)
.into(itemIvBg)
val SHARE_URL: String =
BuildConfig.MainIp + "wxShare/toShare?shareId=" + UserManager.getInstance().getUserID()
val QRCode = QRCodeUtil.createQRCode(SHARE_URL, 50)
findViewById<ImageView>(R.id.item_iv_qrcode).setImageBitmap(QRCode)
llDialogShareWx.setOnClickListener {
shareWechat()
}
llDialogShareQq.setOnClickListener {
shareWechatFavoite()
}
tvDialogShareNext.setOnClickListener {
dismiss()
}
}
fun setOnShareOKListener(onShareOKListener: OnShareOKListener) {
mOnShareOKListener = onShareOKListener
}
interface OnShareOKListener {
fun onShareOk()
}
fun setOnShareCompleteListener(onShareCompleteListener: OnShareCompleteListener) {
mOnShareCompleteListener = onShareCompleteListener
}
interface OnShareCompleteListener {
fun onShareComplete()
}
fun setShareAvatar(imgSrc: String?) {
val avatar = findViewById<ImageView>(R.id.item_iv_avatar)
if (TextUtils.isEmpty(imgSrc)) {
avatar.setImageResource(R.mipmap.ic_my_avat)
} else {
GlideUtils.loadImageViewLoding(
context,
imgSrc,
avatar,
R.mipmap.ic_avatar,
R.mipmap.ic_avatar
)
}
}
fun setShareTitle(title: String) {
findViewById<TextView>(R.id.item_tv_name).text = title
}
fun setShareContent(content: String) {
findViewById<TextView>(R.id.item_tv_info).text = content
}
fun setShareContent(content: Spanned) {
findViewById<TextView>(R.id.item_tv_info).text = content
}
fun setShareWithNoWechatFavoiter(flag: Boolean) {
if (flag) {
llDialogShareWx.visibility = View.GONE
}
}
fun setShareTips(tips: String) {
if (!TextUtils.isEmpty(tips)) {
tvDialogShareTips.visibility = View.VISIBLE
tvDialogShareTips.text = tips
}
}
private fun shareWechat() {
val child = findViewById<View>(R.id.fl_container)
child.isDrawingCacheEnabled = true
child.drawingCacheQuality = View.DRAWING_CACHE_QUALITY_HIGH
child.buildDrawingCache()
val bitmap: Bitmap = child.drawingCache
val wechatSp = ShareParams()
wechatSp.shareType = Platform.SHARE_IMAGE
wechatSp.imageData = bitmap
if (wechat.isClientValid) {
wechat.platformActionListener = object : PlatformActionListener {
override fun onComplete(p0: Platform?, p1: Int, p2: HashMap<String, Any>?) {
mOnShareCompleteListener?.onShareComplete()
bitmap.recycle()
dismiss()
}
override fun onError(p0: Platform?, p1: Int, p2: Throwable?) {
}
override fun onCancel(p0: Platform?, p1: Int) {
}
}
mOnShareOKListener?.onShareOk()
wechat.share(wechatSp)
} else {
ToastUtil.show(context, "请先安装微信")
}
// Timer().schedule(2000) {
// bitmap.recycle()
// dismiss()
// }
}
private fun shareWechatFavoite() {
val child = findViewById<View>(R.id.fl_container)
child.isDrawingCacheEnabled = true
child.drawingCacheQuality = View.DRAWING_CACHE_QUALITY_HIGH
child.buildDrawingCache()
val bitmap: Bitmap = child.drawingCache
val wechatSp = ShareParams()
wechatSp.shareType = Platform.SHARE_IMAGE
wechatSp.imageData = bitmap
if (wechatMoments.isClientValid) {
wechatMoments.platformActionListener = object : PlatformActionListener {
override fun onComplete(p0: Platform?, p1: Int, p2: HashMap<String, Any>?) {
mOnShareCompleteListener?.onShareComplete()
bitmap.recycle()
dismiss()
}
override fun onError(p0: Platform?, p1: Int, p2: Throwable?) {
}
override fun onCancel(p0: Platform?, p1: Int) {
}
}
mOnShareOKListener?.onShareOk()
wechatMoments.share(wechatSp)
} else {
ToastUtil.show(context, "请先安装微信")
}
}
}
\ 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="#95000000" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<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="@color/my_color_gray" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="5dip" />
</shape>
\ No newline at end of file
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_above="@id/progressBar" android:layout_above="@id/progressBar"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:text="正在适配手机型号..." android:text="正在加载功能模块..."
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="16sp" /> android:textSize="16sp" />
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white" android:background="@color/black"
android:orientation="vertical"> android:orientation="vertical">
<include layout="@layout/header_layout" /> <ImageView
android:id="@+id/ic_vip_top"
<ScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white" android:scaleType="centerCrop" />
android:overScrollMode="never">
<LinearLayout <ImageView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:background="@mipmap/bg_vip_black"
android:scaleType="fitXY" />
<ImageView <ImageView
android:id="@+id/ic_vip_top" android:id="@+id/ic_vip_quit"
android:layout_width="match_parent" 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:scaleType="centerCrop"
android:src="@mipmap/ic_quit_yuan" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="bottom"
android:src="@mipmap/ic_vip_banner" /> android:layout_marginBottom="30dp"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvVip" android:id="@+id/rvVip"
...@@ -58,7 +67,7 @@ ...@@ -58,7 +67,7 @@
android:drawablePadding="6dp" android:drawablePadding="6dp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="支付宝支付" android:text="支付宝支付"
android:textColor="@color/black" android:textColor="@color/white"
android:textSize="14sp" android:textSize="14sp"
android:textStyle="bold" /> android:textStyle="bold" />
...@@ -86,7 +95,7 @@ ...@@ -86,7 +95,7 @@
android:drawablePadding="6dp" android:drawablePadding="6dp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="微信支付" android:text="微信支付"
android:textColor="@color/black" android:textColor="@color/white"
android:textSize="14sp" android:textSize="14sp"
android:textStyle="bold" /> android:textStyle="bold" />
...@@ -106,7 +115,7 @@ ...@@ -106,7 +115,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:text="试用到期后将按终身xx元自动续费,可随时关闭" android:text="试用到期后将按终身xx元自动续费,可随时关闭"
android:textColor="#47929297" android:textColor="#97ffffff"
android:textSize="10sp" /> android:textSize="10sp" />
<LinearLayout <LinearLayout
...@@ -129,7 +138,7 @@ ...@@ -129,7 +138,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="6dp" android:layout_marginStart="6dp"
android:text="点击购买即表示您同意《会员付费协议》" android:text="点击购买即表示您同意《会员付费协议》"
android:textColor="#929297" android:textColor="@color/white"
android:textSize="10sp" /> android:textSize="10sp" />
</LinearLayout> </LinearLayout>
...@@ -156,37 +165,5 @@ ...@@ -156,37 +165,5 @@
android:textSize="18sp" /> android:textSize="18sp" />
</io.supercharge.shimmerlayout.ShimmerLayout> </io.supercharge.shimmerlayout.ShimmerLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/bg_vip_center"
android:layout_marginTop="10dp"/>
<io.supercharge.shimmerlayout.ShimmerLayout
android:visibility="gone"
android:id="@+id/shimmer_bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginTop="20dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="20dp"
app:shimmer_animation_duration="1200"
app:shimmer_color="#50ffffff">
<TextView
android:id="@+id/tvVipBottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@mipmap/bg_vip_btn"
android:gravity="center"
android:text="立即开通"
android:textColor="#6A3D1E"
android:textSize="18sp" />
</io.supercharge.shimmerlayout.ShimmerLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </FrameLayout>
</LinearLayout> \ No newline at end of file
\ No newline at end of file
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:text="乐看短剧自动续费协议" android:text="河狸短视频自动续费协议"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold"></TextView> android:textStyle="bold"></TextView>
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginRight="26dp" android:layout_marginRight="26dp"
android:layout_marginBottom="30dp" android:layout_marginBottom="30dp"
android:text="乐看短剧将读取、写入(包括保存、下载、备份、上传、清理/删除、修改、扫描、检测)照片、媒体内容和文件,用于垃圾清理及加速、安全检测、文件风险扫描、本地照片、媒体内容和文件上传和备份,软件管理、下载安装、视频压缩。(使用场景以您实际触发为准)" android:text="河狸短视频将读取、写入(包括保存、下载、备份、上传、清理/删除、修改、扫描、检测)照片、媒体内容和文件,用于垃圾清理及加速、安全检测、文件风险扫描、本地照片、媒体内容和文件上传和备份,软件管理、下载安装、视频压缩。(使用场景以您实际触发为准)"
android:textSize="14sp" /> android:textSize="14sp" />
<TextView <TextView
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:text="欢迎使用乐看短剧" android:text="欢迎使用河狸短视频"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" /> android:textStyle="bold" />
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
android:layout_marginLeft="16dp" android:layout_marginLeft="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginRight="16dp" android:layout_marginRight="16dp"
android:text="欢迎使用乐看短剧,我们非常重视对您的个人信息保护,在您使用乐看短剧服务之前,请您认真阅读《用户注册协议》及《隐私政策》" android:text="欢迎使用河狸短视频,我们非常重视对您的个人信息保护,在您使用河狸短视频服务之前,请您认真阅读《用户注册协议》及《隐私政策》"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" /> android:textSize="14sp" />
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
android:layout_marginLeft="16dp" android:layout_marginLeft="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginRight="16dp" android:layout_marginRight="16dp"
android:text="我们依据最新的法律,向您说明乐看短剧软件的隐私政策,特向您推送本提示。请您阅读并充分理解相关条款。" android:text="我们依据最新的法律,向您说明河狸短视频软件的隐私政策,特向您推送本提示。请您阅读并充分理解相关条款。"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" /> android:textSize="14sp" />
......
This diff is collapsed.
...@@ -11,17 +11,23 @@ ...@@ -11,17 +11,23 @@
app:srlAccentColor="@color/black" app:srlAccentColor="@color/black"
app:srlPrimaryColor="@color/color_FDFDFD"> app:srlPrimaryColor="@color/color_FDFDFD">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_pic_list" android:id="@+id/rv_pic_list"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:minHeight="600dp" android:layout_gravity="center_horizontal"
android:overScrollMode="never" /> android:overScrollMode="never" />
</FrameLayout>
<com.scwang.smartrefresh.layout.footer.ClassicsFooter <com.scwang.smartrefresh.layout.footer.ClassicsFooter
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:srlAccentColor="@color/black" app:srlAccentColor="@color/black"
app:srlPrimaryColor="@color/color_FDFDFD"/> app:srlPrimaryColor="@color/color_FDFDFD" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout> </com.scwang.smartrefresh.layout.SmartRefreshLayout>
</FrameLayout> </FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlVedioItemRoot"
android:layout_width="110dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="4dp" android:layout_marginLeft="5dp"
android:background="@color/red" android:layout_marginRight="5dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="6dp"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="110dp"
android:layout_height="235dp" android:layout_height="150dp">
android:layout_marginLeft="6dp"
android:layout_marginRight="6dp">
<ImageView <ImageView
android:id="@+id/iv_img" android:id="@+id/ivVedioItem"
android:scaleType="centerCrop" android:layout_width="110dp"
android:layout_width="match_parent" android:layout_height="150dp"
android:layout_height="match_parent" /> android:scaleType="fitXY"
android:background="#0ff" />
<TextView <TextView
android:id="@+id/tv_hot_btn" android:id="@+id/tvVedioItemCount"
android:layout_width="134dp" android:layout_width="wrap_content"
android:layout_height="28dp" android:layout_height="wrap_content"
android:textSize="14sp" android:layout_gravity="bottom|right"
android:visibility="gone" android:layout_marginRight="6dp"
android:layout_gravity="center_horizontal|bottom" android:layout_marginBottom="8dp"
android:layout_marginBottom="24dp"
android:gravity="center" android:gravity="center"
android:textStyle="bold" android:text="143.2万"
android:textColor="@color/white" android:textColor="@color/white"
android:text="点击做同款"></TextView> android:textSize="12sp" />
<com.itheima.roundedimageview.RoundedImageView
android:id="@+id/riv_img"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
app:riv_corner_radius="5dp" />
</FrameLayout> </FrameLayout>
<TextView <TextView
android:id="@+id/tv_title" android:id="@+id/tvVedioItemTitle"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="我去平行时空"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tvVedioItemText"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="2dp"
android:layout_marginBottom="2dp"
android:ellipsize="end"
android:lines="1"
android:singleLine="true" android:singleLine="true"
android:textColor="#A7A8AA" android:text="重生 虐恋"
android:textSize="14sp" android:textColor="@color/color_939AA3"
android:textStyle="bold" /> 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"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlTopItemRoot"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:orientation="vertical">
<FrameLayout
android:layout_width="110dp"
android:layout_height="150dp">
<ImageView
android:id="@+id/ivTopItem"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:id="@+id/tvTopItemLable"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginLeft="10dp"
android:background="@mipmap/y4"
android:gravity="center"
android:textStyle="bold"
android:paddingBottom="2dp"
android:text="1"
android:textColor="@color/white"
android:textSize="12sp" />
<TextView
android:id="@+id/tvTopItemCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginLeft="6dp"
android:layout_marginBottom="8dp"
android:drawableLeft="@mipmap/ic_load"
android:drawablePadding="4dp"
android:gravity="center"
android:text="143.2万"
android:textColor="@color/white"
android:textSize="12sp" />
</FrameLayout>
<TextView
android:id="@+id/tvTopItemTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="我去平行时空"
android:textStyle="bold"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tvTopItemText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="重生 虐恋"
android:textColor="@color/color_939AA3"
android:textSize="12sp" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/item_tv" android:id="@+id/item_tv"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/color_8D8F90" android:paddingLeft="2dp"
android:background="@drawable/shape_bg_home_unselected"
android:paddingLeft="14dp"
android:textStyle="bold"
android:paddingRight="14dp"
android:paddingTop="6dp" android:paddingTop="6dp"
android:paddingRight="5dp"
android:paddingBottom="6dp" android:paddingBottom="6dp"
android:textSize="14sp" /> android:textColor="@color/color_8D8F90"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
<resources> <resources>
<string name="app_name">乐看短剧</string> <string name="app_name">河狸短视频</string>
<string name="netfail">网络异常,请检查网络</string> <string name="netfail">网络异常,请检查网络</string>
<string name="notifyTitle">提示</string> <string name="notifyTitle">提示</string>
<string name="setting">设置</string> <string name="setting">设置</string>
...@@ -23,21 +23,21 @@ ...@@ -23,21 +23,21 @@
<string name="url_falil">获取URL地址失败</string> <string name="url_falil">获取URL地址失败</string>
<string name="str_agreement_vip">尊敬的乐看短剧用户:\n <string name="str_agreement_vip">尊敬的河狸短视频用户:\n
鉴于本协议是乐看短剧用户(下称“用户”或“您”)(下称 “本公司”或“我们”)关于使用乐看短剧产品提供的自动续费委托扣款服务(下称“本服务”)所订立的协议。您使用本服务前,已经注册成为乐看短剧的用户,且已同意为使用乐看短剧及本服务的相关用户协议及其它平台规则。\n 鉴于本协议是河狸短视频用户(下称“用户”或“您”)(下称 “本公司”或“我们”)关于使用河狸短视频产品提供的自动续费委托扣款服务(下称“本服务”)所订立的协议。您使用本服务前,已经注册成为河狸短视频的用户,且已同意为使用河狸短视频及本服务的相关用户协议及其它平台规则。\n
本协议描述我们与用户之间关于本服务的使用及相关方面的权利义务。本协议构成用户使用我们所提供的本服务之先决条件,除非用户接受本协议条款,否则用户无法使用本服务,用户选择使用本服务的行为将视为同意接受本协议当中的各项条款约束。\n 本协议描述我们与用户之间关于本服务的使用及相关方面的权利义务。本协议构成用户使用我们所提供的本服务之先决条件,除非用户接受本协议条款,否则用户无法使用本服务,用户选择使用本服务的行为将视为同意接受本协议当中的各项条款约束。\n
本协议未约定的内容,以用户在使用乐看短剧时同意的相关用户协议及其它平台规则为准。 【注意】如您未满18周岁,请在监护人陪同下仔细阅读并充分理解本协议,并征得监护人的同意后使用本产品及相关服务。\n 本协议未约定的内容,以用户在使用河狸短视频时同意的相关用户协议及其它平台规则为准。 【注意】如您未满18周岁,请在监护人陪同下仔细阅读并充分理解本协议,并征得监护人的同意后使用本产品及相关服务。\n
本公司有权根据需要不定时地制定、修改本协议或各类规则,经修订的协议、规则一经公布,立即自动生效。对新协议、规则生效之后注册的用户发生法律效力,对于协议、规则生效之前注册的用户,若用户在新规则生效后继续使用本产品提供的各项服务,则表明用户已充分阅读并认可和同意遵守新的协议或规则。\n 本公司有权根据需要不定时地制定、修改本协议或各类规则,经修订的协议、规则一经公布,立即自动生效。对新协议、规则生效之后注册的用户发生法律效力,对于协议、规则生效之前注册的用户,若用户在新规则生效后继续使用本产品提供的各项服务,则表明用户已充分阅读并认可和同意遵守新的协议或规则。\n
若用户拒绝接受新的协议和规则,用户有权放弃或终止继续使用本产品提供的各项服务,但该用户应承担在本产品已经进行的交易下所应承担的任何法律责任,且应遵循该用户发生交易时有效的协议或规则内容。\n 若用户拒绝接受新的协议和规则,用户有权放弃或终止继续使用本产品提供的各项服务,但该用户应承担在本产品已经进行的交易下所应承担的任何法律责任,且应遵循该用户发生交易时有效的协议或规则内容。\n
您点击同意、接受或下一步,或您购买/开通自动续费会员服务的行为均视为您已阅读、理解并同意签署本协议。\n\n 您点击同意、接受或下一步,或您购买/开通自动续费会员服务的行为均视为您已阅读、理解并同意签署本协议。\n\n
一、连续包月服务条款确认及接纳\n 一、连续包月服务条款确认及接纳\n
本公司提供的连续包月服务涉及到的相关知识产权均归本公司所有,受中华人民共和国法律及国际公约的依法保护。本服务协议项下的条款效力范围及于本公司的一切网络服务,用户在完成注册程序并开始使用乐看短剧所提供的自动续费服务时,均应当受本服务协议下的各项条款约束。\n 本公司提供的连续包月服务涉及到的相关知识产权均归本公司所有,受中华人民共和国法律及国际公约的依法保护。本服务协议项下的条款效力范围及于本公司的一切网络服务,用户在完成注册程序并开始使用河狸短视频所提供的自动续费服务时,均应当受本服务协议下的各项条款约束。\n
一旦本协议发生修改,本公司将通过系统提示和/或信息推送和/或后台公告等形式发布,请您务必仔细阅读。如您对本协议的修改有任何问题,可以停止使用本服务并咨询客服,但需要提醒您的是,更新后的本协议自更新版本发布之日起生效。\n\n 一旦本协议发生修改,本公司将通过系统提示和/或信息推送和/或后台公告等形式发布,请您务必仔细阅读。如您对本协议的修改有任何问题,可以停止使用本服务并咨询客服,但需要提醒您的是,更新后的本协议自更新版本发布之日起生效。\n\n
二、自动续费服务相关说明\n 二、自动续费服务相关说明\n
2.1 本服务是基于用户对自动续费需求,在用户已开通本服务的前提下,为避免用户因疏忽或其他原因导致未能及时续费造成损失而推出的服务。用户开通该服务后,即授权本公司可在会员自动续费期限到期前48小时和到期后,委托支付渠道(如支付宝、微信等)代扣下一个计费周期的费用,部分由运营商或支付渠道根据实际情况自行决定扣费周期的以实际扣费时间为准,如手机话费渠道、ios渠道等。选择自动续费的用户,即同意支付渠道在不验证账户密码、支付密码、短信校验码等信息的情况下从账户中扣划下一个计费周期的费用。一旦扣款成功,本公司将开通下一个计费周期的服务,并同时相应延长服务期限。该服务实现的前提是用户已将其乐看短剧用户账号与上述账户绑定,且可成功从其上述账户中扣款。计费周期:如月度、季度、年度等(具体以乐看短剧订购页面提供的为准),会员可自行选择。\n 2.1 本服务是基于用户对自动续费需求,在用户已开通本服务的前提下,为避免用户因疏忽或其他原因导致未能及时续费造成损失而推出的服务。用户开通该服务后,即授权本公司可在会员自动续费期限到期前48小时和到期后,委托支付渠道(如支付宝、微信等)代扣下一个计费周期的费用,部分由运营商或支付渠道根据实际情况自行决定扣费周期的以实际扣费时间为准,如手机话费渠道、ios渠道等。选择自动续费的用户,即同意支付渠道在不验证账户密码、支付密码、短信校验码等信息的情况下从账户中扣划下一个计费周期的费用。一旦扣款成功,本公司将开通下一个计费周期的服务,并同时相应延长服务期限。该服务实现的前提是用户已将其河狸短视频用户账号与上述账户绑定,且可成功从其上述账户中扣款。计费周期:如月度、季度、年度等(具体以河狸短视频订购页面提供的为准),会员可自行选择。\n
2.2 自动续费具体指基于2.1的前提下,本公司通过上述账户收取用户下一计费周期费用的扣费方式。用户需保证本公司可以从上述账户扣款成功,如因账户可扣款余额不足等其他用户自身原因导致的续费失败,应由用户自行承担责任。\n 2.2 自动续费具体指基于2.1的前提下,本公司通过上述账户收取用户下一计费周期费用的扣费方式。用户需保证本公司可以从上述账户扣款成功,如因账户可扣款余额不足等其他用户自身原因导致的续费失败,应由用户自行承担责任。\n
2.3 自动续费服务所涉及或可能衍生的相关一切知识产权权利均由本公司依法所有,用户不得因使用自动续费服务而自动获得其任一或全部权利。\n 2.3 自动续费服务所涉及或可能衍生的相关一切知识产权权利均由本公司依法所有,用户不得因使用自动续费服务而自动获得其任一或全部权利。\n
2.4 本公司将根据自身产品和服务的调整以及中华人民共和国有关法律、法规的变化,不断地完善服务质量并依此修改服务条款。本公司有权就服务协议随时更新,并在乐看短剧产品相应服务页面进行显著、及时的提示。\n 2.4 本公司将根据自身产品和服务的调整以及中华人民共和国有关法律、法规的变化,不断地完善服务质量并依此修改服务条款。本公司有权就服务协议随时更新,并在河狸短视频产品相应服务页面进行显著、及时的提示。\n
2.5 本公司建议用户,定期关注本服务协议的条款。当用户认为本服务协议之任一或全部条款的调整不可接受时,请及时终止对本公司所提供之相关服务。\n\n 2.5 本公司建议用户,定期关注本服务协议的条款。当用户认为本服务协议之任一或全部条款的调整不可接受时,请及时终止对本公司所提供之相关服务。\n\n
三、自动续费服务协议有效期限及终止\n 三、自动续费服务协议有效期限及终止\n
3.1 本协议自用户选择接受并使用本服务后生效。除非本公司或用户主动明确地取消了自动续费,否则用户获得的自动续费服务视为持续有效、不受次数限制。\n 3.1 本协议自用户选择接受并使用本服务后生效。除非本公司或用户主动明确地取消了自动续费,否则用户获得的自动续费服务视为持续有效、不受次数限制。\n
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
四、自动续费服务双方的权利和义务\n 四、自动续费服务双方的权利和义务\n
4.1 本公司扣除的下一计费周期费用,并同时延长对应服务有效期。\n 4.1 本公司扣除的下一计费周期费用,并同时延长对应服务有效期。\n
4.2 如在扣费过程出现问题,本公司应与用户密切配合查明原因,各自承担己方过错造成的损失;若因双方各自存在不均等过错造成损失,应由双方按过错程度承担对应程度的责任;双方共负责任的,由双方均摊责任。\n 4.2 如在扣费过程出现问题,本公司应与用户密切配合查明原因,各自承担己方过错造成的损失;若因双方各自存在不均等过错造成损失,应由双方按过错程度承担对应程度的责任;双方共负责任的,由双方均摊责任。\n
4.3 本公司可根据自身业务开展或技术升级等情况变更或修改本协议的有关服务内容、规则及条款。本公司在做出上述变更或修改前,在乐看短剧产品相应服务页面进行显著、及时的提示。\n 4.3 本公司可根据自身业务开展或技术升级等情况变更或修改本协议的有关服务内容、规则及条款。本公司在做出上述变更或修改前,在河狸短视频产品相应服务页面进行显著、及时的提示。\n
4.4 本服务由用户自主选择是否取消,若用户未取消服务,则视为用户同意本公司继续按照一定规则进行续费扣款(长期有效、不受次数限制)。一旦完成扣款,本公司将为用户开通下一个计费周期服务。\n 4.4 本服务由用户自主选择是否取消,若用户未取消服务,则视为用户同意本公司继续按照一定规则进行续费扣款(长期有效、不受次数限制)。一旦完成扣款,本公司将为用户开通下一个计费周期服务。\n
4.5 对于所选择的支付渠道,用户有义务定期关注并确保该支付方式的账户下有充足的余额用于满足自动续费服务的应用。如因前述原因(包括但不限于余额不足)而导致无法完成自动续费服务,则本公司有权在不再作另行通知的前提下,暂停用户通过自动续费服务所接入的相关服务。\n\n 4.5 对于所选择的支付渠道,用户有义务定期关注并确保该支付方式的账户下有充足的余额用于满足自动续费服务的应用。如因前述原因(包括但不限于余额不足)而导致无法完成自动续费服务,则本公司有权在不再作另行通知的前提下,暂停用户通过自动续费服务所接入的相关服务。\n\n
五、退费\n 五、退费\n
......
...@@ -25,10 +25,10 @@ android.nonTransitiveRClass=true ...@@ -25,10 +25,10 @@ android.nonTransitiveRClass=true
DEBUG_URL="https://api.mints-tech.cn/camera-api/" DEBUG_URL="https://api.mints-tech.cn/camera-api/"
RELEASE_URL="https://api.mints-tech.cn/camera-api/" RELEASE_URL="https://api.mints-tech.cn/camera-api/"
RELEASE_KEY_PASSWORD=mintswisdomclean RELEASE_KEY_PASSWORD=mintshelivideo
RELEASE_KEY_ALIAS=mints_wisdomclean RELEASE_KEY_ALIAS=mints_helivideo
RELEASE_STORE_PASSWORD=mintswisdomclean RELEASE_STORE_PASSWORD=mintshelivideo
RELEASE_STORE_FILE=mints_wisdomclean.jks RELEASE_STORE_FILE=mints_helivideo.jks
#ShareSDK #ShareSDK
RELEASE_SHARESDK_KEY=381ca97ef616d RELEASE_SHARESDK_KEY=381ca97ef616d
...@@ -42,9 +42,6 @@ WEIXIN_APP_SECRET =91f91c0721bd989cf8b9c9b8dc8a5e9c ...@@ -42,9 +42,6 @@ WEIXIN_APP_SECRET =91f91c0721bd989cf8b9c9b8dc8a5e9c
#umeng #umeng
RELEASE_UMENG_KEY=63c0fd97d64e68613917170f RELEASE_UMENG_KEY=63c0fd97d64e68613917170f
#TalkingData
RELEASE_TALKING_DATA_KEY="8B400B45ABBB47D882B2C2E69E6A3662"
GROMORE_APP_ID="5404192" GROMORE_APP_ID="5404192"
GROMORE_SPLASH_CODE="102371299" GROMORE_SPLASH_CODE="102371299"
GROMORE_VIDEO_CODE="1" GROMORE_VIDEO_CODE="1"
\ 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