diff --git a/app/src/main/assets/fonts/YouSheBiaoTiHei.ttf b/app/src/main/assets/fonts/YouSheBiaoTiHei.ttf new file mode 100644 index 0000000..3729151 Binary files /dev/null and b/app/src/main/assets/fonts/YouSheBiaoTiHei.ttf differ diff --git a/app/src/main/java/com/cheng/bole/common/Constants.kt b/app/src/main/java/com/cheng/bole/common/Constants.kt index f2d2cc2..da34a30 100644 --- a/app/src/main/java/com/cheng/bole/common/Constants.kt +++ b/app/src/main/java/com/cheng/bole/common/Constants.kt @@ -27,9 +27,10 @@ object Constants { const val Encrypt = "zpzkfp72v3hgatzg5w7pyg86x5342kxt" const val Signature = "ckBHUSWBx3TqwNT2kxMrsXyXFuA3PW" - val almmsht = Typeface.createFromAsset(Utils.getApp().assets, "fonts/AlimamaShuHeiTi.ttf") val dDIN_PRO_M = Typeface.createFromAsset(Utils.getApp().assets, "fonts/D-DIN-PRO-500-Medium.otf") + val almmsht = Typeface.createFromAsset(Utils.getApp().assets, "fonts/AlimamaShuHeiTi.ttf") val douyinsansB = Typeface.createFromAsset(Utils.getApp().assets, "fonts/DouyinSansBold.otf") val pmzdbt = Typeface.createFromAsset(Utils.getApp().assets, "fonts/PangMenZhengDaoBiaoTiTi.ttf") val dtjbt = Typeface.createFromAsset(Utils.getApp().assets, "fonts/DingTalk-JinBuTi.ttf") + val ysbth = Typeface.createFromAsset(Utils.getApp().assets, "fonts/YouSheBiaoTiHei.ttf") } \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/common/EventConstants.kt b/app/src/main/java/com/cheng/bole/common/EventConstants.kt index 32e2ac0..bd211ee 100644 --- a/app/src/main/java/com/cheng/bole/common/EventConstants.kt +++ b/app/src/main/java/com/cheng/bole/common/EventConstants.kt @@ -40,8 +40,6 @@ object EventConstants { const val JUMP_TO_BID_SEARCH = "client.jump.to.bid.search" //跳转到搜索 - const val JUMP_TO_SUBSCRIBE = "client.jump.to.subscribe" //跳转到订阅 - const val JUMP_TO_GOODS_DETAIL = "client.jump.to.goods.detail" //跳转供应商商品详情 const val JUMP_TO_PUBLISH = "client.jump.to.publish" //跳转到发布 @@ -58,8 +56,20 @@ object EventConstants { const val JUMP_TO_USER_SETTING = "client.jump.to.user.setting" //跳转到用户设置 + const val JUMP_TO_FAVORITE = "client.jump.to.favorite" //跳转到收藏页 + + const val JUMP_TO_SUBSCRIBE = "client.jump.to.subscribe" //跳转到订阅页 + + const val JUMP_TO_HISTORY = "client.jump.to.history" //跳转到足迹页 + + const val JUMP_TO_ORDER = "client.jump.to.order" //跳转到订单页 + + const val JUMP_TO_MESSAGE = "client.jump.to.message" //跳转到消息页 + const val JUMP_TO_FEEDBACK = "client.jump.to.feedback" //跳转到意见反馈 + const val JUMP_TO_SERVICE = "client.jump.to.service" //跳转到联系客服 + const val JUMP_TO_ACCOUNT_BIND = "client.jump.to.account.bind" //跳转到账号绑定 const val JUMP_TO_ACCOUNT_MANAGE = "client.jump.to.account.manage" //跳转到账号管理 diff --git a/app/src/main/java/com/cheng/bole/net/ResponseInterceptor.kt b/app/src/main/java/com/cheng/bole/net/ResponseInterceptor.kt index 0b18631..bc7dbe6 100644 --- a/app/src/main/java/com/cheng/bole/net/ResponseInterceptor.kt +++ b/app/src/main/java/com/cheng/bole/net/ResponseInterceptor.kt @@ -9,6 +9,7 @@ import com.example.base.utils.L import com.example.base.utils.Utils import com.cheng.bole.BuildConfig import com.cheng.bole.common.Constants +import com.cheng.bole.event.HomeRefreshEvent import com.cheng.bole.manager.LoginManager import com.cheng.bole.ui.activity.LoginActivity import com.cheng.bole.ui.activity.PublicActivity @@ -81,7 +82,7 @@ class ResponseInterceptor : Interceptor { val decCode = JSON.parseObject(decryString).getInteger("code") when (decCode) { 11018 -> { - RxBus.defaultInstance.post(com.cheng.bole.event.HomeRefreshEvent()) + RxBus.defaultInstance.post(HomeRefreshEvent()) } 19000 -> { diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/guide/GuideFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/guide/GuideFragment.kt index b8b11b3..1a92b5f 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/guide/GuideFragment.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/guide/GuideFragment.kt @@ -86,7 +86,7 @@ class GuideFragment :BaseFragment() ViewPager.SCROLL_STATE_IDLE->{ if (!mIsScrolled && currentPosition == indicatorAdapter.itemCount - 1){ if (UserConfigManager.getGuidePayEnable()){ - PublicActivity.start(requireActivity(), VipFragment::class.java, Pair("origin", "guide")) + PublicActivity.start(requireActivity(), VipFragment::class.java, Pair("origin", "bootpage")) }else{ requireActivity().startActivity() } diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/home/HomeFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/home/HomeFragment.kt index c9eb729..26d7dea 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/home/HomeFragment.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/home/HomeFragment.kt @@ -9,6 +9,7 @@ import com.cheng.bole.bean.MenuEntity import com.cheng.bole.common.Constants import com.cheng.bole.common.EventConstants import com.cheng.bole.databinding.FragmentHomeBinding +import com.cheng.bole.event.HomeRefreshEvent import com.cheng.bole.manager.EventReportManager import com.cheng.bole.manager.SearchHistoryManager import com.cheng.bole.manager.UserConfigManager @@ -22,6 +23,7 @@ import com.cheng.bole.ui.fragment.home.zzdb.ZZDBFragment import com.cheng.bole.ui.fragment.mine.vip.VipFragment import com.cheng.bole.ui.fragment.search.SearchFragment import com.cheng.bole.ui.fragment.search.list.SearchListFragment +import com.example.base.common.RxBus import com.example.base.decoration.GridSpaceItemDecoration import com.example.base.decoration.SpacesItemDecoration import com.example.base.extensions.getColor @@ -64,7 +66,7 @@ class HomeFragment : ListFragment() { return response.toListResult() } - fun getBidTypeList() { - showDialog() + fun getBidTypeList(showLoading: Boolean = false) { + if (showLoading) showDialog() launchOnUiTryCatch({ val response = ApiFactory.apiService.getBidTypeList() if (response.status) { diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/login/onekey/OneKeyLoginFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/login/onekey/OneKeyLoginFragment.kt index 9470431..d5361a8 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/login/onekey/OneKeyLoginFragment.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/login/onekey/OneKeyLoginFragment.kt @@ -166,7 +166,7 @@ class OneKeyLoginFragment : BaseFragment + .setLoginOnClickListener { L.d("一键登录按钮 onLoginClick:") if (!binding.cbAgree.isChecked) { val loginTipDialog = LoginTipDialog.newInstance(1) @@ -177,7 +177,6 @@ class OneKeyLoginFragment : BaseFragment() { } when (currentPosition) { - 0 -> RxBus.defaultInstance.post(HomeRefreshEvent()) +// 0 -> RxBus.defaultInstance.post(HomeRefreshEvent()) } lastCheckTime = System.currentTimeMillis() diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/merchant/list/MerchantGoodsListFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/merchant/list/MerchantGoodsListFragment.kt index f6111f3..83566f0 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/merchant/list/MerchantGoodsListFragment.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/merchant/list/MerchantGoodsListFragment.kt @@ -66,8 +66,7 @@ class MerchantGoodsListFragment : ListFragment() { + private var userInfo: UserEntity? = null + private var isInit = true + + private var isEnterprise = false + + override fun initView() { + super.initView() + binding.tvVipName.typeface = Constants.ysbth + binding.tvPushCount.typeface = Constants.dDIN_PRO_M + binding.tvFavoriteCount.typeface = Constants.dDIN_PRO_M + binding.tvHistoryCount.typeface = Constants.dDIN_PRO_M + binding.tvOrderCount.typeface = Constants.dDIN_PRO_M + } + + override fun onResume() { + super.onResume() + mViewModel.userInfo(isInit) + if (isInit) isInit = false + } + + override fun initData() { + super.initData() + } + + override fun initListener() { + super.initListener() + binding.btnLogin.onClick { + LoginActivity.start(requireActivity(), Pair("from", 1)) + EventReportManager.eventReport(EventConstants.JUMP_TO_LOGIN, "center", "") + } + + binding.tvUserId.onClick { + if (!TextUtils.isEmpty(userInfo?.user_id)) { + ClipboardUtils.copyText(userInfo?.user_id) + toast("复制成功") + EventReportManager.eventReport(EventConstants.COPY_USER_ID, "", "") + } + } + + binding.tvVipName.onClick { + PublicActivity.start(requireContext(), VipFragment::class.java, Pair("origin", "center")) + EventReportManager.eventReport(EventConstants.JUMP_TO_MEMBER_RECHARGE, "center", "") + } + + binding.tvExpireTime.onClick { binding.tvVipName.performClick() } + + binding.ivSetting.onClick { +// PublicActivity.start(requireContext(), SettingFragment::class.java) + EventReportManager.eventReport(EventConstants.JUMP_TO_SYSTEM_SETTING, "", "") + } + + binding.ivMessage.onClick { +// PublicActivity.start(requireContext(), MessageFragment::class.java) + EventReportManager.eventReport(EventConstants.JUMP_TO_MESSAGE, "", "") + } + + binding.layoutPush.onClick { +// PublicActivity.start(requireContext(), SubscribeFragment::class.java) + EventReportManager.eventReport(EventConstants.JUMP_TO_SUBSCRIBE, "center", "") + } + + binding.layoutFavorite.onClick { +// PublicActivity.start(requireContext(), FavoriteFragment::class.java) + EventReportManager.eventReport(EventConstants.JUMP_TO_FAVORITE, "", "") + } + + binding.layoutHistory.onClick { +// PublicActivity.start(requireContext(), HistoryFragment::class.java) + EventReportManager.eventReport(EventConstants.JUMP_TO_HISTORY, "", "") + } + + binding.layoutOrder.onClick { +// PublicActivity.start(requireContext(), OrderFragment::class.java) + EventReportManager.eventReport(EventConstants.JUMP_TO_ORDER, "", "") + } + + binding.tvMyPublish.onClick { + + } + + binding.tvAuth.onClick { + + } + + binding.tvSeatManage.onClick { + + } + + binding.tvService.onClick { + mViewModel.wxService() + EventReportManager.eventReport(EventConstants.JUMP_TO_SERVICE, "", "") + } + + binding.tvShare.onClick { + if (UserConfigManager.getShareEntity() != null) { + ShareDialog().show(childFragmentManager, "") + } + } + + binding.tvFeedback.onClick { + PublicActivity.start(requireContext(), FeedbackFragment::class.java) + EventReportManager.eventReport(EventConstants.JUMP_TO_FEEDBACK, "", "") + } + } + + override fun initObserve() { + super.initObserve() + mViewModel.userInfoLiveData.observe(this) { + userInfo = it + UserConfigManager.userInfoLiveData.postValue(it) + setUserInfo() + } + + val mineRefreshEvent = RxBus.defaultInstance.toObservable(MineRefreshEvent::class.java).subscribe { + mViewModel.userInfo() + } + addDisposable(mineRefreshEvent) + } + + @SuppressLint("SetTextI18n") + private fun setUserInfo() { + if (userInfo == null) return + binding.ivAvatar.load(userInfo?.avater) { + transformations(CircleCropTransformation()) + placeholder(R.mipmap.ic_default_avatar) + error(R.mipmap.ic_default_avatar) + } + + if (userInfo?.vip == "1") { + isEnterprise = false + + binding.tvVipName.text = "开通会员" + binding.tvExpireTime.text = "开通会员,查看海量商机" + + binding.tvVipName.setTextColor(getColor(R.color.color_fbcd8c)) + binding.tvExpireTime.setTextColor(getColor(R.color.color_bcac8e)) + binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow1, 0) + binding.ivVipBg.setImageResource(R.mipmap.ic_mine_vip_bg1) + } else if (userInfo?.vip == "2") { + isEnterprise = false + + binding.tvVipName.text = "普通会员" + binding.tvExpireTime.text = "${userInfo!!.vip_expire} 会员到期" + + binding.tvVipName.setTextColor(getColor(R.color.color_fbcd8c)) + binding.tvExpireTime.setTextColor(getColor(R.color.color_bcac8e)) + binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow1, 0) + binding.ivVipBg.setImageResource(R.mipmap.ic_mine_vip_bg1) + } else if (userInfo?.vip == "3") { + isEnterprise = false + + binding.tvVipName.text = "终生会员" + binding.tvExpireTime.text = "享受永久会员专属权益" + + binding.tvVipName.setTextColor(getColor(R.color.color_fbcd8c)) + binding.tvExpireTime.setTextColor(getColor(R.color.color_bcac8e)) + binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow1, 0) + binding.ivVipBg.setImageResource(R.mipmap.ic_mine_vip_bg2) + } else if (userInfo?.vip == "12") { + isEnterprise = true + + binding.tvVipName.text = "普通企业" + binding.tvExpireTime.text = "${userInfo!!.vip_expire} 会员到期" + + binding.tvVipName.setTextColor(getColor(R.color.color_c5ffe1)) + binding.tvExpireTime.setTextColor(getColor(R.color.color_a6c8ba)) + binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow2, 0) + binding.ivVipBg.setBackgroundResource(R.mipmap.ic_mine_vip_bg2) + } else if (userInfo?.vip == "11") { + isEnterprise = true + + binding.tvVipName.text = "终生企业" + binding.tvExpireTime.text = "享受永久会员专属权益" + + binding.tvVipName.setTextColor(getColor(R.color.color_c5ffe1)) + binding.tvExpireTime.setTextColor(getColor(R.color.color_a6c8ba)) + binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow2, 0) + binding.ivVipBg.setBackgroundResource(R.mipmap.ic_mine_vip_bg2) + } + binding.tvUsername.text = userInfo?.name + binding.tvUserId.text = "ID:${userInfo?.user_id}" + binding.btnLogin.visibility = if (LoginManager.isLogin()) View.GONE else View.VISIBLE + binding.tvSeatManage.visibility = if (isEnterprise) View.VISIBLE else View.GONE + } } \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/mine/MineViewModel.kt b/app/src/main/java/com/cheng/bole/ui/fragment/mine/MineViewModel.kt index eb35a5d..76c878e 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/mine/MineViewModel.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/mine/MineViewModel.kt @@ -1,6 +1,8 @@ package com.cheng.bole.ui.fragment.mine import androidx.lifecycle.MutableLiveData +import com.cheng.bole.bean.UserEntity +import com.cheng.bole.bean.WxServiceEntity import com.cheng.bole.common.Constants import com.cheng.bole.net.ApiFactory import com.example.base.extensions.toast @@ -12,7 +14,7 @@ import com.tencent.mm.opensdk.modelbiz.WXOpenCustomerServiceChat import com.tencent.mm.opensdk.openapi.WXAPIFactory class MineViewModel : BaseViewModel() { - val userInfoLiveData = MutableLiveData() + val userInfoLiveData = MutableLiveData() fun userInfo(showLoading: Boolean = false) { if (showLoading) showDialog() @@ -46,7 +48,7 @@ class MineViewModel : BaseViewModel() { }) } - private fun contactClientService(data: com.cheng.bole.bean.WxServiceEntity) { + private fun contactClientService(data: WxServiceEntity) { val api = WXAPIFactory.createWXAPI(Utils.getApp(), Constants.WechatAppId) if (!api!!.isWXAppInstalled) { toast("未安装微信客户端") diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/mine/feedback/FeedbackFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/mine/feedback/FeedbackFragment.kt index 2a5111b..2924496 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/mine/feedback/FeedbackFragment.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/mine/feedback/FeedbackFragment.kt @@ -4,6 +4,8 @@ import android.annotation.SuppressLint import android.text.Editable import android.text.TextUtils import android.text.TextWatcher +import android.view.ViewTreeObserver +import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.GridLayoutManager import com.cheng.bole.R import com.cheng.bole.bean.UploadFileEntity @@ -11,6 +13,7 @@ import com.cheng.bole.common.Constants import com.cheng.bole.databinding.FragmentFeedbackBinding import com.cheng.bole.ui.fragment.photo.AddImageAdapter import com.cheng.bole.utils.PermissionUtils +import com.efs.sdk.memleaksdk.monitor.internal.bi import com.example.base.extensions.onClick import com.example.base.extensions.toast import com.example.base.ui.BaseFragment @@ -39,11 +42,23 @@ class FeedbackFragment : BaseFragment 0) { + if (selectImg.isEmpty() && selectedPhotoList.isNotEmpty()) { mViewModel.upload(requireContext(), selectedPhotoList) } else { commit() diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/mine/vip/VipFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/mine/vip/VipFragment.kt index de82c57..e2196a3 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/mine/vip/VipFragment.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/mine/vip/VipFragment.kt @@ -46,7 +46,7 @@ import java.text.DecimalFormat class VipFragment : BaseFragment() { private val origin by lazy { arguments?.getString("origin") ?: "center" } - private val isGuide by lazy { origin == "guide" } + private val isGuide by lazy { origin == "bootpage" } private lateinit var api: IWXAPI private var isAgree = false diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/PushFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/PushFragment.kt index 9be41e4..9c17ec0 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/push/PushFragment.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/PushFragment.kt @@ -12,7 +12,6 @@ import com.cheng.bole.R import com.cheng.bole.common.Constants import com.cheng.bole.common.EventConstants import com.cheng.bole.databinding.FragmentPushBinding -import com.cheng.bole.event.HomeRefreshEvent import com.cheng.bole.event.SubscriptionEvent import com.cheng.bole.manager.EventReportManager import com.cheng.bole.manager.UserConfigManager @@ -108,15 +107,6 @@ class PushFragment : BaseFragment() { mViewModel.getSubscriptionList() } - val homeRefreshEvent = RxBus.defaultInstance.toObservable(HomeRefreshEvent::class.java).subscribe { - if (UserConfigManager.getBidTypes().isEmpty()) { - mViewModel.getBidTypeList() - } else { - mViewModel.getSubscriptionList() - } - } - addDisposable(homeRefreshEvent) - val subscriptionEvent = RxBus.defaultInstance.toObservable(SubscriptionEvent::class.java).subscribe { if (UserConfigManager.getBidTypes().isEmpty()) { mViewModel.getBidTypeList() diff --git a/app/src/main/res/drawable/selector_feedback_type_bg.xml b/app/src/main/res/drawable/selector_feedback_type_bg.xml index b35aecb..b83299d 100644 --- a/app/src/main/res/drawable/selector_feedback_type_bg.xml +++ b/app/src/main/res/drawable/selector_feedback_type_bg.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_auth_fail_dot.xml b/app/src/main/res/drawable/shape_auth_fail_dot.xml new file mode 100644 index 0000000..11ee88d --- /dev/null +++ b/app/src/main/res/drawable/shape_auth_fail_dot.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_auth_success_dot.xml b/app/src/main/res/drawable/shape_auth_success_dot.xml new file mode 100644 index 0000000..d69dc01 --- /dev/null +++ b/app/src/main/res/drawable/shape_auth_success_dot.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_f5f7fc_top_cor16.xml b/app/src/main/res/drawable/shape_f5f7fc_top_cor16.xml new file mode 100644 index 0000000..09051f1 --- /dev/null +++ b/app/src/main/res/drawable/shape_f5f7fc_top_cor16.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_10466afd_cor4.xml b/app/src/main/res/drawable/shape_feedback_checked.xml similarity index 83% rename from app/src/main/res/drawable/shape_10466afd_cor4.xml rename to app/src/main/res/drawable/shape_feedback_checked.xml index 85644d7..2750ca1 100644 --- a/app/src/main/res/drawable/shape_10466afd_cor4.xml +++ b/app/src/main/res/drawable/shape_feedback_checked.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/layout/fragment_feedback.xml b/app/src/main/res/layout/fragment_feedback.xml index 68cf699..14e8bf5 100644 --- a/app/src/main/res/layout/fragment_feedback.xml +++ b/app/src/main/res/layout/fragment_feedback.xml @@ -1,222 +1,294 @@ - - + android:layout_height="match_parent"> + app:layout_constraintTop_toTopOf="parent"> + android:layout_height="wrap_content"> - + android:layout_marginStart="@dimen/dp_36" + android:layout_marginTop="88dp" + android:text="意见反馈" + android:textColor="#000511" + android:textSize="@dimen/sp_30" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - + android:layout_marginStart="@dimen/dp_9" + android:layout_marginTop="@dimen/dp_15" + android:layout_marginEnd="@dimen/dp_9" + app:hl_cornerRadius="@dimen/dp_12" + app:hl_shadowColor="#0d4a4f5b" + app:hl_shadowLimit="@dimen/dp_7" + app:layout_constraintTop_toBottomOf="@id/tv_title"> - + - + - - + - + - + - + + + + + + + + android:layout_marginStart="@dimen/dp_9" + android:layout_marginEnd="@dimen/dp_9" + app:hl_cornerRadius="@dimen/dp_12" + app:hl_shadowColor="#0d4a4f5b" + app:hl_shadowLimit="@dimen/dp_7" + app:layout_constraintTop_toBottomOf="@id/layout_type"> - + - + - + - + + + + + + + + + + + + + android:layout_marginStart="@dimen/dp_9" + android:layout_marginEnd="@dimen/dp_9" + app:hl_cornerRadius="@dimen/dp_12" + app:hl_shadowColor="#0d4a4f5b" + app:hl_shadowLimit="@dimen/dp_7" + app:layout_constraintTop_toBottomOf="@id/layout_content"> - + - + - + + + + + @@ -235,15 +307,23 @@ android:id="@+id/btn_next" android:layout_width="match_parent" android:layout_height="@dimen/dp_46" + android:fontFamily="sans-serif-medium" android:text="提交" android:textColor="@color/white" - android:textSize="@dimen/sp_15" - android:textStyle="bold" - app:csb_activeEnable="true" - app:csb_cornerRadius="@dimen/dp_50" + android:textSize="@dimen/sp_16" + app:csb_cornerRadius="@dimen/dp_10" app:csb_fillColor="@color/color_125ffe" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index 6be9c9a..5fb02ce 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -1,7 +1,378 @@ + android:layout_height="match_parent"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/ic_arrow_dp22.webp b/app/src/main/res/mipmap-xxhdpi/ic_arrow_dp22.webp new file mode 100644 index 0000000..869860d Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_arrow_dp22.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_copy_id.webp b/app/src/main/res/mipmap-xxhdpi/ic_copy_id.webp new file mode 100644 index 0000000..9861db1 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_copy_id.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_empty_favorite.webp b/app/src/main/res/mipmap-xxhdpi/ic_empty_favorite.webp new file mode 100644 index 0000000..bf39ff7 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_empty_favorite.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_empty_history.webp b/app/src/main/res/mipmap-xxhdpi/ic_empty_history.webp new file mode 100644 index 0000000..23a7293 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_empty_history.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_empty_order.webp b/app/src/main/res/mipmap-xxhdpi/ic_empty_order.webp new file mode 100644 index 0000000..cd56b7e Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_empty_order.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_feedback_top_bg.webp b/app/src/main/res/mipmap-xxhdpi/ic_feedback_top_bg.webp new file mode 100644 index 0000000..456ec69 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_feedback_top_bg.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_arrow1.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_arrow1.webp new file mode 100644 index 0000000..0b4a753 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_arrow1.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_arrow2.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_arrow2.webp new file mode 100644 index 0000000..1839951 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_arrow2.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_icon1.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon1.webp new file mode 100644 index 0000000..e4566f7 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon1.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_icon2.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon2.webp new file mode 100644 index 0000000..877bdcf Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon2.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_icon3.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon3.webp new file mode 100644 index 0000000..7113be9 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon3.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_icon4.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon4.webp new file mode 100644 index 0000000..b0791eb Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon4.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_icon5.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon5.webp new file mode 100644 index 0000000..3f89228 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon5.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_icon6.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon6.webp new file mode 100644 index 0000000..03c6f4d Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_icon6.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_message.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_message.webp new file mode 100644 index 0000000..996a217 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_message.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_setting.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_setting.webp new file mode 100644 index 0000000..1b5a26a Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_setting.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_top_bg.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_top_bg.webp new file mode 100644 index 0000000..1a67094 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_top_bg.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_vip_bg1.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_vip_bg1.webp new file mode 100644 index 0000000..4fc578b Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_vip_bg1.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_mine_vip_bg2.webp b/app/src/main/res/mipmap-xxhdpi/ic_mine_vip_bg2.webp new file mode 100644 index 0000000..203b781 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_mine_vip_bg2.webp differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index d728d54..d250c7c 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -89,4 +89,10 @@ #E6F6FF #F4F6FA #585D6C + #417FFE + #FF592B + #FBCD8C + #BCAC8E + #C5FFE1 + #A6C8BA \ No newline at end of file