From 0b5fe7468bb1c69917e2056fdbc29681003c3801 Mon Sep 17 00:00:00 2001 From: xiaoyan Date: Fri, 24 Mar 2023 16:23:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=9D=83?= =?UTF-8?q?=E9=99=90=E7=AE=A1=E7=90=86=E5=92=8C=E6=96=87=E4=BB=B6=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 8 +++- app/src/main/AndroidManifest.xml | 2 +- .../navinfo/omqs/data/process/DataEngine.kt | 8 ++++ .../java/com/navinfo/omqs/ui/MainActivity.kt | 45 ++++++++++++++++++- .../navinfo/omqs/ui/PermissionsActivity.kt | 12 +++-- 5 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/navinfo/omqs/data/process/DataEngine.kt diff --git a/app/build.gradle b/app/build.gradle index 353bb4e8..3f963fba 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,6 +48,10 @@ dependencies { testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' - //权限管理 - implementation 'com.github.getActivity:XXPermissions:16.5' + //权限管理 https://github.com/getActivity/XXPermissions + implementation 'com.github.getActivity:XXPermissions:16.8' + // 文件管理 https://github.com/K1rakishou/Fuck-Storage-Access-Framework + implementation 'com.github.K1rakishou:Fuck-Storage-Access-Framework:v1.1.3' + // Android工具类库 https://blankj.com/2016/07/31/android-utils-code/ + implementation 'com.blankj:utilcodex:1.30.1' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7720dc64..d55acb3d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,7 +10,7 @@ android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/Theme.OMQualityInspection" - tools:targetApi="31"> + android:requestLegacyExternalStorage="true"> Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAnchorView(R.id.fab) .setAction("Action", null).show() + // 开始数据导入功能 + fileChooser.openChooseFileDialog(object: FileChooserCallback() { + override fun onCancel(reason: String) { + } + + override fun onResult(uri: Uri) { + val file = UriUtils.uri2File(uri) + Snackbar.make(view, "文件大小为:${file.length()}", Snackbar.LENGTH_LONG) + .show() + } + }) } } + override fun onPermissionsGranted() { + } + + override fun onPermissionsDenied() { + } + override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.menu_main, menu) @@ -59,4 +93,13 @@ class MainActivity : AppCompatActivity() { return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() } + + override fun fsafStartActivityForResult(intent: Intent, requestCode: Int) { + startActivityForResult(intent, requestCode) + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + fileChooser.onActivityResult(requestCode, resultCode, data) + } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/PermissionsActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/PermissionsActivity.kt index 77508544..a175c633 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/PermissionsActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/PermissionsActivity.kt @@ -12,13 +12,17 @@ import com.hjq.permissions.XXPermissions * 权限申请Activity */ abstract class PermissionsActivity : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { - super.onCreate(savedInstanceState, persistentState) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) XXPermissions.with(this) // 申请单个权限 - .permission(Permission.WRITE_EXTERNAL_STORAGE) - .permission(Permission.READ_EXTERNAL_STORAGE) +// .permission(Permission.WRITE_EXTERNAL_STORAGE) +// .permission(Permission.READ_EXTERNAL_STORAGE) +// .permission(Permission.READ_MEDIA_IMAGES) +// .permission(Permission.READ_MEDIA_AUDIO) +// .permission(Permission.READ_MEDIA_VIDEO) + .permission(Permission.MANAGE_EXTERNAL_STORAGE) // 设置权限请求拦截器(局部设置) //.interceptor(new PermissionInterceptor()) // 设置不触发错误检测机制(局部设置) From 56c5badcf04b80aa133d7a62bb34c7bd551adb5f Mon Sep 17 00:00:00 2001 From: xiaoyan Date: Mon, 3 Apr 2023 10:26:38 +0800 Subject: [PATCH 2/2] =?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 @@ + type="com.navinfo.collect.library.data.entity.OfflineMapCityBean" />