一键连新增 充值更改

This commit is contained in:
level 2025-10-17 13:09:41 +08:00
parent 8dca2e837d
commit 87bd1e60b7
12 changed files with 543 additions and 350 deletions

View File

@ -10,20 +10,24 @@
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!-- 适配Android 14以上 -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<!-- 适配Android 14以上 google 上架需要注意相关政策 -->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<application
android:name=".app.MainApplication"
android:fullBackupContent="@xml/full_backup_content"

View File

@ -61,7 +61,7 @@ class VIPRechargeAdapter : RecyclerView.Adapter<VIPRechargeAdapter.VIPRechargeVi
context!!.resources.getString(R.string.laPay) + "${rechargeInfo.grade!![position].amount}" + context!!.resources.getString(
R.string.Yuan
).replace("$", "")
holder.cyn.text = context!!.resources.getString(R.string.everyDay)
holder.cyn.text = "¥"
if (rechargeInfo.grade!![position].days != null) {
val giftDay = rechargeInfo.grade?.getOrNull(position)?.giftDay ?: 0

View File

@ -7,6 +7,8 @@ import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.os.Environment
import android.provider.Settings
import android.text.TextUtils
import android.view.View
import android.widget.FrameLayout
@ -264,9 +266,36 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc
}
7->{
// var a=0
// var c=1/a
checkPermission()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (Environment.isExternalStorageManager()) {
showLoading(
resources.getString(R.string.UploadingInProgress),
requireActivity()
)
// 已授予权限
val directory: File? = requireActivity().getExternalFilesDir("CrashLog")
if (directory != null) {
val allFilePath = getAllFilePath(directory.path)
if (allFilePath.isNotEmpty()) {
mainAtyVM.getUploadParameters()
} else {
android.util.Log.i("checkPermission", "allFilePath is empty")
hideLoading()
RxToast.info(resources.getString(R.string.NoErrorLogs))
}
} else {
hideLoading()
RxToast.error(resources.getString(R.string.NoErrorLogs))
}
} else {
// 未授予权限,跳转到设置页面
val intent = Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)
startActivity(intent)
hideLoading()
}
} else {
checkPermission()
}
}
8->{
val intent = Intent(requireContext(),AgreementAndPrivacyActivity::class.java)

View File

@ -4,12 +4,14 @@ import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Build
import android.text.TextUtils
import android.view.View
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.annotation.RequiresApi
import androidx.appcompat.widget.AppCompatImageView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.net.toUri
@ -65,6 +67,8 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import java.text.DecimalFormat
import java.text.SimpleDateFormat
import java.util.Locale
class vipFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatchers.IO) {
@ -78,6 +82,9 @@ class vipFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatchers
private var selectedGrade: Grade? = null
private lateinit var rxDialogShapeLoading: RxDialogShapeLoading
private lateinit var tvUserName: TextView
private lateinit var tvUserTimeEnd: TextView
private lateinit var tvTxtShowLink:TextView
private var outTradeNo = ""
private var selectedGradeID :Int=0
//stripePay 支付
@ -113,6 +120,11 @@ class vipFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatchers
mainAtyVM = ViewModelProvider(this)[MainAtyVM::class.java]
viewModel = ViewModelProvider(this)[RechargeViewModel::class.java]
observe(this, viewModel)
val userName =
MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME)
tvUserName.text=userName
setExpireDate()
//获取充值列表
val username = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
@ -127,7 +139,17 @@ class vipFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatchers
tvPay=view.findViewById(R.id.tvPay)
tvRechargeRecord=view.findViewById(R.id.tvRechargeRecord)
clCustom=view.findViewById(R.id.clCustom)
tvUserName=view.findViewById(R.id.tvUserName)
tvUserTimeEnd=view.findViewById(R.id.tvUserTimeEnd)
tvTxtShowLink=view.findViewById(R.id.tvTxtShowLink)
swipeLayout.setColorSchemeColors(Color.rgb(47, 223, 189))
tvTxtShowLink.setOnClickListener {
startActivity(Intent(requireActivity(), CustomerServiceWebView::class.java))
}
swipeLayout.setOnRefreshListener {
selectedGrade = null
val username = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
@ -548,4 +570,75 @@ class vipFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatchers
baseLoadingView?.cancel()
}
}
fun setExpireDate() {
val isExpire = checkExpire()
var endTimeInfo = "--"
if (isExpire) {
if (isAdded) {
endTimeInfo = resources.getString(R.string.AccountExpired)
}
} else {
val validPeriod = MMKV.defaultMMKV().decodeLong(BZYConstants.MMKV_KEY_VPN_VALID_PERIOD)
val decodeString = MMKV.defaultMMKV().decodeString(BZYConstants.languageInfo, "")
if (decodeString.isNullOrEmpty()) {
//获取当前系统语言
val config = resources.configuration
val language = config.locale.language
if (language.equals("en")) {
val dateFormat = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val localEN = Locale.ENGLISH
SimpleDateFormat("MM/dd/yyyy HH:mm", localEN)
} else {
val localEN = Locale.ENGLISH
SimpleDateFormat("MM/dd/yyyy HH:mm", localEN)
}
endTimeInfo = dateFormat.format(validPeriod)
} else {
val dateFormat = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
SimpleDateFormat("yyyy年MM月dd日 HH:mm")
} else {
SimpleDateFormat("yyyy年MM月dd日 HH:mm")
}
endTimeInfo = dateFormat.format(validPeriod)
}
} else {
if (decodeString == "English") {
val dateFormat = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val locale = Locale.ENGLISH
SimpleDateFormat("MM/dd/yyyy HH:mm", locale)
} else {
val locale = Locale.ENGLISH
SimpleDateFormat("MM/dd/yyyy HH:mm", locale)
}
endTimeInfo = dateFormat.format(validPeriod)
} else {
val dateFormat = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
SimpleDateFormat("yyyy年MM月dd日 HH:mm")
} else {
SimpleDateFormat("yyyy年MM月dd日 HH:mm")
}
endTimeInfo = dateFormat.format(validPeriod)
}
}
}
tvUserTimeEnd.text =resources.getString(R.string.expire_date)+endTimeInfo
}
private fun checkExpire(): Boolean {
val validPeriod = MMKV.defaultMMKV().decodeLong(BZYConstants.MMKV_KEY_VPN_VALID_PERIOD)
if (validPeriod > 0) {
val nowTime = System.currentTimeMillis()
Log.d("validPeriod==>$validPeriod, nowTime==>$nowTime")
if (validPeriod >= nowTime) {
return false
}
}
return true
}
}

View File

@ -0,0 +1,19 @@
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- This is the main color -->
<item>
<shape>
<!-- 边框颜色 -->
<gradient android:startColor="#FFFA6407" android:endColor="#FFFF9345" android:angle="0"/>
<corners android:radius="16dp"/>
</shape>
</item>
<!-- 给View的上 左 右设置8dp的边框 -->
<item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="1dp" >
<shape>
<!-- View填充颜色 -->
<solid android:color="#fff" />
<corners android:radius="16dp"/>
</shape>
</item>
</layer-list>

View File

@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="65dp"
android:height="20dp"
android:viewportWidth="65"
android:viewportHeight="20">
<path
android:pathData="M0,10C0,4.477 4.477,0 10,0H32.5H61C63.209,0 65,1.791 65,4V10C65,15.523 60.523,20 55,20H0V10Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="0"
android:startY="10"
android:endX="65"
android:endY="10"
android:type="linear">
<item android:offset="0" android:color="#FFC36BBF"/>
<item android:offset="1" android:color="#FFFF465E"/>
</gradient>
</aapt:attr>
</path>
</vector>

View File

@ -7,7 +7,7 @@ android:color="#BFD5D5D5" >
android:angle="360"
android:endColor="@color/white"
android:startColor="@color/white" />
<corners android:topRightRadius="30dp" android:topLeftRadius="30dp" android:bottomRightRadius="0dp" android:bottomLeftRadius="0dp"/>
<corners android:topRightRadius="13dp" android:topLeftRadius="13dp" android:bottomRightRadius="0dp" android:bottomLeftRadius="0dp"/>
</shape>
</item>
</ripple>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#BFD5D5D5" >
<item>
<shape>
<gradient
android:angle="360"
android:endColor="@color/white"
android:startColor="@color/white" />
<corners android:radius="13dp"/>
</shape>
</item>
</ripple>

View File

@ -13,7 +13,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="12dp"
android:layout_marginTop="48dp"
>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aiBack"
@ -52,362 +52,367 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clUser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@+id/clTitle"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clCustom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/setting_head_bg"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/userIcon"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@mipmap/yjl_usericon"
android:layout_marginTop="18dp"
android:layout_marginBottom="18dp"
android:layout_marginStart="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/userIcon"
app:layout_constraintEnd_toStartOf="@+id/aivStart"
app:layout_constraintTop_toTopOf="@+id/userIcon"
app:layout_constraintBottom_toBottomOf="@+id/userIcon"
android:layout_marginStart="10dp"
android:layout_marginEnd="5dp"
android:orientation="vertical"
>
<TextView
android:id="@+id/tvUserName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ID:33333AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
android:textColor="#FF333333"
android:textSize="16sp"
android:maxLines="1"
android:ellipsize="end"
android:drawableRight="@drawable/ic_s_copy"
android:drawablePadding="5dp"
/>
<TextView
android:id="@+id/tvUserTimeEnd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ID:33333AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
android:textColor="#FFF96B10"
android:textSize="16sp"
android:layout_marginTop="10dp"
android:maxLines="1"
android:ellipsize="end"
android:drawableRight="@drawable/ic_refresh"
android:drawablePadding="5dp"
/>
</LinearLayout>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aivStart"
android:layout_width="49dp"
android:layout_height="49dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBaseline_toBottomOf="parent"
android:layout_marginEnd="5dp"
app:layout_constraintEnd_toEndOf="parent"
android:src="@mipmap/vipbg"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/clTitle"
app:layout_constraintBottom_toBottomOf="parent"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@drawable/yjl_login_bg"
app:layout_constraintBottom_toTopOf="@+id/clButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/clUser"
android:layout_marginBottom="12dp"
>
android:layout_height="match_parent">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="12dp"
android:text="@string/SelectDuration"
android:textColor="@color/black_4F4F4F"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeLayout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toTopOf="@+id/clCustomTxt"
app:layout_constraintTop_toBottomOf="@+id/textView3"
tools:layout_editor_absoluteX="10dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvRechargeList"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clCustomTxt"
android:id="@+id/clUser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/tvPay"
android:layout_marginBottom="14dp"
>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aivNosee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/vector_notice_pick"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginStart="16dp"
/>
<TextView
android:id="@+id/tvTxtShow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/aivNosee"
android:text="@string/VipSerTxt"
android:layout_marginStart="5dp"
android:textColor="#FF333333"
android:textSize="14sp"
android:padding="5dp"
/>
<TextView
android:id="@+id/tvTxtShowLink"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginEnd="5dp"
android:text="@string/LinekCustom"
android:textColor="#FFFC4863"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tvTxtShow"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tvPay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="14dp"
android:background="@drawable/oc_login_bg"
android:gravity="center"
android:paddingTop="13dp"
android:paddingBottom="13dp"
android:text="开通VIP (¥36.8)"
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:background="@drawable/yjl_login_bg"
>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aivTabTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/img_line_bg"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginStart="70dp"
android:layout_marginEnd="70dp"
android:layout_marginTop="8dp"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/aivTabTxt"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:gravity="center"
android:orientation="horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="8dp"
app:layout_constraintTop_toTopOf="parent"
>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clCustom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
android:background="@mipmap/yjl_vip_hear"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/buton_a" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/jstime"
android:textColor="#FF5E2A12"
android:textSize="14sp"
android:id="@+id/userIcon"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@mipmap/yjl_usericon"
android:layout_marginTop="18dp"
android:layout_marginBottom="18dp"
android:layout_marginStart="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
<TextView
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="@string/jstimeStr"
android:textColor="#FF5E2A12"
android:textSize="14sp"
app:layout_constraintStart_toEndOf="@+id/userIcon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/userIcon"
app:layout_constraintBottom_toBottomOf="@+id/userIcon"
android:layout_marginStart="10dp"
android:layout_marginEnd="108dp"
android:orientation="vertical"
>
<TextView
android:id="@+id/tvUserName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ID:33333AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
android:textColor="#FF333333"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:drawableRight="@drawable/ic_s_copy"
android:drawablePadding="5dp"
/>
/>
<TextView
android:id="@+id/tvUserTimeEnd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ID:33333AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
android:textColor="#FFF96B10"
android:textSize="14sp"
android:layout_marginTop="5dp"
android:maxLines="1"
android:ellipsize="end"
android:drawableRight="@drawable/ic_refresh"
android:drawablePadding="5dp"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/linearLayout2"
app:layout_constraintStart_toEndOf="@+id/linearLayout"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/buton_b" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/jstime"
android:textColor="#FF5E2A12"
android:textSize="14sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="@string/jstimeStr"
android:textColor="#FF5E2A12"
android:textSize="14sp"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button_c" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/jstime"
android:textColor="#FF5E2A12"
android:textSize="14sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="@string/jstimeStr"
android:textColor="#FF5E2A12"
android:textSize="14sp"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clVipPay"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@drawable/yjl_login_bg_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/clUser"
android:layout_marginBottom="5dp"
>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="12dp"
android:text="@string/SelectDuration"
android:textColor="@color/black_4F4F4F"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeLayout"
android:layout_width="match_parent"
android:layout_height="350dp"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toTopOf="@+id/clCustomTxt"
app:layout_constraintTop_toBottomOf="@+id/textView3"
tools:layout_editor_absoluteX="10dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvRechargeList"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clCustomTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/tvPay"
android:layout_marginBottom="14dp"
>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aivNosee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/vector_notice_pick"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginStart="16dp"
/>
<TextView
android:id="@+id/tvTxtShow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/aivNosee"
android:text="@string/VipSerTxt"
android:layout_marginStart="5dp"
android:textColor="#FF333333"
android:textSize="14sp"
android:padding="5dp"
/>
<TextView
android:id="@+id/tvTxtShowLink"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginEnd="5dp"
android:text="@string/LinekCustom"
android:textColor="#FFFC4863"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tvTxtShow"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tvPay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="14dp"
android:background="@drawable/oc_login_bg"
android:gravity="center"
android:paddingTop="13dp"
android:paddingBottom="13dp"
android:text="开通VIP (¥36.8)"
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/clVipPay"
android:background="@drawable/yjl_login_bg"
android:visibility="visible"
android:layout_marginTop="12dp"
>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aivTabTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/img_line_bg"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginStart="70dp"
android:layout_marginEnd="70dp"
android:layout_marginTop="8dp"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/aivTabTxt"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:gravity="center"
android:orientation="horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="8dp"
>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/buton_a" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/jstime"
android:textColor="#FF5E2A12"
android:textSize="12sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="@string/jstimeStr"
android:textColor="#FF908F8D"
android:textSize="10sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/linearLayout2"
app:layout_constraintStart_toEndOf="@+id/linearLayout"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/buton_b" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/liuliangStr"
android:textColor="#FF5E2A12"
android:textSize="12sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="@string/liuliangStrEd"
android:textColor="#FF908F8D"
android:textSize="10dp"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button_c" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/liuliangStrAA"
android:textColor="#FF5E2A12"
android:textSize="14sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="@string/liuliangStrEdAAA"
android:textColor="#FF908F8D"
android:textSize="10sp"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -20,7 +20,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:background="@drawable/oc_language_bg"
android:background="@drawable/vip_item_nochoose_bg"
android:layout_marginTop="@dimen/dp_10"
>
<LinearLayout
@ -40,8 +40,8 @@
android:id="@+id/tvDayTxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#B36C1B"
android:textSize="21sp"
android:textColor="#FF333333"
android:textSize="16sp"
android:textStyle="bold"
android:layout_gravity="center"
android:gravity="center"
@ -59,7 +59,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/laPay"
android:text="@string/PAYiNG"
android:textColor="#FF8A04"
android:textSize="14sp"
@ -68,7 +68,8 @@
android:id="@+id/tvDayAverage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FF8A04"
android:textColor="#FFF89F25"
android:layout_marginStart="5dp"
android:text="36.8"
android:textSize="18sp"
android:layout_gravity="center"
@ -80,7 +81,7 @@
android:id="@+id/tvDiscount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/gray_828282"
android:textColor="#FF9EA3A5"
android:text="¥36.8/月"
android:textSize="14sp"
android:layout_marginTop="5dp"
@ -96,22 +97,25 @@
android:id="@+id/clRandomlySend"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/pay_title_bg"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="parent"
android:background="@drawable/vip_item_zs_bg"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
>
<TextView
android:id="@+id/tvRandomlySend"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:gravity="center"
android:text=""
android:maxWidth="80dp"
android:maxLines="1"
android:ellipsize="end"
android:layout_marginStart="7dp"
android:layout_marginEnd="7dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@color/white"
android:textSize="12sp"

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

View File

@ -468,4 +468,9 @@
<string name="NewNotice">最新通知</string>
<string name="vipTimeStrEd">你的会员还有$天到期</string>
<string name="goEnd">去完成</string>
<string name="liuliangStr">流量限制</string>
<string name="liuliangStrEd">不限流量</string>
<string name="liuliangStrAA">解锁流媒体</string>
<string name="liuliangStrEdAAA">智能连接</string>
<string name="PAYiNG">¥</string>
</resources>