1. 增加OMDB数据图层 2. 修改Realm数据库文件位置
This commit is contained in:
@@ -20,20 +20,6 @@ class OMQSApplication : Application() {
|
||||
Util.getInstance().init(applicationContext)
|
||||
NetUtils.getInstance().init(this)
|
||||
TakePhotoManager.getInstance().init(this, 1)
|
||||
FileManager.initRootDir(this)
|
||||
Realm.init(this)
|
||||
val password = "encryp".encodeToByteArray().copyInto(ByteArray(64))
|
||||
// 656e6372797000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
Log.d("OMQSApplication", "密码是: ${byteArrayToHexString(password)}")
|
||||
// 1110000011000010111001101110011011101110110111101110010011001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
val config = RealmConfiguration.Builder()
|
||||
.directory(File(Constant.DATA_PATH))
|
||||
.name("OMQS.realm")
|
||||
.encryptionKey(password)
|
||||
// .modules(Realm.getDefaultModule(), MyRealmModule())
|
||||
.schemaVersion(1)
|
||||
.build()
|
||||
Realm.setDefaultConfiguration(config)
|
||||
}
|
||||
|
||||
private fun getKey(inputString: String): String {
|
||||
@@ -42,7 +28,4 @@ class OMQSApplication : Application() {
|
||||
return hashBytes.joinToString("") { "%02x".format(it) };
|
||||
}
|
||||
|
||||
fun byteArrayToHexString(byteArray: ByteArray): String {
|
||||
return byteArray.joinToString("") { "%02x".format(it) }
|
||||
}
|
||||
}
|
||||
@@ -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>()
|
||||
@@ -29,11 +29,11 @@ open class PermissionsActivity : BaseActivity() {
|
||||
//定位权限
|
||||
permissionList.add(Permission.ACCESS_FINE_LOCATION)
|
||||
permissionList.add(Permission.ACCESS_COARSE_LOCATION)
|
||||
//android10
|
||||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Q) {
|
||||
permissionList.add(Permission.ACCESS_BACKGROUND_LOCATION)
|
||||
}
|
||||
/* XXPermissions.with(this)
|
||||
// //android10
|
||||
// if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Q) {
|
||||
// permissionList.add(Permission.ACCESS_BACKGROUND_LOCATION)
|
||||
// }
|
||||
XXPermissions.with(this)
|
||||
// 申请单个权限
|
||||
.permission(permissionList)
|
||||
// 设置权限请求拦截器(局部设置)
|
||||
@@ -50,10 +50,10 @@ open class PermissionsActivity : BaseActivity() {
|
||||
Toast.LENGTH_SHORT
|
||||
)
|
||||
.show()
|
||||
onPermissionsGranted()
|
||||
onPermissionsDenied()
|
||||
return
|
||||
} else {
|
||||
onPermissionsDenied()
|
||||
onPermissionsGranted()
|
||||
}
|
||||
// 在SD卡创建项目目录
|
||||
}
|
||||
@@ -73,20 +73,16 @@ open class PermissionsActivity : BaseActivity() {
|
||||
onPermissionsDenied()
|
||||
}
|
||||
}
|
||||
})*/
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 权限全部同意
|
||||
*/
|
||||
open fun onPermissionsGranted() {
|
||||
|
||||
}
|
||||
open abstract fun onPermissionsGranted()
|
||||
|
||||
/**
|
||||
* 权限
|
||||
*/
|
||||
open fun onPermissionsDenied() {
|
||||
|
||||
}
|
||||
open abstract fun onPermissionsDenied()
|
||||
}
|
||||
@@ -7,14 +7,18 @@ import android.widget.Toast
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
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 +114,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 +154,21 @@ class LoginViewModel @Inject constructor(
|
||||
* 创建用户目录
|
||||
*/
|
||||
@Throws(IOException::class)
|
||||
private fun createUserFolder(context: Context) {
|
||||
private fun createUserFolder(context: Context, userId: String) {
|
||||
// 在SD卡创建用户目录,解压资源等
|
||||
// 初始化Realm
|
||||
Realm.init(context.applicationContext)
|
||||
val password = "encryp".encodeToByteArray().copyInto(ByteArray(64))
|
||||
// 656e6372797000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
Log.d("OMQSApplication", "密码是: ${byteArrayToHexString(password)}")
|
||||
val config = RealmConfiguration.Builder()
|
||||
.directory(File("${Constant.DATA_PATH}/${userId}"))
|
||||
.name("OMQS.realm")
|
||||
.encryptionKey(password)
|
||||
// .modules(Realm.getDefaultModule(), MyRealmModule())
|
||||
.schemaVersion(1)
|
||||
.build()
|
||||
Realm.setDefaultConfiguration(config)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -169,4 +185,8 @@ class LoginViewModel @Inject constructor(
|
||||
super.onCleared()
|
||||
cancelLogin()
|
||||
}
|
||||
|
||||
private fun byteArrayToHexString(byteArray: ByteArray): String {
|
||||
return byteArray.joinToString("") { "%02x".format(it) }
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@ import com.github.k1rakishou.fsaf.callback.FSAFActivityCallbacks
|
||||
import com.github.k1rakishou.fsaf.callback.FileChooserCallback
|
||||
import com.navinfo.collect.library.data.RealmUtils
|
||||
import com.navinfo.collect.library.data.entity.OMDBEntity
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.databinding.FragmentPersonalCenterBinding
|
||||
import com.navinfo.omqs.db.ImportOMDBHelper
|
||||
@@ -30,6 +31,7 @@ import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.FlowCollector
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.oscim.core.GeoPoint
|
||||
import java.io.File
|
||||
import java.util.UUID
|
||||
import javax.inject.Inject
|
||||
@@ -46,6 +48,8 @@ class PersonalCenterFragment : Fragment(), FSAFActivityCallbacks {
|
||||
private val viewModel by lazy { viewModels<PersonalCenterViewModel>().value }
|
||||
@Inject
|
||||
lateinit var importOMDBHiltFactory: ImportOMDBHiltFactory
|
||||
@Inject
|
||||
lateinit var niMapController: NIMapController
|
||||
|
||||
|
||||
override fun onCreateView(
|
||||
@@ -107,6 +111,8 @@ class PersonalCenterFragment : Fragment(), FSAFActivityCallbacks {
|
||||
}
|
||||
R.id.personal_center_menu_test -> {
|
||||
viewModel.readRealmData()
|
||||
// 定位到指定位置
|
||||
niMapController.mMapView.vtmMap.animator().animateTo(GeoPoint(28.608398, 115.67901))
|
||||
}
|
||||
}
|
||||
true
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.blankj.utilcode.util.UriUtils
|
||||
import com.blankj.utilcode.util.ZipUtils
|
||||
import com.google.gson.Gson
|
||||
import com.navinfo.collect.library.data.entity.*
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.collect.library.utils.GeometryTools
|
||||
import com.navinfo.omqs.bean.ScProblemTypeBean
|
||||
import com.navinfo.omqs.bean.ScRootCauseAnalysisBean
|
||||
|
||||
Reference in New Issue
Block a user