diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt index 1bbdd8e6..d7151419 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt @@ -2,6 +2,7 @@ package com.navinfo.omqs.db import android.content.Context import android.database.Cursor.* +import android.util.Log import androidx.core.database.getBlobOrNull import androidx.core.database.getFloatOrNull import androidx.core.database.getIntOrNull @@ -129,51 +130,58 @@ class ImportOMDBHelper @AssistedInject constructor( // 开始解压zip文件 val unZipFiles = ZipUtils.unzipFile(omdbZipFile, unZipFolder) // 将listResult数据插入到Realm数据库中 - Realm.getDefaultInstance().beginTransaction() - // 遍历解压后的文件,读取该数据返回 - for ((index, currentConfig) in importConfig.tables.withIndex()) { - val txtFile = unZipFiles.find { - it.name == currentConfig.table - } + try { + Realm.getDefaultInstance().beginTransaction() + // 遍历解压后的文件,读取该数据返回 + for ((index, currentConfig) in importConfig.tables.withIndex()) { + val txtFile = unZipFiles.find { + it.name == currentConfig.table + } - val listResult = mutableListOf>() - currentConfig?.let { - val list = FileIOUtils.readFile2List(txtFile, "UTF-8") - if (list != null) { - // 将list数据转换为map - for (line in list) { - val map = gson.fromJson>(line, object:TypeToken>(){}.getType()) - .toMutableMap() - map["qi_table"] = currentConfig.table - map["qi_name"] = currentConfig.name - map["qi_code"] = currentConfig.code - listResult.add(map) + val listResult = mutableListOf>() + currentConfig?.let { + val list = FileIOUtils.readFile2List(txtFile, "UTF-8") + Log.d("ImportOMDBHelper", "开始解析:${txtFile?.name}") + if (list != null) { + // 将list数据转换为map + for ((index, line) in list.withIndex()) { + Log.d("ImportOMDBHelper", "解析第:${index+1}行") + val map = gson.fromJson>(line, object:TypeToken>(){}.getType()) + .toMutableMap() + map["qi_table"] = currentConfig.table + map["qi_name"] = currentConfig.name + map["qi_code"] = currentConfig.code + listResult.add(map) + } } } - } - for (map in listResult) { // 每一个map就是Realm的一条数据 - // 先查询这个mesh下有没有数据,如果有则跳过即可 + for (map in listResult) { // 每一个map就是Realm的一条数据 + // 先查询这个mesh下有没有数据,如果有则跳过即可 // val meshEntity = Realm.getDefaultInstance().where(RenderEntity::class.java).equalTo("properties['mesh']", map["mesh"].toString()).findFirst() - val renderEntity = RenderEntity() - renderEntity.code = map["qi_code"].toString().toInt() - renderEntity.name = map["qi_name"].toString() - renderEntity.table = map["qi_table"].toString() - // 其他数据插入到Properties中 - renderEntity.geometry = map["geometry"].toString() - for ((key, value) in map) { - when (value) { - is String -> renderEntity.properties.put(key, value) - is Int -> renderEntity.properties.put(key, value.toInt().toString()) - is Double -> renderEntity.properties.put(key, value.toDouble().toString()) - else -> renderEntity.properties.put(key, value.toString()) + val renderEntity = RenderEntity() + renderEntity.code = map["qi_code"].toString().toInt() + renderEntity.name = map["qi_name"].toString() + renderEntity.table = map["qi_table"].toString() + // 其他数据插入到Properties中 + renderEntity.geometry = map["geometry"].toString() + for ((key, value) in map) { + when (value) { + is String -> renderEntity.properties.put(key, value) + is Int -> renderEntity.properties.put(key, value.toInt().toString()) + is Double -> renderEntity.properties.put(key, value.toDouble().toString()) + else -> renderEntity.properties.put(key, value.toString()) + } } + Realm.getDefaultInstance().copyToRealm(renderEntity) } - Realm.getDefaultInstance().copyToRealm(renderEntity) + // 1个文件发送一次flow流 + emit("${index + 1}/${importConfig.tables.size}") } - // 1个文件发送一次flow流 - emit("${index + 1}/${importConfig.tables.size}") + Realm.getDefaultInstance().commitTransaction() + } catch (e: Exception) { + Realm.getDefaultInstance().cancelTransaction() + throw e } - Realm.getDefaultInstance().commitTransaction() emit("finish") } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt index 8c55ae6c..60076cbb 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt @@ -56,6 +56,10 @@ class QsRecordListFragment : BaseFragment(){ findNavController().popBackStack() } }) + + binding.recordBack.setOnClickListener{ + findNavController().navigateUp() + } } override fun onResume() { diff --git a/app/src/main/res/drawable/ic_baseline_search_24.xml b/app/src/main/res/drawable/ic_baseline_search_24.xml new file mode 100644 index 00000000..a3b7c80f --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_search_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/shape_btn_check.xml b/app/src/main/res/drawable/shape_btn_check.xml index 172be798..3d3dd947 100644 --- a/app/src/main/res/drawable/shape_btn_check.xml +++ b/app/src/main/res/drawable/shape_btn_check.xml @@ -3,6 +3,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> - + \ No newline at end of file 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 fd9a2d21..21e0e6f9 100644 --- a/app/src/main/res/layout/adapter_offline_map_city.xml +++ b/app/src/main/res/layout/adapter_offline_map_city.xml @@ -26,6 +26,7 @@ android:layout_below="@id/offline_map_city_name" android:drawableLeft="@mipmap/point_blue" android:layout_marginTop="5dp" + android:textColor="@color/gray_121" android:text="文件大小" /> diff --git a/app/src/main/res/layout/fragment_offline_map.xml b/app/src/main/res/layout/fragment_offline_map.xml index 3fa91d0a..94a8c19d 100644 --- a/app/src/main/res/layout/fragment_offline_map.xml +++ b/app/src/main/res/layout/fragment_offline_map.xml @@ -48,7 +48,6 @@ - + app:layout_constraintTop_toTopOf="parent"> + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_qs_record_list.xml b/app/src/main/res/layout/fragment_qs_record_list.xml index 22e1700a..35742580 100644 --- a/app/src/main/res/layout/fragment_qs_record_list.xml +++ b/app/src/main/res/layout/fragment_qs_record_list.xml @@ -4,24 +4,82 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/white" + android:background="@color/bg_left_pannel" tools:context=".ui.fragment.qsrecordlist.QsRecordListFragment"> - + app:layout_constraintTop_toTopOf="parent" + style="@style/left_pannel_title_layout"> + - + + + + style="@style/default_card_view"> + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_task_list.xml b/app/src/main/res/layout/fragment_task_list.xml index d7d7a393..a2703040 100644 --- a/app/src/main/res/layout/fragment_task_list.xml +++ b/app/src/main/res/layout/fragment_task_list.xml @@ -4,46 +4,83 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/white" + android:background="@color/bg_left_pannel" tools:context=".ui.fragment.tasklist.TaskListFragment"> - - - + app:layout_constraintTop_toTopOf="parent" + style="@style/left_pannel_title_layout"> + - + + + + style="@style/default_card_view"> + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index cfdcea11..346122dd 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -160,5 +160,6 @@ @drawable/shape_card_bg_default @dimen/default_widget_padding @dimen/default_widget_padding + @dimen/default_widget_padding