From e9b9834a5c77d91115cc8fa73233a67197a193de Mon Sep 17 00:00:00 2001 From: lijia Date: Tue, 19 Mar 2024 09:53:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 8 +- .../dahe/gldriver/adapter/ShowImageAdapter.kt | 30 ++ .../com/dahe/gldriver/bean/OrderDetailBean.kt | 3 + .../main/java/com/dahe/gldriver/net/Api.kt | 10 + .../ui/waybill/activity/SeeDocActivity.kt | 170 +++++++++++ .../waybill/activity/WaybillLoadActivity.kt | 11 +- .../waybill/activity/WaybillRateActivity.kt | 3 + .../activity/WaybillUnlLoadActivity.kt | 9 +- .../waybill/activity/WaybillUpPicActivity.kt | 2 - .../waybill/fragment/CancelWaybillFragment.kt | 16 + .../waybill/fragment/WaitAppraiseFragment.kt | 23 ++ .../com/dahe/gldriver/utils/CommonPopUtils.kt | 39 ++- app/src/main/res/layout/activity_see_doc.xml | 276 ++++++++++++++++++ .../res/layout/activity_waybill_detail.xml | 2 +- .../main/res/layout/activity_waybill_load.xml | 5 +- .../res/layout/activity_waybill_unload.xml | 12 +- app/src/main/res/layout/item_show_image.xml | 13 + app/src/main/res/mipmap-xxhdpi/app_icon.jpg | Bin 0 -> 9327 bytes .../mylibrary/adapter/GridImageAdapter.kt | 8 +- .../mylibrary/adapter/OnlyShowImageAdapter.kt | 214 ++++++++++++++ 20 files changed, 827 insertions(+), 27 deletions(-) create mode 100644 app/src/main/java/com/dahe/gldriver/adapter/ShowImageAdapter.kt create mode 100644 app/src/main/java/com/dahe/gldriver/ui/waybill/activity/SeeDocActivity.kt create mode 100644 app/src/main/res/layout/activity_see_doc.xml create mode 100644 app/src/main/res/layout/item_show_image.xml create mode 100644 app/src/main/res/mipmap-xxhdpi/app_icon.jpg create mode 100644 mylibrary/src/main/java/com/dahe/mylibrary/adapter/OnlyShowImageAdapter.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 04462de..e5d29f3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -59,9 +59,8 @@ android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" - android:icon="@mipmap/ic_launcher" + android:icon="@mipmap/app_icon" android:label="@string/app_name" - android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.GLDriver" android:usesCleartextTraffic="true" @@ -200,6 +199,11 @@ android:configChanges="keyboardHidden|orientation|locale" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan|stateHidden" /> + () { + override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: LocalMedia?) { + val view = holder.getView(R.id.fiv) + ImageLoader.getInstance().loadRoundImage(context,item?.availablePath,6,view) + } + + override fun onCreateViewHolder( + context: Context, + parent: ViewGroup, + viewType: Int + ) = QuickViewHolder(R.layout.item_show_image, parent) +} \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/bean/OrderDetailBean.kt b/app/src/main/java/com/dahe/gldriver/bean/OrderDetailBean.kt index 8856e0c..d5598f3 100644 --- a/app/src/main/java/com/dahe/gldriver/bean/OrderDetailBean.kt +++ b/app/src/main/java/com/dahe/gldriver/bean/OrderDetailBean.kt @@ -69,11 +69,14 @@ data class OrderChild( val orderId: String, val phone: String, val province: String, + val location: String, + val photoUrl: String, val provinceCityArea: String, val provinceCode: String, val sortValue: String, val status: String, val totalAmount: String, + val receiptType: String, val type: String ) diff --git a/app/src/main/java/com/dahe/gldriver/net/Api.kt b/app/src/main/java/com/dahe/gldriver/net/Api.kt index e4db75c..537e0f7 100644 --- a/app/src/main/java/com/dahe/gldriver/net/Api.kt +++ b/app/src/main/java/com/dahe/gldriver/net/Api.kt @@ -9,6 +9,7 @@ import com.dahe.gldriver.bean.DiCarColor import com.dahe.gldriver.bean.DriverBean import com.dahe.gldriver.bean.InviteRecord import com.dahe.gldriver.bean.OcrPersonBean +import com.dahe.gldriver.bean.OrderChild import com.dahe.gldriver.bean.OrderDetailBean import com.dahe.gldriver.bean.OssBean import com.dahe.gldriver.bean.RateBean @@ -376,6 +377,15 @@ interface Api { fun driverRate(): Observable> + /** + * 查看单据 + * @param orderId String + * @return Observable> + */ + @GET(BASE_URL + "driver/order/orderPhoto") + fun orderPhoto(@Query("orderId") orderId :String): Observable>> + + companion object { // String BASE_URL = "https://tmstest.dahehuoyun.com/"; const val BASE_URL = BuildConfig.BASE_URL diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/SeeDocActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/SeeDocActivity.kt new file mode 100644 index 0000000..94bdea7 --- /dev/null +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/SeeDocActivity.kt @@ -0,0 +1,170 @@ +package com.dahe.gldriver.ui.waybill.activity + +import android.os.Bundle +import android.widget.ImageView +import androidx.recyclerview.widget.GridLayoutManager +import com.dahe.gldriver.R +import com.dahe.gldriver.adapter.ShowImageAdapter +import com.dahe.gldriver.base.AppConfig +import com.dahe.gldriver.bean.OrderChild +import com.dahe.gldriver.databinding.ActivitySeeDocBinding +import com.dahe.gldriver.net.BaseObserver +import com.dahe.gldriver.net.DataManager +import com.dahe.gldriver.net.RxHttpCallBack +import com.dahe.gldriver.utils.CommonPopUtils +import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.weight.FullyGridLayoutManager +import com.luck.picture.lib.decoration.GridSpacingItemDecoration +import com.luck.picture.lib.entity.LocalMedia +import com.luck.picture.lib.utils.DensityUtil +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers + +/** + * @ClassName SeeDocActivity + * @Author john + * @Date 2024/3/18 16:03 + * @Description 查看单据 + */ +class SeeDocActivity : BaseActivity() { + private lateinit var loadDatas: ShowImageAdapter + private lateinit var loadBackDatas: ShowImageAdapter + private lateinit var unLoadDatas: ShowImageAdapter + private lateinit var unLoadBackDatas: ShowImageAdapter + private var picList = arrayListOf() + override fun initView(savedInstanceState: Bundle?) { + setStatusHeightParams(binding.rlTop) + setTitleBar("查看单据", true, true) + + binding.run { + loadDatas = recyclerView.run { + layoutManager = + FullyGridLayoutManager(mContext, 4, GridLayoutManager.VERTICAL, false) + addItemDecoration( + GridSpacingItemDecoration( + 4, + DensityUtil.dip2px(mContext, 8f), false + ) + ) + var mData: List = ArrayList() + var myAdapter = ShowImageAdapter() + adapter = myAdapter + myAdapter + }.apply { + setOnItemClickListener { _, view, position -> + CommonPopUtils.getInstance().showPics( + mContext, + view.findViewById(R.id.fiv), + position, + recyclerView, + items.map { it.path }) + } + } + loadBackDatas = recyclerView2.run { + layoutManager = + FullyGridLayoutManager(mContext, 4, GridLayoutManager.VERTICAL, false) + addItemDecoration( + GridSpacingItemDecoration( + 4, + DensityUtil.dip2px(mContext, 8f), false + ) + ) + var mData: List = ArrayList() + var myAdapter = ShowImageAdapter() + adapter = myAdapter + myAdapter + }.apply { + setOnItemClickListener { _, view, position -> + CommonPopUtils.getInstance().showPics( + mContext, + view.findViewById(R.id.fiv), + position, + recyclerView2, + items.map { it.path }) + } + } + + unLoadDatas = unRecycler.run { + layoutManager = + FullyGridLayoutManager(mContext, 4, GridLayoutManager.VERTICAL, false) + addItemDecoration( + GridSpacingItemDecoration( + 4, + DensityUtil.dip2px(mContext, 8f), false + ) + ) + var mData: List = ArrayList() + var myAdapter = ShowImageAdapter() + adapter = myAdapter + myAdapter + }.apply { + setOnItemClickListener { _, view, position -> + CommonPopUtils.getInstance().showPics( + mContext, + view.findViewById(R.id.fiv), + position, + unRecycler, + items.map { it.path }) + } + } + + unLoadBackDatas = unRecycler2.run { + layoutManager = + FullyGridLayoutManager(mContext, 4, GridLayoutManager.VERTICAL, false) + addItemDecoration( + GridSpacingItemDecoration( + 4, + DensityUtil.dip2px(mContext, 8f), false + ) + ) + var mData: List = ArrayList() + var myAdapter = ShowImageAdapter() + adapter = myAdapter + myAdapter + }.apply { + setOnItemClickListener { _, view, position -> + CommonPopUtils.getInstance().showPics( + mContext, + view.findViewById(R.id.fiv), + position, + unRecycler2, + items.map { it.path }) + } + } + } + } + + override fun initDate() { + DataManager.getInstance() + .orderPhoto(intent.extras?.getString(AppConfig.ORDER_ID).toString()) + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() { + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + val load = t.data.find { it.type == "1" } + val unLoad = t.data.filter { it.type == "2" }.maxBy { it.displayOrder } + + loadDatas.submitList(t.data.filter { it.type == "1" } + .map { LocalMedia().apply { path = it.photoUrl } }.toMutableList()) + loadBackDatas.submitList(t.data.filter { it.type == "3" && it.receiptType == "4" } + .map { LocalMedia().apply { path = it.photoUrl } }.toMutableList()) + unLoadDatas.submitList(t.data.filter { it.type == "2" } + .map { LocalMedia().apply { path = it.photoUrl } }.toMutableList()) + unLoadBackDatas.submitList(t.data.filter { it.type == "3" && (it.receiptType == "5" || it.receiptType == "6") } + .map { LocalMedia().apply { path = it.photoUrl } }.toMutableList()) + +// picList.addAll(t.data.filter { it.type == "1" }.map { it.photoUrl }) +// picList.addAll(t.data.filter { it.type == "3"&& it.receiptType=="4" }.map { it.photoUrl }) +// picList.addAll(t.data.filter { it.type == "2" }.map { it.photoUrl }) +// picList.addAll(t.data.filter { it.type == "3" }.map { it.photoUrl }) + + binding.run { + tvLoca.text = load?.location + tvUnLoca.text = unLoad?.location + } + } + })) + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt index 7d3533b..a4b1708 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt @@ -51,14 +51,13 @@ class WaybillLoadActivity : BaseActivity() { var orderId: String = "" lateinit var orderBean: OrderDetailBean override fun initView(savedInstanceState: Bundle?) { - - setTitleBar("运单详情", View.OnClickListener { - finish() - }, true, "查看单据") { - ToastUtils.showToast(mContext, "查看单据") + orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString() + setStatusHeightParams(binding.rlTop) + setTitleBar("运单详情",true,true,"查看单据"){ + ActivityUtils.startActivity(mContext,SeeDocActivity::class.java,Bundle().apply { putString(AppConfig.ORDER_ID,orderId) }) } - orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString() + initRecy() getLocation() diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillRateActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillRateActivity.kt index c870ad5..ca504e6 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillRateActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillRateActivity.kt @@ -9,6 +9,7 @@ import com.dahe.gldriver.bean.Resources import com.dahe.gldriver.bean.UpRate import com.dahe.gldriver.bean.WaybillPhoto import com.dahe.gldriver.databinding.ActivityWaybillRateBinding +import com.dahe.gldriver.event.RefreshEvent import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack @@ -25,6 +26,7 @@ import com.luck.picture.lib.entity.LocalMedia import com.luck.picture.lib.utils.DensityUtil import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers +import org.greenrobot.eventbus.EventBus /** * @ClassName WaybillRateActivtiy @@ -83,6 +85,7 @@ class WaybillRateActivity : BaseActivity() { .subscribe(BaseObserver(mContext,object : RxHttpCallBack(){ override fun onSuccess(t: CommonResponseBean) { super.onSuccess(t) + EventBus.getDefault().post(RefreshEvent(3)) finish() } })) diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt index f2a1114..58a5af5 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt @@ -48,11 +48,12 @@ class WaybillUnlLoadActivity : BaseActivity() { var waybillId: String = "" lateinit var orderBean: OrderDetailBean override fun initView(savedInstanceState: Bundle?) { - - setTitleBar("运单详情", { finish() }, true, "查看单据") { - ToastUtils.showToast(mContext, "查看单据") - } orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString() + setStatusHeightParams(binding.rlTop) + setTitleBar("运单详情",true,true,"查看单据"){ + ActivityUtils.startActivity(mContext,SeeDocActivity::class.java,Bundle().apply { putString(AppConfig.ORDER_ID,orderId) }) + } + initRecy() getLocation() binding.run { diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt index 3062d45..1eaa7e8 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt @@ -71,8 +71,6 @@ class WaybillUpPicActivity : BaseActivity() { tvPosi.setOnClickListener { getLocation() } - - recyclerView.run { layoutManager = FullyGridLayoutManager(mContext, 4, GridLayoutManager.VERTICAL, false) diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/CancelWaybillFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/CancelWaybillFragment.kt index 46c520b..ba98635 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/CancelWaybillFragment.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/CancelWaybillFragment.kt @@ -10,6 +10,7 @@ import com.dahe.gldriver.adapter.WaybillListAdapter import com.dahe.gldriver.callback.OnSearchListener import com.dahe.gldriver.databinding.FragmentWaybillBinding import com.dahe.gldriver.databinding.FragmentWaybillListBinding +import com.dahe.gldriver.event.RefreshEvent import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack @@ -25,6 +26,8 @@ import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ConvertUtils import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe /** * @ClassName AllWaybillFragment @@ -43,6 +46,7 @@ class CancelWaybillFragment : BaseFragment(), Refres } override fun onFragmentFirstVisible() { + EventBus.getDefault().register(this); binding.run { setRefresh(refresh, this@CancelWaybillFragment) adapter = recyclerView.run { @@ -116,4 +120,16 @@ class CancelWaybillFragment : BaseFragment(), Refres } })) } + + @Subscribe + fun eventStatu(event: RefreshEvent) { + if (event.statu == 3) { + initData() + } + } + + override fun onDestroy() { + super.onDestroy() + EventBus.getDefault().unregister(this); + } } \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitAppraiseFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitAppraiseFragment.kt index 40ff1b4..29ca802 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitAppraiseFragment.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitAppraiseFragment.kt @@ -12,10 +12,13 @@ import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.callback.OnSearchListener import com.dahe.gldriver.databinding.FragmentWaybillBinding import com.dahe.gldriver.databinding.FragmentWaybillListBinding +import com.dahe.gldriver.event.RefreshEvent import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack +import com.dahe.gldriver.ui.waybill.activity.SeeDocActivity import com.dahe.gldriver.ui.waybill.activity.WaybillRateActivity +import com.dahe.gldriver.ui.waybill.activity.WaybillUnlLoadActivity import com.dahe.gldriver.utils.OrderUtils import com.dahe.glex.bean.OrderBean import com.dahe.glex.bean.WayBillBean @@ -27,6 +30,8 @@ import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ConvertUtils import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe /** * @ClassName AllWaybillFragment @@ -45,6 +50,7 @@ class WaitAppraiseFragment : BaseFragment(), Refresh } override fun onFragmentFirstVisible() { + EventBus.getDefault().register(this); binding.run { setRefresh(refresh, this@WaitAppraiseFragment) adapter = recyclerView.run { @@ -61,6 +67,11 @@ class WaitAppraiseFragment : BaseFragment(), Refresh (adapter as WaybillListAdapter).isStateViewEnable = true adapter as WaybillListAdapter }.apply { + setOnItemClickListener{_,_,position-> + val orderBean = items[position] + ActivityUtils.startActivity(mContext, + WaybillUnlLoadActivity::class.java,Bundle().apply { putString(AppConfig.ORDER_ID,orderBean.orderId) }) + } addOnItemChildClickListener(R.id.btnOk) { _, _, position -> val orderBean = items[position] ActivityUtils.startActivity(mContext,WaybillRateActivity::class.java, Bundle().apply { @@ -124,4 +135,16 @@ class WaitAppraiseFragment : BaseFragment(), Refresh } })) } + + @Subscribe + fun eventStatu(event: RefreshEvent) { + if (event.statu == 3) { + initData() + } + } + + override fun onDestroy() { + super.onDestroy() + EventBus.getDefault().unregister(this); + } } \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/utils/CommonPopUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/CommonPopUtils.kt index bf77a70..0a539e6 100644 --- a/app/src/main/java/com/dahe/gldriver/utils/CommonPopUtils.kt +++ b/app/src/main/java/com/dahe/gldriver/utils/CommonPopUtils.kt @@ -1,15 +1,21 @@ package com.dahe.gldriver.utils import android.content.Context +import android.graphics.Color +import android.widget.ImageView +import androidx.recyclerview.widget.RecyclerView +import com.dahe.gldriver.R import com.dahe.gldriver.bean.CarBean import com.dahe.gldriver.callback.OnResultListener import com.dahe.gldriver.mypop.AgreementAlert import com.dahe.gldriver.mypop.OnCarSelectListener import com.dahe.gldriver.mypop.PopBottomCar import com.dahe.mylibrary.base.SingletonNoPHolder +import com.dahe.mylibrary.utils.ConvertUtils import com.lxj.xpopup.XPopup import com.lxj.xpopup.interfaces.OnConfirmListener import com.lxj.xpopup.interfaces.OnInputConfirmListener +import com.lxj.xpopup.util.SmartGlideImageLoader /** * @ClassName CommonPopUtils @@ -41,15 +47,15 @@ class CommonPopUtils private constructor() { * @param context Context * @param listener OnResultListener */ - fun showCenterAgreement(context: Context,listener: OnResultListener) { + fun showCenterAgreement(context: Context, listener: OnResultListener) { XPopup.Builder(context) .dismissOnBackPressed(false) .dismissOnTouchOutside(false) .asCustom( AgreementAlert( context, "https://agreement.dahehuoyun.com/huawei/#/private", - "http://agreement.dahehuoyun.com/#/user" - ,listener) + "http://agreement.dahehuoyun.com/#/user", listener + ) ) .show() } @@ -107,8 +113,33 @@ class CommonPopUtils private constructor() { .autoOpenSoftInput(true) .asInputConfirm(title, "", "请输入拒绝原因", listener) .show() + } - + /** + * 展示图片 + * @param context Context + * @param position Int + * @param recyclerView RecyclerView + * @param mutableList MutableList + */ + fun showPics( + context: Context, + imageView: ImageView? = null, + position: Int, + recyclerView: RecyclerView, + mutableList: List + ) { + XPopup.Builder(context) //.animationDuration(1000) + .isTouchThrough(true) + .asImageViewer( + imageView, position, mutableList, + false, true, -1, -1, ConvertUtils.dp2px(10F), false, + Color.rgb(32, 36, 46), + { popupView, position -> + popupView.updateSrcView(recyclerView.getChildAt(position) as ImageView) + }, SmartGlideImageLoader(true, R.mipmap.ic_launcher), null + ) + .show() } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_see_doc.xml b/app/src/main/res/layout/activity_see_doc.xml new file mode 100644 index 0000000..ce16e46 --- /dev/null +++ b/app/src/main/res/layout/activity_see_doc.xml @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_waybill_detail.xml b/app/src/main/res/layout/activity_waybill_detail.xml index fa030e3..1f1daeb 100644 --- a/app/src/main/res/layout/activity_waybill_detail.xml +++ b/app/src/main/res/layout/activity_waybill_detail.xml @@ -12,7 +12,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/dp_240" android:background="@drawable/home_top_bg" - android:paddingTop="@dimen/dp_48"> + android:paddingTop="@dimen/dp_54"> + > diff --git a/app/src/main/res/layout/activity_waybill_unload.xml b/app/src/main/res/layout/activity_waybill_unload.xml index 8ba4dde..d111a7c 100644 --- a/app/src/main/res/layout/activity_waybill_unload.xml +++ b/app/src/main/res/layout/activity_waybill_unload.xml @@ -8,8 +8,9 @@ android:orientation="vertical"> @@ -38,6 +39,7 @@ android:layout_width="0dp" android:layout_height="@dimen/dp_10" android:background="@android:color/transparent" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/app_icon.jpg b/app/src/main/res/mipmap-xxhdpi/app_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f02e5c21d53a946ae97deabd37f6865ec06f209 GIT binary patch literal 9327 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 XMds{vId2y%7>^{-mX8NAUVQm~Jj;iq literal 0 HcmV?d00001 diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/adapter/GridImageAdapter.kt b/mylibrary/src/main/java/com/dahe/mylibrary/adapter/GridImageAdapter.kt index aaae34f..30876c0 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/adapter/GridImageAdapter.kt +++ b/mylibrary/src/main/java/com/dahe/mylibrary/adapter/GridImageAdapter.kt @@ -25,7 +25,7 @@ import com.luck.picture.lib.utils.DateUtils class GridImageAdapter(context: Context?, result: List?) : RecyclerView.Adapter() { private val mInflater: LayoutInflater - val data = ArrayList() + var data = mutableListOf() var selectMax = 9 /** @@ -49,6 +49,12 @@ class GridImageAdapter(context: Context?, result: List?) : } } + fun setDatas(datas:MutableList){ + this.data.clear() + this.data = datas + notifyDataSetChanged() + } + class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { var mImg: ImageView var mIvDel: ImageView diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/adapter/OnlyShowImageAdapter.kt b/mylibrary/src/main/java/com/dahe/mylibrary/adapter/OnlyShowImageAdapter.kt new file mode 100644 index 0000000..5758ede --- /dev/null +++ b/mylibrary/src/main/java/com/dahe/mylibrary/adapter/OnlyShowImageAdapter.kt @@ -0,0 +1,214 @@ +package com.dahe.mylibrary.adapter + +import android.content.Context +import android.net.Uri +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.dahe.mylibrary.R +import com.dahe.mylibrary.callback.OnItemLongClickListener +import com.luck.picture.lib.config.PictureMimeType +import com.luck.picture.lib.config.SelectMimeType +import com.luck.picture.lib.entity.LocalMedia +import com.luck.picture.lib.utils.DateUtils + +/** + * @author:luck + * @date:2016-7-27 23:02 + * @describe:GridImageAdapter + */ +class OnlyShowImageAdapter(context: Context?, result: List?) : + RecyclerView.Adapter() { + private val mInflater: LayoutInflater + var data = mutableListOf() + var selectMax = 9 + + /** + * 删除 + */ + fun delete(position: Int) { + try { + if (position != RecyclerView.NO_POSITION && data.size > position) { + data.removeAt(position) + notifyItemRemoved(position) + notifyItemRangeChanged(position, data.size) + } + } catch (e: Exception) { + e.printStackTrace() + } + } + + fun remove(position: Int) { + if (position < data.size) { + data.removeAt(position) + } + } + + fun setDatas(datas:MutableList){ + this.data.clear() + this.data = datas + notifyDataSetChanged() + } + + class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var mImg: ImageView + var mIvDel: ImageView + var tvDuration: TextView + + init { + mImg = view.findViewById(R.id.fiv) + mIvDel = view.findViewById(R.id.iv_del) + tvDuration = view.findViewById(R.id.tv_duration) + } + } + + override fun getItemCount(): Int { +// return if (data.size < selectMax) { +// data.size + 1 +// } else { + return data.size +// } + } + + override fun getItemViewType(position: Int): Int { + return if (isShowAddItem(position)) { + TYPE_CAMERA + } else { + TYPE_PICTURE + } + } + + /** + * 创建ViewHolder + */ + override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder { + val view = mInflater.inflate(R.layout.gv_filter_image, viewGroup, false) + return ViewHolder(view) + } + + private fun isShowAddItem(position: Int): Boolean { + val size = data.size + return position == size + } + + /** + * 设置值 + */ + override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) { + //少于MaxSize张,显示继续添加的图标 +// if (getItemViewType(position) == TYPE_CAMERA) { +// viewHolder.mImg.setImageResource(R.drawable.ic_add_image) +// viewHolder.mImg.setOnClickListener { +// if (mItemClickListener != null) { +// mItemClickListener!!.openPicture() +// } +// } +// viewHolder.mIvDel.visibility = View.INVISIBLE +// } else { + + //删除按钮隐藏 + viewHolder.mIvDel.visibility = View.GONE + viewHolder.mIvDel.setOnClickListener { view: View? -> + val index = viewHolder.absoluteAdapterPosition + if (index != RecyclerView.NO_POSITION && data.size > index) { + data.removeAt(index) + notifyItemRemoved(index) + notifyItemRangeChanged(index, data.size) + } + } + val media = data[position] + val chooseModel = media.chooseModel + val path = media.availablePath + val duration = media.duration + viewHolder.tvDuration.visibility = + if (PictureMimeType.isHasVideo(media.mimeType)) View.VISIBLE else View.GONE + if (chooseModel == SelectMimeType.ofAudio()) { + viewHolder.tvDuration.visibility = View.VISIBLE + viewHolder.tvDuration.setCompoundDrawablesRelativeWithIntrinsicBounds( + R.drawable.ps_ic_audio, + 0, + 0, + 0 + ) + } else { + viewHolder.tvDuration.setCompoundDrawablesRelativeWithIntrinsicBounds( + R.drawable.ps_ic_video, + 0, + 0, + 0 + ) + } + viewHolder.tvDuration.text = DateUtils.formatDurationTime(duration) + if (chooseModel == SelectMimeType.ofAudio()) { + viewHolder.mImg.setImageResource(R.drawable.ps_audio_placeholder) + } else { + Glide.with(viewHolder.itemView.context) + .load( + if (PictureMimeType.isContent(path) && !media.isCut && !media.isCompressed) Uri.parse( + path + ) else path + ) + .centerCrop() + .placeholder(R.color.app_color_f6) + .diskCacheStrategy(DiskCacheStrategy.ALL) + .into(viewHolder.mImg) + } + //itemView 的点击事件 + if (mItemClickListener != null) { + viewHolder.itemView.setOnClickListener { v: View? -> + val adapterPosition = viewHolder.absoluteAdapterPosition + mItemClickListener!!.onItemClick(v, adapterPosition) + } + } + if (mItemLongClickListener != null) { + viewHolder.itemView.setOnLongClickListener { v: View? -> + val adapterPosition = viewHolder.absoluteAdapterPosition + mItemLongClickListener!!.onItemLongClick(viewHolder, adapterPosition, v) + true + } + } +// } + } + + private var mItemClickListener: OnItemClickListener? = null + fun setOnItemClickListener(l: OnItemClickListener?) { + mItemClickListener = l + } + + interface OnItemClickListener { + /** + * Item click event + * + * @param v + * @param position + */ + fun onItemClick(v: View?, position: Int) + + /** + * Open PictureSelector + */ + fun openPicture() + } + + private var mItemLongClickListener: OnItemLongClickListener? = null + + init { + mInflater = LayoutInflater.from(context) + data.addAll(result!!) + } + + fun setItemLongClickListener(l: OnItemLongClickListener?) { + mItemLongClickListener = l + } + + companion object { + const val TAG = "PictureSelector" + const val TYPE_CAMERA = 1 + const val TYPE_PICTURE = 2 + } +}