From 05405ba27e03cc7971740e6ab21cc182c925652c Mon Sep 17 00:00:00 2001 From: chenglifeng Date: Mon, 30 Sep 2024 10:40:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E6=8E=89=E9=80=9A=E8=BF=87@P?= =?UTF-8?q?aram=E8=8E=B7=E5=8F=96bundle=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/proguard-rules.pro | 7 -- .../survey/ui/approval/ApprovalActivity.kt | 7 +- .../survey/ui/base/BaseBindingActivity.kt | 2 - .../survey/ui/base/BaseBindingFragment.kt | 2 - .../survey/ui/login/LoginInputCodeActivity.kt | 21 ++--- .../survey/ui/project/ProjectListFragment.kt | 8 +- .../com/project/survey/util/param/Param.java | 18 ---- .../project/survey/util/param/ParamUtil.kt | 82 ------------------- 8 files changed, 20 insertions(+), 127 deletions(-) delete mode 100644 app/src/main/java/com/project/survey/util/param/Param.java delete mode 100644 app/src/main/java/com/project/survey/util/param/ParamUtil.kt diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 821f81c..f74d5f7 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -283,10 +283,3 @@ public static final int *; # 友盟 -keep class com.umeng.** {*;} - -# Param --keep class com.project.survey.util.param.Param { *; } --keepattributes *Param* --keepclassmembers class com.project.survey.model.** { *; } --keepclassmembers class com.project.survey.logic.bean.** { *; } --keepclassmembers class com.project.survey.logic.event.** { *; } diff --git a/app/src/main/java/com/project/survey/ui/approval/ApprovalActivity.kt b/app/src/main/java/com/project/survey/ui/approval/ApprovalActivity.kt index d50a4c0..6d67127 100644 --- a/app/src/main/java/com/project/survey/ui/approval/ApprovalActivity.kt +++ b/app/src/main/java/com/project/survey/ui/approval/ApprovalActivity.kt @@ -13,7 +13,6 @@ import com.project.survey.ui.approval.adapter.ApprovalAdapter import com.project.survey.ui.base.BaseBindingActivity import com.project.survey.util.ActivityNavUtil import com.project.survey.util.SPUtils -import com.project.survey.util.param.Param import com.project.survey.widget.decoration.TransparentDividerDecoration import com.scwang.smart.refresh.layout.api.RefreshLayout import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener @@ -24,6 +23,8 @@ import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener class ApprovalActivity : BaseBindingActivity(), OnRefreshLoadMoreListener { companion object { + const val TYPE = "type" + const val PI_PREAPPROV = "PI_PREAPPROV"//待处理 const val PI_APPROVED = "PI_APPROVED"//已处理 const val PI_OWNER = "PI_OWNER"//所有的流程 @@ -31,7 +32,7 @@ class ApprovalActivity : BaseBindingActivity(), OnRefre fun start(type: String = PI_OWNER) { ActivityNavUtil.startActivity { - putString("type", type) + putString(TYPE, type) } } } @@ -41,13 +42,13 @@ class ApprovalActivity : BaseBindingActivity(), OnRefre private val viewModel: ProjectViewModel by viewModels() - @Param private var type: String = "" private val adapter by lazy { ApprovalAdapter() } private var currentPage = 1 override fun initView() { + type = intent.getStringExtra(TYPE) ?: "" immersionToolbar( mBinding.ilToolBar.toolbar, when (type) { diff --git a/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt b/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt index 6111dc0..fe49f57 100644 --- a/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt +++ b/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt @@ -10,7 +10,6 @@ import androidx.appcompat.widget.Toolbar import androidx.viewbinding.ViewBinding import com.gyf.immersionbar.ImmersionBar import com.project.survey.R -import com.project.survey.util.param.ParamUtil import com.project.survey.widget.LoadingDialog import org.polaric.colorful.Colorful @@ -29,7 +28,6 @@ abstract class BaseBindingActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - ParamUtil.initParam(this) _binding = getBinding() setContentView(mBinding.root) // //设置背景色 diff --git a/app/src/main/java/com/project/survey/ui/base/BaseBindingFragment.kt b/app/src/main/java/com/project/survey/ui/base/BaseBindingFragment.kt index 71485b6..78b1415 100644 --- a/app/src/main/java/com/project/survey/ui/base/BaseBindingFragment.kt +++ b/app/src/main/java/com/project/survey/ui/base/BaseBindingFragment.kt @@ -7,7 +7,6 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.viewbinding.ViewBinding -import com.project.survey.util.param.ParamUtil abstract class BaseBindingFragment : Fragment() { @@ -25,7 +24,6 @@ abstract class BaseBindingFragment : Fragment() { override fun onAttach(context: Context) { super.onAttach(context) mContext = context - ParamUtil.initParam(this) } override fun onCreateView( diff --git a/app/src/main/java/com/project/survey/ui/login/LoginInputCodeActivity.kt b/app/src/main/java/com/project/survey/ui/login/LoginInputCodeActivity.kt index cbcceb4..5775813 100644 --- a/app/src/main/java/com/project/survey/ui/login/LoginInputCodeActivity.kt +++ b/app/src/main/java/com/project/survey/ui/login/LoginInputCodeActivity.kt @@ -7,18 +7,21 @@ import com.project.survey.extend.showSoftInput import com.project.survey.logic.viewmodel.LoginViewModel import com.project.survey.ui.base.BaseBindingActivity import com.project.survey.util.ActivityNavUtil -import com.project.survey.util.param.Param import kotlinx.coroutines.delay import kotlinx.coroutines.launch class LoginInputCodeActivity : BaseBindingActivity() { companion object { + const val ACCOUNT = "account" + const val PASSWORD = "password" + const val MOBILE = "mobile" + fun start(account: String, password: String, mobile: String) { ActivityNavUtil.startActivity { - putString("account", account) - putString("password", password) - putString("mobile", mobile) + putString(ACCOUNT, account) + putString(PASSWORD, password) + putString(MOBILE, mobile) } } } @@ -28,18 +31,16 @@ class LoginInputCodeActivity : BaseBindingActivity() { companion object { + const val TYPE = "type" + const val TYPE_RECENTLY = "1" const val TYPE_ALL = "2" fun newInstance(type: String): Fragment { return ProjectListFragment().apply { - arguments = bundleOf("type" to type) + arguments = bundleOf(TYPE to type) } } } @@ -35,10 +36,11 @@ class ProjectListFragment : BaseBindingFragment() { private val viewModel: ProjectViewModel by viewModels() private val adapter by lazy { ProjectListAdapter() } - @Param private var type: String = "" override fun initView() { + type = arguments?.getString(TYPE, "") ?: "" + mBinding.recyclerView.addItemDecoration(HorDividerDecoration(mContext)) mBinding.recyclerView.setAdapter(adapter) } diff --git a/app/src/main/java/com/project/survey/util/param/Param.java b/app/src/main/java/com/project/survey/util/param/Param.java deleted file mode 100644 index 2023824..0000000 --- a/app/src/main/java/com/project/survey/util/param/Param.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.project.survey.util.param; - -import androidx.annotation.Keep; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * des 参数解析注解 - */ -@Keep -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -public @interface Param { - String value() default ""; -} diff --git a/app/src/main/java/com/project/survey/util/param/ParamUtil.kt b/app/src/main/java/com/project/survey/util/param/ParamUtil.kt deleted file mode 100644 index efd7cf5..0000000 --- a/app/src/main/java/com/project/survey/util/param/ParamUtil.kt +++ /dev/null @@ -1,82 +0,0 @@ -package com.project.survey.util.param - -import android.app.Activity -import android.os.Bundle -import android.text.TextUtils -import androidx.fragment.app.Fragment - -/** - * 页面跳转传参 注解+反射获取页面入参 - */ -object ParamUtil { - /** - * Fragment - */ - fun initParam(fragment: Fragment) { - val javaClass = fragment.javaClass - fragment.arguments?.apply { - setParam(fragment, this) - } - } - - /** - * Activity - */ - fun initParam(activity: Activity) { - activity.intent.extras?.apply { - setParam(activity, this) - } - } - - private fun setParam(obj: Any, intent: Bundle) { - val javaClass = obj.javaClass - val fields = javaClass.declaredFields - for (item in fields) { - if (item.isAnnotationPresent(Param::class.java)) { - item.getAnnotation(Param::class.java)?.let { - val key: String = if (TextUtils.isEmpty(it.value)) item.name else it.value - if (intent.containsKey(key)) { - val type = item.type - when (type) { - Boolean::class.javaPrimitiveType -> { - intent.getBoolean(key, false) - } - Int::class.javaPrimitiveType -> { - intent.getInt(key, 0) - } - Long::class.javaPrimitiveType -> { - intent.getLong(key, 0L) - } - String::class.java -> { - intent.getString(key) - } - Double::class.javaPrimitiveType -> { - intent.getDouble(key, 0.0) - } - Byte::class.javaPrimitiveType -> { - intent.getByte(key, "".toByte()) - } - Char::class.javaPrimitiveType -> { - intent.getChar(key, '\u0000') - } - Float::class.javaPrimitiveType -> { - intent.getFloat(key, 0f) - } - else -> { - intent.getParcelable(key) - } - }?.apply { - item.isAccessible = true - try { - item[obj] = this - } catch (e: IllegalAccessException) { - e.printStackTrace() - } - item.isAccessible = false - } - } - } - } - } - } -} \ No newline at end of file