diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ba840a2..af5f5c8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,6 +19,11 @@ + + + + + pm.queryAll().forEach { itemPro -> @@ -218,7 +213,7 @@ class MainActivity : BaseActivity() { aivHome.setOnClickListener { if (homeFragment == null) homeFragment = HomeFragment() showFragment(homeFragment!!) - aivHome.setImageResource(R.drawable.yjl_vip_page_choose) + aivHome.setImageResource(R.drawable.yjl_home_page_choose) aivCenter.setImageResource(R.drawable.yjl_user_page) aivVip.setImageResource(R.drawable.yjl_vip_page) } @@ -235,8 +230,8 @@ class MainActivity : BaseActivity() { if (activityFragment == null) activityFragment = vipFragment() showFragment(activityFragment!!) aivHome.setImageResource(R.drawable.yjl_home_page) - aivCenter.setImageResource(R.drawable.yjl_vip_page) - aivVip.setImageResource(R.drawable.yjl_user_page_choose) + aivCenter.setImageResource(R.drawable.yjl_user_page) + aivVip.setImageResource(R.drawable.yjl_vip_page_choose) } } @@ -304,12 +299,13 @@ class MainActivity : BaseActivity() { data.data.data.list[0].redirectLink.let { if (activityDialog == null) { activityDialog = - ActivityViewDialog(this, data.data.data.list[0].redirectLink) + ActivityViewDialog(this, data.data.data.list[0].copyContent) activityDialog?.setOnDialogClickListener(object : OnDialogClickListener { override fun onRechargeClickListener() { //跳转到支付界面 goBackupRechargeWeb() + activityDialog?.dismiss() } override fun onCancelClickListener() { @@ -362,7 +358,7 @@ class MainActivity : BaseActivity() { val data = it.data if (data?.notice != null && lastNotice != data.notice) { - val userName ="AAA"+MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME) + val userName =MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME) android.util.Log.i("data::::","notice::"+data.notice) if(data.notice.isEmpty()){ val homeNoticeDialog = NoticeViewDialog(this@MainActivity, "暂无新通知",userName) @@ -726,9 +722,14 @@ class MainActivity : BaseActivity() { } fun goBackupRechargeWeb() { - startActivityForResult( - Intent(this@MainActivity, MemberRechargeActivity::class.java), - REQUEST_CODE_PAY_WEB_VIEW_ACTIVITY - ) + if (activityFragment == null) activityFragment = vipFragment() + showFragment(activityFragment!!) + aivHome.setImageResource(R.drawable.yjl_home_page) + aivCenter.setImageResource(R.drawable.yjl_vip_page) + aivVip.setImageResource(R.drawable.yjl_user_page_choose) +// startActivityForResult( +// Intent(this@MainActivity, MemberRechargeActivity::class.java), +// REQUEST_CODE_PAY_WEB_VIEW_ACTIVITY +// ) } } \ No newline at end of file diff --git a/app/src/main/java/com/yingmao/clash/act/SettingActivity.kt b/app/src/main/java/com/yingmao/clash/act/SettingActivity.kt index d000984..9e363e0 100644 --- a/app/src/main/java/com/yingmao/clash/act/SettingActivity.kt +++ b/app/src/main/java/com/yingmao/clash/act/SettingActivity.kt @@ -76,6 +76,7 @@ class SettingActivity : BaseActivity() { private lateinit var clFowdPsw:ConstraintLayout private lateinit var clDeletePsw:ConstraintLayout private lateinit var tvExit:TextView + private lateinit var aiBack:AppCompatImageView private lateinit var mainAtyVM: MainAtyVM @RequiresApi(Build.VERSION_CODES.R) @@ -99,7 +100,10 @@ class SettingActivity : BaseActivity() { clFowdPsw=findViewById(R.id.clFowdPsw) clDeletePsw=findViewById(R.id.clDeletePsw) tvExit=findViewById(R.id.tvExit) - + aiBack=findViewById(R.id.aiBack) + aiBack.setOnClickListener { + finish() + } clChanPsw.setOnClickListener { startActivity(Intent(this@SettingActivity, ChangePwdActivity::class.java)) } diff --git a/app/src/main/java/com/yingmao/clash/fragment/BaseFragment.kt b/app/src/main/java/com/yingmao/clash/fragment/BaseFragment.kt index fda169e..8ca45aa 100644 --- a/app/src/main/java/com/yingmao/clash/fragment/BaseFragment.kt +++ b/app/src/main/java/com/yingmao/clash/fragment/BaseFragment.kt @@ -24,7 +24,6 @@ import java.util.HashSet abstract class BaseFragment :Fragment() { - var baseLoading: RxDialogShapeLoading? = null override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -68,21 +67,6 @@ abstract class BaseFragment :Fragment() { open fun httpSuccess(httpStatus: HttpStatus.Success){} open fun httpFailure(httpStatus: HttpStatus.Failure){} - fun showLoading(str: String, context: Context) { - val message = if (TextUtils.isEmpty(str)) "进行中..." else str - if (baseLoading == null) { - baseLoading = RxDialogShapeLoading(context) - } - baseLoading?.setMessage(message) - if (baseLoading?.isShowing == false) { - baseLoading?.show() - } - } - fun hideLoading() { - if (baseLoading != null && baseLoading?.isShowing == true) { - baseLoading?.cancel() - } - } @Synchronized fun switchServer2(): Boolean { var isChange = false diff --git a/app/src/main/java/com/yingmao/clash/fragment/home/HomeFragment.kt b/app/src/main/java/com/yingmao/clash/fragment/home/HomeFragment.kt index 82c4ec8..c7b755b 100644 --- a/app/src/main/java/com/yingmao/clash/fragment/home/HomeFragment.kt +++ b/app/src/main/java/com/yingmao/clash/fragment/home/HomeFragment.kt @@ -80,7 +80,6 @@ import kotlin.coroutines.suspendCoroutine open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatchers.IO){ companion object { - const val REQUEST_CONNECT = 1 const val CHECK_NODE_REQUEST_CODE = 2 const val CLASH_STARTED = 11 const val CLASH_STARTING = 22 @@ -292,7 +291,7 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa } return@setOnClickListener } - showLoad(resources.getString(R.string.Starting), requireContext()) + showLoading(resources.getString(R.string.Starting), requireContext()) startClash(true) } } @@ -390,7 +389,7 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa withContext(Dispatchers.Main) { tvClick.text=resources.getString(R.string.Accelerating) ivAccelerate.setImageResource(R.mipmap.yjl_home_clink_select_bg) - hideLoad() + hideLoading() } } @@ -500,6 +499,7 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa val isRunning = data?.extras?.getBoolean(BZYConstants.EXTRA_KEY_IS_RUNING) Log.d("onActivityResult ==>>> Node:${node}") node?.let { + setNodeNameAndImg(it) if (clashRunning) { Log.d("clashRunning $clashRunning") } else { @@ -515,6 +515,7 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa @Deprecated("Deprecated in Java") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + android.util.Log.i("AAAAAAAAAAAAAAA","data:::${data}") if (requestCode == 2) { nodeChooseBase(data) } @@ -839,18 +840,18 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa } } - fun showLoad(str: String, context: Context) { + fun showLoading(str: String, context: Context) { val message = if (TextUtils.isEmpty(str)) "进行中..." else str if (baseLoadingView == null) { baseLoadingView = RxDialogShapeLoading(context) } - baseLoading?.setMessage(message) - if (baseLoading?.isShowing == false) { - baseLoading?.show() + baseLoadingView?.setMessage(message) + if (baseLoadingView?.isShowing == false) { + baseLoadingView?.show() } } - fun hideLoad() { + fun hideLoading() { if (baseLoadingView != null && baseLoadingView?.isShowing == true) { baseLoadingView?.cancel() } diff --git a/app/src/main/java/com/yingmao/clash/fragment/setting/SettingFragment.kt b/app/src/main/java/com/yingmao/clash/fragment/setting/SettingFragment.kt index ef6a708..d8989aa 100644 --- a/app/src/main/java/com/yingmao/clash/fragment/setting/SettingFragment.kt +++ b/app/src/main/java/com/yingmao/clash/fragment/setting/SettingFragment.kt @@ -8,22 +8,17 @@ import android.content.Intent import android.os.Build import android.os.Bundle import android.text.TextUtils -import android.text.method.LinkMovementMethod 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.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.afollestad.materialdialogs.MaterialDialog -import com.afollestad.materialdialogs.customview.customView -import com.afollestad.materialdialogs.customview.getCustomView import com.alibaba.sdk.android.oss.ClientException import com.alibaba.sdk.android.oss.OSSClient import com.alibaba.sdk.android.oss.ServiceException @@ -34,6 +29,9 @@ import com.alibaba.sdk.android.oss.internal.OSSAsyncTask import com.alibaba.sdk.android.oss.model.PutObjectRequest import com.alibaba.sdk.android.oss.model.PutObjectResult import com.cncat.vpn.common.log.Log +import com.hjq.permissions.OnPermissionCallback +import com.hjq.permissions.Permission +import com.hjq.permissions.XXPermissions import com.orhanobut.logger.Logger import com.tencent.mmkv.MMKV import com.yingmao.clash.BuildConfig @@ -42,7 +40,6 @@ import com.yingmao.clash.act.ActivityActivity import com.yingmao.clash.act.AgreementAndPrivacyActivity import com.yingmao.clash.act.BandPhoneActivity import com.yingmao.clash.act.MainActivity -import com.yingmao.clash.act.MainActivity.Companion.isVip import com.yingmao.clash.act.MainActivity.Companion.profileBinder import com.yingmao.clash.act.MainActivity.Companion.setSub2 import com.yingmao.clash.act.MainActivity.Companion.subUrl @@ -70,7 +67,6 @@ import com.yingmao.clash.view.dialog.DialogDoMainChoose import com.yingmao.clash.view.dialog.NoticeViewDialog import com.yingmao.clash.view.dialog.RxDialogShapeLoading import com.yingmao.clash.vm.MainAtyVM -import com.yingmao.clash.webview.CustomerServiceWebView import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.MainScope @@ -83,6 +79,7 @@ import java.time.Instant import java.time.temporal.ChronoUnit import java.util.Date import java.util.Locale +import java.util.concurrent.TimeUnit import kotlin.time.Duration.Companion.seconds @@ -99,7 +96,7 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc private lateinit var tvVersion: TextView private lateinit var tvUserTimeEnd: TextView - + private var baseLoadingView: RxDialogShapeLoading? = null private lateinit var rvSettingTab:RecyclerView @@ -257,20 +254,6 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc } 6->{ - initializationRepair() - - - } - 7->{ - - - } - 8->{ - val intent = Intent(requireContext(),AgreementAndPrivacyActivity::class.java) - intent.putExtra(BZYConstants.EXTRA_KEY_AGREEMENT, BZYConstants.EXTRA_PRIVACY_AGREEMENT) - startActivity(intent) - } - 9->{ if(clashRunning){ RxToast.info(getString(R.string.SwitchingSource)) }else{ @@ -278,6 +261,20 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc //源切换 showDomainList() } + + } + 7->{ +// var a=0 +// var c=1/a + checkPermission() + } + 8->{ + val intent = Intent(requireContext(),AgreementAndPrivacyActivity::class.java) + intent.putExtra(BZYConstants.EXTRA_KEY_AGREEMENT, BZYConstants.EXTRA_PRIVACY_AGREEMENT) + startActivity(intent) + } + 9->{ + initializationRepair() } } } @@ -318,7 +315,7 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc "resultData:$result" ) withContext(Dispatchers.Main){ - hideLoad() + hideLoading() RxToast.error(resources.getString(R.string.FixTimeout)) } }else{ @@ -327,7 +324,7 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc "resultData:$result" ) withContext(Dispatchers.Main){ - hideLoad() + hideLoading() RxToast.info(resources.getString(R.string.RepairCompletedInit)) } } @@ -452,13 +449,11 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc } } else { val validPeriod = MMKV.defaultMMKV().decodeLong(BZYConstants.MMKV_KEY_VPN_VALID_PERIOD) - val daysDifference = getDaysDifference(validPeriod) + val daysDifference = getDaysDifferenceCalendar(validPeriod) if (daysDifference > 0) { - tvEndTimes.text=daysDifference.toString()+"dat" - } else if (daysDifference < 0) { - tvEndTimes.text=daysDifference.toString()+"dat" - } else { - tvEndTimes.text=daysDifference.toString()+"dat" + tvEndTimes.text=resources.getString(R.string.vipTimeStrEd).replace("$", + daysDifference.toString() + ) } val decodeString = MMKV.defaultMMKV().decodeString(BZYConstants.languageInfo, "") if (decodeString.isNullOrEmpty()) { @@ -612,7 +607,7 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc } } else { - hideLoad() + hideLoading() } } @@ -650,13 +645,6 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc baseLoad?.show() } } - - fun hideLoad() { - if (baseLoad != null && baseLoad?.isShowing == true) { - baseLoad?.cancel() - } - } - private fun uploadForAliOss(data: ParamData, filePath: List, dirStr: String) { val endpoint = "oss-cn-hongkong.aliyuncs.com" val accessKeyId = data.credentials?.accessKeyId @@ -687,7 +675,7 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc } requireActivity().runOnUiThread { - hideLoad() + hideLoading() RxToast.info(resources.getString(R.string.LogUploadedSuccessfully)) } @@ -704,7 +692,7 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc serviceException: ServiceException, ) { requireActivity().runOnUiThread { - hideLoad() + hideLoading() RxToast.error(resources.getString(R.string.LogUploadedFiler)) } // 请求异常。 @@ -747,4 +735,63 @@ class SettingFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatc newMain.goBackupRechargeWeb() } } + fun showLoading(str: String, context: Context) { + val message = if (TextUtils.isEmpty(str)) "进行中..." else str + if (baseLoadingView == null) { + baseLoadingView = RxDialogShapeLoading(context) + } + baseLoadingView?.setMessage(message) + if (baseLoadingView?.isShowing == false) { + baseLoadingView?.show() + } + } + + fun hideLoading() { + if (baseLoadingView != null && baseLoadingView?.isShowing == true) { + baseLoadingView?.cancel() + } + } + fun getDaysDifferenceCalendar(timestamp: Long): Long { + val currentTime = System.currentTimeMillis() + val diff = Math.abs(currentTime - timestamp) // 使用绝对值 + return TimeUnit.MILLISECONDS.toDays(diff) + } + private fun checkPermission() { + XXPermissions.with(this) + // 申请单个权限 + .permission(Permission.MANAGE_EXTERNAL_STORAGE) + .permission(Permission.Group.STORAGE) + .request(object:OnPermissionCallback{ + override fun onGranted(permissions: MutableList, allGranted: Boolean) { + if (!allGranted) { + showLoading(resources.getString(R.string.UploadingInProgress), requireContext()) + val directory: File? = requireContext().getExternalFilesDir("CrashLog") + if (directory != null) { + val allFilePath = getAllFilePath(directory.path) + if (allFilePath.isNotEmpty()) { + mainAtyVM.getUploadParameters() + } else { + hideLoading() + RxToast.info(resources.getString(R.string.NoErrorLogs)) + } + } else { + hideLoading() + RxToast.error(resources.getString(R.string.ReadPermissionsDenied)) + } + return + } + } + override fun onDenied(permissions: MutableList, doNotAskAgain: Boolean) { + if (doNotAskAgain) { + RxToast.error(resources.getString(R.string.ReadPermissionsDenied)) + // 如果是被永久拒绝就跳转到应用权限系统设置页面 + XXPermissions.startPermissionActivity(requireContext(), permissions) + hideLoading() + } else { + RxToast.error(resources.getString(R.string.ReadPermissionsDenied)) + hideLoading() + } + } + }) + } } \ No newline at end of file diff --git a/app/src/main/java/com/yingmao/clash/fragment/vip/vipFragment.kt b/app/src/main/java/com/yingmao/clash/fragment/vip/vipFragment.kt index da274e8..25e2993 100644 --- a/app/src/main/java/com/yingmao/clash/fragment/vip/vipFragment.kt +++ b/app/src/main/java/com/yingmao/clash/fragment/vip/vipFragment.kt @@ -1,8 +1,10 @@ package com.yingmao.clash.fragment.activity import android.annotation.SuppressLint +import android.content.Context import android.content.Intent import android.graphics.Color +import android.text.TextUtils import android.view.View import android.widget.FrameLayout import android.widget.ImageView @@ -89,6 +91,8 @@ class vipFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatchers } private val mPageInfo = ExpensesRecordActivity.PageInfo() + + private var baseLoadingView: RxDialogShapeLoading? = null override fun init( titleBarRl: RelativeLayout, backIv: ImageView, @@ -528,4 +532,20 @@ class vipFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispatchers ) } } + fun showLoading(str: String, context: Context) { + val message = if (TextUtils.isEmpty(str)) "进行中..." else str + if (baseLoadingView == null) { + baseLoadingView = RxDialogShapeLoading(context) + } + baseLoadingView?.setMessage(message) + if (baseLoadingView?.isShowing == false) { + baseLoadingView?.show() + } + } + + fun hideLoading() { + if (baseLoadingView != null && baseLoadingView?.isShowing == true) { + baseLoadingView?.cancel() + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/yingmao/clash/view/adapter/GetActivityAdapter.kt b/app/src/main/java/com/yingmao/clash/view/adapter/GetActivityAdapter.kt index d18d134..9438842 100644 --- a/app/src/main/java/com/yingmao/clash/view/adapter/GetActivityAdapter.kt +++ b/app/src/main/java/com/yingmao/clash/view/adapter/GetActivityAdapter.kt @@ -1,6 +1,7 @@ package com.yingmao.clash.view.adapter +import android.content.Intent import android.widget.TextView import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.customview.customView @@ -12,10 +13,12 @@ import com.tencent.mmkv.MMKV import com.yingmao.clash.R import com.yingmao.clash.app.MainApplication import com.cncat.vpn.common.log.Log +import com.yingmao.clash.act.MemberRechargeActivity import com.yingmao.clash.conf.BZYConstants import com.yingmao.clash.conf.PayType import com.yingmao.clash.listener.MyAdapterListener import com.yingmao.clash.net.http.entity.Activity_ +import com.yingmao.clash.util.CommonUtils class GetActivityAdapter( @@ -27,10 +30,17 @@ class GetActivityAdapter( ), LoadMoreModule { override fun convert(holder: BaseViewHolder, item: Activity_) { holder.setText(R.id.tv_act_title, "${item.title}") - holder.setText(R.id.tv_act_info, context.resources.getString(R.string.ActivityContent)+"${item.content}") + holder.setText(R.id.tv_act_info, "${item.content}") - holder.setText(R.id.tv_act_gift, context.resources.getString(R.string.RewardTime)+"${item.awardDay}"+context.resources.getString(R.string.day)) + holder.setText(R.id.tv_act_gift, "${item.awardDay}"+context.resources.getString(R.string.day)) + if (item.redirectLink.contains("BindAccount")) { + holder.setImageResource(R.id.aivActivity,R.drawable.yjl_bing_bg_icon) + }else if(item.redirectLink.contains("weekcharge")){ + holder.setImageResource(R.id.aivActivity,R.drawable.yjl_pay_item_icon) + }else { + holder.setImageResource(R.id.aivActivity,R.drawable.yjl_pay_item_icon) + } holder.itemView.setOnClickListener { diff --git a/app/src/main/java/com/yingmao/clash/view/dialog/ActivityViewDialog.java b/app/src/main/java/com/yingmao/clash/view/dialog/ActivityViewDialog.java index 225ca3d..01a2ac4 100644 --- a/app/src/main/java/com/yingmao/clash/view/dialog/ActivityViewDialog.java +++ b/app/src/main/java/com/yingmao/clash/view/dialog/ActivityViewDialog.java @@ -42,7 +42,7 @@ public class ActivityViewDialog extends Dialog { ImageView ivActivityImg =findViewById(R.id.ivActivityImg); Glide.with(context) .load(path) -// .error(R.drawable.ic_activity_bg) + .error(R.mipmap.base_erro_activity) .diskCacheStrategy(DiskCacheStrategy.DATA)//仅仅只缓存原来的全分辨率的图像 .into(ivActivityImg); @@ -53,6 +53,12 @@ public class ActivityViewDialog extends Dialog { onDialogClickListener.onCancelClickListener(); } }); + + ivActivityImg.setOnClickListener(v -> { + if (onDialogClickListener != null) { + onDialogClickListener.onRechargeClickListener(); + } + }); abRecharge.setOnClickListener(v -> { if (onDialogClickListener != null) { onDialogClickListener.onRechargeClickListener(); diff --git a/app/src/main/java/com/yingmao/clash/view/dialog/NoticeViewDialog.java b/app/src/main/java/com/yingmao/clash/view/dialog/NoticeViewDialog.java index 0c14fc5..0659e9d 100644 --- a/app/src/main/java/com/yingmao/clash/view/dialog/NoticeViewDialog.java +++ b/app/src/main/java/com/yingmao/clash/view/dialog/NoticeViewDialog.java @@ -40,10 +40,6 @@ public class NoticeViewDialog extends Dialog { ImageView icActivityClose=findViewById(R.id.icActivityClose); TextView tvMySee=findViewById(R.id.tvMySee); TextView tvContent=findViewById(R.id.tv_notice_content); - - TextView tvNewTitle=findViewById(R.id.tvNewTitle); - - tvNewTitle.setText(userName); tvContent.setText(content); icActivityClose.setOnClickListener(v -> { if (onDialogClickListener != null) { diff --git a/app/src/main/java/com/yingmao/clash/vm/MainAtyVM.kt b/app/src/main/java/com/yingmao/clash/vm/MainAtyVM.kt index 2423c85..a734df4 100644 --- a/app/src/main/java/com/yingmao/clash/vm/MainAtyVM.kt +++ b/app/src/main/java/com/yingmao/clash/vm/MainAtyVM.kt @@ -221,4 +221,15 @@ class MainAtyVM : PublicViewMode() { ) doAsync(HttpReqType.LogOutDel){httpApi.logOutDel(params)} } + fun getUploadParameters() { + val httpApi = NetService.instances.createHttps(HttpApi::class.java) + val username = + MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!! + val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!! + val params = hashMapOf( + "phoneNumber" to username, + "phToken" to phToken, + ) + doAsync(HttpReqType.UploadParameters) { httpApi.getUploadParameters(params) } + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/oc_activity_add_group_bg.xml b/app/src/main/res/drawable/oc_activity_add_group_bg.xml index a3f7edd..198c79a 100644 --- a/app/src/main/res/drawable/oc_activity_add_group_bg.xml +++ b/app/src/main/res/drawable/oc_activity_add_group_bg.xml @@ -3,7 +3,7 @@ - + @@ -15,7 +15,7 @@ android:top="0dp"> - + diff --git a/app/src/main/res/drawable/oc_activity_item_bg.xml b/app/src/main/res/drawable/oc_activity_item_bg.xml index 3230f9e..a589c22 100644 --- a/app/src/main/res/drawable/oc_activity_item_bg.xml +++ b/app/src/main/res/drawable/oc_activity_item_bg.xml @@ -3,16 +3,16 @@ - - + + - + - - + + diff --git a/app/src/main/res/drawable/yjl_bing_bg_icon.xml b/app/src/main/res/drawable/yjl_bing_bg_icon.xml new file mode 100644 index 0000000..6b0f208 --- /dev/null +++ b/app/src/main/res/drawable/yjl_bing_bg_icon.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/app/src/main/res/drawable/yjl_notice_bg_txt.xml b/app/src/main/res/drawable/yjl_notice_bg_txt.xml new file mode 100644 index 0000000..914a22e --- /dev/null +++ b/app/src/main/res/drawable/yjl_notice_bg_txt.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/yjl_pay_item_icon.xml b/app/src/main/res/drawable/yjl_pay_item_icon.xml new file mode 100644 index 0000000..c5e76f5 --- /dev/null +++ b/app/src/main/res/drawable/yjl_pay_item_icon.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/app/src/main/res/layout/activity_agreement_and_privacy.xml b/app/src/main/res/layout/activity_agreement_and_privacy.xml index d0d24db..0d59e26 100644 --- a/app/src/main/res/layout/activity_agreement_and_privacy.xml +++ b/app/src/main/res/layout/activity_agreement_and_privacy.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@mipmap/oc_index_bg" + android:background="@drawable/yjl_setting_bg" > \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_domain_choose.xml b/app/src/main/res/layout/dialog_domain_choose.xml index 8f4ccb1..e25d4be 100644 --- a/app/src/main/res/layout/dialog_domain_choose.xml +++ b/app/src/main/res/layout/dialog_domain_choose.xml @@ -31,7 +31,7 @@ android:layout_marginBottom="10dp" android:gravity="center" android:text="@string/domain_warn" - android:textColor="#B36C1B" + android:textColor="#000" android:textSize="16sp" android:textStyle="bold" /> @@ -60,7 +60,7 @@ android:layout_height="wrap_content"> + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_shape_loading_view.xml b/app/src/main/res/layout/dialog_shape_loading_view.xml index f12b20d..9040009 100644 --- a/app/src/main/res/layout/dialog_shape_loading_view.xml +++ b/app/src/main/res/layout/dialog_shape_loading_view.xml @@ -20,7 +20,7 @@ @@ -32,7 +32,7 @@ - - - - - - - - - - - - - - + android:layout_height="match_parent"> - - + + app:layout_constraintTop_toTopOf="parent"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/get_activity_item_layout.xml b/app/src/main/res/layout/get_activity_item_layout.xml index 7396dcb..424ff00 100644 --- a/app/src/main/res/layout/get_activity_item_layout.xml +++ b/app/src/main/res/layout/get_activity_item_layout.xml @@ -8,17 +8,17 @@ android:layout_margin="8dp" > - - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_activity_activity.xml b/app/src/main/res/layout/layout_activity_activity.xml index 70571e2..5ccc865 100644 --- a/app/src/main/res/layout/layout_activity_activity.xml +++ b/app/src/main/res/layout/layout_activity_activity.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@mipmap/oc_index_bg" + android:background="#FF6FA2FA" > diff --git a/app/src/main/res/layout/layout_item_setting_page.xml b/app/src/main/res/layout/layout_item_setting_page.xml index e9fc4de..c1be81d 100644 --- a/app/src/main/res/layout/layout_item_setting_page.xml +++ b/app/src/main/res/layout/layout_item_setting_page.xml @@ -34,7 +34,7 @@ android:layout_marginTop="10dp" android:text="" android:textColor="#000000" - android:textSize="16sp" /> + android:textSize="14sp" /> diff --git a/app/src/main/res/layout/setting_fragment_layout.xml b/app/src/main/res/layout/setting_fragment_layout.xml index 034e9a6..3a8da20 100644 --- a/app/src/main/res/layout/setting_fragment_layout.xml +++ b/app/src/main/res/layout/setting_fragment_layout.xml @@ -48,7 +48,7 @@ android:layout_height="60dp" android:layout_marginStart="15dp" android:layout_marginTop="15dp" - android:layout_marginBottom="15dp" + android:layout_marginBottom="10dp" android:src="@mipmap/yjl_usericon" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -138,7 +138,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="15dp" - android:layout_marginTop="16dp" + android:layout_marginTop="10dp" android:layout_marginEnd="15dp" android:background="@drawable/user_center_vip_bg" app:layout_constraintEnd_toEndOf="parent" @@ -172,7 +172,7 @@ android:layout_height="wrap_content" android:layout_marginStart="5dp" android:layout_marginEnd="5dp" - android:text="AAA" + android:text="" android:textColor="#FFB3B3B3" android:textSize="12sp" app:layout_constraintBottom_toBottomOf="parent" @@ -219,8 +219,8 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - android:layout_marginTop="10dp" - android:layout_marginBottom="10dp" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" /> 不限时间 你的专属客服当前在线, 点击为你解答 + 最新通知 + 你的会员还有$天到期 + 去完成 \ No newline at end of file