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