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