From 5e9e7e3ea51f5aab10c50a2a9c4e504d6c6f70ff Mon Sep 17 00:00:00 2001 From: wangyu Date: Sun, 4 Jan 2026 17:42:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=A8=E9=80=81=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cheng/bole/common/EventConstants.kt | 128 +--- .../com/cheng/bole/event/SourceDataEvent.kt | 6 + .../com/cheng/bole/event/SubscriptionEvent.kt | 4 + .../home/zzdb/detail/ZZDBDetailFragment.kt | 6 + .../bole/ui/fragment/push/PushFragment.kt | 133 ++++ .../bole/ui/fragment/push/PushViewModel.kt | 38 ++ .../ui/fragment/push/list/PushListFragment.kt | 116 ++++ .../fragment/push/list/PushListViewModel.kt | 31 + .../push/subscribe/SubscribeAdapter.kt | 51 ++ .../push/subscribe/SubscribeFragment.kt | 95 +++ .../push/subscribe/SubscribeViewModel.kt | 43 ++ .../subscribe/add/AddSubscribeFragment.kt | 391 +++++++++++ .../subscribe/add/AddSubscribeViewModel.kt | 73 +++ .../subscribe/add/RecommendKeywordAdapter.kt | 12 + .../subscribe/add/SelectedKeywordAdapter.kt | 16 + .../source/RecommendSourceAdapter.kt | 38 ++ .../subscribe/source/SearchSourceAdapter.kt | 33 + .../subscribe/source/SelectedSourceAdapter.kt | 17 + .../subscribe/source/SourceSearchFragment.kt | 170 +++++ .../subscribe/source/SourceSearchViewModel.kt | 40 ++ app/src/main/res/drawable/selector_rb.xml | 5 + .../res/drawable/shape_dddddd_line_cor8.xml | 7 + .../drawable/shape_dde2eb_dash_divider_h.xml | 9 + .../main/res/drawable/shape_f8f9fa_cor10.xml | 5 + .../main/res/drawable/shape_f8f9fa_cor6.xml | 5 + .../res/drawable/shape_keyword_checked.xml | 8 + .../res/drawable/shape_keyword_default.xml | 5 + .../drawable/shape_push_bid_type_checked.xml | 8 + .../drawable/shape_push_bid_type_default.xml | 5 + .../drawable/shape_selected_keyword_bg.xml | 8 + .../main/res/drawable/shape_white_cor14.xml | 6 + .../main/res/drawable/shape_zzdb_btn_bg.xml | 8 + .../res/layout/fragment_add_subscribe.xml | 611 ++++++++++++++++++ app/src/main/res/layout/fragment_push.xml | 44 ++ .../main/res/layout/fragment_push_list.xml | 40 ++ .../res/layout/fragment_source_search.xml | 214 ++++++ .../main/res/layout/fragment_subscribe.xml | 162 +++++ .../main/res/layout/fragment_zzdb_detail.xml | 30 +- .../layout/listitem_recommend_keywords.xml | 21 + .../res/layout/listitem_recommend_source.xml | 46 ++ .../layout/listitem_search_source_result.xml | 22 + .../res/layout/listitem_selected_keywords.xml | 31 + .../res/layout/listitem_selected_source.xml | 41 ++ .../main/res/layout/listitem_subscribe.xml | 125 ++++ .../res/layout/listitem_subscribe_area.xml | 20 + .../res/layout/listitem_subscribe_keyword.xml | 20 + .../ic_add_subscribe_keyword.webp | Bin 0 -> 268 bytes app/src/main/res/mipmap-xxhdpi/ic_delete.webp | Bin 0 -> 500 bytes .../ic_delete_subscribe_keyword.webp | Bin 0 -> 500 bytes app/src/main/res/mipmap-xxhdpi/ic_edit.webp | Bin 350 -> 588 bytes .../main/res/mipmap-xxhdpi/ic_empty_data.webp | Bin 8278 -> 9234 bytes .../res/mipmap-xxhdpi/ic_empty_subscribe.webp | Bin 0 -> 8966 bytes .../main/res/mipmap-xxhdpi/ic_new_tag.webp | Bin 0 -> 676 bytes .../res/mipmap-xxhdpi/ic_push_float_icon.webp | Bin 0 -> 5504 bytes .../res/mipmap-xxhdpi/ic_push_top_bg.webp | Bin 0 -> 40730 bytes .../main/res/mipmap-xxhdpi/ic_rb_checked.webp | Bin 0 -> 1506 bytes .../main/res/mipmap-xxhdpi/ic_rb_default.webp | Bin 0 -> 882 bytes .../res/mipmap-xxhdpi/ic_recommend_fire.webp | Bin 0 -> 1232 bytes .../ic_recommend_source_tag1.webp | Bin 0 -> 608 bytes .../ic_recommend_source_tag2.webp | Bin 0 -> 654 bytes .../ic_recommend_source_tag3.webp | Bin 0 -> 640 bytes .../ic_recommend_source_top_bg.webp | Bin 0 -> 39742 bytes .../main/res/mipmap-xxhdpi/ic_refresh3.webp | Bin 0 -> 620 bytes .../mipmap-xxhdpi/ic_selected_source_tag.webp | Bin 0 -> 1028 bytes .../mipmap-xxhdpi/ic_subscribe_area_icon.webp | Bin 0 -> 2578 bytes .../ic_subscribe_source_icon.webp | Bin 0 -> 2310 bytes .../ic_subscribe_title_icon.webp | Bin 0 -> 636 bytes .../mipmap-xxhdpi/ic_subscribe_top_bg.webp | Bin 0 -> 39434 bytes .../res/mipmap-xxhdpi/ic_tab_indicator.webp | Bin 0 -> 2750 bytes .../res/mipmap-xxhdpi/ic_vip_auth_icon.webp | Bin 0 -> 758 bytes app/src/main/res/values/colors.xml | 2 + app/src/main/res/values/dimens.xml | 1 + base/src/main/res/values/styles.xml | 4 +- 73 files changed, 2818 insertions(+), 136 deletions(-) create mode 100644 app/src/main/java/com/cheng/bole/event/SourceDataEvent.kt create mode 100644 app/src/main/java/com/cheng/bole/event/SubscriptionEvent.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/list/PushListFragment.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/list/PushListViewModel.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeAdapter.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeFragment.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeViewModel.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/AddSubscribeFragment.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/AddSubscribeViewModel.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/RecommendKeywordAdapter.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/SelectedKeywordAdapter.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/RecommendSourceAdapter.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SearchSourceAdapter.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SelectedSourceAdapter.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SourceSearchFragment.kt create mode 100644 app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SourceSearchViewModel.kt create mode 100644 app/src/main/res/drawable/selector_rb.xml create mode 100644 app/src/main/res/drawable/shape_dddddd_line_cor8.xml create mode 100644 app/src/main/res/drawable/shape_dde2eb_dash_divider_h.xml create mode 100644 app/src/main/res/drawable/shape_f8f9fa_cor10.xml create mode 100644 app/src/main/res/drawable/shape_f8f9fa_cor6.xml create mode 100644 app/src/main/res/drawable/shape_keyword_checked.xml create mode 100644 app/src/main/res/drawable/shape_keyword_default.xml create mode 100644 app/src/main/res/drawable/shape_push_bid_type_checked.xml create mode 100644 app/src/main/res/drawable/shape_push_bid_type_default.xml create mode 100644 app/src/main/res/drawable/shape_selected_keyword_bg.xml create mode 100644 app/src/main/res/drawable/shape_white_cor14.xml create mode 100644 app/src/main/res/drawable/shape_zzdb_btn_bg.xml create mode 100644 app/src/main/res/layout/fragment_add_subscribe.xml create mode 100644 app/src/main/res/layout/fragment_push_list.xml create mode 100644 app/src/main/res/layout/fragment_source_search.xml create mode 100644 app/src/main/res/layout/fragment_subscribe.xml create mode 100644 app/src/main/res/layout/listitem_recommend_keywords.xml create mode 100644 app/src/main/res/layout/listitem_recommend_source.xml create mode 100644 app/src/main/res/layout/listitem_search_source_result.xml create mode 100644 app/src/main/res/layout/listitem_selected_keywords.xml create mode 100644 app/src/main/res/layout/listitem_selected_source.xml create mode 100644 app/src/main/res/layout/listitem_subscribe.xml create mode 100644 app/src/main/res/layout/listitem_subscribe_area.xml create mode 100644 app/src/main/res/layout/listitem_subscribe_keyword.xml create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_add_subscribe_keyword.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_delete.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_delete_subscribe_keyword.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_empty_subscribe.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_new_tag.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_push_float_icon.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_push_top_bg.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_rb_checked.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_rb_default.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_recommend_fire.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_recommend_source_tag1.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_recommend_source_tag2.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_recommend_source_tag3.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_recommend_source_top_bg.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_refresh3.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_selected_source_tag.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_subscribe_area_icon.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_subscribe_source_icon.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_subscribe_title_icon.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_subscribe_top_bg.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_tab_indicator.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_vip_auth_icon.webp 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 2bed46d..c109381 100644 --- a/app/src/main/java/com/cheng/bole/common/EventConstants.kt +++ b/app/src/main/java/com/cheng/bole/common/EventConstants.kt @@ -19,8 +19,6 @@ object EventConstants { const val PAY_PAY = "client.pay.pay" //支付按钮点击 - const val CHALLENGE_TASK_PAY_PAY = "client.challenge.task.pay.pay" //0元挑战支付按钮点击 - const val PAY_SUCCESS = "client.pay.success" //支付成功 const val PAY_CANCEL = "client.pay.cancel" //支付取消 @@ -34,13 +32,15 @@ object EventConstants { const val PKG_CANCEL = "client.pkg.cancel" //升级弹窗点击取消 + const val BID_TYPE_CHECK = "client.bid.type.check" //标讯类型切换 + + const val JUMP_TO_TOOLS = "client.jump.to.tools" //跳转到企业工具 + const val JUMP_TO_BID_DETAIL = "client.jump.to.bid.detail" //跳转到标讯详情页 const val JUMP_TO_BID_SEARCH = "client.jump.to.bid.search" //跳转到搜索 - const val JUMP_TO_TOOLS = "client.jump.to.tools" //跳转到工具 - - const val DIALOG_GO_TO_VIEW = "client.dialog.go.to.view" //前往保存文件的地址查看 + const val JUMP_TO_SUBSCRIBE = "client.jump.to.subscribe" //跳转到订阅 const val JUMP_TO_ABOUT_US = "client.jump.to.about.us" //界面跳转 @@ -60,14 +60,6 @@ object EventConstants { const val JUMP_TO_ACCOUNT_MANAGE = "client.jump.to.account.manage" //跳转到账号管理 - const val JUMP_TO_RECHARGE_DIAMOND = "client.jump.to.recharge.diamond" //跳转到M币充值 - - const val JUMP_TO_COUPON_LIST = "client.jump.to.coupon.list" //跳转优惠券列表 - - const val JUMP_TO_CHALLENGE_TASK = "client.jump.to.challenge.task" //跳转到0元挑战 - - - const val DOWNLOAD_FILE = "client.download.file" //下载文件 const val DOWNLOAD_FILE_SUCCESS = "client.download.file.success" //下载文件成功 @@ -75,19 +67,6 @@ object EventConstants { const val DOWNLOAD_FILE_ERROR = "client.download.file.error" //下载文件失败 const val TRANSPOND_FILE = "client.transpond.file" //转发文件 - - const val MATERIAL_COPY_TEXT = "client.material.copy.text" //复制文字 - - const val MATERIAL_TYPE_CHECK = "client.material.type.check" //素材切换 - - const val MATERIAL_ALL_SELECT = "client.material.all.select" //全部选中素材 - - const val MATERIAL_SELECT = "client.material.select" //选择素材 - - const val TOOLS_VIDEO_EXTRACT_AUDIO = "client.tools.video.audio" //提取音频 - - const val MATERIAL_PLAY_VIDEO = "client.material.play.video" //播发视频 - const val GET_CODE = "client.get.code" //获取验证码 const val LOGIN = "client.login" //登录 @@ -118,110 +97,13 @@ object EventConstants { const val MEMBER_FORCE_LOGIN = "client.member.force.login" //会员强制登录 - const val GET_MATERIAL_TIMES_USE_UP = "client.times.use.up.get.material" //获取素材次数已用完 - - const val PICTURE_HANDLE_TIMES_USE_UP = "client.times.use.up.picture.handle" //图片处理次数已用完 - const val CHECK_LOGIN_TYPE = "client.check.login.type" //切换登录方式 - const val OPEN_SCREEN_AD_SHOW = "client.ad.open.screen.show" //开屏广告展示 - - const val OPEN_SCREEN_AD_SKIP = "client.ad.open.screen.skip" //开屏广告跳过 - - const val OPEN_SCREEN_AD_CLICK = "client.ad.open.screen.click" //开屏广告点击 - - const val BANNER_AD_SHOW = "client.ad.banner.show" //banner广告展示 - - const val BANNER_AD_CLOSE = "client.ad.banner.close" //banner广告关闭 - - const val BANNER_AD_CLICK = "client.ad.banner.click" //banner广告点击 - - const val INSERT_SCREEN_AD_SHOW = "client.ad.insert.screen.show" //插屏广告展示 - - const val INSERT_SCREEN_AD_CLOSE = "client.ad.insert.screen.close" //插屏广告关闭 - - const val INSERT_SCREEN_AD_CLICK = "client.ad.insert.screen.click" //插屏广告点击 - - const val INSERT_SCREEN_AD_SKIP_VIDEO = "client.ad.insert.screen.skip.video" //跳过插屏广告 - - const val INCENTIVE_AD_SHOW = "client.ad.incentive.show" //激励广告展示 - - const val INCENTIVE_AD_CLOSE = "client.ad.incentive.close" //激励广告关闭 - - const val INCENTIVE_AD_REWARD = "client.ad.incentive.reward" //激励广告已获取到奖励 - - const val INCENTIVE_AD_SKIP_VIDEO = "client.ad.incentive.skip.video" //跳过激励广告 - const val ACCOUNT_UNBIND = "client.account.unbind" //解除绑定账号 - const val HISTORY_RECORD_TYPE_CHECK = "client.history.record.type.check" //历史记录切换 - - const val CLOSE_FREE_TIME_USES_UP_DIALOG = - "client.free.time.uses.up.dialog.close" //关闭免费次数用完的提示框 - - const val CHECK_FREE_TIME_USES_UP_DIALOG = - "client.free.time.uses.up.dialog.check" //免费次数用完的提示框切换充值类型 - - const val CONFIRM_FREE_TIME_USES_UP_DIALOG = - "client.free.time.uses.up.dialog.confirm" //确认免费次数用完的提示框 - - const val MULTI_DELETE_FILE = "client.multi.delete.file" //批量删除文件 - - const val MULTI_TRANSMIT_FILE = "client.multi.transmit.file" //批量转发文件 - - const val PREVIEW_DELETE_FILE = "client.preview.delete.file" //预览时删除文件 - - const val PREVIEW_TRANSMIT_FILE = "client.preview.transmit.file" //预览时删除文件 - - const val PREVIEW_HANDLE_IMAGE = "client.preview.handle.image" //预览时进行图片处理 - - const val TOOLS_HANDLE_IMAGE_START = "client.tools.handle.image.start" //图片处理开始 - - const val TOOLS_HANDLE_SAVE_IMAGE = "client.tools.handle.save.image" //保存已处理过的图片至相册 - - const val AUTO_SWITCH_DOWNLOAD_URL = "client.auto.switch.download.url" //自动切换下载链接 - - const val HAND_SWITCH_DOWNLOAD_URL = "client.hand.switch.download.url" //手动切换下载链接立即加速 - - const val HOME_BANNER_CLICK = "client.home.banner.click" - - const val COUPON_ANIMATION_PLAY = "client.coupon.animation.play" //播放优惠券动画 - - const val COUPON_ANIMATION_CLOSE = "client.coupon.animation.close" //关闭优惠券动画 - - const val COUPON_RECEIVE = "client.coupon.receive" //领取优惠券 - - const val COUPON_REDEEM_ENABLE = "client.coupon.redeem.enable" //优惠券兑换按钮点击 - - const val COUPON_REDEEM_INFO = "client.coupon.redeem.info" //优惠券兑换详情 - - const val COUPON_REDEEM = "client.coupon.redeem" //优惠券兑换 - - const val COUPON_REDEEM_SUCCESS = "client.coupon.redeem.success" //优惠券兑换成功 - - const val COUPON_REDEEM_SUCCESS_CONFIRM = "client.coupon.redeem.success.confirm" //优惠券兑换成功 - - const val COUPON_VIEW = "client.coupon.view" //查看优惠券 - - const val COUPON_DIALOG_CHECK = "client.coupon.dialog.check" //切换优惠券 - - const val COUPON_DIALOG_CLOSE = "client.coupon.dialog.close" //关闭优惠券 - - const val COUPON_DIALOG_CONFIRM = "client.coupon.dialog.confirm" //确认优惠券 - const val COPY_USER_ID = "client.copy_user_id" //复制用户id - const val SHOW_PALYBACK_HINT_DIALOG = "client.show.playback.hint.dialog" - const val EXIT_APP = "client.exit.app" //退出APP const val SHOW_DIALOG = "client.show.dialog" //弹出退出app的弹框 - - const val START_COUPON_ANIMATION = "client.start.coupon.animation" - - const val CHALLENGE_TASK_SIGN_IN = "client.challenge.tasK.sign.in" //签到 - - const val CHALLENGE_TASK_SIGN_IN_SUCCESS = "client.challenge.tasK.sign.in.success" //签到成功 - - const val CHALLENGE_TASK_SIGN_IN_FAIL = "client.challenge.tasK.sign.in.fail" //签到失败 } \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/event/SourceDataEvent.kt b/app/src/main/java/com/cheng/bole/event/SourceDataEvent.kt new file mode 100644 index 0000000..a33fe66 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/event/SourceDataEvent.kt @@ -0,0 +1,6 @@ +package com.cheng.bole.event + +import com.cheng.bole.bean.SourceBean + +class SourceDataEvent(val list: List) { +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/event/SubscriptionEvent.kt b/app/src/main/java/com/cheng/bole/event/SubscriptionEvent.kt new file mode 100644 index 0000000..e430d86 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/event/SubscriptionEvent.kt @@ -0,0 +1,4 @@ +package com.cheng.bole.event + +class SubscriptionEvent { +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/home/zzdb/detail/ZZDBDetailFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/home/zzdb/detail/ZZDBDetailFragment.kt index 0a04963..4590357 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/home/zzdb/detail/ZZDBDetailFragment.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/home/zzdb/detail/ZZDBDetailFragment.kt @@ -7,6 +7,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import com.cheng.bole.R import com.cheng.bole.bean.AreaBean import com.cheng.bole.bean.ZZDBInfoBean +import com.cheng.bole.common.Constants import com.cheng.bole.databinding.FragmentZzdbDetailBinding import com.cheng.bole.ui.dialog.SelectAreaDialog import com.example.base.extensions.gone @@ -34,6 +35,11 @@ class ZZDBDetailFragment : BaseFragment() { + private val tabText = mutableListOf() + private val fragmentList by lazy { mutableListOf() } + private val pageAdapter by lazy { + BasePageAdapter( + childFragmentManager, + tabText, + fragmentList, + FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT + ) + } + override fun initView() { + super.initView() + binding.viewPager.adapter = pageAdapter + ViewPager1Delegate.install(binding.viewPager, binding.tabLayout) + + binding.emptyView.setNoDataLogo(R.mipmap.ic_empty_data) + binding.emptyView.setNoDataText("没有订阅相关商机,请前往订阅设置添加") + binding.emptyView.setBtnText("前往订阅设置") + binding.emptyView.setBtnVisible(true) + binding.emptyView.setStatus(PageStatus.NO_DATA) + binding.emptyView.noDataBtn { + PublicActivity.start(requireContext(), SubscribeFragment::class.java) + } + } + + override fun initData() { + super.initData() + if (UserConfigManager.getBidTypes().isEmpty()) { + mViewModel.getBidTypeList() + } else { + mViewModel.getSubscriptionList() + } + } + + override fun initListener() { + super.initListener() + binding.ivAdd.onClick { + PublicActivity.start(requireContext(), SubscribeFragment::class.java) + EventReportManager.eventReport(EventConstants.JUMP_TO_SUBSCRIBE, "home", "") + } + + binding.tabLayout.observeIndexChange { fromIndex, toIndex, _, _ -> + if (fromIndex != -1) { + (binding.tabLayout.getChildAt(fromIndex) as TextView).typeface = Typeface.DEFAULT + } + (binding.tabLayout.getChildAt(toIndex) as TextView).typeface = Constants.almmsht + } + } + + override fun initObserve() { + super.initObserve() + mViewModel.subscribeLiveData.observe(this) { + fragmentList.clear() + binding.tabLayout.removeAllViews() + if (it.isNotEmpty()) { + if (it.size == 1) { + binding.tabLayout.addView(createTab("专业招标平台")) + fragmentList.add(PushListFragment.newInstance(it[0].id)) + } else { + it.forEach { item -> + binding.tabLayout.addView(createTab(item.name)) + fragmentList.add(PushListFragment.newInstance(item.id)) + } + } + binding.emptyView.setStatus(PageStatus.GONG) + } else { + binding.emptyView.setStatus(PageStatus.NO_DATA) + } + pageAdapter.notifyDataSetChanged() + } + + mViewModel.typeLiveData.observe(this) { + UserConfigManager.saveBidTypes(it) + 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() + } else { + mViewModel.getSubscriptionList() + } + } + addDisposable(subscriptionEvent) + } + + private fun createTab(name: String): TextView { + tabText.add(name) + + val tvTab = TextView(requireContext()) + tvTab.text = name + tvTab.typeface = Constants.almmsht + tvTab.gravity = Gravity.CENTER + + val lp = DslTabLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, DensityUtils.dp2px(26f)) + lp.marginStart = DensityUtils.dp2px(12f) + lp.marginEnd = DensityUtils.dp2px(12f) + tvTab.layoutParams = lp + + return tvTab + } } \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/PushViewModel.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/PushViewModel.kt index aec3b64..da8fc6c 100644 --- a/app/src/main/java/com/cheng/bole/ui/fragment/push/PushViewModel.kt +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/PushViewModel.kt @@ -1,7 +1,45 @@ package com.cheng.bole.ui.fragment.push +import androidx.lifecycle.MutableLiveData +import com.cheng.bole.bean.BidTypeBean +import com.cheng.bole.bean.SubscriptionBean +import com.cheng.bole.net.ApiFactory +import com.example.base.extensions.toast +import com.example.base.utils.L import com.example.base.viewmodel.BaseViewModel class PushViewModel : BaseViewModel() { + val subscribeLiveData = MutableLiveData>() + val typeLiveData = MutableLiveData>() + + fun getSubscriptionList() { + showDialog() + launchOnUiTryCatch({ + val response = ApiFactory.apiService.getSubscriptionList() + if (response.status) { + subscribeLiveData.postValue(response.data.items) + } else toast(response.message, true) + dismissDialog() + }, { + dismissDialog() + setError(it) + L.d(it) + }) + } + + fun getBidTypeList() { + showDialog() + launchOnUiTryCatch({ + val response = ApiFactory.apiService.getBidTypeList() + if (response.status) { + typeLiveData.postValue(response.data) + } else toast(response.message, true) + dismissDialog() + }, { + dismissDialog() + setError(it) + L.d(it) + }) + } } \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/list/PushListFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/list/PushListFragment.kt new file mode 100644 index 0000000..22535c0 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/list/PushListFragment.kt @@ -0,0 +1,116 @@ +package com.cheng.bole.ui.fragment.push.list + +import android.graphics.Typeface +import android.os.Bundle +import android.view.Gravity +import android.widget.TextView +import com.angcyo.tablayout.DslTabLayout +import com.cheng.bole.R +import com.cheng.bole.bean.BidItemBean +import com.cheng.bole.bean.BidTypeBean +import com.cheng.bole.common.Constants +import com.cheng.bole.common.EventConstants +import com.cheng.bole.databinding.FragmentPushListBinding +import com.cheng.bole.manager.EventReportManager +import com.cheng.bole.manager.UserConfigManager +import com.cheng.bole.ui.activity.PublicActivity +import com.cheng.bole.ui.fragment.bid.BidAdapter +import com.cheng.bole.ui.fragment.bid.detail.BidDetailFragment +import com.cheng.bole.ui.fragment.mine.vip.VipFragment +import com.cheng.bole.ui.fragment.push.subscribe.SubscribeFragment +import com.example.base.decoration.FirstItemOffsetDecoration +import com.example.base.ui.list.ListFragment +import com.example.base.utils.DensityUtils +import com.example.base.widget.PageStatus + +class PushListFragment : ListFragment() { + private val subId by lazy { arguments?.getString("subId") ?: "" } + private val bidType by lazy { UserConfigManager.getBidTypes() } + + private var item: BidItemBean? = null + + companion object { + fun newInstance(subId: String): PushListFragment { + val args = Bundle() + args.putString("subId", subId) + val fragment = PushListFragment() + fragment.arguments = args + return fragment + } + } + + override fun bindAdapter() = BidAdapter() + + override fun noDataClick() { + PublicActivity.start(requireContext(), SubscribeFragment::class.java) + } + + override fun initView() { + super.initView() + mEmptyView.setNoDataLogo(R.mipmap.ic_empty_data) + mEmptyView.setNoDataText("暂无数据") + mEmptyView.setBtnVisible(false) + mEmptyView.setStatus(PageStatus.NO_DATA) + + binding.mRecyclerView.addItemDecoration(FirstItemOffsetDecoration(DensityUtils.dp2px(7f), FirstItemOffsetDecoration.top)) + } + + override fun initData() { + super.initData() + bidType.forEach { + binding.tabLayout.addView(createTab(it)) + } + } + + override fun initListener() { + super.initListener() + binding.tabLayout.observeIndexChange { fromIndex, toIndex, _, _ -> + val type = bidType[toIndex] + mViewModel.params["subId"] = subId + mViewModel.params["typeId"] = type.id + if (fromIndex != -1) { + (binding.tabLayout.getChildAt(fromIndex) as TextView).typeface = Typeface.DEFAULT + (binding.tabLayout.getChildAt(fromIndex) as TextView).setBackgroundResource(R.drawable.shape_push_bid_type_default) + } + (binding.tabLayout.getChildAt(toIndex) as TextView).typeface = Constants.douyinsansB + (binding.tabLayout.getChildAt(toIndex) as TextView).setBackgroundResource(R.drawable.shape_push_bid_type_checked) + EventReportManager.eventReport(EventConstants.BID_TYPE_CHECK, "home", (binding.tabLayout.getChildAt(toIndex) as TextView).text.toString()) + firstLoad() + } + + mAdapter.setOnItemClickListener { _, _, i -> + item = mAdapter.getItem(i) + mViewModel.checkAuth() + } + } + + override fun initObserve() { + super.initObserve() + mViewModel.authLiveData.observe(this) { + if (it.auth) { + PublicActivity.start( + requireContext(), + BidDetailFragment::class.java, + Pair("id", item!!.id), + Pair("info_source", item!!.info_source) + ) + } else { + PublicActivity.start(requireContext(), VipFragment::class.java, Pair("origin", "view_bid")) + } + } + } + + private fun createTab(type: BidTypeBean): TextView { + val tvTab = TextView(requireContext()) + tvTab.text = type.name + tvTab.gravity = Gravity.CENTER + tvTab.setBackgroundResource(R.drawable.shape_push_bid_type_default) + + val lp = DslTabLayout.LayoutParams(DensityUtils.dp2px(84f), DensityUtils.dp2px(34f)) + lp.marginStart = if (binding.tabLayout.childCount != 0) DensityUtils.dp2px(5f) else DensityUtils.dp2px(12f) + lp.marginEnd = if (binding.tabLayout.childCount < bidType.size - 1) DensityUtils.dp2px(5f) else DensityUtils.dp2px(12f) + tvTab.layoutParams = lp + + return tvTab + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/list/PushListViewModel.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/list/PushListViewModel.kt new file mode 100644 index 0000000..29655d9 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/list/PushListViewModel.kt @@ -0,0 +1,31 @@ +package com.cheng.bole.ui.fragment.push.list + +import androidx.collection.ArrayMap +import androidx.lifecycle.MutableLiveData +import com.cheng.bole.bean.BidItemBean +import com.cheng.bole.bean.UserAuthBean +import com.cheng.bole.net.ApiFactory +import com.cheng.bole.net.model.toListResult +import com.example.base.extensions.toast +import com.example.base.utils.L +import com.example.base.viewmodel.ListViewModel + +class PushListViewModel: ListViewModel() { + override suspend fun requestApi(params: ArrayMap): Result> { + return ApiFactory.apiService.getRecommendList(params).toListResult() + } + + val authLiveData = MutableLiveData() + + fun checkAuth() { + launchOnUiTryCatch({ + val response = ApiFactory.apiService.checkAuth() + if (response.status) { + authLiveData.postValue(response.data) + } else toast(response.message, true) + }, { + setError(it) + L.d(it) + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeAdapter.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeAdapter.kt new file mode 100644 index 0000000..d8eb33f --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeAdapter.kt @@ -0,0 +1,51 @@ +package com.cheng.bole.ui.fragment.push.subscribe + +import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.cheng.bole.R +import com.cheng.bole.bean.SubscriptionBean +import com.cheng.bole.manager.UserConfigManager + +class SubscribeAdapter: BaseQuickAdapter(R.layout.listitem_subscribe) { + + init { + addChildClickViewIds(R.id.tv_delete, R.id.tv_edit) + } + + override fun convert(holder: BaseViewHolder, item: SubscriptionBean) { + holder.setText(R.id.tv_name, item.name) + + val rvKeyword = holder.getView(R.id.rv_keywords) + val keywordAdapter = KeywordAdapter() + rvKeyword.adapter = keywordAdapter + keywordAdapter.setList(item.keyword) + + val rvCity = holder.getView(R.id.rv_area) + val cityAdapter = CityAdapter() + rvCity.adapter = cityAdapter + if (item.type == 1) { + if (item.city_name.size == UserConfigManager.getCityList().size) { + cityAdapter.setList(listOf("全国")) + } else { + cityAdapter.setList(item.city_name) + } + } else { + cityAdapter.setList(item.source_name) + } + } + + inner class KeywordAdapter: BaseQuickAdapter(R.layout.listitem_subscribe_keyword) { + override fun convert(holder: BaseViewHolder, item: String) { + holder.setText(R.id.tv_name, item) + } + + } + + inner class CityAdapter: BaseQuickAdapter(R.layout.listitem_subscribe_area) { + override fun convert(holder: BaseViewHolder, item: String) { + holder.setText(R.id.tv_name, item) + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeFragment.kt new file mode 100644 index 0000000..9ff0f16 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeFragment.kt @@ -0,0 +1,95 @@ +package com.cheng.bole.ui.fragment.push.subscribe + +import android.text.TextUtils +import com.cheng.bole.R +import com.cheng.bole.common.Constants +import com.cheng.bole.databinding.FragmentSubscribeBinding +import com.cheng.bole.event.SubscriptionEvent +import com.cheng.bole.manager.DialogEnum +import com.cheng.bole.ui.activity.PublicActivity +import com.cheng.bole.ui.dialog.TipDialog +import com.cheng.bole.ui.fragment.push.subscribe.add.AddSubscribeFragment +import com.example.base.common.RxBus +import com.example.base.decoration.FirstItemOffsetDecoration +import com.example.base.extensions.onClick +import com.example.base.extensions.toast +import com.example.base.ui.BaseFragment +import com.example.base.utils.DensityUtils +import com.example.base.widget.EmptyView +import com.example.base.widget.PageStatus + +class SubscribeFragment: BaseFragment() { + private val mAdapter by lazy { SubscribeAdapter() } + private val mEmptyView by lazy { EmptyView(requireContext()) } + + override fun initView() { + super.initView() + mTitleBar?.background = null + + binding.tvTitle.typeface = Constants.pmzdbt + + binding.mRecyclerView.adapter = mAdapter + binding.mRecyclerView.addItemDecoration(FirstItemOffsetDecoration(DensityUtils.dp2px(7f), FirstItemOffsetDecoration.top)) + mEmptyView.setNoDataText("暂无订阅") + mEmptyView.setNoDataLogo(R.mipmap.ic_empty_subscribe) + mEmptyView.setBtnVisible(false) + mAdapter.setEmptyView(mEmptyView) + } + + override fun initData() { + super.initData() + mViewModel.getSubscriptionList() + } + + override fun initListener() { + super.initListener() + + binding.layoutArea.onClick { + PublicActivity.start(requireContext(), AddSubscribeFragment::class.java, Pair("type", 1)) + } + + binding.layoutSource.onClick { + PublicActivity.start(requireContext(), AddSubscribeFragment::class.java, Pair("type", 2)) + } + + mAdapter.setOnItemChildClickListener { _, view, i -> + val item = mAdapter.getItem(i) + when(view.id) { + R.id.tv_delete -> { + val f = TipDialog.newInstance("温馨提示", "您确定要删除订阅吗?") + f.setOnSelectListener { + if (it == DialogEnum.CLICK_OK) { + mViewModel.deleteSubscription(item.id) + } + } + f.show(childFragmentManager, TipDialog::class.java.simpleName) + } + + R.id.tv_edit -> { + PublicActivity.start(requireContext(), AddSubscribeFragment::class.java, Pair("type", item.type), Pair("item", item)) + } + } + } + } + + override fun initObserve() { + super.initObserve() + mViewModel.subscribeLiveData.observe(this) { + mAdapter.setList(it) + if (it.isNotEmpty()) { + mEmptyView.setStatus(PageStatus.GONG) + } else { + mEmptyView.setStatus(PageStatus.NO_DATA) + } + } + + mViewModel.deleteLiveData.observe(this) { + RxBus.defaultInstance.post(SubscriptionEvent()) + toast("删除成功") + } + val subscriptionEvent = RxBus.defaultInstance.toObservable(SubscriptionEvent::class.java).subscribe { + mViewModel.getSubscriptionList() + } + addDisposable(subscriptionEvent) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeViewModel.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeViewModel.kt new file mode 100644 index 0000000..16b4436 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/SubscribeViewModel.kt @@ -0,0 +1,43 @@ +package com.cheng.bole.ui.fragment.push.subscribe + +import androidx.lifecycle.MutableLiveData +import com.cheng.bole.bean.SubscriptionBean +import com.cheng.bole.net.ApiFactory +import com.example.base.extensions.toast +import com.example.base.utils.L +import com.example.base.viewmodel.BaseViewModel + +class SubscribeViewModel: BaseViewModel() { + val subscribeLiveData = MutableLiveData>() + val deleteLiveData = MutableLiveData() + + fun getSubscriptionList() { + showDialog() + launchOnUiTryCatch({ + val response = ApiFactory.apiService.getSubscriptionList() + if (response.status) { + subscribeLiveData.postValue(response.data.items) + } else toast(response.message, true) + dismissDialog() + }, { + dismissDialog() + setError(it) + L.d(it) + }) + } + + fun deleteSubscription(id: String) { + showDialog() + launchOnUiTryCatch({ + val response = ApiFactory.apiService.deleteSubscription(id) + if (response.status) { + deleteLiveData.postValue(Any()) + } else toast(response.message, true) + dismissDialog() + }, { + dismissDialog() + setError(it) + L.d(it) + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/AddSubscribeFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/AddSubscribeFragment.kt new file mode 100644 index 0000000..a7941d2 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/AddSubscribeFragment.kt @@ -0,0 +1,391 @@ +package com.cheng.bole.ui.fragment.push.subscribe.add + +import android.annotation.SuppressLint +import android.graphics.Color +import android.os.Build +import android.text.TextUtils +import android.view.View +import android.view.animation.RotateAnimation +import com.cheng.bole.R +import com.cheng.bole.bean.AreaBean +import com.cheng.bole.bean.HotWordBean +import com.cheng.bole.bean.SourceBean +import com.cheng.bole.bean.SubscriptionBean +import com.cheng.bole.databinding.FragmentAddSubscribeBinding +import com.cheng.bole.event.SourceDataEvent +import com.cheng.bole.event.SubscriptionEvent +import com.cheng.bole.manager.NotificationHelper +import com.cheng.bole.manager.UserConfigManager +import com.cheng.bole.ui.activity.PublicActivity +import com.cheng.bole.ui.dialog.SelectAreaDialog +import com.cheng.bole.ui.fragment.mine.vip.VipFragment +import com.cheng.bole.ui.fragment.push.subscribe.source.SourceSearchFragment +import com.cheng.bole.utils.PermissionUtils +import com.example.base.common.RxBus +import com.example.base.decoration.GridSpaceItemDecoration +import com.example.base.extensions.getColor +import com.example.base.extensions.gone +import com.example.base.extensions.invisible +import com.example.base.extensions.onClick +import com.example.base.extensions.toast +import com.example.base.extensions.visible +import com.example.base.ui.BaseFragment +import com.example.base.utils.DensityUtils +import com.example.base.utils.SpanUtils +import com.google.android.flexbox.FlexDirection +import com.google.android.flexbox.FlexWrap +import com.google.android.flexbox.FlexboxLayoutManager +import com.google.android.flexbox.JustifyContent +import com.google.gson.Gson +import com.google.gson.JsonObject +import okhttp3.RequestBody.Companion.toRequestBody + +class AddSubscribeFragment : BaseFragment() { + private val type by lazy { arguments?.getInt("type") ?: 1 } // 1 地区 2 数据源 + private var subscription: SubscriptionBean? = null + + private val selectedKeywordAdapter by lazy { SelectedKeywordAdapter() } + private val keywordAdapter by lazy { RecommendKeywordAdapter() } + + private val selectedCity = arrayListOf() + private val selectedSource = arrayListOf() + + private var pushType = 3 //1 短信 2 邮箱 3 app推送 + + override fun initView() { + super.initView() + mTitleBar?.setBackgroundColor(Color.WHITE) + + val layoutManager = FlexboxLayoutManager(requireContext()) + layoutManager.flexDirection = FlexDirection.ROW + layoutManager.flexWrap = FlexWrap.WRAP + layoutManager.justifyContent = JustifyContent.FLEX_START + binding.rvSelectedKeywords.layoutManager = layoutManager + binding.rvSelectedKeywords.adapter = selectedKeywordAdapter + + binding.rvKeywords.adapter = keywordAdapter + binding.rvKeywords.addItemDecoration(GridSpaceItemDecoration(3, DensityUtils.dp2px(10f), DensityUtils.dp2px(10f))) + } + + override fun initData() { + super.initData() + subscription = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + arguments?.getSerializable("item", SubscriptionBean::class.java) + } else { + arguments?.getSerializable("item") as? SubscriptionBean + } + setData() + + mViewModel.getKeywords("") + } + + @SuppressLint("NotifyDataSetChanged") + override fun initListener() { + super.initListener() + + binding.tvArea.onClick { + val f = SelectAreaDialog.newInstance(selectedCity) + f.setOnSelectListener { list -> + selectedCity.clear() + list.forEach { item -> selectedCity.add(item) } + binding.tvArea.text = + if (selectedCity.size == UserConfigManager.getCityList().size) "全国" else selectedCity.joinToString(",") { it.name } + } + f.show(childFragmentManager, SelectAreaDialog::class.java.simpleName) + } + + binding.tvSource.onClick { + PublicActivity.start(requireContext(), SourceSearchFragment::class.java, Pair("list", Gson().toJson(selectedSource))) + } + + binding.tvNotificationState.onClick { + if (!NotificationHelper.isNotificationEnabled(requireContext())) { + PermissionUtils.checkNotificationPermission(requireActivity()) { + updatePushType() + } + } + } + + binding.layoutRefresh.onClick { + startRotate() + mViewModel.getKeywords(if (keywordAdapter.data.isNotEmpty()) keywordAdapter.data.last().name else "") + } + + binding.tvAddKeywords.onClick { + val keyword = binding.etKeyword.text.toString().trim() + if (TextUtils.isEmpty(keyword)) { + toast("请输入关键词") + return@onClick + } + if (selectedKeywordAdapter.data.size == 5) { + toast("最多添加5个关键词") + return@onClick + } + selectedKeywordAdapter.addData(keyword) + SpanUtils.with(binding.tvKeywordsCount) + .append("${selectedKeywordAdapter.data.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5") + .create() + binding.etKeyword.setText("") + binding.rvSelectedKeywords.visible() + } + + selectedKeywordAdapter.setOnItemChildClickListener { _, view, i -> + when (view.id) { + R.id.iv_delete -> { + selectedKeywordAdapter.removeAt(i) + if (selectedKeywordAdapter.data.isEmpty()) { + binding.rvSelectedKeywords.gone() + } + SpanUtils.with(binding.tvKeywordsCount) + .append("${selectedKeywordAdapter.data.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5") + .create() + } + } + } + + keywordAdapter.setOnItemClickListener { _, _, i -> + val item = keywordAdapter.getItem(i) + + if (selectedKeywordAdapter.data.size == 5) { + toast("最多添加5个关键词") + return@setOnItemClickListener + } + if (selectedKeywordAdapter.data.contains(item.name)) { + toast("关键词已存在") + return@setOnItemClickListener + } + + selectedKeywordAdapter.addData(item.name) + SpanUtils.with(binding.tvKeywordsCount) + .append("${selectedKeywordAdapter.data.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5") + .create() + binding.rvSelectedKeywords.visible() + } + + binding.rgPushType.setOnCheckedChangeListener { group, checkedId -> + when (checkedId) { + R.id.rb1 -> pushType = 1 + + R.id.rb2 -> pushType = 2 + + R.id.rb3 -> pushType = 3 + } + updatePushType() + } + + binding.tv1.onClick { + binding.rb1.isChecked = true + } + + binding.tv2.onClick { + binding.rb2.isChecked = true + } + + binding.tv3.onClick { + binding.rb3.isChecked = true + } + + binding.btnNext.onClick { + val phone = binding.etPhone.text.toString() + val email = binding.etEmail.text.toString() + if ((!TextUtils.isEmpty(phone) && pushType == 1) || (!TextUtils.isEmpty(email) && pushType == 2) || type == 2) { + mViewModel.checkAuth() + } else { + commit() + } + } + } + + override fun initObserve() { + super.initObserve() + mViewModel.keywordsLiveData.observe(this) { + val list = mutableListOf() + it.forEach { keyword -> + list.add(HotWordBean.Child(name = keyword)) + } + keywordAdapter.setList(list) + } + + mViewModel.authLiveData.observe(this) { + if (it.auth) { + commit() + } else { + PublicActivity.start(requireContext(), VipFragment::class.java, Pair("origin", "subscribe")) + } + } + + mViewModel.addLiveData.observe(this) { + toast(if (subscription == null) "添加成功" else "修改成功") + RxBus.defaultInstance.post(SubscriptionEvent()) + requireActivity().finish() + } + + val sourceEvent = RxBus.defaultInstance.toObservable(SourceDataEvent::class.java).subscribe { + selectedSource.clear() + selectedSource.addAll(it.list) + SpanUtils.with(binding.tvSource) + .append("已增加 (") + .append("${selectedSource.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5)") + .create() + } + addDisposable(sourceEvent) + } + + private fun commit() { + val name = binding.etName.text.toString().trim() + val phone = binding.etPhone.text.toString() + val email = binding.etEmail.text.toString() + if (type == 1 && selectedCity.isEmpty()) { + toast("请选择订阅地区") + return + } + if (type == 2 && selectedSource.isEmpty()) { + toast("请选择数据源") + return + } + if (selectedKeywordAdapter.data.isEmpty()) { + toast("请添加关键词") + return + } + if (pushType == 1 && TextUtils.isEmpty(phone)) { + toast("请输入订阅手机号") + return + } + if (pushType == 2 && TextUtils.isEmpty(email)) { + toast("请输入订阅邮箱") + return + } + + val jsonObject = JsonObject() + jsonObject.addProperty("name", if (!TextUtils.isEmpty(name)) name else "默认订阅") + jsonObject.addProperty("keyword", selectedKeywordAdapter.data.joinToString(",")) + jsonObject.addProperty("push_type", "$pushType") + jsonObject.addProperty("push_receiver", if (pushType == 1) phone else if (pushType == 2) email else "") + if (type == 1) { + jsonObject.addProperty("type", "1") + jsonObject.addProperty("city_id", selectedCity.joinToString(",") { it.id.toString() }) + jsonObject.addProperty("source_id", "") + + } else { + jsonObject.addProperty("type", "2") + jsonObject.addProperty("source_id", selectedSource.joinToString(",") { it.id }) + jsonObject.addProperty("city_id", "") + } + if (subscription != null) { + jsonObject.addProperty("id", subscription!!.id) + mViewModel.updateSubscription(jsonObject.toString().toRequestBody()) + } else { + mViewModel.addSubscription(jsonObject.toString().toRequestBody()) + } + } + + private fun setData() { + if (type == 1) { + binding.tvTitle.text = "地区订阅" + binding.ivVipTag.gone() + binding.layoutArea.visible() + binding.layoutSource.invisible() + binding.ivVipTag1.visible() + binding.ivVipTag2.visible() + } else { + binding.tvTitle.text = "数据源订阅" + binding.ivVipTag.visible() + binding.layoutArea.invisible() + binding.layoutSource.visible() + binding.ivVipTag1.gone() + binding.ivVipTag2.gone() + } + + if (subscription != null) { + binding.etName.setText(subscription!!.name) + + val cityList = UserConfigManager.getCityList() + subscription!!.city_id.forEach { id -> + val city = cityList.find { it.id == id.toInt() } + if (city != null) selectedCity.add(city) + } + binding.tvArea.text = + if (subscription!!.city_name.size == UserConfigManager.getCityList().size) "全国" else subscription!!.city_name.joinToString(",") + + selectedSource.addAll(subscription!!.source) + SpanUtils.with(binding.tvSource) + .append("已增加 (") + .append("${subscription!!.source.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5)") + .create() + + selectedKeywordAdapter.setList(subscription!!.keyword) + SpanUtils.with(binding.tvKeywordsCount) + .append("${subscription!!.keyword.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5") + .create() + binding.rvSelectedKeywords.visibility = if (subscription!!.keyword.isNotEmpty()) View.VISIBLE else View.GONE + + pushType = if (!TextUtils.isEmpty(subscription!!.push_type)) subscription!!.push_type.toInt() else 3 + updatePushType(subscription!!.push_receiver) + } else { + SpanUtils.with(binding.tvSource) + .append("已增加 (") + .append("0") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5)") + .create() + + SpanUtils.with(binding.tvKeywordsCount) + .append("0") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5") + .create() + + updatePushType() + } + } + + private fun updatePushType(receiver: String? = null) { + when (pushType) { + 1 -> { + binding.etPhone.setText(receiver) + + binding.etPhone.visible() + binding.etEmail.gone() + binding.layoutNotificationState.gone() + } + 2 -> { + binding.etEmail.setText(receiver) + binding.etPhone.gone() + binding.etEmail.visible() + binding.layoutNotificationState.gone() + } + 3 -> { + if (NotificationHelper.isNotificationEnabled(requireContext())) { + binding.tvNotificationState.text = "已授权" + } else { + binding.tvNotificationState.text = "" + } + + binding.etPhone.gone() + binding.etEmail.gone() + binding.layoutNotificationState.visible() + } + } + } + + private fun startRotate() { + if (binding.ivRefreshKeywords.animation != null) { + binding.ivRefreshKeywords.animation.cancel() + } + val anim = RotateAnimation(0f, 360f, RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f) + anim.duration = 1000 + binding.ivRefreshKeywords.startAnimation(anim) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/AddSubscribeViewModel.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/AddSubscribeViewModel.kt new file mode 100644 index 0000000..fd93528 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/AddSubscribeViewModel.kt @@ -0,0 +1,73 @@ +package com.cheng.bole.ui.fragment.push.subscribe.add + +import androidx.lifecycle.MutableLiveData +import com.cheng.bole.bean.UserAuthBean +import com.cheng.bole.net.ApiFactory +import com.example.base.extensions.toast +import com.example.base.utils.L +import com.example.base.viewmodel.BaseViewModel +import okhttp3.RequestBody + +class AddSubscribeViewModel : BaseViewModel() { + val keywordsLiveData = MutableLiveData>() + val addLiveData = MutableLiveData() + + fun getKeywords(query: String) { + launchOnUiTryCatch({ + val params = mutableMapOf() + params["query"] = query + params["size"] = "9" + val response = ApiFactory.apiService.getHotKeywords(params) + if (response.status) { + keywordsLiveData.postValue(response.data) + } else toast(response.message, true) + }, { + setError(it) + L.d(it) + }) + } + + fun addSubscription(requestBody: RequestBody) { + showDialog() + launchOnUiTryCatch({ + val response = ApiFactory.apiService.addSubscription(requestBody) + if (response.status) { + addLiveData.postValue(Any()) + } else toast(response.message, true) + dismissDialog() + }, { + dismissDialog() + setError(it) + L.d(it) + }) + } + + fun updateSubscription(requestBody: RequestBody) { + showDialog() + launchOnUiTryCatch({ + val response = ApiFactory.apiService.updateSubscription(requestBody) + if (response.status) { + addLiveData.postValue(Any()) + } else toast(response.message, true) + dismissDialog() + }, { + dismissDialog() + setError(it) + L.d(it) + }) + } + + val authLiveData = MutableLiveData() + + fun checkAuth() { + launchOnUiTryCatch({ + val response = ApiFactory.apiService.checkAuth() + if (response.status) { + authLiveData.postValue(response.data) + } else toast(response.message, true) + }, { + setError(it) + L.d(it) + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/RecommendKeywordAdapter.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/RecommendKeywordAdapter.kt new file mode 100644 index 0000000..fc744a6 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/RecommendKeywordAdapter.kt @@ -0,0 +1,12 @@ +package com.cheng.bole.ui.fragment.push.subscribe.add + +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.cheng.bole.R +import com.cheng.bole.bean.HotWordBean + +class RecommendKeywordAdapter: BaseQuickAdapter(R.layout.listitem_recommend_keywords) { + override fun convert(holder: BaseViewHolder, item: HotWordBean.Child) { + holder.setText(R.id.tv_name, item.name) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/SelectedKeywordAdapter.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/SelectedKeywordAdapter.kt new file mode 100644 index 0000000..fb0345b --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/add/SelectedKeywordAdapter.kt @@ -0,0 +1,16 @@ +package com.cheng.bole.ui.fragment.push.subscribe.add + +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.cheng.bole.R + +class SelectedKeywordAdapter: BaseQuickAdapter(R.layout.listitem_selected_keywords) { + + init { + addChildClickViewIds(R.id.iv_delete) + } + + override fun convert(holder: BaseViewHolder, item: String) { + holder.setText(R.id.tv_name, item) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/RecommendSourceAdapter.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/RecommendSourceAdapter.kt new file mode 100644 index 0000000..2580607 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/RecommendSourceAdapter.kt @@ -0,0 +1,38 @@ +package com.cheng.bole.ui.fragment.push.subscribe.source + +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.cheng.bole.R +import com.cheng.bole.bean.SourceBean + +class RecommendSourceAdapter: BaseQuickAdapter(R.layout.listitem_recommend_source) { + override fun convert(holder: BaseViewHolder, item: SourceBean) { + holder.setText(R.id.tv_name, item.name) + when(holder.layoutPosition) { + 0 -> { + holder.setImageResource(R.id.iv_tag1, R.mipmap.ic_recommend_source_tag1) + holder.setVisible(R.id.iv_tag1, true) + holder.setVisible(R.id.iv_tag2, true) + holder.setGone(R.id.tv_index, true) + } + 1 -> { + holder.setImageResource(R.id.iv_tag1, R.mipmap.ic_recommend_source_tag2) + holder.setVisible(R.id.iv_tag1, true) + holder.setVisible(R.id.iv_tag2, true) + holder.setGone(R.id.tv_index, true) + } + 2 -> { + holder.setImageResource(R.id.iv_tag1, R.mipmap.ic_recommend_source_tag3) + holder.setVisible(R.id.iv_tag1, true) + holder.setVisible(R.id.iv_tag2, true) + holder.setGone(R.id.tv_index, true) + } + else -> { + holder.setText(R.id.tv_index, "${holder.layoutPosition + 1}") + holder.setVisible(R.id.tv_index, true) + holder.setGone(R.id.iv_tag1, true) + holder.setVisible(R.id.iv_tag2, false) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SearchSourceAdapter.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SearchSourceAdapter.kt new file mode 100644 index 0000000..fd66d82 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SearchSourceAdapter.kt @@ -0,0 +1,33 @@ +package com.cheng.bole.ui.fragment.push.subscribe.source + +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.cheng.bole.R +import com.cheng.bole.bean.SourceBean +import com.example.base.extensions.getColor +import com.example.base.utils.SpanUtils + +class SearchSourceAdapter: BaseQuickAdapter(R.layout.listitem_search_source_result) { + private var keyword: String = "" + + override fun convert(holder: BaseViewHolder, item: SourceBean) { + val name = item.name + val index = name.indexOf(keyword) + if (index != -1) { + val startText = name.take(index) + val endText = name.substring(index + keyword.length, name.length) + SpanUtils.with(holder.getView(R.id.tv_name)) + .append(startText) + .append(keyword) + .setForegroundColor(getColor(R.color.color_ff493c)) + .append(endText) + .create() + } else { + holder.setText(R.id.tv_name, name) + } + } + + fun setKeyword(keyword: String) { + this.keyword = keyword + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SelectedSourceAdapter.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SelectedSourceAdapter.kt new file mode 100644 index 0000000..40fcfd0 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SelectedSourceAdapter.kt @@ -0,0 +1,17 @@ +package com.cheng.bole.ui.fragment.push.subscribe.source + +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.cheng.bole.R +import com.cheng.bole.bean.SourceBean + +class SelectedSourceAdapter: BaseQuickAdapter(R.layout.listitem_selected_source) { + + init { + addChildClickViewIds(R.id.iv_delete) + } + + override fun convert(holder: BaseViewHolder, item: SourceBean) { + holder.setText(R.id.tv_name, item.name) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SourceSearchFragment.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SourceSearchFragment.kt new file mode 100644 index 0000000..e243d25 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SourceSearchFragment.kt @@ -0,0 +1,170 @@ +package com.cheng.bole.ui.fragment.push.subscribe.source + +import android.text.TextUtils +import com.cheng.bole.R +import com.cheng.bole.bean.SourceBean +import com.cheng.bole.databinding.FragmentSourceSearchBinding +import com.cheng.bole.event.SourceDataEvent +import com.cheng.bole.impl.TextWatcherImpl +import com.example.base.common.RxBus +import com.example.base.decoration.DividerItemDecoration +import com.example.base.extensions.getColor +import com.example.base.extensions.gone +import com.example.base.extensions.onClick +import com.example.base.extensions.toast +import com.example.base.extensions.visible +import com.example.base.ui.BaseFragment +import com.example.base.utils.DensityUtils +import com.example.base.utils.SpanUtils +import com.example.base.widget.EmptyView +import com.example.base.widget.PageStatus +import com.google.android.flexbox.FlexDirection +import com.google.android.flexbox.FlexWrap +import com.google.android.flexbox.FlexboxLayoutManager +import com.google.android.flexbox.JustifyContent +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken + +class SourceSearchFragment: BaseFragment() { + private val selectedAdapter by lazy { SelectedSourceAdapter() } + private val recommendAdapter by lazy { RecommendSourceAdapter() } + private val resultAdapter by lazy { SearchSourceAdapter() } + + private val resultEmptyView by lazy { EmptyView(requireContext()) } + + override fun initView() { + super.initView() + val layoutManager = FlexboxLayoutManager(requireContext()) + layoutManager.flexDirection = FlexDirection.ROW + layoutManager.flexWrap = FlexWrap.WRAP + layoutManager.justifyContent = JustifyContent.FLEX_START + binding.rvSelected.layoutManager = layoutManager + binding.rvSelected.adapter = selectedAdapter + + binding.rvRecommend.adapter = recommendAdapter + binding.rvRecommend.addItemDecoration(DividerItemDecoration(DensityUtils.dp2px(14f), DensityUtils.dp2px(14f), color = getColor(R.color.color_eeeeee))) + + binding.rvResult.adapter = resultAdapter + resultEmptyView.setNoDataLogo(R.mipmap.ic_empty_data) + resultEmptyView.setNoDataText("暂无数据") + resultAdapter.setEmptyView(resultEmptyView) + } + + override fun initData() { + super.initData() + mViewModel.getHotSources() + + val listStr = arguments?.getString("list") + if (!TextUtils.isEmpty(listStr)) { + selectedAdapter.setList(Gson().fromJson(listStr, object : TypeToken>() {}.type)) + if (selectedAdapter.data.isNotEmpty()) { + SpanUtils.with(binding.tvSelectedCount) + .append("(") + .append("${selectedAdapter.data.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5)") + .create() + binding.layoutSelected.visible() + } + } + } + + override fun initListener() { + super.initListener() + binding.layoutResult.onClick { + binding.layoutResult.gone() + } + + binding.etSearch.addTextChangedListener(object : TextWatcherImpl() { + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { + super.onTextChanged(s, start, before, count) + resultAdapter.setKeyword(s.toString()) + if (!TextUtils.isEmpty(s?.trim())) { + mViewModel.search(s.toString()) + binding.layoutResult.visible() + } else { + binding.layoutResult.gone() + } + } + }) + + recommendAdapter.setOnItemClickListener { _, _, i -> + val item = recommendAdapter.getItem(i) + if (selectedAdapter.data.size == 5) { + toast("最多添加5个数据源") + return@setOnItemClickListener + } + if (selectedAdapter.data.find { it.id == item.id } != null){ + toast("数据源已存在") + return@setOnItemClickListener + } + selectedAdapter.addData(item) + SpanUtils.with(binding.tvSelectedCount) + .append("(") + .append("${selectedAdapter.data.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5)") + .create() + binding.layoutSelected.visible() + } + + resultAdapter.setOnItemClickListener { _, _, i -> + val item = resultAdapter.getItem(i) + if (selectedAdapter.data.size == 5) { + toast("最多添加5个数据源") + return@setOnItemClickListener + } + if (selectedAdapter.data.find { it.id == item.id } != null){ + toast("数据源已存在") + return@setOnItemClickListener + } + selectedAdapter.addData(item) + SpanUtils.with(binding.tvSelectedCount) + .append("(") + .append("${selectedAdapter.data.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5)") + .create() + binding.layoutSelected.visible() + binding.layoutResult.gone() + } + + selectedAdapter.setOnItemChildClickListener { _, view, i -> + when(view.id) { + R.id.iv_delete -> { + selectedAdapter.removeAt(i) + SpanUtils.with(binding.tvSelectedCount) + .append("(") + .append("${selectedAdapter.data.size}") + .setForegroundColor(getColor(R.color.color_ff493c)) + .append("/5)") + .create() + if (selectedAdapter.data.isEmpty()) { + binding.layoutSelected.gone() + } + } + } + } + } + + override fun initObserve() { + super.initObserve() + mViewModel.hotLiveData.observe(this) { + recommendAdapter.setList(it) + } + + mViewModel.searchLiveData.observe(this) { + resultAdapter.setList(it) + if (it.isNotEmpty()) { + resultEmptyView.setStatus(PageStatus.GONG) + } else { + resultEmptyView.setStatus(PageStatus.NO_DATA) + } + } + } + + override fun onDestroy() { + RxBus.defaultInstance.post(SourceDataEvent(selectedAdapter.data)) + super.onDestroy() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SourceSearchViewModel.kt b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SourceSearchViewModel.kt new file mode 100644 index 0000000..b0362f8 --- /dev/null +++ b/app/src/main/java/com/cheng/bole/ui/fragment/push/subscribe/source/SourceSearchViewModel.kt @@ -0,0 +1,40 @@ +package com.cheng.bole.ui.fragment.push.subscribe.source + +import androidx.lifecycle.MutableLiveData +import com.cheng.bole.bean.SourceBean +import com.cheng.bole.net.ApiFactory +import com.example.base.extensions.toast +import com.example.base.utils.L +import com.example.base.viewmodel.BaseViewModel + +class SourceSearchViewModel: BaseViewModel() { + val hotLiveData = MutableLiveData>() + val searchLiveData = MutableLiveData>() + + fun getHotSources() { + showDialog() + launchOnUiTryCatch({ + val response = ApiFactory.apiService.getHotSources() + if (response.status) { + hotLiveData.postValue(response.data.items) + } else toast(response.message, true) + dismissDialog() + }, { + dismissDialog() + setError(it) + L.d(it) + }) + } + + fun search(keyword: String) { + launchOnUiTryCatch({ + val response = ApiFactory.apiService.searchSource(keyword) + if (response.status) { + searchLiveData.postValue(response.data.items) + } else toast(response.message, true) + }, { + setError(it) + L.d(it) + }) + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_rb.xml b/app/src/main/res/drawable/selector_rb.xml new file mode 100644 index 0000000..7ed0278 --- /dev/null +++ b/app/src/main/res/drawable/selector_rb.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_dddddd_line_cor8.xml b/app/src/main/res/drawable/shape_dddddd_line_cor8.xml new file mode 100644 index 0000000..6519ea5 --- /dev/null +++ b/app/src/main/res/drawable/shape_dddddd_line_cor8.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_dde2eb_dash_divider_h.xml b/app/src/main/res/drawable/shape_dde2eb_dash_divider_h.xml new file mode 100644 index 0000000..46717bd --- /dev/null +++ b/app/src/main/res/drawable/shape_dde2eb_dash_divider_h.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_f8f9fa_cor10.xml b/app/src/main/res/drawable/shape_f8f9fa_cor10.xml new file mode 100644 index 0000000..7c9f5b4 --- /dev/null +++ b/app/src/main/res/drawable/shape_f8f9fa_cor10.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_f8f9fa_cor6.xml b/app/src/main/res/drawable/shape_f8f9fa_cor6.xml new file mode 100644 index 0000000..e28a99a --- /dev/null +++ b/app/src/main/res/drawable/shape_f8f9fa_cor6.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_keyword_checked.xml b/app/src/main/res/drawable/shape_keyword_checked.xml new file mode 100644 index 0000000..d86c0c5 --- /dev/null +++ b/app/src/main/res/drawable/shape_keyword_checked.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_keyword_default.xml b/app/src/main/res/drawable/shape_keyword_default.xml new file mode 100644 index 0000000..642a5ea --- /dev/null +++ b/app/src/main/res/drawable/shape_keyword_default.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_push_bid_type_checked.xml b/app/src/main/res/drawable/shape_push_bid_type_checked.xml new file mode 100644 index 0000000..14bbbd0 --- /dev/null +++ b/app/src/main/res/drawable/shape_push_bid_type_checked.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_push_bid_type_default.xml b/app/src/main/res/drawable/shape_push_bid_type_default.xml new file mode 100644 index 0000000..27f5d35 --- /dev/null +++ b/app/src/main/res/drawable/shape_push_bid_type_default.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_selected_keyword_bg.xml b/app/src/main/res/drawable/shape_selected_keyword_bg.xml new file mode 100644 index 0000000..0218a4a --- /dev/null +++ b/app/src/main/res/drawable/shape_selected_keyword_bg.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_white_cor14.xml b/app/src/main/res/drawable/shape_white_cor14.xml new file mode 100644 index 0000000..88f14dc --- /dev/null +++ b/app/src/main/res/drawable/shape_white_cor14.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_zzdb_btn_bg.xml b/app/src/main/res/drawable/shape_zzdb_btn_bg.xml new file mode 100644 index 0000000..6a99f39 --- /dev/null +++ b/app/src/main/res/drawable/shape_zzdb_btn_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_add_subscribe.xml b/app/src/main/res/layout/fragment_add_subscribe.xml new file mode 100644 index 0000000..26e4186 --- /dev/null +++ b/app/src/main/res/layout/fragment_add_subscribe.xml @@ -0,0 +1,611 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_push.xml b/app/src/main/res/layout/fragment_push.xml index 77d9ef6..efdd582 100644 --- a/app/src/main/res/layout/fragment_push.xml +++ b/app/src/main/res/layout/fragment_push.xml @@ -1,6 +1,50 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_push_list.xml b/app/src/main/res/layout/fragment_push_list.xml new file mode 100644 index 0000000..e4e7137 --- /dev/null +++ b/app/src/main/res/layout/fragment_push_list.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_source_search.xml b/app/src/main/res/layout/fragment_source_search.xml new file mode 100644 index 0000000..3c5a327 --- /dev/null +++ b/app/src/main/res/layout/fragment_source_search.xml @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_subscribe.xml b/app/src/main/res/layout/fragment_subscribe.xml new file mode 100644 index 0000000..da08c90 --- /dev/null +++ b/app/src/main/res/layout/fragment_subscribe.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_zzdb_detail.xml b/app/src/main/res/layout/fragment_zzdb_detail.xml index 7469c72..7210059 100644 --- a/app/src/main/res/layout/fragment_zzdb_detail.xml +++ b/app/src/main/res/layout/fragment_zzdb_detail.xml @@ -142,6 +142,7 @@ android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_30" android:layout_marginEnd="@dimen/dp_20" + android:weightSum="3" android:orientation="horizontal" app:layout_constraintTop_toTopOf="parent"> @@ -679,23 +680,30 @@ android:background="@color/color_ebebeb" app:layout_constraintTop_toBottomOf="@id/et_code" /> - + app:layout_constraintTop_toBottomOf="@id/view_line4" + android:layout_marginEnd="@dimen/dp_12"> + + + diff --git a/app/src/main/res/layout/listitem_recommend_keywords.xml b/app/src/main/res/layout/listitem_recommend_keywords.xml new file mode 100644 index 0000000..28c0e1b --- /dev/null +++ b/app/src/main/res/layout/listitem_recommend_keywords.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/listitem_recommend_source.xml b/app/src/main/res/layout/listitem_recommend_source.xml new file mode 100644 index 0000000..a37ea18 --- /dev/null +++ b/app/src/main/res/layout/listitem_recommend_source.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/listitem_search_source_result.xml b/app/src/main/res/layout/listitem_search_source_result.xml new file mode 100644 index 0000000..5729ce4 --- /dev/null +++ b/app/src/main/res/layout/listitem_search_source_result.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/listitem_selected_keywords.xml b/app/src/main/res/layout/listitem_selected_keywords.xml new file mode 100644 index 0000000..1a94b21 --- /dev/null +++ b/app/src/main/res/layout/listitem_selected_keywords.xml @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/listitem_selected_source.xml b/app/src/main/res/layout/listitem_selected_source.xml new file mode 100644 index 0000000..2d532a4 --- /dev/null +++ b/app/src/main/res/layout/listitem_selected_source.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/listitem_subscribe.xml b/app/src/main/res/layout/listitem_subscribe.xml new file mode 100644 index 0000000..b7726f2 --- /dev/null +++ b/app/src/main/res/layout/listitem_subscribe.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/listitem_subscribe_area.xml b/app/src/main/res/layout/listitem_subscribe_area.xml new file mode 100644 index 0000000..ebedc96 --- /dev/null +++ b/app/src/main/res/layout/listitem_subscribe_area.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/listitem_subscribe_keyword.xml b/app/src/main/res/layout/listitem_subscribe_keyword.xml new file mode 100644 index 0000000..2911aa7 --- /dev/null +++ b/app/src/main/res/layout/listitem_subscribe_keyword.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/ic_add_subscribe_keyword.webp b/app/src/main/res/mipmap-xxhdpi/ic_add_subscribe_keyword.webp new file mode 100644 index 0000000000000000000000000000000000000000..722f8499ab618e0147732338b2deb1b699634683 GIT binary patch literal 268 zcmV+n0rUP+Nk&El0RRA3MM6+kP&gp?0001R2LPP`DmDN%06vjKn@J_4BB3lDSOBmR z2|yW=JU_rR0Db^9%<@1z00*9C3RS@=8v_6&xDvI<_JLC^dZ=$qRQ6y1{_MSutq+!m z%R~4`ac6f+I`8koGCCJ`gMA-D|5Z+JurtH+*~uDa`Z5LM0CIS3i=~ym8Gl1G1vCx2 z)l}=z;{W@b8Oa~~?q{6yrpFfhCHE{(wx5Q674r9${wK;@;w5Fd8fxv9%`z$*P-GBT zCS#`VSKxj`cI7@p7|6r0N@iq(EaAr{ac_axqt1aR^FI%j57d|D(JDTZr$x9m9XTs$ S{I$R3*3ki7u-+~kvZ z0DZ|7nl^vW?=GJv0~qrEZ4KEOfX~hE^(7Z+YQ;Bk0Bn|(U33Bv`6|1aCb;|ITdOLb z_|`qzT$k`)Q#Ua?nc3tTbE$^pV}T4Zd!W6DS@KnKj)1vAW}lffL~!l>Qa+6nK)~Hn zihmq#E@2YC?5R+}iJsPwwTbLCYlYyrYVP=}1y)cvAZh>r0FVR#odGH^05AYPfi#py zr6VFCHAn!U5D94m7z6YG0MGL-CiVQL4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_delete_subscribe_keyword.webp b/app/src/main/res/mipmap-xxhdpi/ic_delete_subscribe_keyword.webp new file mode 100644 index 0000000000000000000000000000000000000000..07b3583b846b14a541a5469d49086ae5c07ed3ba GIT binary patch literal 500 zcmV}UMa~bUa6&>b!}S3 ztfgt#ru`;ME8a@qSHouXKZm#|_OJOXhsp6fVg#7{Dig1iDC8hW5rvQ-MHE8kkODyu z;3uFUG-zme!9;*51CtAu0a!3#X@N!Ps!ah_P&gn60RRAS2LPP`Dk=af06vjOo=c^q zBB7&*0I(7XX$`OirmP@$NZkMB2jUJ-^u9vHdU&OEp^8 zT>0{psMZv)@=7fOU8rRhe{hd@U3{S6~{C;GMVtB>6pdvIMZnyvVI=}uAi~sx` qlXe1T@Bl{o_*o(Yvm<-_0RR7l-~ZstzyHD7GAp`E$@v|&0002iD&a){ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_edit.webp b/app/src/main/res/mipmap-xxhdpi/ic_edit.webp index 09f2fc564e2299028b3646e4a2825730d9129324..5fed6fad22d142bbb38b49bf0be8b53cadfdf8c7 100644 GIT binary patch literal 588 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 MY5t!t!T-bjUqja6cmMzZ literal 8278 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 US>zQ^0000000000000000P$BHw*UYD diff --git a/app/src/main/res/mipmap-xxhdpi/ic_empty_subscribe.webp b/app/src/main/res/mipmap-xxhdpi/ic_empty_subscribe.webp new file mode 100644 index 0000000000000000000000000000000000000000..8bf7a95256fb997bb5f7ddc81f01fb96c83d9a73 GIT binary patch literal 8966 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_new_tag.webp b/app/src/main/res/mipmap-xxhdpi/ic_new_tag.webp new file mode 100644 index 0000000000000000000000000000000000000000..f7133597f9899d133fcff69456abb3e7544fe73c GIT binary patch literal 676 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 CKdcb| literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_push_top_bg.webp b/app/src/main/res/mipmap-xxhdpi/ic_push_top_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..82db0aadf4b4aeb9623bc5924caaa3ed14dd3c74 GIT binary patch literal 40730 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_rb_checked.webp b/app/src/main/res/mipmap-xxhdpi/ic_rb_checked.webp new file mode 100644 index 0000000000000000000000000000000000000000..009091857b04890819dd23b3d77d798e5774d132 GIT binary patch literal 1506 zcmV<81s(cQNk&H61pok7MM6+kP&il$0000G0000r001=r06|PpNG$^Z00E#Y|G(n4 zI*wOi26@L}GFG9=mFqBS)fyUl0J{rE_KZSu6}qU(51`7Ui(y9Dp>-98)rHlpz26Hu zM`w>;AR-*NjigA)!7^`my+LR=!>&)JbA|VllkW?;bh6Hl2?N^B(A6SJy{l&&J1X(E zyB->PPx|IWVcwpHKMlKR@G!7xS$@ix_yFg7mA23{5F7IOGUd6-`WNqyl=tpQqbZ;wrn`^U>4kM z5(|b2^EK)VRoj~S<;}#zn_p6`wd&hk^K(dcUO5MgeArQ?U|RFxnTPr`_hsJ%%9Z`R63mxp8;j>)u^qEKp;8H98W z4#}j5WJ+c`UMdtE${Lk*i#1z!O^t(FS92a}{;YIP{g3)`yUpX{vh1GVr>*Xz%%( z&rY?OPEobv1I2?(nW|-ku>UD*ymiP&gol0ssKe4gj42DmDN%06vjGnMx(2 zq9Q053sA5U32XqsAQ(J9o&Ga&<8SwL{~oyTBoFGodfb)%@9mr2zxCf>9$+7+9Uwfw zey{$wd(nSJ{bu(8=mGtI{I{jQum_+A>$jz+?hnA1?qBW~w1@xlYygb}ZdvqEYA{59 zumyBNyx;)->-B;#2{3ydAF#k&!7Qza^|$kOMk>ax%QOG4?qU1zLoe*PayvKa`LAIU z4y(47xARSNf`Rm=_(Y|oET_?G*X*3O6EUnGtq9t?Fr%CjriC%@5PJA#TC!+6BYDMK2k_Z0022-vryKhn4QIIV z8||lmdSS$P`?V}WOkw)KTG?s1BGFw-kY$nrx1Zl6reIRz8jp;Lf7slGds#Z=#d=_> zWg8_l%TcfSLeN-$@2`LU+Yx30_2c+{1WiUT?`}p;NBR(EUCv&YB!g5Wt$4<>-oF48 zMl=>Oxj|KmG=vN~m+&^EDk+h!!EB14Xr+kHz;WbsAE7NN74#4qGH!t(X6y99n0TN5 IAHV literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_rb_default.webp b/app/src/main/res/mipmap-xxhdpi/ic_rb_default.webp new file mode 100644 index 0000000000000000000000000000000000000000..c27d2ff3bb233db608d720e6adb586e5dee384e3 GIT binary patch literal 882 zcmV-&1C9JrNk&F$0{{S5MM6+kP&il$0000G0000r001=r06|PpNTLD&00EFAZU5Rv z|4ihiVC85gOisO2CQZ2d40bFHZ!ReM6m3CQP(2OT~7aUpok}i`sR@-k-9z3hpMONZ3KOP@{d>LPfg!F(CP&c*`NnEuOYliNZV9$LE4_ePA za{Q3j`WSGm_j`*C7mGEmIMhA0Yg!KQp{u|%S7X0{=kwtT%D)6;`5#EfRXj!mO30;yuZ_2<$3h_aL$YQ_?KL zN*ubSX@K}k2uX7hUVemPX^P?FF=*0gaC};v*3L_~C`|}n#-Tx)ZiuhIqBK*m5`jHw zb|F%iV8hI1g5N_!4F1t&{~Yy!GfkP*qW z?REXjj3bro_NeBiMP&Jk%o8mlV`H&luQA{wFpUEsy|K7&j@me%qB&j(M!!1P<9S}j zq1ObC`is3Zv8u_}fH~rExaxP3kUCrlXGp1v@ceV&ckHV2YC+crz_HBTsqRp*rWIdo zSloMWIl$xAJYPdG@yuJBz26h`-<;PHmOIJBmZ6KxlOA$!>2>;9m01N=P&go>0002c z1pu7^DmDN%06ujxkw>JXA)!6?XaJB7iD>`;RJgqpbtN)WPWy#|s{IjmRge8jp4D=C zYXAWL^N?Y?dyTly`G8x6D&zc5KmYKp(@Vd9>E7`b?}q~aIWPbG_&$G|-~ascYZqi> zDNwo%Kww3jRrbmX%Zu~0zwQ`c{q#XBcJIyhtE9{#2e01$|M12|wuBg!71BA-eEmWH I%}{^<0DO9^Y5)KL literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_recommend_fire.webp b/app/src/main/res/mipmap-xxhdpi/ic_recommend_fire.webp new file mode 100644 index 0000000000000000000000000000000000000000..347d89cbf536f8e05e2e7db6c5b7e313c270fac9 GIT binary patch literal 1232 zcmV;>1TXtiNk&G<1ONb6MM6+kP&il$0000G0000%002P%06|PpNVEa~00EFgYuh17 zZ_hMGYuom2W+Sp~+l*}6R;0+bZQHxmeP-%R;|;p%|L6ZJ+AJa_0RKT<`AX+YNpP0C z$*~K&C)M^i2`GDtnV%0)%HIv~@?M`z;0KgX!_S4M&gine9six4K{Cd^+#Bd#;1%-_+S|toiCkMl| zT#Oq6I^{V-aw&>Gm3UG_r^%TlS7T7RM7W_wHA0LlaGtVr^(lRs@$;vKrLF^TxpfGv zh*(?=QQAxf3boatv%##d2o&F#TV0)xRM-S4{-lkvLN}(-BncjAeA{O0l-PCNT*8INix)1MbjTrFDnB; zSF1NOuQNW_T}98J)R@G$lCLc?Oj>@cr=oXAEcRy>EOQ*Ouzy=xMQ20od>6l!dy&L- zzlyqFMT|cA5@9>S6k7t7g>;d~7>8tw@@KyV9`*H1R51JsTsP2*K zv3C0KBAcHoIm%q&W>V4&Gbe=(d^PO&fB^o@c24W_iUDVm!JKYt^_sMC<%D)DONW{L z|Bf3Ou>~OD%Pit&{>NYUD1Y~#5C7g%9Raw&Fu+43UyhzROsL_*MvLcnkq8U89{*|0 zuVxE$%$3-@KNp8kh9{>M_Al0ev8|Zc^MZ*)a$dm@z$2Wc-%tl@5~YMNGShmZT6O>F zSo6g`n8$9P@MZnu*~C}9Yb4+_Vg^9MS}g5G+d}s~Q5XN-9?z>z5Y-N4(foh%&r|1`u z+TgxMVsjxcVDf&n(01>xzzCAJc1m?TT?kDk+&!bA8|)_Cc_?aR;om1z=VJB_)jS-1 zZ%#7n4Uz6R`&EI{^aDP2wU04hHliOpoUIa4XTHjYTO!USn$0XO8x&F`>OGdT<9FNt u(w~%AYG-}_xF7$!0{{K#zvM#J3b-PP3+`z*&S)jVG{Wn#}fw%|6B8Vy1IJwlpt&MVK&=cx0?trjb=6g z0Nc@UkL_kY69{H5-k@425&>aF-UOcATpbHYGSsEVC|=Kd?Leui+`z*&S)jVG{Wn#}fw%|6B8Vy1IJwlpt&MVK&=cx0?trjb=6g z0Nc@UkL_kY69{H5-k@425&>aF-UOcATpbHYGSsEVC|=Kd?Leui_h| zDm(x@06v8@lt-l_A|X5Um;j&S6AUJ$?0NVk$N6u%cW6%Ti1FVbp z7%eIzm(nE-Xf?84Sy5I$(#-o`(?fk+ziHPDga82k&^Q0v5C8V1U;o-?+PjV7@&2kO zCF{a@<~}Rb`30bbu2pZ*Qt0_9Py8UN$5f1xqNwYmfot2i{i-|_&* zjJiE(B!xMch+5EzxKZQ1bM$yrfHql7YB%|uHQ85W${E|oq#_bFRCAe&0E7!O(MLk* zz-3(vo5#(Y%wkR2f=ns1-C7x5OKw@Tmu;vFeU(@OPzjVJK${(o+rxm*3>p3o|Aa#F zuD$JX&EVRe7rJ6yzM^goHi#|hcJmlSfEFER^4iKC`*}ita0U#3e4PLPsx$xPpnv~V zje|fdT>f0de>{%)JKOa>Rq?3Ylg+pL%KBGQZ+`z*&S)jVG{Wn#}fw%|6B8Vy1IJwlpt&MVK&=cx0?trjb=6g z0Nc@UkL_kY69{H5-k@425&>aF-UOcATpbHYGSsEVC|=Kd?Leui0RHPL|NYhf|8^Ds{_7)t z^Xe}BNxsP6f9)%Ox^bL9d>5^#W(@!L5ajjeAuZb z$}B5?sH5EG~tgsvxW5$v|8_Dm6FV_@W=a31l7s>RJCyVy|8@{_H literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_recommend_source_top_bg.webp b/app/src/main/res/mipmap-xxhdpi/ic_recommend_source_top_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..55ffc671be344fd554ca8216a0c046b57a27e2e8 GIT binary patch literal 39742 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 GEC2wm*eSdK literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_selected_source_tag.webp b/app/src/main/res/mipmap-xxhdpi/ic_selected_source_tag.webp new file mode 100644 index 0000000000000000000000000000000000000000..e2e5ac92827b1799b8ab64102b205f20266cc629 GIT binary patch literal 1028 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_subscribe_title_icon.webp b/app/src/main/res/mipmap-xxhdpi/ic_subscribe_title_icon.webp new file mode 100644 index 0000000000000000000000000000000000000000..73e51bfc374af1434e2a797bd33c3f708b59851a GIT binary patch literal 636 zcmV-?0)zchNk&F=0ssJ4MM6+kP&il$0000G0000x0027x06|PpNXr2L00EFg+uE^5 zZ*1F1H@0otw%u7BJKMHx8=Y+%=nGIpN;(mA1~H%HxRiFsp*3QET!&1ZthfH3jy;SfMZ{`qV`r8dIKQ6 zr-e%C!0S%R{-EjU!1*M-Bf#B;O5~6n$mypQ?SSkN9x?(}0LQiZ0Z$4mp`Fu#NS&F$ z1y3o(o&x1{mIB+9)YOMSQ=R3&a#^j6d8JxS3=kB3;-S?Cr=sPo!{BZ?yG@*sQ~I^F z*EQs*$hxg8){RtxZ2y1c(_-`#qa%xo=<>md(flXT5>8=!kc3Ib(#uN-8oFV-(N!(n zCD{M}$UUKOQKN;zL{z=*z-Z2%APM_1-c7<%V~$o53az_*-RSA*J`z+=T!PUUUuDPY zpV^-FT??IAzy(h!rJe!hb@~BM3QOsn4utEZIlwW|Q%2Yp;JDJ>0X(cNV^jt>dg_%+ z2VQpZu`g&&I&dLDFKDR)a2#n{p{T7DhTjB8AKE-H5b literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_subscribe_top_bg.webp b/app/src/main/res/mipmap-xxhdpi/ic_subscribe_top_bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..e279cc28fcdea82b4899269ebeb8aad4d20890b8 GIT binary patch literal 39434 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

}{I1(qxj1i(#{gLJe?E>bKy4CDm$ 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 mi7L$?=o?SxPFZggHF|X@dXy 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 E0FmfuuK)l5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_vip_auth_icon.webp b/app/src/main/res/mipmap-xxhdpi/ic_vip_auth_icon.webp new file mode 100644 index 0000000000000000000000000000000000000000..ae0caa0bb4175eeda2b490e14af48726fe4b3831 GIT binary patch literal 758 zcmV#B z;F0F&aT7b5kuLOn+K0?IxOlso7r#VSP&gn$0ssK84FH`1Dp~+A06vX4l}Du`A|W+Y z3;>`JiDLl6q0Bg-od?_K2rjk)u0092?R{4Xd zLWykntvoASx7;KDJwS2dzFO?OZW7dK^AJJSyER(B~P z)qGYR{hLw&6N0*3j$-RLOR)hLp1L5J7NJ1<@bOU}e>K5%#52BKPLmdY@C7_8umTy( zG(SpzN21aVGIiym^CwVkQ`J`SilY3jMt(67PTWYmIkC-;u^}IV;r}s1mh+ME>Lq}< zF6l?lxT(-|Mi}io|G~}9d02wRpeB+JGDbv6LmbZrHAFYU$7Wv|QIfP};XD7f&HxB8jd2}L72MvYS4(LfPzAzUNA2>@=a;_7yvoILB5zs#Lh@K!3%S36=TgfuzjIous# zk5%yr7u}VooTw+wz!0t7k`XeG;|@G|wBCiH=HLxXMr3QvD6z4d2rOHU$7cs?#4A53D5 #0391F5 #2A80FC + #F8F9FA + #3BBF0F \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 3ec0c1d..f6619ad 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -87,5 +87,6 @@ 170dp 132dp 116dp + 52dp \ No newline at end of file diff --git a/base/src/main/res/values/styles.xml b/base/src/main/res/values/styles.xml index 2b863b9..f65b5b5 100644 --- a/base/src/main/res/values/styles.xml +++ b/base/src/main/res/values/styles.xml @@ -2,12 +2,12 @@