From e863cc5da7b0c581c65d7e16ac3aa2ff9d98e4fc Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期四, 20 三月 2025 11:46:20 +0800 Subject: [PATCH] feat(generallibrary): 添加项目选择功能 --- baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java | 12 +- generallibrary/src/main/java/com/dayu/general/view/ProjectDialog.kt | 92 +++++++++++++++ generallibrary/src/main/java/com/dayu/general/dao/ProjectDataDao.kt | 29 ++++ generallibrary/src/main/java/com/dayu/general/dao/AppDataBase.kt | 1 generallibrary/src/main/java/com/dayu/general/tool/BaseCommon.kt | 16 ++ generallibrary/src/main/java/com/dayu/general/BaseApplication.kt | 27 +++ app/src/main/java/com/dayu/recharge/MyApplication.java | 2 app/src/main/java/com/dayu/recharge/activity/LoginActivity.java | 5 generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt | 2 generallibrary/src/main/java/com/dayu/general/view/SearchDialog.kt | 4 generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt | 27 ++-- baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java | 1 generallibrary/src/main/java/com/dayu/general/bean/db/ProjectDataBean.kt | 19 +++ generallibrary/src/main/res/layout/project_dialog.xml | 104 +++++++++++++++++ 14 files changed, 313 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java index 5fe2576..1aa6969 100644 --- a/app/src/main/java/com/dayu/recharge/MyApplication.java +++ b/app/src/main/java/com/dayu/recharge/MyApplication.java @@ -69,7 +69,7 @@ BusinessProvider.getInstance(this); break; case BaseCommon.Generalv1Library: - com.dayu.general.BaseApplication.getInstance().application = this; + com.dayu.general.BaseApplication.getInstance(this); break; } } diff --git a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java index 3632ec7..2bc4efd 100644 --- a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java @@ -1,5 +1,7 @@ package com.dayu.recharge.activity; +import static com.dayu.baselibrary.utils.BaseCommon.Generalv1Library; + import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -20,6 +22,7 @@ import com.dayu.baselibrary.utils.TipUtil; import com.dayu.baselibrary.utils.WSMD5; import com.dayu.baselibrary.view.LibraryDialog; +import com.dayu.general.view.ProjectDialog; import com.dayu.henanlibrary.HeNanApplication; import com.dayu.henanlibrary.dao.HNBaseDaoSingleton; @@ -127,6 +130,8 @@ } else if (type == BaseCommon.Generalv1Library) { binding.nameLL.setVisibility(View.VISIBLE); getGeneralV1Permission(); + ProjectDialog projectDialog=new ProjectDialog(this); + projectDialog.show(); } MyApplication.myApplication.initApplication(); }); diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java b/baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java index 15a8f80..14ab7ba 100644 --- a/baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java +++ b/baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java @@ -2,6 +2,7 @@ import android.app.Activity; import android.app.Dialog; +import android.content.Context; import android.text.TextUtils; import android.view.Gravity; import android.view.View; @@ -23,18 +24,18 @@ public class ConfirmDialog extends Dialog { - Activity mContext; + Context mContext; View.OnClickListener mListner; String mData; String mTitle; - public ConfirmDialog(@NonNull Activity context) { + public ConfirmDialog(@NonNull Context context) { super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); mContext = context; initView(); } - public ConfirmDialog(@NonNull Activity context, View.OnClickListener listner) { + public ConfirmDialog(@NonNull Context context, View.OnClickListener listner) { super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); mContext = context; mListner = listner; @@ -42,7 +43,7 @@ } - public ConfirmDialog(@NonNull Activity context, String data, View.OnClickListener listner) { + public ConfirmDialog(@NonNull Context context, String data, View.OnClickListener listner) { super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); mContext = context; mListner = listner; @@ -50,7 +51,7 @@ initView(); } - public ConfirmDialog(@NonNull Activity context, String title, String data, View.OnClickListener listner) { + public ConfirmDialog(@NonNull Context context, String title, String data, View.OnClickListener listner) { super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); mContext = context; mListner = listner; @@ -80,7 +81,6 @@ if (mListner == null) { ok.setOnClickListener((View v) -> { ConfirmDialog.this.dismiss(); - mContext.finish(); }); } else { ok.setOnClickListener(mListner); diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java b/baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java index 4fc4a4c..2df59dd 100644 --- a/baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java +++ b/baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java @@ -93,6 +93,7 @@ mLibraryBack.listener(type); LibraryDialog.this.dismiss(); confirmDialog.dismiss(); + } }); confirmDialog.show(); diff --git a/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt b/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt index 8d924d2..6349cfc 100644 --- a/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt +++ b/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt @@ -1,6 +1,8 @@ package com.dayu.general import android.app.Application +import android.nfc.Tag +import com.dayu.general.dao.BaseDaoSingleton class BaseApplication private constructor() { @@ -13,14 +15,29 @@ @Volatile private var myApplication: BaseApplication? = null + private var Tag : String ?= "" + var projectDataDao = BaseDaoSingleton.getInstance(application)?.projectDataDao() @JvmStatic - fun getInstance(): BaseApplication { - return myApplication ?: synchronized(this) { - myApplication ?: BaseApplication().also { - myApplication = it - } + fun getInstance(application: Application): BaseApplication { + if (myApplication == null) { + myApplication = BaseApplication() + BaseApplication.application = application } + return myApplication as BaseApplication } + + + + } + + + fun init() { + if (projectDataDao!=null){ + val projectDataBean = projectDataDao?.findFirst() + if (projectDataBean!=null){ + Tag = projectDataBean.projectTag + } + } } } \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt index 3cf7116..6968f84 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt @@ -9,7 +9,7 @@ import com.dayu.general.adapter.SearchListAdapter import com.dayu.general.bean.net.SearchUserResult import com.dayu.general.databinding.ActivitySearchUserGeBinding -import com.dayu.general.dialog.SearchDialog +import com.dayu.general.view.SearchDialog import com.dayu.general.net.ApiManager import com.dayu.general.net.BaseResponse diff --git a/generallibrary/src/main/java/com/dayu/general/bean/db/ProjectDataBean.kt b/generallibrary/src/main/java/com/dayu/general/bean/db/ProjectDataBean.kt new file mode 100644 index 0000000..a336428 --- /dev/null +++ b/generallibrary/src/main/java/com/dayu/general/bean/db/ProjectDataBean.kt @@ -0,0 +1,19 @@ +package com.dayu.general.bean.db + +import androidx.room.Entity +import androidx.room.PrimaryKey + +/** + * Description:椤圭洰閫夐」 + * Author: zuo + * Date: 2025/3/18 + */ +@Entity +class ProjectDataBean { + @PrimaryKey(autoGenerate = true) + var projectId: Long? = 0 + var projectName: String? = null + var projectType: Int? = null + var projectTag: String = "" + +} \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/dao/AppDataBase.kt b/generallibrary/src/main/java/com/dayu/general/dao/AppDataBase.kt index ec1b574..45b77ff 100644 --- a/generallibrary/src/main/java/com/dayu/general/dao/AppDataBase.kt +++ b/generallibrary/src/main/java/com/dayu/general/dao/AppDataBase.kt @@ -8,4 +8,5 @@ @Database(entities = [PassWordCardBean::class, CardData::class], version = 1, exportSchema = false) abstract class AppDataBase : RoomDatabase() { abstract fun cardDataDao(): CardDataDao + abstract fun projectDataDao(): ProjectDataDao } \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt b/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt index 7edd95d..1b4f9f8 100644 --- a/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt +++ b/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt @@ -9,28 +9,31 @@ class BaseDaoSingleton { companion object { + var baseDao: AppDataBase? = null @JvmField val SqlitePath: String = Environment.getExternalStorageDirectory().absolutePath + File.separator + ".dayu" + File.separator + "data" + File.separator + @JvmStatic + fun getInstance(context: Context?): AppDataBase? { + if (baseDao == null) { + baseDao = Room.databaseBuilder<AppDataBase>( + context!!, + AppDataBase::class.java, + SqlitePath + "ConfigurationData_generalV1" + ).allowMainThreadQueries().build() + } + return baseDao + } + } - var baseDao: AppDataBase? = null + var AsynchBaseDao: AppDataBase? = null - //MyFileUtil.SqlitePath + - fun getInstance(context: Context?): AppDataBase? { - if (baseDao == null) { - baseDao = Room.databaseBuilder<AppDataBase>( - context!!, - AppDataBase::class.java, - SqlitePath + "ConfigurationData_generalV1" - ).allowMainThreadQueries().build() - } - return baseDao - } + fun getAsynchInstance(context: Context?): AppDataBase? { if (AsynchBaseDao == null) { diff --git a/generallibrary/src/main/java/com/dayu/general/dao/ProjectDataDao.kt b/generallibrary/src/main/java/com/dayu/general/dao/ProjectDataDao.kt new file mode 100644 index 0000000..84080a8 --- /dev/null +++ b/generallibrary/src/main/java/com/dayu/general/dao/ProjectDataDao.kt @@ -0,0 +1,29 @@ +package com.dayu.general.dao + +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import androidx.room.Update +import com.dayu.general.bean.db.ProjectDataBean + +/** + * Description: + * Author: zuo + * Date: 2025/3/18 + */ +@Dao +interface ProjectDataDao { + @Insert(onConflict = OnConflictStrategy.REPLACE) + fun insert(projectDataBean: ProjectDataBean) + + @Update + fun update(projectDataBean: ProjectDataBean) + + @Delete + fun delete(projectDataBean: ProjectDataBean) + + @Query("select * from ProjectDataBean limit 1") + fun findFirst(): ProjectDataBean? +} \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/tool/BaseCommon.kt b/generallibrary/src/main/java/com/dayu/general/tool/BaseCommon.kt new file mode 100644 index 0000000..63d07b4 --- /dev/null +++ b/generallibrary/src/main/java/com/dayu/general/tool/BaseCommon.kt @@ -0,0 +1,16 @@ +package com.dayu.general.tool + +/** + * Description: + * Author: zuo + * Date: 2025/3/20 + */ +class BaseCommon { + companion object{ + val YuanMo: Int = 1 + val QiHe: Int = 2 + } + + + +} \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/view/ProjectDialog.kt b/generallibrary/src/main/java/com/dayu/general/view/ProjectDialog.kt new file mode 100644 index 0000000..557e677 --- /dev/null +++ b/generallibrary/src/main/java/com/dayu/general/view/ProjectDialog.kt @@ -0,0 +1,92 @@ +package com.dayu.general.view + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import android.view.Gravity +import android.view.ViewGroup +import android.widget.RadioGroup +import android.widget.TextView +import com.dayu.baselibrary.view.ConfirmDialog +import com.dayu.general.R +import com.dayu.general.bean.db.ProjectDataBean +import com.dayu.general.dao.BaseDaoSingleton +import com.dayu.general.tool.BaseCommon + +/** + * Description: + * Author: zuo + * Date: 2025/3/17 + */ +class ProjectDialog(context: Context):Dialog(context,com.dayu.baselibrary.R.style.ws_pay_showSelfDialog){ + + var confirmDialog: ConfirmDialog? = null + var mLibraryBack: LibraryBack? = null + var isChose: Boolean = false + var projectDataDao = BaseDaoSingleton.getInstance(context)?.projectDataDao() + var projectBean: ProjectDataBean = ProjectDataBean() + var type: Int = 0 + var data: String = "" + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initView() + } + + private fun initView() { + window?.setGravity(Gravity.CENTER) + setContentView(R.layout.project_dialog) + setCanceledOnTouchOutside(false) + setCancelable(false) + val radioGroup = findViewById<RadioGroup>(R.id.radioLibrary) + if (projectDataDao != null) { + projectBean = projectDataDao?.findFirst() ?: ProjectDataBean() + + radioGroup.setOnCheckedChangeListener { _, checkedId -> + isChose = true + // 褰撻�変腑鐨凴adioButton鍙戠敓鍙樺寲鏃惰皟鐢� + when (checkedId) { + R.id.yuanMouLibrary -> { + type = BaseCommon.YuanMo + projectBean.projectType = type + data = "纭閫夋嫨娌冲崡鐗堟湰鍚楋紵" + } + R.id.qiHeLibrary -> { + type = BaseCommon.QiHe + projectBean.projectType = type + data = "纭閫夋嫨榻愭渤鍗曟満鐗堟湰鍚楋紵" + } + + } + } + + val okBtn = findViewById<TextView>(R.id.ok) + okBtn.setOnClickListener { + if (isChose) { + // 浜屾纭 + confirmDialog = ConfirmDialog(context, data) { + projectDataDao?.insert(projectBean) + mLibraryBack?.listener(type) + dismiss() + confirmDialog?.dismiss() + } + confirmDialog?.show() + } + } + } + } + interface LibraryBack { + fun listener(type: Int) + } + override fun show() { + super.show() + /** + * 璁剧疆瀹藉害鍏ㄥ睆锛岃璁剧疆鍦╯how鐨勫悗闈� + */ + val layoutParams = window?.attributes + layoutParams?.gravity = Gravity.CENTER + layoutParams?.width = ViewGroup.LayoutParams.MATCH_PARENT + layoutParams?.height = ViewGroup.LayoutParams.MATCH_PARENT + window?.decorView?.setPadding(0, 0, 0, 0) + window?.attributes = layoutParams + } +} \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/dialog/SearchDialog.kt b/generallibrary/src/main/java/com/dayu/general/view/SearchDialog.kt similarity index 95% rename from generallibrary/src/main/java/com/dayu/general/dialog/SearchDialog.kt rename to generallibrary/src/main/java/com/dayu/general/view/SearchDialog.kt index a97f913..0f82113 100644 --- a/generallibrary/src/main/java/com/dayu/general/dialog/SearchDialog.kt +++ b/generallibrary/src/main/java/com/dayu/general/view/SearchDialog.kt @@ -1,4 +1,4 @@ -package com.dayu.general.dialog +package com.dayu.general.view import android.app.Dialog import android.content.Context @@ -6,8 +6,6 @@ import android.view.Gravity import android.view.LayoutInflater import android.view.ViewGroup -import android.view.WindowManager -import com.dayu.general.R import com.dayu.general.databinding.DialogSearchBinding /** diff --git a/generallibrary/src/main/res/layout/project_dialog.xml b/generallibrary/src/main/res/layout/project_dialog.xml new file mode 100644 index 0000000..99fe6b9 --- /dev/null +++ b/generallibrary/src/main/res/layout/project_dialog.xml @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="#40000000" + android:gravity="center" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/dialog_bg_margin" + android:background="@drawable/base_bg_dialog_top_stroke" + android:gravity="center" + android:orientation="vertical"> + + <TextView + android:layout_width="300dp" + android:layout_height="wrap_content" + android:layout_marginTop="20dp" + android:gravity="center" + android:text="璇峰厛閫夋嫨椤圭洰" + android:textColor="@color/dialog_btn" + android:textSize="23sp" + android:textStyle="bold" /> + + <View + android:layout_width="match_parent" + android:layout_height="2px" + android:layout_marginTop="20dp" + android:background="@color/line_bg" /> + + <RadioGroup + android:id="@+id/radioLibrary" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + + <RadioButton + android:id="@+id/yuanMouLibrary" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="50dp" + android:layout_marginTop="25dp" + android:layout_marginRight="50dp" + android:background="@drawable/radio_select" + android:button="@null" + android:gravity="center" + android:padding="6dp" + android:text="鍏冭皨椤圭洰" + android:textColor="@drawable/radio_text_select" + android:textSize="20sp" /> + <RadioButton + android:id="@+id/qiHeLibrary" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="50dp" + android:layout_marginTop="25dp" + android:layout_marginRight="50dp" + android:background="@drawable/radio_select" + android:button="@null" + android:gravity="center" + android:padding="6dp" + android:text="榻愭渤椤圭洰" + android:textColor="@drawable/radio_text_select" + android:textSize="20sp" /> + + </RadioGroup> + + <View + android:layout_width="match_parent" + android:layout_height="2px" + android:layout_marginTop="35dp" + android:background="@color/line_bg" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:padding="5dp" + android:orientation="horizontal"> + + <TextView + android:id="@+id/ok" + android:layout_width="match_parent" + android:layout_height="@dimen/dialog_btn_height" + android:background="@drawable/textview_select_bg" + android:gravity="center" + android:paddingLeft="15dp" + android:paddingTop="5dp" + android:paddingRight="15dp" + android:paddingBottom="5dp" + android:text="纭� 璁�" + android:textColor="@color/dialog_btn" + android:textSize="20sp" /> + + + </LinearLayout> + + + </LinearLayout> + +</LinearLayout> + -- Gitblit v1.8.0