From 56c5badcf04b80aa133d7a62bb34c7bd551adb5f Mon Sep 17 00:00:00 2001
From: xiaoyan <xiaoyan159@163.com>
Date: Mon, 3 Apr 2023 10:26:38 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0Realm=E4=BE=9D?=
 =?UTF-8?q?=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/build.gradle                              |  2 +-
 .../navinfo/omqs/bean/OfflineMapCityBean.kt   |  2 +-
 .../omqs/bean/OfflineMapCityRealmObject.kt    |  2 +-
 .../omqs/ui/activity/login/LoginViewModel.kt  |  4 +-
 .../res/layout/adapter_offline_map_city.xml   |  2 +-
 build.gradle                                  |  2 +-
 .../library/data/entity/OfflineMapCityBean.kt | 48 +++++++++++++++++++
 .../data/entity/OfflineMapCityRealmObject.kt  | 43 +++++++++++++++++
 8 files changed, 97 insertions(+), 8 deletions(-)
 create mode 100644 collect-library/src/main/java/com/navinfo/collect/library/data/entity/OfflineMapCityBean.kt
 create mode 100644 collect-library/src/main/java/com/navinfo/collect/library/data/entity/OfflineMapCityRealmObject.kt

diff --git a/app/build.gradle b/app/build.gradle
index aaa4809f..a6212aa7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -3,8 +3,8 @@ plugins {
     id 'org.jetbrains.kotlin.android'
     id 'kotlin-kapt'
     id 'com.google.dagger.hilt.android'
+    id 'realm-android'
 }
-apply plugin: "realm-android"
 android {
     namespace 'com.navinfo.omqs'
     compileSdk 33
diff --git a/app/src/main/java/com/navinfo/omqs/bean/OfflineMapCityBean.kt b/app/src/main/java/com/navinfo/omqs/bean/OfflineMapCityBean.kt
index fd00662b..d4485441 100644
--- a/app/src/main/java/com/navinfo/omqs/bean/OfflineMapCityBean.kt
+++ b/app/src/main/java/com/navinfo/omqs/bean/OfflineMapCityBean.kt
@@ -7,7 +7,7 @@ enum class StatusEnum(val status: Int) {
     ERROR(4), DONE(5), UPDATE(6)
 }
 
-open class OfflineMapCityBean : RealmObject{
+open class OfflineMapCityBean{
     var id: String = ""
     var fileName: String = ""
     var name: String = ""
diff --git a/app/src/main/java/com/navinfo/omqs/bean/OfflineMapCityRealmObject.kt b/app/src/main/java/com/navinfo/omqs/bean/OfflineMapCityRealmObject.kt
index 4f8481fc..92461d60 100644
--- a/app/src/main/java/com/navinfo/omqs/bean/OfflineMapCityRealmObject.kt
+++ b/app/src/main/java/com/navinfo/omqs/bean/OfflineMapCityRealmObject.kt
@@ -4,7 +4,7 @@ import io.realm.RealmObject
 import io.realm.annotations.PrimaryKey
 
 
-open class OfflineMapCityRealmObject(): RealmObject() {
+open class OfflineMapCityRealmObject(){
     @PrimaryKey
     var id: String = ""
     var fileName: String=""
diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt
index 7578921b..46e0e27f 100644
--- a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt
+++ b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt
@@ -9,11 +9,9 @@ import androidx.lifecycle.ViewModel
 import androidx.lifecycle.viewModelScope
 import com.navinfo.omqs.Constant
 import com.navinfo.omqs.bean.LoginUserBean
-import com.navinfo.omqs.bean.OfflineMapCityRealmObject
 import io.realm.Realm
 import io.realm.RealmConfiguration
 import kotlinx.coroutines.*
-import okio.ByteString.Companion.toByteString
 import okio.IOException
 import java.io.File
 import java.math.BigInteger
@@ -64,7 +62,7 @@ class LoginViewModel(
         loginUser.value = LoginUserBean(username = "admin", password = "123456")
     }
 
-    fun initRealm() {
+    private fun initRealm() {
         val password = "password".encodeToByteArray().copyInto(ByteArray(64))
         // 1110000011000010111001101110011011101110110111101110010011001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
         Log.d("", "密码是: ${BigInteger(1, password).toString(2).padStart(64, '0')}")
diff --git a/app/src/main/res/layout/adapter_offline_map_city.xml b/app/src/main/res/layout/adapter_offline_map_city.xml
index 3bad8ddd..3a0c0d60 100644
--- a/app/src/main/res/layout/adapter_offline_map_city.xml
+++ b/app/src/main/res/layout/adapter_offline_map_city.xml
@@ -10,7 +10,7 @@
 
         <variable
             name="cityBean"
-            type="com.navinfo.omqs.bean.OfflineMapCityBean" />
+            type="com.navinfo.collect.library.data.entity.OfflineMapCityBean" />
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
diff --git a/build.gradle b/build.gradle
index 92ad9940..da697ab5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,7 +2,7 @@
 
 buildscript {
     dependencies {
-        classpath "io.realm:realm-gradle-plugin:10.10.1"
+        classpath "io.realm:realm-gradle-plugin:10.11.1"
     }
 }
 plugins {
diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/OfflineMapCityBean.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/OfflineMapCityBean.kt
new file mode 100644
index 00000000..e3791593
--- /dev/null
+++ b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/OfflineMapCityBean.kt
@@ -0,0 +1,48 @@
+package com.navinfo.collect.library.data.entity
+
+import io.realm.RealmObject
+import io.realm.annotations.PrimaryKey
+
+enum class StatusEnum(val status: Int) {
+    NONE(0), WAITING(1), LOADING(2), PAUSE(3),
+    ERROR(4), DONE(5), UPDATE(6)
+}
+
+open class OfflineMapCityBean @JvmOverloads constructor(@PrimaryKey var id: String = "",
+                                                        var fileName: String = "",
+                                                        var name: String = "",
+                                                        var url: String = "",
+                                                        var version: Long = 0L,
+                                                        var fileSize: Long = 0L,
+                                                        var currentSize: Long = 0L,
+                                                        var status: Int =0) : RealmObject(){
+    // status的转换对象
+    var statusEnum:StatusEnum
+        get() {
+            return try {
+                StatusEnum.values().find { it.status == status }!!
+            } catch (e: IllegalArgumentException) {
+                StatusEnum.NONE
+            }
+        }
+        set(value) {
+            status = value.status
+        }
+
+    fun getFileSizeText(): String {
+        return if (fileSize < 1024.0)
+            "$fileSize B"
+        else if (fileSize < 1048576.0)
+            "%.2f K".format(fileSize / 1024.0)
+        else if (fileSize < 1073741824.0)
+            "%.2f M".format(fileSize / 1048576.0)
+        else
+            "%.2f M".format(fileSize / 1073741824.0)
+    }
+
+//    constructor(){
+//
+//    }
+//
+
+}
\ No newline at end of file
diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/OfflineMapCityRealmObject.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/OfflineMapCityRealmObject.kt
new file mode 100644
index 00000000..5bd0e80a
--- /dev/null
+++ b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/OfflineMapCityRealmObject.kt
@@ -0,0 +1,43 @@
+package com.navinfo.collect.library.data.entity
+
+import io.realm.RealmModel
+import io.realm.RealmObject
+import io.realm.annotations.PrimaryKey
+import io.realm.annotations.RealmClass
+
+@RealmClass
+open class OfflineMapCityRealmObject: RealmModel {
+    @PrimaryKey
+    var id: String = ""
+    var fileName: String=""
+    var name: String = ""
+    var url: String = ""
+    var version: Long = 0
+    var fileSize: Long = 0
+    var currentSize:Long = 0
+    var status:Int = 0
+
+    constructor(){
+
+    }
+
+    constructor(
+        id: String,
+        fileName: String,
+        name: String,
+        url: String,
+        version: Long,
+        fileSize: Long,
+        currentSize: Long,
+        status: Int
+    ) {
+        this.id = id
+        this.fileName = fileName
+        this.name = name
+        this.url = url
+        this.version = version
+        this.fileSize = fileSize
+        this.currentSize = currentSize
+        this.status = status
+    }
+}
\ No newline at end of file