From b967c7b5c25808f698d350ac07a885822932ae59 Mon Sep 17 00:00:00 2001 From: lijia Date: Tue, 29 Oct 2024 15:02:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E8=81=94=E5=8A=A8=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 6 + .../java/com/dhsd/glowner/bean/CarBean.kt | 14 ++ app/src/main/java/com/dhsd/glowner/net/Api.kt | 17 ++ .../com/dhsd/glowner/ui/MarketsActivity.kt | 33 ++++ .../com/dhsd/glowner/ui/MarketsAdapter.kt | 146 ++++++++++++++++++ .../dhsd/glowner/ui/MarketsItemDecoration.kt | 71 +++++++++ .../com/dhsd/glowner/ui/home/HomeFragment.kt | 4 +- .../ui/mine/activity/ChoiceCarActivity.kt | 2 +- .../ui/mine/activity/ChoiceFleetActivity.kt | 65 +++++++- .../main/res/drawable-xxhdpi/arrow_down.png | Bin 0 -> 2976 bytes .../main/res/drawable-xxhdpi/market_arrow.png | Bin 0 -> 493 bytes app/src/main/res/drawable/markets_bg.xml | 7 + .../res/drawable/markets_child_item_bg.xml | 6 + .../res/drawable/markets_group_shadow.xml | 10 ++ .../res/drawable/markets_parent_item_bg.xml | 7 + .../main/res/drawable/markets_price_bg.xml | 6 + .../main/res/drawable/text_book_grade_bg.xml | 16 ++ .../res/layout/activity_choice_fleet_car.xml | 3 +- app/src/main/res/layout/markets_activity.xml | 63 ++++++++ .../main/res/layout/markets_child_item.xml | 44 ++++++ .../main/res/layout/markets_parent_item.xml | 43 ++++++ mylibrary/build.gradle | 2 + 22 files changed, 559 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/com/dhsd/glowner/ui/MarketsActivity.kt create mode 100644 app/src/main/java/com/dhsd/glowner/ui/MarketsAdapter.kt create mode 100644 app/src/main/java/com/dhsd/glowner/ui/MarketsItemDecoration.kt create mode 100644 app/src/main/res/drawable-xxhdpi/arrow_down.png create mode 100644 app/src/main/res/drawable-xxhdpi/market_arrow.png create mode 100644 app/src/main/res/drawable/markets_bg.xml create mode 100644 app/src/main/res/drawable/markets_child_item_bg.xml create mode 100644 app/src/main/res/drawable/markets_group_shadow.xml create mode 100644 app/src/main/res/drawable/markets_parent_item_bg.xml create mode 100644 app/src/main/res/drawable/markets_price_bg.xml create mode 100644 app/src/main/res/drawable/text_book_grade_bg.xml create mode 100644 app/src/main/res/layout/markets_activity.xml create mode 100644 app/src/main/res/layout/markets_child_item.xml create mode 100644 app/src/main/res/layout/markets_parent_item.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 745ee11..eb4057e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -156,6 +156,12 @@ android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan|stateHidden" /> + + \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/bean/CarBean.kt b/app/src/main/java/com/dhsd/glowner/bean/CarBean.kt index 002bea8..0fdbb15 100644 --- a/app/src/main/java/com/dhsd/glowner/bean/CarBean.kt +++ b/app/src/main/java/com/dhsd/glowner/bean/CarBean.kt @@ -39,3 +39,17 @@ data class CarBean( val avatar: String="", var isSelect: Boolean = false ) +data class CaptainBean( + val auditStatus: String, + val businessEnterpriseName: String, + val businessLegalPerson: String, + val captainId: Int, + val captainName: String, + val captainType: String, + val contactName: String, + val idcardName: String, + val isRealName: String, + val status: String, + var isSelect: Boolean = false +) + diff --git a/app/src/main/java/com/dhsd/glowner/net/Api.kt b/app/src/main/java/com/dhsd/glowner/net/Api.kt index 62e74e4..ace4e9c 100644 --- a/app/src/main/java/com/dhsd/glowner/net/Api.kt +++ b/app/src/main/java/com/dhsd/glowner/net/Api.kt @@ -1,6 +1,7 @@ import com.dahe.glex.bean.* import com.dahe.mylibrary.net.CommonResponseBean import com.dhsd.glowner.BuildConfig +import com.dhsd.glowner.bean.CaptainBean import com.dhsd.glowner.bean.CarBean import com.dhsd.glowner.bean.LoginBean import io.reactivex.rxjava3.core.Observable @@ -72,4 +73,20 @@ interface Api { fun dispatchVehicles(@Body bean: DispatchBean): Observable> + + /** + * 查询车队列表 + * @return Observable> + */ + @GET(BASE_URL+"devApi/business/ft/common/dict/onlyCaptain") + fun getCaptainList(): Observable>> + + + /** + * 查询车队下的司机与车辆列表 + * @param captainId String 车队ID + * @return Observable>> + */ + @GET(BASE_URL+"devApi/business/ft/common/dict/captain/driverAndCar") + fun driverAndCarList(@Query("captainId") captainId:String): Observable>> } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/MarketsActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/MarketsActivity.kt new file mode 100644 index 0000000..b5482f2 --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/ui/MarketsActivity.kt @@ -0,0 +1,33 @@ +package com.dhsd.glowner.ui + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.LinearLayoutManager +import com.dhsd.glowner.databinding.MarketsActivityBinding +import pokercc.android.expandablerecyclerview.ExpandableItemAnimator + +class MarketsActivity : AppCompatActivity() { + companion object { + fun start(context: Context) { + context.startActivity(Intent(context, MarketsActivity::class.java)) + } + } + + private val binding by lazy { MarketsActivityBinding.inflate(layoutInflater) } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(binding.root) + binding.more.setOnClickListener { +// MenuActivity.start(it.context) + } + with(binding.recyclerView) { + adapter = MarketsAdapter() + itemAnimator = ExpandableItemAnimator(this, animChildrenItem = true) + addItemDecoration(MarketsItemDecoration()) + layoutManager = LinearLayoutManager(context) + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/MarketsAdapter.kt b/app/src/main/java/com/dhsd/glowner/ui/MarketsAdapter.kt new file mode 100644 index 0000000..3874ac1 --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/ui/MarketsAdapter.kt @@ -0,0 +1,146 @@ +package com.dhsd.glowner.ui + +import android.animation.ArgbEvaluator +import android.graphics.Color +import android.graphics.drawable.ShapeDrawable +import android.graphics.drawable.shapes.OvalShape +import android.graphics.drawable.shapes.RoundRectShape +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.dahe.mylibrary.utils.BaseUtils +import com.dahe.mylibrary.utils.ToastUtils +import com.dhsd.glowner.databinding.MarketsChildItemBinding +import com.dhsd.glowner.databinding.MarketsParentItemBinding +import pokercc.android.expandablerecyclerview.ExpandableAdapter + +class MarketChildVH(val binding: MarketsChildItemBinding) : + ExpandableAdapter.ViewHolder(binding.root) + +class MarketParentVH(val binding: MarketsParentItemBinding) : + ExpandableAdapter.ViewHolder(binding.root) + +private val names = listOf( + "Nathaniel Fitzgerald", + "Lawrence Fuller", + "Jacob Mullins", + "Jesus Lewis", + "Johnny Marr" +) + +private val titles = listOf( + "title1", + "Ltitle2", + "Jtitle3", + "title4", + "title5", + "title6" +) + +class MarketsAdapter : ExpandableAdapter() { + override fun onCreateGroupViewHolder( + viewGroup: ViewGroup, + viewType: Int + ): ExpandableAdapter.ViewHolder = LayoutInflater.from(viewGroup.context) + .let { MarketsParentItemBinding.inflate(it, viewGroup, false) } + .let { MarketParentVH(it) } + + + override fun onCreateChildViewHolder( + viewGroup: ViewGroup, + viewType: Int + ): ExpandableAdapter.ViewHolder = LayoutInflater.from(viewGroup.context) + .let { MarketsChildItemBinding.inflate(it, viewGroup, false) } + .let { MarketChildVH(it) } + + override fun onBindChildViewHolder( + holder: ExpandableAdapter.ViewHolder, + groupPosition: Int, + childPosition: Int, + payloads: List + ) { + holder as MarketChildVH + holder.binding.title.text = names.getOrNull(childPosition) + val childCount = getChildCount(groupPosition) + val radius = 4f + val shape = when { + childCount == 1 -> { + RoundRectShape(FloatArray(8) { radius }, null, null) + } + childPosition == 0 -> { + RoundRectShape( + floatArrayOf(radius, radius, radius, radius, 0f, 0f, 0f, 0f), + null, + null + ) + } + childPosition == childCount - 1 -> { + RoundRectShape( + floatArrayOf(0f, 0f, 0f, 0f, radius, radius, radius, radius), + null, null + ) + } + else -> { + RoundRectShape(null, null, null) + } + } + holder.binding.root.background = ShapeDrawable(shape).apply { + paint.color = Color.WHITE + } + } + + override fun onBindGroupViewHolder( + holder: ExpandableAdapter.ViewHolder, + groupPosition: Int, + expand: Boolean, + payloads: List + ) { + holder as MarketParentVH + if (payloads.isEmpty()) { + + val arrowImage = holder.binding.arrowImage + holder.binding.title.text = titles[groupPosition] + arrowImage.rotation = if (expand) -180f else 0f + val circleDrawable = CircleDrawable() + arrowImage.background = circleDrawable + circleDrawable.progress = if (expand) 1f else 0f +// holder.binding.shadowView.alpha = if (expand) 1f else 0f + } + + } + + override fun onGroupViewHolderExpandChange( + holder: ExpandableAdapter.ViewHolder, + groupPosition: Int, + animDuration: Long, + expand: Boolean + ) { + holder as MarketParentVH + val arrowImage = holder.binding.arrowImage + ToastUtils.showToast(holder.binding.root.context, "dianjile") + arrowImage.animate() + .setDuration(animDuration) + .rotation(if (expand) -180f else 0f) + .setUpdateListener { + val progress = if (expand) it.animatedFraction else 1 - it.animatedFraction + (arrowImage.background as CircleDrawable).progress = progress +// holder.binding.shadowView.alpha = progress + } + .start() + } + + override fun getGroupCount(): Int = 6 + + override fun getChildCount(groupPosition: Int): Int = 5 +} + +private class CircleDrawable : ShapeDrawable(OvalShape()) { + private val argbEvaluator = ArgbEvaluator() + private val startColor = 0xff494949.toInt() + private val endColor = 0xfff64637.toInt() + var progress: Float = 0f + set(value) { + paint.color = argbEvaluator.evaluate(value, startColor, endColor) as Int + invalidateSelf() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/MarketsItemDecoration.kt b/app/src/main/java/com/dhsd/glowner/ui/MarketsItemDecoration.kt new file mode 100644 index 0000000..ffd9225 --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/ui/MarketsItemDecoration.kt @@ -0,0 +1,71 @@ +package com.dhsd.glowner.ui + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.view.View +import androidx.core.view.iterator +import androidx.recyclerview.widget.RecyclerView +import com.dahe.mylibrary.utils.BaseSPUtils +import com.dahe.mylibrary.utils.BaseUtils +import com.dahe.mylibrary.utils.StringUtils +import pokercc.android.expandablerecyclerview.ExpandableAdapter +import pokercc.android.expandablerecyclerview.ExpandableRecyclerView + +class MarketsItemDecoration : RecyclerView.ItemDecoration() { + private val linePaint = Paint().apply { + color = 0xfff6f6f8.toInt() + strokeWidth = 1F +// strokeWidth = BaseUtils.dip2px(this@MarketsItemDecoration.con, 1F).toFloat() + } + + override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + super.onDrawOver(c, parent, state) + parent as ExpandableRecyclerView + val adapter = parent.requireAdapter() + val layoutManager = parent.layoutManager!! + + // Draw divide line between children item. + for (view in parent) { + val viewHolder = parent.getChildViewHolder(view) + val params = viewHolder.itemView.layoutParams as RecyclerView.LayoutParams + viewHolder as ExpandableAdapter.ViewHolder + val (groupPosition, childPosition) = adapter.getItemLayoutPosition(viewHolder) + val childCount = adapter.getChildCount(groupPosition) + if (!adapter.isGroup(viewHolder.itemViewType) && childPosition != childCount - 1) { + val y = layoutManager.getDecoratedBottom(view) + view.translationY + parent.clipAndDrawChild(c, view) { + it.drawLine( + parent.paddingStart + 10f + params.marginStart, y, + parent.width - parent.paddingEnd.toFloat() - params.marginEnd, y, + linePaint + ) + } + + } + } + + } + + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + super.getItemOffsets(outRect, view, parent, state) + parent as ExpandableRecyclerView + val adapter = parent.requireAdapter() + val viewHolder = parent.getChildViewHolder(view) + + //Give bottom margin when it is group type or it is the last one of group. + val isGroup = adapter.isGroup(viewHolder.itemViewType) + val firstChild = { + adapter.getItemLayoutPosition(viewHolder as ExpandableAdapter.ViewHolder).childPosition == 0 + } + if (isGroup || firstChild()) { + outRect.top = 12f.toInt() + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt index e7ac5c5..a02a1d6 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt @@ -31,6 +31,7 @@ import com.dhsd.glowner.adapter.WaybillAdapter import com.dhsd.glowner.bean.PopBean import com.dhsd.glowner.cuspop.OnCarSelectListener import com.dhsd.glowner.databinding.FragmentHomeBinding +import com.dhsd.glowner.ui.MarketsActivity import com.dhsd.glowner.ui.home.activtiy.SendGoodsActivity import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity import com.dhsd.glowner.utils.CommonPopUtils @@ -66,10 +67,11 @@ class HomeFragment : BaseFragment(), RefreshCallBack { binding.tvMar.isSelected = true binding.ivNor.setOnClickListener { +// ActivityUtils.startActivity(mContext, MarketsActivity::class.java) ActivityUtils.startActivity(mContext, SendGoodsActivity::class.java) } - binding.ivNor.setOnClickListener { + binding.ivMul.setOnClickListener { ActivityUtils.startActivity(mContext, SendGoodsActivity::class.java) } initData() diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt index e89eca9..33b52a7 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt @@ -41,7 +41,7 @@ import io.reactivex.rxjava3.schedulers.Schedulers class ChoiceCarActivity : BaseActivity(), OnLimitClickListener { lateinit var adapter: DriverCarsAdapter - var searchValue: String = "" + private var searchValue: String = "" private var orderId: String = "" private var selectCar: CarBean? = null override fun initView(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt index b57d6cb..9b6cc75 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt @@ -1,8 +1,27 @@ package com.dhsd.glowner.ui.mine.activity +import BaseObserver +import DataManager +import RxHttpCallBack +import android.graphics.Color import android.os.Bundle +import android.view.View +import android.widget.LinearLayout +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider +import com.dahe.mylibrary.utils.ConvertUtils +import com.dahe.mylibrary.utils.ToastUtils +import com.dhsd.glowner.R +import com.dhsd.glowner.adapter.DriverCarsAdapter +import com.dhsd.glowner.bean.CaptainBean +import com.dhsd.glowner.bean.CarBean import com.dhsd.glowner.databinding.ActivityChoiceFleetCarBinding +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.schedulers.Schedulers /** * @ClassName ChoiceFleetActivity @@ -12,10 +31,52 @@ import com.dhsd.glowner.databinding.ActivityChoiceFleetCarBinding */ class ChoiceFleetActivity : BaseActivity() { override fun initView(savedInstanceState: Bundle?) { - TODO("Not yet implemented") + setStatusBarColor(R.color.white) + setTitleBar("选择车队/车辆", View.OnClickListener { finish() }, true, "我的熟车") { + ToastUtils.showToast(mContext, "我的熟车") + } + + binding.run { + recycler.run { + layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) + addItemDecoration( + RecycleViewDivider( + LinearLayout.VERTICAL, + ConvertUtils.dp2px(12.0f), + Color.TRANSPARENT + ) + ) + adapter = DriverCarsAdapter() + adapter as DriverCarsAdapter + }.apply { + isStateViewEnable = true + } + } } override fun initDate() { - TODO("Not yet implemented") + DataManager.getInstance().getCaptainList() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext,object :RxHttpCallBack>(){ + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + + } + })) + + } + + private fun initList(rows: List) { +// if (rows.isEmpty()) { +// adapter.submitList(null) +// adapter.setStateViewLayout(mContext, R.layout.empty_view) +// } else { +// if (mRefreshPage === 1) { +// adapter?.submitList(rows) +// } else { +// adapter?.addAll(rows) +// } +// } } } \ No newline at end of file diff --git a/app/src/main/res/drawable-xxhdpi/arrow_down.png b/app/src/main/res/drawable-xxhdpi/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..57b26351d2dba69df96d505bd38ab4489097e443 GIT binary patch literal 2976 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/market_arrow.png b/app/src/main/res/drawable-xxhdpi/market_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..7176ed0fef3de53f25a720dadc7846bea3e750a8 GIT binary patch literal 493 zcmVeqoFm)l}Cf+3^O|i@bK@v z70LD78nXeI*&%?>EseN9=n-Gaxtu>6KsTXp00-U>c8D*fu1MZhcR&Z=7Ql5+GkZ;H zK>QoYleyx{^DYkPAe4-jtZus|K^PGK4xr@!BNYHI2$AAl9q=~|Guzt<(c%{Yu&)zp zh+hoAR0y@iFA88Rgqq?P2QUW0j?Llvw(r{*ZfkJYN*Z`EZhJIDe24=^Zih_>Vd6sp zjEF + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/markets_child_item_bg.xml b/app/src/main/res/drawable/markets_child_item_bg.xml new file mode 100644 index 0000000..277ccf1 --- /dev/null +++ b/app/src/main/res/drawable/markets_child_item_bg.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/markets_group_shadow.xml b/app/src/main/res/drawable/markets_group_shadow.xml new file mode 100644 index 0000000..22f19bd --- /dev/null +++ b/app/src/main/res/drawable/markets_group_shadow.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/markets_parent_item_bg.xml b/app/src/main/res/drawable/markets_parent_item_bg.xml new file mode 100644 index 0000000..a48489a --- /dev/null +++ b/app/src/main/res/drawable/markets_parent_item_bg.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/markets_price_bg.xml b/app/src/main/res/drawable/markets_price_bg.xml new file mode 100644 index 0000000..ac6f648 --- /dev/null +++ b/app/src/main/res/drawable/markets_price_bg.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/text_book_grade_bg.xml b/app/src/main/res/drawable/text_book_grade_bg.xml new file mode 100644 index 0000000..d38d703 --- /dev/null +++ b/app/src/main/res/drawable/text_book_grade_bg.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_choice_fleet_car.xml b/app/src/main/res/layout/activity_choice_fleet_car.xml index 11b11a1..7491c60 100644 --- a/app/src/main/res/layout/activity_choice_fleet_car.xml +++ b/app/src/main/res/layout/activity_choice_fleet_car.xml @@ -39,10 +39,9 @@ android:layout_gravity="center_vertical" android:layout_marginLeft="@dimen/dp_6" android:background="#00000000" - android:hint="请输入车牌号/手机号进行搜索" + android:hint="请输入车队名称,车队长/司机姓名,手机号或车牌号" android:inputType="text|textAutoComplete" android:singleLine="true" - android:text="" android:textColor="@color/black" android:textSize="14sp" /> diff --git a/app/src/main/res/layout/markets_activity.xml b/app/src/main/res/layout/markets_activity.xml new file mode 100644 index 0000000..f18c4e3 --- /dev/null +++ b/app/src/main/res/layout/markets_activity.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/markets_child_item.xml b/app/src/main/res/layout/markets_child_item.xml new file mode 100644 index 0000000..0c7496a --- /dev/null +++ b/app/src/main/res/layout/markets_child_item.xml @@ -0,0 +1,44 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/markets_parent_item.xml b/app/src/main/res/layout/markets_parent_item.xml new file mode 100644 index 0000000..d3791bf --- /dev/null +++ b/app/src/main/res/layout/markets_parent_item.xml @@ -0,0 +1,43 @@ + + + + + + + + + diff --git a/mylibrary/build.gradle b/mylibrary/build.gradle index a741e74..0cc5259 100644 --- a/mylibrary/build.gradle +++ b/mylibrary/build.gradle @@ -86,6 +86,8 @@ dependencies { api 'pub.devrel:easypermissions:3.0.0' api 'io.github.lucksiege:compress:v3.11.2' api 'androidx.cardview:cardview:1.0.0' + api "com.github.pokercc:ExpandableRecyclerView:0.9.3" + api rootProject.ext.dependencies["WheelPicker"] api rootProject.ext.dependencies["AddressPicker"]