浏览代码

@task: Login

bai 3 年之前
父节点
当前提交
5a5cc75299

+ 4 - 3
demo/build.gradle

@@ -263,9 +263,10 @@ dependencies {
     })
 
     // lifecycle
-    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0-rc01'
-    implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0-rc01'
-    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0-rc01'
+    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0'
+    implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0'
+    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
+    implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.4.0'
     implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2'
 
     debugImplementation 'com.amitshekhar.android:debug-db:1.0.4'

+ 0 - 1
demo/src/main/AndroidManifest.xml

@@ -40,7 +40,6 @@
         <activity
             android:name="com.framework.mvvm.ui.LoginActivity"
             android:exported="true"
-            android:label="@string/title_activity_login"
             android:theme="@style/AppTheme" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />

+ 6 - 0
demo/src/main/java/com/framework/mvvm/model/db/dao/ObjectDao.kt

@@ -78,6 +78,12 @@ interface ObjectDao {
     suspend fun getBuildings(): List<ObjectEntity>
 
     /**
+     * 返回项目下的建筑
+     * */
+    @Query("select * from object where obj_type = 'building' and project_id = :projectId")
+    suspend fun getBuildingsByProjectId(projectId: String): List<ObjectEntity>
+
+    /**
      * 返回所有建筑 ObjectEntity
      */
     @Query("select * from object where obj_type = 'space' and class_code ='GeneralZone' and floor_id =:floorId")

+ 7 - 0
demo/src/main/java/com/framework/mvvm/model/repository/AdmRepository.kt

@@ -405,6 +405,13 @@ class AdmRepository(
     }
 
     /**
+     * 返回项目下的建筑
+     */
+    suspend fun getBuildingByProjectId(projectId: String): List<ObjectEntity> {
+        return db.objectDao().getBuildingsByProjectId(projectId)
+    }
+
+    /**
      * 更新 ObjectEntity
      */
     suspend fun updateObject(obj: ObjectEntity) {

+ 1 - 2
demo/src/main/java/com/framework/mvvm/model/vo/Frame.kt

@@ -7,7 +7,6 @@ import com.framework.mvvm.model.db.entity.ProjectEntity
  * 框架数据
  */
 data class Frame(
-    val buildingsAndFloors: List<ObjectEntity>,
-    val projects: List<ProjectEntity>
+    val buildingsAndFloors: List<ObjectEntity>
 )
 

+ 6 - 3
demo/src/main/java/com/framework/mvvm/mv/AdmViewModel.kt

@@ -70,9 +70,10 @@ class AdmViewModel(private val repository: AdmRepository) : ViewModel() {
     /**
      * 上传建筑数据
      */
-    fun uploadBuilding(block: (() -> Unit)? = null) {
+    fun uploadBuilding(request:AdmRequest, block: (() -> Unit)? = null) {
         viewModelScope.launch(Dispatchers.IO) {
-            val buildings = repository.getBuildings()
+            //val buildings = repository.getBuildings()
+            val buildings = repository.getBuildingByProjectId(request.projectId)
             if (buildings.isEmpty()) return@launch
             for (building in buildings) {
                 repository.uploadBuilding(
@@ -92,12 +93,14 @@ class AdmViewModel(private val repository: AdmRepository) : ViewModel() {
      *  下载建筑数据
      */
     fun downloadBuilding(
+        request: AdmRequest,
         sp: SharedPreferences,
         isProject: Boolean = false,
         block: (() -> Unit)? = null
     ) {
         viewModelScope.launch(Dispatchers.IO) {
-            val buildings = repository.getBuildings()
+            //val buildings = repository.getBuildings()
+            val buildings = repository.getBuildingByProjectId(request.projectId)
             println("downloadBuilding will download : ${buildings.size}")
             if (buildings.isEmpty()) {
                 Log.d("downloadBuilding", "buildings is empty")

+ 11 - 8
demo/src/main/java/com/sybotan/android/demo/activities/PocActivity.kt

@@ -63,16 +63,19 @@ class PocActivity : BaseActivity(), DIAware {
     private lateinit var version: TextView
 
     // 测试用,后期动态设置
-    private val request =
+   /* private val request =
         AdmRequest(userId = "admjd", projectId = "Pj9909990002", groupCode = "JD")
-
-    //private val request =
-    //    AdmRequest(userId = "bdtp", projectId = "Pj5001120003", groupCode = "XG")
-
+*/
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_poc)
         checkStoragePermission()
+        val bundle = intent.getBundleExtra("project")!!
+        val userId = bundle.getString("userId")!!
+        val projectId = bundle.getString("projectId")!!
+        val groupCode = bundle.getString("groupCode")!!
+        val request = AdmRequest(userId = userId, projectId = projectId, groupCode = groupCode)
+
         downloadBtn = findViewById(R.id.downloadBtn)
         uploadBtn = findViewById(R.id.uploadBtn)
         dictBtn = findViewById(R.id.dictBtn)
@@ -87,7 +90,7 @@ class PocActivity : BaseActivity(), DIAware {
         scene3DBtn.setOnClickListener { startActivity<Scene3DActivity>() }
 
         downloadBtn.setOnClickListener {
-            mVm.downloadBuilding(sp) {
+            mVm.downloadBuilding(request, sp) {
                 // ToastUtils.showMyToast("下载完成")
                 val builder = AlertDialog.Builder(this)
                 val dialog = builder.setMessage("建筑数据下载成功")
@@ -97,14 +100,14 @@ class PocActivity : BaseActivity(), DIAware {
                 dialog.show()
             }
             // 单独下载一边关系数据
-            mVm.downloadBuilding(sp, true)
+            mVm.downloadBuilding(request, sp, true)
         }
 
         uploadBtn.setOnClickListener {
             lifecycleScope.launch(Dispatchers.IO) {
                 LocalDataOperation.getInstance().offlineSendRequest.uploadImageNew(this@PocActivity)
             }
-            mVm.uploadBuilding {
+            mVm.uploadBuilding(request) {
                 // ToastUtils.showMyToast("建筑数据上传成功")
                 val builder = AlertDialog.Builder(this)
                 val dialog = builder.setMessage("建筑数据上传成功")