diff --git a/app/src/main/java/com/cheng/blzb/bean/SearchOptionEntity.kt b/app/src/main/java/com/cheng/blzb/bean/SearchOptionEntity.kt index 20a378f..a463d6d 100644 --- a/app/src/main/java/com/cheng/blzb/bean/SearchOptionEntity.kt +++ b/app/src/main/java/com/cheng/blzb/bean/SearchOptionEntity.kt @@ -60,6 +60,7 @@ class SearchOptionEntity( fun getTypeOptionList(): List { val list = mutableListOf() val typeList = mutableListOf() + typeList.add(OptionItem(0, "全部类型")) UserConfigManager.getBidTypes().forEach { typeList.add(OptionItem(it.id.toInt(), it.name)) } diff --git a/app/src/main/java/com/cheng/blzb/ui/dialog/PopupDialog.kt b/app/src/main/java/com/cheng/blzb/ui/dialog/PopupDialog.kt index bb06884..5a78afa 100644 --- a/app/src/main/java/com/cheng/blzb/ui/dialog/PopupDialog.kt +++ b/app/src/main/java/com/cheng/blzb/ui/dialog/PopupDialog.kt @@ -359,11 +359,17 @@ object PopupDialog { val optionList = SearchOptionEntity.getTypeOptionList()[0] if (typeList.isNotEmpty()) { - optionList.items.forEach { item -> - if (typeList.find { it.id == item.id } != null) { - item.isChecked = true + if (typeList.size == optionList.items.size - 1) { + optionList.items[0].isChecked = true + } else { + optionList.items.forEach { item -> + if (typeList.find { it.id == item.id } != null) { + item.isChecked = true + } } } + } else { + optionList.items[0].isChecked = true } adapter.setList(optionList.items) @@ -377,13 +383,22 @@ object PopupDialog { adapter.setOnItemClickListener { _, _, i -> val item = adapter.getItem(i) item.isChecked = !item.isChecked + if (item.id == 0) { + adapter.data.forEach { if (it.id != 0) it.isChecked = false } + } else { + adapter.data[0].isChecked = false + } adapter.notifyDataSetChanged() } - binding.btnReset.onClick { adapter.setList(SearchOptionEntity.getTypeOptionList()[0].items) } + binding.btnReset.onClick { + val list = SearchOptionEntity.getTypeOptionList()[0].items + list[0].isChecked = true + adapter.setList(list) + } binding.btnNext.onClick { - val list = adapter.data.filter { it.isChecked } + val list = adapter.data.filter { it.isChecked && it.id != 0 } callback.invoke(list) popWindow.dismiss() } diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/bid/publish/bid/PublishBidMessageFragment.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/bid/publish/bid/PublishBidMessageFragment.kt index 2ece253..fd8e025 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/bid/publish/bid/PublishBidMessageFragment.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/bid/publish/bid/PublishBidMessageFragment.kt @@ -87,9 +87,13 @@ class PublishBidMessageFragment : BaseFragment() { + private val type by lazy { arguments?.getInt("type") ?: 1 } private val tabText = listOf("招标信息", "合作信息") private val fragmentList by lazy { mutableListOf() } @@ -49,6 +50,8 @@ class MyPublishFragment: BaseFragment() { val recommendLiveData = MutableLiveData>() override suspend fun requestApi(params: ArrayMap): Result> { + params["sort"] = "123" val response = ApiFactory.apiService.getRecommendList(params) if (response.status) { totalLiveData.postValue(response.data.total) diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/home/zzdb/ZZDBFragment.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/home/zzdb/ZZDBFragment.kt index 6d481e2..c020ca5 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/home/zzdb/ZZDBFragment.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/home/zzdb/ZZDBFragment.kt @@ -1,14 +1,19 @@ package com.cheng.blzb.ui.fragment.home.zzdb +import android.annotation.SuppressLint +import android.text.TextUtils import android.view.KeyEvent +import android.view.View import android.view.ViewOutlineProvider import android.view.ViewTreeObserver import androidx.constraintlayout.widget.ConstraintLayout import com.cheng.blzb.R import com.cheng.blzb.databinding.FragmentZzdbBinding +import com.cheng.blzb.impl.TextWatcherImpl import com.cheng.blzb.ui.activity.PublicActivity import com.cheng.blzb.ui.fragment.home.zzdb.detail.ZZDBDetailFragment import com.example.base.extensions.getColor +import com.example.base.extensions.onClick import com.example.base.ui.BaseFragment import com.example.base.widget.EmptyView import com.example.base.widget.PageStatus @@ -21,6 +26,13 @@ class ZZDBFragment: BaseFragment() { private var page = 1 + private val textWatcher = object : TextWatcherImpl() { + @SuppressLint("SetTextI18n") + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { + binding.ivClearText.visibility = if (TextUtils.isEmpty(s)) View.INVISIBLE else View.VISIBLE + } + } + override fun initView() { super.initView() mTitleBar?.setBackgroundColor(getColor(R.color.windowBackground)) @@ -58,6 +70,12 @@ class ZZDBFragment: BaseFragment() { mViewModel.getAgencyList(page, keyword) } + binding.ivClearText.onClick { + binding.etSearch.setText("") + } + + binding.etSearch.addTextChangedListener(textWatcher) + binding.etSearch.setOnEditorActionListener { _, _, event -> if (event != null && event.keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_DOWN) { page = 1 @@ -97,4 +115,9 @@ class ZZDBFragment: BaseFragment() { } } } + + override fun onDestroyView() { + binding.etSearch.removeTextChangedListener(textWatcher) + super.onDestroyView() + } } \ No newline at end of file diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/MineFragment.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/MineFragment.kt index 92378b6..8037d53 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/MineFragment.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/MineFragment.kt @@ -82,13 +82,11 @@ class MineFragment : BaseFragment() { } } - binding.tvVipName.onClick { + binding.ivVipBg.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(), SettingsFragment::class.java) EventReportManager.eventReport(EventConstants.JUMP_TO_SYSTEM_SETTING, "", "") diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/vip/VipFragment.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/vip/VipFragment.kt index 1782987..fa9e2cc 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/vip/VipFragment.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/vip/VipFragment.kt @@ -256,7 +256,7 @@ class VipFragment : BaseFragment() { } if (list.size <= 3) { binding.rvGoods.layoutManager = GridLayoutManager(requireContext(), 3) - binding.rvGoods.addItemDecoration(GridSpaceItemDecoration(3, 0, DensityUtils.dp2px(12f))) + binding.rvGoods.addItemDecoration(GridSpaceItemDecoration(3, 0, DensityUtils.dp2px(6f))) } else { binding.rvGoods.layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false) binding.rvGoods.addItemDecoration(SpacesItemDecoration(DensityUtils.dp2px(12f), RecyclerView.HORIZONTAL)) @@ -485,9 +485,9 @@ class VipFragment : BaseFragment() { if (vipType == 0) { payTypeCheckedRes = R.mipmap.ic_pay_checked1 - binding.btnTab1.setTextColor(getColor(R.color.color_fff5e6)) + binding.btnTab1.setTextColor(getColor(R.color.color_c5ffe1)) binding.btnTab1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_checked, 0, 0, 0) - binding.btnTab2.setTextColor(getColor(R.color.color_1b6648)) + binding.btnTab2.setTextColor(getColor(R.color.color_8a7570)) binding.btnTab2.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_default, 0, 0, 0) binding.ivTopBg.setImageResource(R.mipmap.ic_vip_top_bg1) @@ -512,9 +512,9 @@ class VipFragment : BaseFragment() { } else { payTypeCheckedRes = R.mipmap.ic_pay_checked2 - binding.btnTab1.setTextColor(getColor(R.color.color_1b6648)) + binding.btnTab1.setTextColor(getColor(R.color.color_8a7570)) binding.btnTab1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_default, 0, 0, 0) - binding.btnTab2.setTextColor(getColor(R.color.color_fff5e6)) + binding.btnTab2.setTextColor(getColor(R.color.color_c5ffe1)) binding.btnTab2.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_checked, 0, 0, 0) binding.ivTopBg.setImageResource(R.mipmap.ic_vip_top_bg2) diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/push/list/PushListFragment.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/push/list/PushListFragment.kt index 5b348c1..cb4fc3e 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/push/list/PushListFragment.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/push/list/PushListFragment.kt @@ -40,7 +40,7 @@ class PushListFragment : ListFragment() { override suspend fun requestApi(params: ArrayMap): Result> { + params["sort"] = "123" return ApiFactory.apiService.getRecommendList(params).toListResult() } diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/push/subscribe/add/AddSubscribeFragment.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/push/subscribe/add/AddSubscribeFragment.kt index 940859c..e40a004 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/push/subscribe/add/AddSubscribeFragment.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/push/subscribe/add/AddSubscribeFragment.kt @@ -99,10 +99,8 @@ class AddSubscribeFragment : BaseFragment val item = recommendAdapter.getItem(i) if (selectedAdapter.data.size == 5) { @@ -163,6 +172,11 @@ class SourceSearchFragment: BaseFragment(R.layout.listitem_search_hot_type) { + override fun convert(holder: BaseViewHolder, item: BidTypeEntity) { + holder.setText(R.id.tv_name, item.name) + val tvTag = holder.getView(R.id.tv_tag) + tvTag.text = "${holder.layoutPosition + 1}" + when(holder.layoutPosition) { + 0 -> { + tvTag.setStartColor(Color.parseColor("#FFB505")) + tvTag.setEndColor(Color.parseColor("#FFCD1B")) + tvTag.setTextColor(Color.WHITE) + } + 1 -> { + tvTag.setStartColor(Color.parseColor("#8AB7EE")) + tvTag.setEndColor(Color.parseColor("#A7C3EA")) + tvTag.setTextColor(Color.WHITE) + } + 2 -> { + tvTag.setStartColor(Color.parseColor("#F77D48")) + tvTag.setEndColor(Color.parseColor("#F2976F")) + tvTag.setTextColor(Color.WHITE) + } + else -> { + tvTag.setStartColor(Color.TRANSPARENT) + tvTag.setEndColor(Color.TRANSPARENT) + tvTag.setTextColor(getColor(R.color.color_999999)) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/search/SearchFragment.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/search/SearchFragment.kt index 98b8e1e..d0d3d0b 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/search/SearchFragment.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/search/SearchFragment.kt @@ -11,6 +11,7 @@ import com.cheng.blzb.databinding.FragmentSearchBinding import com.cheng.blzb.impl.TextWatcherImpl import com.cheng.blzb.manager.DialogEnum import com.cheng.blzb.manager.SearchHistoryManager +import com.cheng.blzb.manager.UserConfigManager import com.cheng.blzb.ui.activity.PublicActivity import com.cheng.blzb.ui.dialog.TipDialog import com.cheng.blzb.ui.fragment.merchant.MerchantFragment @@ -31,6 +32,8 @@ class SearchFragment: BaseFragment() { private val historyAdapter by lazy { HistoryKeywordAdapter() } private val recommendAdapter by lazy { RecommendKeywordAdapter() } + private val hotTypeAdapter by lazy { HotTypeAdapter() } + private val textWatcher = object : TextWatcherImpl() { @SuppressLint("SetTextI18n") override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { @@ -55,6 +58,9 @@ class SearchFragment: BaseFragment() { recommendLayoutManager.justifyContent = JustifyContent.FLEX_START binding.rvRecommend.layoutManager = recommendLayoutManager binding.rvRecommend.adapter = recommendAdapter + + binding.rvHot.adapter = hotTypeAdapter + hotTypeAdapter.setList(UserConfigManager.getBidTypes()) } override fun initData() { @@ -132,6 +138,11 @@ class SearchFragment: BaseFragment() { historyAdapter.setList(SearchHistoryManager.addHistory(item)) binding.layoutHistory.visible() } + + hotTypeAdapter.setOnItemClickListener { _, _, i -> + val item = hotTypeAdapter.getItem(i) + PublicActivity.start(requireContext(), SearchListFragment::class.java, Pair("typeId", item.id)) + } } override fun initObserve() { diff --git a/app/src/main/res/drawable/shape_avatar_bg.xml b/app/src/main/res/drawable/shape_avatar_bg.xml new file mode 100644 index 0000000..522eb16 --- /dev/null +++ b/app/src/main/res/drawable/shape_avatar_bg.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_dljz_bg.xml b/app/src/main/res/drawable/shape_dljz_bg.xml index 43789c3..de64dbc 100644 --- a/app/src/main/res/drawable/shape_dljz_bg.xml +++ b/app/src/main/res/drawable/shape_dljz_bg.xml @@ -1,15 +1,15 @@ - + - + - + - + - - - - diff --git a/app/src/main/res/layout/fragment_publish_bid_message.xml b/app/src/main/res/layout/fragment_publish_bid_message.xml index b4d14e3..cdeaac6 100644 --- a/app/src/main/res/layout/fragment_publish_bid_message.xml +++ b/app/src/main/res/layout/fragment_publish_bid_message.xml @@ -118,7 +118,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingStart="@dimen/dp_12" - android:paddingTop="@dimen/dp_16" + android:paddingTop="@dimen/dp_12" android:paddingEnd="@dimen/dp_12"> + app:layout_constraintTop_toBottomOf="@id/layout_history" + app:layout_goneMarginTop="@dimen/dp_13"> diff --git a/app/src/main/res/layout/fragment_vip.xml b/app/src/main/res/layout/fragment_vip.xml index 03dd66f..0b531b2 100644 --- a/app/src/main/res/layout/fragment_vip.xml +++ b/app/src/main/res/layout/fragment_vip.xml @@ -50,7 +50,7 @@ android:layout_height="match_parent" android:drawableStart="@drawable/shape_vip_tab_checked" android:text="个人会员" - android:textColor="@color/color_fff5e6" + android:textColor="@color/color_c5ffe1" android:textSize="@dimen/sp_16" app:csb_drawablePosition="left" app:csb_fillColor="@color/transparent" @@ -63,7 +63,7 @@ android:layout_height="match_parent" android:drawableStart="@drawable/shape_vip_tab_default" android:text="企业会员" - android:textColor="@color/color_1b6648" + android:textColor="@color/color_8a7570" android:textSize="@dimen/sp_16" app:csb_drawablePosition="left" app:csb_fillColor="@color/transparent" @@ -189,15 +189,15 @@ android:layout_marginEnd="@dimen/dp_16" android:background="@mipmap/ic_vip_pay_bg1" android:paddingStart="@dimen/dp_8" - android:paddingTop="@dimen/dp_42" android:paddingEnd="@dimen/dp_8" - android:paddingBottom="@dimen/dp_30" + android:paddingBottom="@dimen/dp_20" app:layout_constraintTop_toBottomOf="@id/layout_countdown"> @@ -333,7 +333,7 @@ android:orientation="vertical" android:visibility="gone" app:layout_constraintTop_toBottomOf="@id/layout_seat" - app:layout_goneMarginTop="@dimen/dp_16"> + app:layout_goneMarginTop="@dimen/dp_42"> diff --git a/app/src/main/res/layout/listitem_search_hot_type.xml b/app/src/main/res/layout/listitem_search_hot_type.xml index ae4bea5..21c77e3 100644 --- a/app/src/main/res/layout/listitem_search_hot_type.xml +++ b/app/src/main/res/layout/listitem_search_hot_type.xml @@ -38,6 +38,7 @@ android:text="2.5万次" android:textColor="#0A204D" android:textSize="@dimen/sp_12" + android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/mipmap-xxhdpi/ic_publish_goods_top_bg.webp b/app/src/main/res/mipmap-xxhdpi/ic_publish_goods_top_bg.webp new file mode 100644 index 0000000..19ec846 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_publish_goods_top_bg.webp differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 03ea728..aa994f8 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -99,8 +99,7 @@ #7E4024 #F11E1E #797069 - #FFF5E6 - #1B6648 + #8A7570 #FFFAEF #FFFAEE #FDF7F0