diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 95c7cd0..502522e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.dahe.gldriver">
-
+
@@ -15,6 +15,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/adapter/CarsAdapter.kt b/app/src/main/java/com/dahe/gldriver/adapter/CarsAdapter.kt
new file mode 100644
index 0000000..13c9d93
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/adapter/CarsAdapter.kt
@@ -0,0 +1,31 @@
+package com.dahe.gldriver.adapter
+
+import android.content.Context
+import android.view.ViewGroup
+import android.widget.Button
+import com.chad.library.adapter4.BaseQuickAdapter
+import com.chad.library.adapter4.viewholder.QuickViewHolder
+import com.dahe.gldriver.R
+import com.dahe.glex.bean.WayBillBean
+
+/**
+ * @ClassName WaybillAdapter
+ * @Author 用户
+ * @Date 2024/1/23 16:27
+ * @Description TODO
+ */
+class CarsAdapter :
+ BaseQuickAdapter() {
+ override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) {
+
+ }
+
+ override fun onCreateViewHolder(
+ context: Context,
+ parent: ViewGroup,
+ viewType: Int
+ ): QuickViewHolder {
+ // 返回一个 ViewHolder
+ return QuickViewHolder(R.layout.item_cars, parent)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/adapter/WalletAdapter.kt b/app/src/main/java/com/dahe/gldriver/adapter/WalletAdapter.kt
new file mode 100644
index 0000000..011ca36
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/adapter/WalletAdapter.kt
@@ -0,0 +1,27 @@
+package com.dahe.gldriver.adapter
+
+import android.content.Context
+import android.view.ViewGroup
+import com.chad.library.adapter4.BaseQuickAdapter
+import com.chad.library.adapter4.viewholder.QuickViewHolder
+import com.dahe.gldriver.R
+import com.dahe.glex.bean.WayBillBean
+
+/**
+ * @ClassName WalletAdapter
+ * @Author john
+ * @Date 2024/2/1 10:41
+ * @Description TODO
+ */
+class WalletAdapter : BaseQuickAdapter() {
+ override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) {
+ }
+
+ override fun onCreateViewHolder(
+ context: Context,
+ parent: ViewGroup,
+ viewType: Int
+ ): QuickViewHolder {
+ return QuickViewHolder(R.layout.item_wallet, parent)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/base/WebActivity.kt b/app/src/main/java/com/dahe/gldriver/base/WebActivity.kt
new file mode 100644
index 0000000..31fa045
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/base/WebActivity.kt
@@ -0,0 +1,125 @@
+package com.dahe.gldriver.base
+
+import android.content.Context
+import android.content.Intent
+import android.graphics.Bitmap
+import android.os.Bundle
+import android.text.TextUtils
+import android.view.View
+import android.webkit.JavascriptInterface
+import android.webkit.WebResourceRequest
+import android.webkit.WebView
+import android.widget.FrameLayout
+import android.widget.TextView
+import com.dahe.gldriver.databinding.ActivityWebBinding
+import com.dahe.gldriver.ui.HomeActivity
+import com.dahe.mylibrary.R
+import com.dahe.mylibrary.base.BaseActivity
+import com.just.agentweb.AgentWeb
+import com.just.agentweb.AgentWebUIControllerImplBase
+import com.just.agentweb.WebChromeClient
+import com.just.agentweb.WebViewClient
+
+/**
+ * @ClassName WebActivity
+ * @Author john
+ * @Date 2024/2/1 15:08
+ * @Description TODO
+ */
+class WebActivity : BaseActivity() {
+
+ var mTextRight: TextView? = null
+ private var mAgentWeb: AgentWeb? = null
+
+ private var mTitle = ""
+ private var mUrl = ""
+
+ override fun initView(savedInstanceState: Bundle?) {
+ mTitle = intent.extras?.getString("title").toString()
+ mUrl = intent.extras?.getString("url").toString()
+
+ setStatusBarColor(R.color.colorWhite)
+ setTitleBar(mTitle) { v: View? -> if (!mAgentWeb!!.back()) finish() }
+
+ mAgentWeb = AgentWeb.with(this)
+ .setAgentWebParent(binding.WebViewLayout, FrameLayout.LayoutParams(-1, -1))
+ .useDefaultIndicator()
+ .setWebChromeClient(mWebChromeClient)
+ .setSecurityType(AgentWeb.SecurityType.DEFAULT_CHECK)
+ .setAgentWebUIController(AgentWebUIControllerImplBase())
+ .createAgentWeb()
+ .ready()
+ .go(mUrl)
+
+
+// mAgentWeb?.jsInterfaceHolder?.addJavaObject("phone", AndroidInterfaceWeb())
+ }
+
+ override fun initDate() {
+
+ }
+
+ private val mWebChromeClient: WebChromeClient = object : WebChromeClient() {
+ override fun onProgressChanged(view: WebView, newProgress: Int) {
+ super.onProgressChanged(view, newProgress)
+ }
+
+ override fun onReceivedTitle(view: WebView, title: String) {
+ super.onReceivedTitle(view, title)
+ setTitleBar(
+ if (TextUtils.isEmpty(mTitle)) title else mTitle
+ ) { if (!mAgentWeb!!.back()) finish() }
+ }
+ }
+
+// private val mWebViewClient: WebViewClient = object : WebViewClient() {
+// override fun onPageStarted(view: WebView, url: String, favicon: Bitmap) {
+// super.onPageStarted(view, url, favicon)
+// }
+//
+// override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
+// return super.shouldOverrideUrlLoading(view, request)
+// } // @Override
+// // public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
+// // //该方法在Build.VERSION_CODES.LOLLIPOP以后有效
+// // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+// // String url = request.getUrl().toString();
+// // Log.i(TAG, "shouldOverrideUrlLoading: " + url);
+// // }
+// // return false;
+// // }
+// }
+
+
+ // @OnClick({R.id.common_toolBar_text_right, R.id.common_toolBar_image_right})
+ // public void onClick(View view) {
+ // if (view.getId() == R.id.common_toolBar_text_right) {
+ // } else if (view.getId() == R.id.common_toolBar_image_right) {
+ // }
+ // }
+ override fun onPause() {
+ mAgentWeb?.webLifeCycle?.onPause()
+ super.onPause()
+ }
+
+ override fun onResume() {
+ mAgentWeb?.webLifeCycle?.onResume()
+ super.onResume()
+ }
+
+ override fun onDestroy() {
+ mAgentWeb?.webLifeCycle?.onDestroy()
+ super.onDestroy()
+ }
+
+
+// internal class AndroidInterfaceWeb {
+// @JavascriptInterface
+// fun gohome() {
+// val intent = Intent(mContext, HomeActivity::class.java)
+// intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
+// mContext.startActivity(intent)
+// }
+// }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/net/DataManager.kt b/app/src/main/java/com/dahe/gldriver/net/DataManager.kt
index 6a383d6..05b19e4 100644
--- a/app/src/main/java/com/dahe/gldriver/net/DataManager.kt
+++ b/app/src/main/java/com/dahe/gldriver/net/DataManager.kt
@@ -1,7 +1,7 @@
package com.dahe.gldriver.net
-import com.dahe.gldriver.utils.BaseSingNoParam
import com.dahe.mylibrary.CommonBaseLibrary
+import com.dahe.mylibrary.base.BaseSingNoParam
import com.dahe.mylibrary.net.JsonInterceptor
import okhttp3.OkHttpClient
import java.util.concurrent.TimeUnit
diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPartyActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPartyActivity.kt
new file mode 100644
index 0000000..9b4cdd4
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPartyActivity.kt
@@ -0,0 +1,25 @@
+package com.dahe.gldriver.ui.account.authperson
+
+import android.os.Bundle
+import com.dahe.gldriver.R
+import com.dahe.gldriver.base.WebActivity
+
+import com.dahe.gldriver.databinding.ActivityAuthPersonBinding
+import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.utils.ActivityUtils
+
+/**
+ * @ClassName AuthPartyActivity
+ * @Author john
+ * @Date 2024/2/1 11:20
+ * @Description 党员认证
+ */
+class AuthPartyActivity : BaseActivity() {
+ override fun initView(savedInstanceState: Bundle?) {
+ setStatusBarColor(R.color.white)
+ setTitleBar("党员认证",true)
+ }
+
+ override fun initDate() {
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt
index 8b3e445..91c0996 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt
@@ -1,12 +1,19 @@
package com.dahe.gldriver.ui.mine
+import android.os.Bundle
import android.view.View
import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.GridItemAdapter
+import com.dahe.gldriver.base.WebActivity
import com.dahe.gldriver.bean.GridBean
import com.dahe.gldriver.databinding.FragmentMineBinding
+import com.dahe.gldriver.ui.account.authperson.AuthPartyActivity
+import com.dahe.gldriver.ui.mine.activity.CarsManActivity
+import com.dahe.gldriver.ui.mine.activity.RulesActivity
+import com.dahe.gldriver.ui.mine.activity.WalletActivity
import com.dahe.gldriver.utils.SPUtils
import com.dahe.mylibrary.base.BaseFragment
+import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.tencent.bugly.crashreport.CrashReport
@@ -42,21 +49,26 @@ class MineFragment : BaseFragment(), View.OnClickListener {
// if (null==userInfo)
// return
- binding.gvTools.run {
+ binding.run {
+ //初始化常用工具
+ gvTools.run {
+ adapter = GridItemAdapter(mContext, tools, R.layout.grid_mine_item)
+ setOnItemClickListener { _, _, i, _ ->
+ goTools(i)
+ }
+ }
+ //初始化平台规则
+ gvPlat.run {
+ adapter = GridItemAdapter(mContext, plats, R.layout.grid_mine_item)
+ setOnItemClickListener { _, _, i, _ ->
+ goPlats(i)
+ }
+ }
- adapter = GridItemAdapter(mContext, tools, R.layout.grid_mine_item)
- setOnItemClickListener { _, _, i, _ ->
- goTools(i)
+ rlMoney.setOnClickListener {
+ ActivityUtils.startActivity(mContext, WalletActivity::class.java)
}
}
-
- binding.gvPlat.run {
- adapter = GridItemAdapter(mContext, plats, R.layout.grid_mine_item)
- setOnItemClickListener { _, _, i, _ ->
- goPlats(i)
- }
- }
-
}
override fun onClick(v: View) {
@@ -76,18 +88,27 @@ class MineFragment : BaseFragment(), View.OnClickListener {
// requireActivity().startActivity(intent)
}
-
+ /**
+ * 常用工具跳转逻辑
+ */
private fun goTools(pos: Int) {
when (pos) {
0 -> {
- ToastUtils.showToast(mContext, tools[pos].title)
+ ActivityUtils.startActivity(mContext, RulesActivity::class.java)
}
+
1 -> {
- ToastUtils.showToast(mContext, tools[pos].title)
+ ActivityUtils.startActivity(mContext, CarsManActivity::class.java)
}
+
2 -> {
+ var bundle = Bundle()
+ bundle.putString("title","我的百度")
+ bundle.putString("url","www.baidu.com")
+ ActivityUtils.startActivity(mContext,WebActivity::class.java,bundle)
ToastUtils.showToast(mContext, tools[pos].title)
}
+
3 -> {
ToastUtils.showToast(mContext, tools[pos].title)
}
@@ -95,8 +116,36 @@ class MineFragment : BaseFragment(), View.OnClickListener {
}
}
+ /**
+ * 平台规则跳转逻辑
+ */
private fun goPlats(pos: Int) {
- ToastUtils.showToast(mContext, plats[pos].title)
+ when (pos) {
+ 0 -> {
+ ActivityUtils.startActivity(mContext, RulesActivity::class.java)
+ }
+
+ 1 -> {
+ ActivityUtils.startActivity(mContext, CarsManActivity::class.java)
+ }
+
+ 2 -> {
+ ToastUtils.showToast(mContext, tools[pos].title)
+ }
+
+ 3 -> {
+ ToastUtils.showToast(mContext, tools[pos].title)
+ }
+
+ 4 -> {
+ ActivityUtils.startActivity(mContext, AuthPartyActivity::class.java)
+ }
+
+ 5 -> {
+ ToastUtils.showToast(mContext, tools[pos].title)
+ }
+
+ }
}
diff --git a/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarsManActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarsManActivity.kt
new file mode 100644
index 0000000..795a14b
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarsManActivity.kt
@@ -0,0 +1,60 @@
+package com.dahe.gldriver.ui.mine.activity
+
+import android.graphics.Color
+import android.os.Bundle
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.RecyclerView.LayoutManager
+import com.dahe.gldriver.R
+import com.dahe.gldriver.adapter.CarsAdapter
+import com.dahe.gldriver.adapter.WaybillAdapter
+import com.dahe.gldriver.databinding.ActivityCarsManBinding
+import com.dahe.glex.bean.WayBillBean
+import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
+import com.dahe.mylibrary.utils.ConvertUtils
+
+/**
+ * @ClassName CarsManActivity
+ * @Author john
+ * @Date 2024/2/1 08:59
+ * @Description 车辆管理
+ */
+class CarsManActivity : BaseActivity() {
+ override fun initView(savedInstanceState: Bundle?) {
+ setStatusBarColor(R.color.white)
+ setTitleBar("车辆管理",true)
+
+
+ var datas = mutableListOf(
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean()
+ )
+
+ var adapter = binding.recycler.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(16.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = CarsAdapter()
+ adapter as CarsAdapter
+ }
+
+ adapter.submitList(datas)
+ }
+
+ override fun initDate() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/mine/activity/RulesActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/RulesActivity.kt
new file mode 100644
index 0000000..f4e463e
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/RulesActivity.kt
@@ -0,0 +1,22 @@
+package com.dahe.gldriver.ui.mine.activity
+
+import android.os.Bundle
+import com.dahe.gldriver.R
+import com.dahe.gldriver.databinding.ActivityRulesBinding
+import com.dahe.mylibrary.base.BaseActivity
+
+/**
+ * @ClassName RulesActivity
+ * @Author john
+ * @Date 2024/2/1 11:06
+ * @Description 平台规则
+ */
+class RulesActivity : BaseActivity() {
+ override fun initView(savedInstanceState: Bundle?) {
+ setStatusBarColor(R.color.white)
+ setTitleBar("平台规则",true)
+ }
+
+ override fun initDate() {
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/mine/activity/WalletActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/WalletActivity.kt
new file mode 100644
index 0000000..07939e0
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/WalletActivity.kt
@@ -0,0 +1,54 @@
+package com.dahe.gldriver.ui.mine.activity
+
+import android.graphics.Color
+import android.os.Bundle
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.dahe.gldriver.adapter.CarsAdapter
+import com.dahe.gldriver.adapter.WalletAdapter
+import com.dahe.gldriver.databinding.ActivityWalletBinding
+import com.dahe.glex.bean.WayBillBean
+import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
+import com.dahe.mylibrary.utils.ConvertUtils
+
+/**
+ * @ClassName WalletActivity
+ * @Author john
+ * @Date 2024/2/1 09:41
+ * @Description 钱包
+ */
+class WalletActivity : BaseActivity() {
+ override fun initView(savedInstanceState: Bundle?) {
+ }
+
+ override fun initDate() {
+
+ var datas = mutableListOf(
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean(),
+ WayBillBean()
+ )
+
+ var adapter = binding.recycler.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(16.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = WalletAdapter()
+ adapter as WalletAdapter
+ }
+
+ adapter.submitList(datas)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillDetailActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillDetailActivity.kt
index 5cda270..35a341d 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillDetailActivity.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillDetailActivity.kt
@@ -7,6 +7,7 @@ import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.databinding.ActivityWaybillDetailBinding
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.utils.ActivityUtils
+import com.dahe.mylibrary.utils.SelectPicUtils
/**
* @ClassName WaybillDetailActivity
@@ -22,5 +23,6 @@ class WaybillDetailActivity :BaseActivity(){
}
override fun initDate() {
+// SelectPicUtils().getInstance(mContext)
}
}
\ No newline at end of file
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 a416515..5cad3a0 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
@@ -1,10 +1,21 @@
package com.dahe.gldriver.ui.waybill.activity
import android.os.Bundle
+import android.view.View
+import androidx.recyclerview.widget.GridLayoutManager
import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.databinding.ActivityWaybillUppicBinding
+import com.dahe.mylibrary.adapter.GridImageAdapter
+import com.dahe.mylibrary.adapter.GridImageAdapter.OnItemClickListener
import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.pop.PopBottomPic
import com.dahe.mylibrary.utils.ActivityUtils
+import com.dahe.mylibrary.utils.ToastUtils
+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 com.lxj.xpopup.XPopup
/**
* @ClassName WaybillUpPicActivity
@@ -29,7 +40,7 @@ class WaybillUpPicActivity : BaseActivity() {
mContext,
WaybillSuccActivity::class.java,
Bundle().apply { putInt(AppConfig.SUCCESS_TYPE, 1) })
- }else{
+ } else {
ActivityUtils.startActivity(
mContext,
WaybillSuccActivity::class.java,
@@ -38,6 +49,48 @@ class WaybillUpPicActivity : BaseActivity() {
}
}
+
+ private val mData: List = ArrayList()
override fun initDate() {
+
+ binding.recyclerView.run {
+ layoutManager = FullyGridLayoutManager(mContext, 4, GridLayoutManager.VERTICAL, false)
+ addItemDecoration(
+ GridSpacingItemDecoration(
+ 4,
+ DensityUtil.dip2px(mContext, 8f), false
+ )
+ )
+
+ var myAdapter = GridImageAdapter(mContext, mData)
+
+ myAdapter.setOnItemClickListener(object :OnItemClickListener{
+ override fun onItemClick(v: View?, position: Int) {
+
+ }
+
+ override fun openPicture() {
+ XPopup.Builder(mContext)
+ .hasShadowBg(true)
+ .dismissOnBackPressed(true)
+ .dismissOnTouchOutside(true)
+ .moveUpToKeyboard(false) //如果不加这个,评论弹窗会移动到软键盘上面
+ .isViewMode(true)
+ .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个
+ .asCustom(PopBottomPic(mContext,myAdapter, onPicResultListener = {
+ ToastUtils.showToast(mContext,it.size.toString())
+ myAdapter.data.addAll(it)
+ myAdapter.notifyDataSetChanged()
+ }))
+ .show()
+ }
+ })
+
+// setHasFixedSize(true)
+ adapter = myAdapter
+ }
+
+
+
}
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-xxhdpi/icon_add_pic.png b/app/src/main/res/drawable-xxhdpi/icon_add_pic.png
new file mode 100644
index 0000000..5823b46
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_add_pic.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/money_bg.png b/app/src/main/res/drawable-xxhdpi/money_bg.png
new file mode 100644
index 0000000..9b677e9
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/money_bg.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/wallet_bg.png b/app/src/main/res/drawable-xxhdpi/wallet_bg.png
new file mode 100644
index 0000000..772a65f
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/wallet_bg.png differ
diff --git a/app/src/main/res/layout/acitivity_auth_party.xml b/app/src/main/res/layout/acitivity_auth_party.xml
new file mode 100644
index 0000000..fadd657
--- /dev/null
+++ b/app/src/main/res/layout/acitivity_auth_party.xml
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_cars_man.xml b/app/src/main/res/layout/activity_cars_man.xml
new file mode 100644
index 0000000..fd04d71
--- /dev/null
+++ b/app/src/main/res/layout/activity_cars_man.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_rules.xml b/app/src/main/res/layout/activity_rules.xml
new file mode 100644
index 0000000..e90807a
--- /dev/null
+++ b/app/src/main/res/layout/activity_rules.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_wallet.xml b/app/src/main/res/layout/activity_wallet.xml
new file mode 100644
index 0000000..9c03c32
--- /dev/null
+++ b/app/src/main/res/layout/activity_wallet.xml
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_waybill_uppic.xml b/app/src/main/res/layout/activity_waybill_uppic.xml
index 1e71783..7ab1766 100644
--- a/app/src/main/res/layout/activity_waybill_uppic.xml
+++ b/app/src/main/res/layout/activity_waybill_uppic.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_50">
+
-
+ android:overScrollMode="never" />
+
@@ -157,9 +160,9 @@
@@ -230,6 +233,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_web.xml b/app/src/main/res/layout/activity_web.xml
new file mode 100644
index 0000000..427b3d5
--- /dev/null
+++ b/app/src/main/res/layout/activity_web.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index a1f0526..efac6ab 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -87,6 +87,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:horizontalSpacing="@dimen/dp_30"
+ android:listSelector="@color/color_transparent"
android:numColumns="4">
diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml
index a02ce25..6a780bf 100644
--- a/app/src/main/res/layout/fragment_mine.xml
+++ b/app/src/main/res/layout/fragment_mine.xml
@@ -232,6 +232,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_wallet.xml b/app/src/main/res/layout/item_wallet.xml
new file mode 100644
index 0000000..92a9957
--- /dev/null
+++ b/app/src/main/res/layout/item_wallet.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/compile.gradle b/compile.gradle
index 3abc639..6dfaf8f 100644
--- a/compile.gradle
+++ b/compile.gradle
@@ -1,9 +1,9 @@
def CrashActivityVersion = '2.4.0'
def StatusBarVersion = '2.3.3'
def GsonVersion = '2.10.1'
-def PhotoPickerVersion = 'v3.11.1'
+def PhotoPickerVersion = 'v3.11.2'
def GlideVersion = '4.16.0'
-def AgentWebVersion = 'v5.0.6-androidx'
+def AgentWebVersion = 'v5.1.1-androidx'
def NiceDialogVersion = '1.1.9'
def AndPermissionVersion = '2.0.3'
def BannerVersion = '2.2.2'
@@ -22,7 +22,7 @@ def PickerView = '4.1.9'
def Permissionx = '1.7.1'
def NiceSpinner = '1.4.4'
def Countdownview = '2.1.6'
-def Xpopup = '2.9.19'
+def Xpopup = '2.10.0'
def CheckVersionLib = '2.4.2'
def BuglyVersion = 'latest.release'
project.ext {
@@ -41,7 +41,7 @@ project.ext {
"PhotoPicker" : "io.github.lucksiege:pictureselector:${PhotoPickerVersion}",
// "PhotoPicker" : "com.github.LuckSiege.PictureSelector:picture_library:${PhotoPickerVersion}",
// "PhotoPicker" : "io.github.lucksiege:pictureselector:${PhotoPickerVersion}",
- "agentweb" : "com.github.Justson.AgentWeb:agentweb-core:${AgentWebVersion}",
+ "agentweb" : "io.github.justson:agentweb-core:${AgentWebVersion}",
"statusbaruitl" : "com.github.niorgai:StatusBarCompat:${StatusBarVersion}",
"glide" : "com.github.bumptech.glide:glide:${GlideVersion}",
"glide-compiler" : "com.github.bumptech.glide:compiler:${GlideVersion}",
diff --git a/mylibrary/build.gradle b/mylibrary/build.gradle
index 177a55d..42cdf36 100644
--- a/mylibrary/build.gradle
+++ b/mylibrary/build.gradle
@@ -30,6 +30,10 @@ android {
kotlinOptions {
jvmTarget = '11'
}
+
+ buildFeatures {
+ viewBinding = true
+ }
}
dependencies {
@@ -77,6 +81,7 @@ dependencies {
api rootProject.ext.dependencies["glide-okhttps"]
api rootProject.ext.dependencies["Permissionx"]
api 'pub.devrel:easypermissions:3.0.0'
+ api 'io.github.lucksiege:compress:v3.11.2'
// api 'com.gyf.cactus:cactus:1.1.3-beta13'
diff --git a/mylibrary/src/main/AndroidManifest.xml b/mylibrary/src/main/AndroidManifest.xml
index 2f43892..2c1d73e 100644
--- a/mylibrary/src/main/AndroidManifest.xml
+++ b/mylibrary/src/main/AndroidManifest.xml
@@ -23,6 +23,7 @@
+
\ No newline at end of file
diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/adapter/GridImageAdapter.kt b/mylibrary/src/main/java/com/dahe/mylibrary/adapter/GridImageAdapter.kt
new file mode 100644
index 0000000..c342576
--- /dev/null
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/adapter/GridImageAdapter.kt
@@ -0,0 +1,206 @@
+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 GridImageAdapter(context: Context?, result: List?) :
+ RecyclerView.Adapter() {
+ private val mInflater: LayoutInflater
+ val data = ArrayList()
+ 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)
+ }
+ }
+
+ 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 {
+ 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.VISIBLE
+ 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
+ }
+}
diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseActivity.java b/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseActivity.java
index 0615da2..29ba5a9 100644
--- a/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseActivity.java
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseActivity.java
@@ -46,13 +46,15 @@ public abstract class BaseActivity extends AppCompatActi
protected int mRefreshPage = 1;
protected int mRefreshCount = 15;
+ private int statusColor = -1;
+
public VB binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = createBinding();
- if (binding==null)
+ if (binding == null)
return;
setContentView(binding.getRoot());
mContext = this;
@@ -95,6 +97,7 @@ public abstract class BaseActivity extends AppCompatActi
* 设置沉浸式标题栏 标题栏的颜色
*/
public void setStatusBarColor(int color) {
+ statusColor = color;
StatusBarCompat.setStatusBarColor(this, ContextCompat.getColor(mContext, color), DEFAULT_STATUS_BAR_ALPHA);
StatusBar.changeToLightStatusBar(this); //黑色 下边白色
// StatusBar.cancelLightStatusBar(this);
@@ -155,13 +158,14 @@ public abstract class BaseActivity extends AppCompatActi
if (!TextUtils.isEmpty(title))
((TextView) findViewById(R.id.common_toolBar_title)).setText(title);
}
+
/**
* 设置标题
*/
- protected void setTitleBar(String title,boolean isBack) {
+ protected void setTitleBar(String title, boolean isBack) {
mToolbar = (Toolbar) findViewById(R.id.common_toolbar);
- mToolbar.setBackgroundColor(Color.TRANSPARENT);
- if (isBack){
+ mToolbar.setBackgroundColor(statusColor == -1 ? Color.TRANSPARENT : ContextCompat.getColor(mContext, statusColor));
+ if (isBack) {
mToolbar.setNavigationIcon(R.drawable.left_black);
mToolbar.setNavigationOnClickListener(view -> finish());
}
@@ -169,6 +173,7 @@ public abstract class BaseActivity extends AppCompatActi
((TextView) findViewById(R.id.common_toolBar_title)).setText(title);
}
+
/**
* 显示右边标题
*
diff --git a/app/src/main/java/com/dahe/gldriver/utils/BaseSingleton.kt b/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseSingleton.kt
similarity index 96%
rename from app/src/main/java/com/dahe/gldriver/utils/BaseSingleton.kt
rename to mylibrary/src/main/java/com/dahe/mylibrary/base/BaseSingleton.kt
index b866cc4..e110d54 100644
--- a/app/src/main/java/com/dahe/gldriver/utils/BaseSingleton.kt
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseSingleton.kt
@@ -1,4 +1,4 @@
-package com.dahe.gldriver.utils
+package com.dahe.mylibrary.base
/**
* @ClassName BaseSingleton
diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/pop/PopBottomPic.kt b/mylibrary/src/main/java/com/dahe/mylibrary/pop/PopBottomPic.kt
new file mode 100644
index 0000000..ae4c015
--- /dev/null
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/pop/PopBottomPic.kt
@@ -0,0 +1,122 @@
+package com.dahe.mylibrary.pop
+
+import android.content.Context
+import android.widget.Button
+import com.dahe.mylibrary.R
+import com.dahe.mylibrary.adapter.GridImageAdapter
+import com.dahe.mylibrary.utils.SelectPicUtils
+import com.dahe.mylibrary.utils.ToastUtils
+import com.dahe.mylibrary.weight.GlideEngine
+import com.dahe.mylibrary.weight.ImageFileCompressEngine
+import com.luck.picture.lib.basic.PictureSelectionCameraModel
+import com.luck.picture.lib.basic.PictureSelectionModel
+import com.luck.picture.lib.basic.PictureSelector
+import com.luck.picture.lib.config.SelectMimeType
+import com.luck.picture.lib.entity.LocalMedia
+import com.luck.picture.lib.interfaces.OnResultCallbackListener
+import com.lxj.xpopup.core.BottomPopupView
+import kotlin.math.min
+
+/**
+ * @ClassName PopBottomPic
+ * @Author john
+ * @Date 2024/1/31 11:11
+ * @Description TODO
+ */
+class PopBottomPic(
+ context: Context,
+ myAdapter: GridImageAdapter,
+ onPicResultListener: onPicResultListener
+) : BottomPopupView(context) {
+
+
+ private var listener: onPicResultListener
+ var myAdapter: GridImageAdapter
+
+ init {
+ this.listener = onPicResultListener
+ this.myAdapter = myAdapter
+ }
+
+ override fun getImplLayoutId() = R.layout.choice_car_timg
+
+ override fun onCreate() {
+ super.onCreate()
+ var paizhao = findViewById