Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS

 Conflicts:
	collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt
This commit is contained in:
squallzhjch
2023-04-24 15:36:25 +08:00
15 changed files with 466 additions and 97 deletions

View File

@@ -10,7 +10,7 @@ import com.hjq.permissions.XXPermissions
/**
* 权限申请Activity
*/
open class PermissionsActivity : BaseActivity() {
open abstract class PermissionsActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val permissionList = mutableListOf<String>()
@@ -50,10 +50,10 @@ open class PermissionsActivity : BaseActivity() {
Toast.LENGTH_SHORT
)
.show()
onPermissionsGranted()
onPermissionsDenied()
return
} else {
onPermissionsDenied()
onPermissionsGranted()
}
// 在SD卡创建项目目录
}
@@ -79,14 +79,10 @@ open class PermissionsActivity : BaseActivity() {
/**
* 权限全部同意
*/
open fun onPermissionsGranted() {
}
open abstract fun onPermissionsGranted()
/**
* 权限
*/
open fun onPermissionsDenied() {
}
open abstract fun onPermissionsDenied()
}

View File

@@ -7,14 +7,19 @@ import android.widget.Toast
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.blankj.utilcode.util.ResourceUtils
import com.navinfo.omqs.Constant
import com.navinfo.omqs.bean.LoginUserBean
import com.navinfo.omqs.db.RoomAppDatabase
import com.navinfo.omqs.http.NetResult
import com.navinfo.omqs.http.NetworkService
import com.navinfo.omqs.tools.FileManager
import dagger.hilt.android.lifecycle.HiltViewModel
import io.realm.Realm
import io.realm.RealmConfiguration
import kotlinx.coroutines.*
import okio.IOException
import java.io.File
import javax.inject.Inject
enum class LoginStatus {
@@ -110,8 +115,7 @@ class LoginViewModel @Inject constructor(
//文件夹初始化
try {
loginStatus.postValue(LoginStatus.LOGIN_STATUS_FOLDER_INIT)
createUserFolder(context)
// 初始化Realm
createUserFolder(context, "1")
} catch (e: IOException) {
loginStatus.postValue(LoginStatus.LOGIN_STATUS_FOLDER_FAILURE)
}
@@ -151,8 +155,28 @@ class LoginViewModel @Inject constructor(
* 创建用户目录
*/
@Throws(IOException::class)
private fun createUserFolder(context: Context) {
private fun createUserFolder(context: Context, userId: String) {
// 在SD卡创建用户目录解压资源等
val userFolder = File("${Constant.DATA_PATH}/${userId}")
Constant.CURRENT_USER_ID = userId
// 初始化Realm
Realm.init(context.applicationContext)
val password = "encryp".encodeToByteArray().copyInto(ByteArray(64))
// 656e6372797000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Log.d("OMQSApplication", "密码是: ${byteArrayToHexString(password)}")
val config = RealmConfiguration.Builder()
.directory(userFolder)
.name("OMQS.realm")
.encryptionKey(password)
// .modules(Realm.getDefaultModule(), MyRealmModule())
.schemaVersion(1)
.build()
Realm.setDefaultConfiguration(config)
// 拷贝配置文件到用户目录下
val omdbConfigFile = File(userFolder.absolutePath, Constant.OMDB_CONFIG);
if (!omdbConfigFile.exists()) {
ResourceUtils.copyFileFromAssets(Constant.OMDB_CONFIG, omdbConfigFile.absolutePath)
}
}
/**
@@ -169,4 +193,8 @@ class LoginViewModel @Inject constructor(
super.onCleared()
cancelLogin()
}
private fun byteArrayToHexString(byteArray: ByteArray): String {
return byteArray.joinToString("") { "%02x".format(it) }
}
}