diff --git a/app/build.gradle b/app/build.gradle
index c311e26..385cd21 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,12 +6,12 @@
apply plugin: 'org.greenrobot.greendao'
android {
- compileSdkVersion 31
+ compileSdkVersion 33
defaultConfig {
applicationId "com.casic.electric.detector"
minSdkVersion 22
- targetSdkVersion 31
+ targetSdkVersion 33
versionCode 1
versionName "1.0.0.0"
@@ -109,7 +109,7 @@
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
- implementation 'io.github.lucksiege:pictureselector:v3.0.4'
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
//图片压缩
implementation 'top.zibin:Luban:1.1.8'
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c311e26..385cd21 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,12 +6,12 @@
apply plugin: 'org.greenrobot.greendao'
android {
- compileSdkVersion 31
+ compileSdkVersion 33
defaultConfig {
applicationId "com.casic.electric.detector"
minSdkVersion 22
- targetSdkVersion 31
+ targetSdkVersion 33
versionCode 1
versionName "1.0.0.0"
@@ -109,7 +109,7 @@
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
- implementation 'io.github.lucksiege:pictureselector:v3.0.4'
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
//图片压缩
implementation 'top.zibin:Luban:1.1.8'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3de7a96..6b80195 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,9 +18,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,8 +112,5 @@
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c311e26..385cd21 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,12 +6,12 @@
apply plugin: 'org.greenrobot.greendao'
android {
- compileSdkVersion 31
+ compileSdkVersion 33
defaultConfig {
applicationId "com.casic.electric.detector"
minSdkVersion 22
- targetSdkVersion 31
+ targetSdkVersion 33
versionCode 1
versionName "1.0.0.0"
@@ -109,7 +109,7 @@
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
- implementation 'io.github.lucksiege:pictureselector:v3.0.4'
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
//图片压缩
implementation 'top.zibin:Luban:1.1.8'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3de7a96..6b80195 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,9 +18,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,8 +112,5 @@
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
new file mode 100644
index 0000000..a894aa9
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
@@ -0,0 +1,76 @@
+package com.casic.electric.detector.utils
+
+import android.content.Context
+import android.widget.ImageView
+import com.bumptech.glide.Glide
+import com.bumptech.glide.load.resource.bitmap.CenterCrop
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners
+import com.bumptech.glide.request.RequestOptions
+import com.casic.electric.detector.R
+import com.luck.picture.lib.engine.ImageEngine
+import com.luck.picture.lib.utils.ActivityCompatHelper
+
+class GlideLoadEngine private constructor() : ImageEngine {
+ companion object {
+ val instance: GlideLoadEngine by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
+ GlideLoadEngine()
+ }
+ }
+
+ override fun loadImage(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context).load(url).into(imageView)
+ }
+
+ override fun loadImage(
+ context: Context,
+ imageView: ImageView,
+ url: String,
+ maxWidth: Int,
+ maxHeight: Int
+ ) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .load(url)
+ .override(maxWidth, maxHeight)
+ .into(imageView)
+ }
+
+ override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .asBitmap()
+ .load(url)
+ .override(180, 180)
+ .sizeMultiplier(0.5f)
+ .transform(CenterCrop(), RoundedCorners(8))
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ .into(imageView)
+ }
+
+ override fun pauseRequests(context: Context?) {
+ context?.let { Glide.with(it).pauseRequests() }
+ }
+
+ override fun resumeRequests(context: Context?) {
+ context?.let { Glide.with(it).resumeRequests() }
+ }
+
+ override fun loadGridImage(context: Context, url: String, imageView: ImageView) {
+ Glide.with(context)
+ .load(url)
+ .apply(
+ RequestOptions()
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ )
+ .into(imageView)
+ }
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c311e26..385cd21 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,12 +6,12 @@
apply plugin: 'org.greenrobot.greendao'
android {
- compileSdkVersion 31
+ compileSdkVersion 33
defaultConfig {
applicationId "com.casic.electric.detector"
minSdkVersion 22
- targetSdkVersion 31
+ targetSdkVersion 33
versionCode 1
versionName "1.0.0.0"
@@ -109,7 +109,7 @@
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
- implementation 'io.github.lucksiege:pictureselector:v3.0.4'
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
//图片压缩
implementation 'top.zibin:Luban:1.1.8'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3de7a96..6b80195 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,9 +18,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,8 +112,5 @@
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
new file mode 100644
index 0000000..a894aa9
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
@@ -0,0 +1,76 @@
+package com.casic.electric.detector.utils
+
+import android.content.Context
+import android.widget.ImageView
+import com.bumptech.glide.Glide
+import com.bumptech.glide.load.resource.bitmap.CenterCrop
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners
+import com.bumptech.glide.request.RequestOptions
+import com.casic.electric.detector.R
+import com.luck.picture.lib.engine.ImageEngine
+import com.luck.picture.lib.utils.ActivityCompatHelper
+
+class GlideLoadEngine private constructor() : ImageEngine {
+ companion object {
+ val instance: GlideLoadEngine by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
+ GlideLoadEngine()
+ }
+ }
+
+ override fun loadImage(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context).load(url).into(imageView)
+ }
+
+ override fun loadImage(
+ context: Context,
+ imageView: ImageView,
+ url: String,
+ maxWidth: Int,
+ maxHeight: Int
+ ) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .load(url)
+ .override(maxWidth, maxHeight)
+ .into(imageView)
+ }
+
+ override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .asBitmap()
+ .load(url)
+ .override(180, 180)
+ .sizeMultiplier(0.5f)
+ .transform(CenterCrop(), RoundedCorners(8))
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ .into(imageView)
+ }
+
+ override fun pauseRequests(context: Context?) {
+ context?.let { Glide.with(it).pauseRequests() }
+ }
+
+ override fun resumeRequests(context: Context?) {
+ context?.let { Glide.with(it).resumeRequests() }
+ }
+
+ override fun loadGridImage(context: Context, url: String, imageView: ImageView) {
+ Glide.with(context)
+ .load(url)
+ .apply(
+ RequestOptions()
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ )
+ .into(imageView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt b/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
index 33dd57f..eafe665 100644
--- a/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
@@ -8,9 +8,11 @@
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.CAMERA,
+ Manifest.permission.READ_MEDIA_IMAGES,
+ Manifest.permission.MANAGE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.WRITE_EXTERNAL_STORAGE
)
const val PERMISSIONS_CODE = 999
diff --git a/app/build.gradle b/app/build.gradle
index c311e26..385cd21 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,12 +6,12 @@
apply plugin: 'org.greenrobot.greendao'
android {
- compileSdkVersion 31
+ compileSdkVersion 33
defaultConfig {
applicationId "com.casic.electric.detector"
minSdkVersion 22
- targetSdkVersion 31
+ targetSdkVersion 33
versionCode 1
versionName "1.0.0.0"
@@ -109,7 +109,7 @@
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
- implementation 'io.github.lucksiege:pictureselector:v3.0.4'
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
//图片压缩
implementation 'top.zibin:Luban:1.1.8'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3de7a96..6b80195 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,9 +18,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,8 +112,5 @@
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
new file mode 100644
index 0000000..a894aa9
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
@@ -0,0 +1,76 @@
+package com.casic.electric.detector.utils
+
+import android.content.Context
+import android.widget.ImageView
+import com.bumptech.glide.Glide
+import com.bumptech.glide.load.resource.bitmap.CenterCrop
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners
+import com.bumptech.glide.request.RequestOptions
+import com.casic.electric.detector.R
+import com.luck.picture.lib.engine.ImageEngine
+import com.luck.picture.lib.utils.ActivityCompatHelper
+
+class GlideLoadEngine private constructor() : ImageEngine {
+ companion object {
+ val instance: GlideLoadEngine by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
+ GlideLoadEngine()
+ }
+ }
+
+ override fun loadImage(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context).load(url).into(imageView)
+ }
+
+ override fun loadImage(
+ context: Context,
+ imageView: ImageView,
+ url: String,
+ maxWidth: Int,
+ maxHeight: Int
+ ) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .load(url)
+ .override(maxWidth, maxHeight)
+ .into(imageView)
+ }
+
+ override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .asBitmap()
+ .load(url)
+ .override(180, 180)
+ .sizeMultiplier(0.5f)
+ .transform(CenterCrop(), RoundedCorners(8))
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ .into(imageView)
+ }
+
+ override fun pauseRequests(context: Context?) {
+ context?.let { Glide.with(it).pauseRequests() }
+ }
+
+ override fun resumeRequests(context: Context?) {
+ context?.let { Glide.with(it).resumeRequests() }
+ }
+
+ override fun loadGridImage(context: Context, url: String, imageView: ImageView) {
+ Glide.with(context)
+ .load(url)
+ .apply(
+ RequestOptions()
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ )
+ .into(imageView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt b/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
index 33dd57f..eafe665 100644
--- a/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
@@ -8,9 +8,11 @@
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.CAMERA,
+ Manifest.permission.READ_MEDIA_IMAGES,
+ Manifest.permission.MANAGE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.WRITE_EXTERNAL_STORAGE
)
const val PERMISSIONS_CODE = 999
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index c850438..dabec9f 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -31,19 +31,38 @@
import com.casic.electric.detector.extensions.appendExcelDownloadUrl
import com.casic.electric.detector.extensions.drawCircle
import com.casic.electric.detector.extensions.initLayoutImmersionBar
-import com.casic.electric.detector.utils.*
+import com.casic.electric.detector.utils.DataBaseManager
+import com.casic.electric.detector.utils.ExcelHub
+import com.casic.electric.detector.utils.LoadingDialogHub
+import com.casic.electric.detector.utils.LocaleConstant
+import com.casic.electric.detector.utils.LocationHub
+import com.casic.electric.detector.utils.RouteOnMap
import com.casic.electric.detector.vm.TaskViewModel
import com.casic.electric.detector.widgets.QueryMarkerDialog
import com.casic.electric.detector.widgets.SamplePopupWindow
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.callback.OnDownloadListener
-import com.pengxh.kt.lite.extensions.*
+import com.pengxh.kt.lite.extensions.createDownloadFileDir
+import com.pengxh.kt.lite.extensions.downloadFile
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.isNetworkConnected
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.toJson
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog
-import kotlinx.android.synthetic.main.activity_main.*
+import kotlinx.android.synthetic.main.activity_main.aimButton
+import kotlinx.android.synthetic.main.activity_main.currentLocationView
+import kotlinx.android.synthetic.main.activity_main.detectionButton
+import kotlinx.android.synthetic.main.activity_main.inspectionButton
+import kotlinx.android.synthetic.main.activity_main.installButton
+import kotlinx.android.synthetic.main.activity_main.mapView
+import kotlinx.android.synthetic.main.activity_main.rightImageView
+import kotlinx.android.synthetic.main.activity_main.rootView
+import kotlinx.android.synthetic.main.activity_main.viewButton
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -271,10 +290,12 @@
}
}
- //移动地图到所有labelBeans的第一个点
- val center = LatLng(latitudeList.first(), longitudeList.first())
- //移动到指定经纬度
- aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(center, 16f))
+ if (latitudeList.isNotEmpty() && longitudeList.isNotEmpty()) {
+ //移动地图到所有labelBeans的第一个点
+ val center = LatLng(latitudeList.first(), longitudeList.first())
+ //移动到指定经纬度
+ aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(center, 16f))
+ }
showLabelsOnMap()
}
diff --git a/app/build.gradle b/app/build.gradle
index c311e26..385cd21 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,12 +6,12 @@
apply plugin: 'org.greenrobot.greendao'
android {
- compileSdkVersion 31
+ compileSdkVersion 33
defaultConfig {
applicationId "com.casic.electric.detector"
minSdkVersion 22
- targetSdkVersion 31
+ targetSdkVersion 33
versionCode 1
versionName "1.0.0.0"
@@ -109,7 +109,7 @@
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
- implementation 'io.github.lucksiege:pictureselector:v3.0.4'
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
//图片压缩
implementation 'top.zibin:Luban:1.1.8'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3de7a96..6b80195 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,9 +18,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,8 +112,5 @@
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
new file mode 100644
index 0000000..a894aa9
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
@@ -0,0 +1,76 @@
+package com.casic.electric.detector.utils
+
+import android.content.Context
+import android.widget.ImageView
+import com.bumptech.glide.Glide
+import com.bumptech.glide.load.resource.bitmap.CenterCrop
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners
+import com.bumptech.glide.request.RequestOptions
+import com.casic.electric.detector.R
+import com.luck.picture.lib.engine.ImageEngine
+import com.luck.picture.lib.utils.ActivityCompatHelper
+
+class GlideLoadEngine private constructor() : ImageEngine {
+ companion object {
+ val instance: GlideLoadEngine by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
+ GlideLoadEngine()
+ }
+ }
+
+ override fun loadImage(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context).load(url).into(imageView)
+ }
+
+ override fun loadImage(
+ context: Context,
+ imageView: ImageView,
+ url: String,
+ maxWidth: Int,
+ maxHeight: Int
+ ) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .load(url)
+ .override(maxWidth, maxHeight)
+ .into(imageView)
+ }
+
+ override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .asBitmap()
+ .load(url)
+ .override(180, 180)
+ .sizeMultiplier(0.5f)
+ .transform(CenterCrop(), RoundedCorners(8))
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ .into(imageView)
+ }
+
+ override fun pauseRequests(context: Context?) {
+ context?.let { Glide.with(it).pauseRequests() }
+ }
+
+ override fun resumeRequests(context: Context?) {
+ context?.let { Glide.with(it).resumeRequests() }
+ }
+
+ override fun loadGridImage(context: Context, url: String, imageView: ImageView) {
+ Glide.with(context)
+ .load(url)
+ .apply(
+ RequestOptions()
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ )
+ .into(imageView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt b/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
index 33dd57f..eafe665 100644
--- a/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
@@ -8,9 +8,11 @@
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.CAMERA,
+ Manifest.permission.READ_MEDIA_IMAGES,
+ Manifest.permission.MANAGE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.WRITE_EXTERNAL_STORAGE
)
const val PERMISSIONS_CODE = 999
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index c850438..dabec9f 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -31,19 +31,38 @@
import com.casic.electric.detector.extensions.appendExcelDownloadUrl
import com.casic.electric.detector.extensions.drawCircle
import com.casic.electric.detector.extensions.initLayoutImmersionBar
-import com.casic.electric.detector.utils.*
+import com.casic.electric.detector.utils.DataBaseManager
+import com.casic.electric.detector.utils.ExcelHub
+import com.casic.electric.detector.utils.LoadingDialogHub
+import com.casic.electric.detector.utils.LocaleConstant
+import com.casic.electric.detector.utils.LocationHub
+import com.casic.electric.detector.utils.RouteOnMap
import com.casic.electric.detector.vm.TaskViewModel
import com.casic.electric.detector.widgets.QueryMarkerDialog
import com.casic.electric.detector.widgets.SamplePopupWindow
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.callback.OnDownloadListener
-import com.pengxh.kt.lite.extensions.*
+import com.pengxh.kt.lite.extensions.createDownloadFileDir
+import com.pengxh.kt.lite.extensions.downloadFile
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.isNetworkConnected
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.toJson
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog
-import kotlinx.android.synthetic.main.activity_main.*
+import kotlinx.android.synthetic.main.activity_main.aimButton
+import kotlinx.android.synthetic.main.activity_main.currentLocationView
+import kotlinx.android.synthetic.main.activity_main.detectionButton
+import kotlinx.android.synthetic.main.activity_main.inspectionButton
+import kotlinx.android.synthetic.main.activity_main.installButton
+import kotlinx.android.synthetic.main.activity_main.mapView
+import kotlinx.android.synthetic.main.activity_main.rightImageView
+import kotlinx.android.synthetic.main.activity_main.rootView
+import kotlinx.android.synthetic.main.activity_main.viewButton
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -271,10 +290,12 @@
}
}
- //移动地图到所有labelBeans的第一个点
- val center = LatLng(latitudeList.first(), longitudeList.first())
- //移动到指定经纬度
- aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(center, 16f))
+ if (latitudeList.isNotEmpty() && longitudeList.isNotEmpty()) {
+ //移动地图到所有labelBeans的第一个点
+ val center = LatLng(latitudeList.first(), longitudeList.first())
+ //移动到指定经纬度
+ aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(center, 16f))
+ }
showLabelsOnMap()
}
diff --git a/build.gradle b/build.gradle
index bf95b75..987ad74 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.6.4'
+ classpath 'com.android.tools.build:gradle:4.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'
@@ -26,6 +26,6 @@
}
}
-task clean(type: Delete) {
+tasks.register('clean', Delete) {
delete rootProject.buildDir
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c311e26..385cd21 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,12 +6,12 @@
apply plugin: 'org.greenrobot.greendao'
android {
- compileSdkVersion 31
+ compileSdkVersion 33
defaultConfig {
applicationId "com.casic.electric.detector"
minSdkVersion 22
- targetSdkVersion 31
+ targetSdkVersion 33
versionCode 1
versionName "1.0.0.0"
@@ -109,7 +109,7 @@
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
- implementation 'io.github.lucksiege:pictureselector:v3.0.4'
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
//图片压缩
implementation 'top.zibin:Luban:1.1.8'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3de7a96..6b80195 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,9 +18,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,8 +112,5 @@
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
new file mode 100644
index 0000000..a894aa9
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/utils/GlideLoadEngine.kt
@@ -0,0 +1,76 @@
+package com.casic.electric.detector.utils
+
+import android.content.Context
+import android.widget.ImageView
+import com.bumptech.glide.Glide
+import com.bumptech.glide.load.resource.bitmap.CenterCrop
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners
+import com.bumptech.glide.request.RequestOptions
+import com.casic.electric.detector.R
+import com.luck.picture.lib.engine.ImageEngine
+import com.luck.picture.lib.utils.ActivityCompatHelper
+
+class GlideLoadEngine private constructor() : ImageEngine {
+ companion object {
+ val instance: GlideLoadEngine by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
+ GlideLoadEngine()
+ }
+ }
+
+ override fun loadImage(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context).load(url).into(imageView)
+ }
+
+ override fun loadImage(
+ context: Context,
+ imageView: ImageView,
+ url: String,
+ maxWidth: Int,
+ maxHeight: Int
+ ) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .load(url)
+ .override(maxWidth, maxHeight)
+ .into(imageView)
+ }
+
+ override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return
+ }
+ Glide.with(context)
+ .asBitmap()
+ .load(url)
+ .override(180, 180)
+ .sizeMultiplier(0.5f)
+ .transform(CenterCrop(), RoundedCorners(8))
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ .into(imageView)
+ }
+
+ override fun pauseRequests(context: Context?) {
+ context?.let { Glide.with(it).pauseRequests() }
+ }
+
+ override fun resumeRequests(context: Context?) {
+ context?.let { Glide.with(it).resumeRequests() }
+ }
+
+ override fun loadGridImage(context: Context, url: String, imageView: ImageView) {
+ Glide.with(context)
+ .load(url)
+ .apply(
+ RequestOptions()
+ .placeholder(R.drawable.ps_image_placeholder)
+ .error(R.mipmap.load_image_error)
+ )
+ .into(imageView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt b/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
index 33dd57f..eafe665 100644
--- a/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/electric/detector/utils/LocaleConstant.kt
@@ -8,9 +8,11 @@
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.CAMERA,
+ Manifest.permission.READ_MEDIA_IMAGES,
+ Manifest.permission.MANAGE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.WRITE_EXTERNAL_STORAGE
)
const val PERMISSIONS_CODE = 999
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index c850438..dabec9f 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -31,19 +31,38 @@
import com.casic.electric.detector.extensions.appendExcelDownloadUrl
import com.casic.electric.detector.extensions.drawCircle
import com.casic.electric.detector.extensions.initLayoutImmersionBar
-import com.casic.electric.detector.utils.*
+import com.casic.electric.detector.utils.DataBaseManager
+import com.casic.electric.detector.utils.ExcelHub
+import com.casic.electric.detector.utils.LoadingDialogHub
+import com.casic.electric.detector.utils.LocaleConstant
+import com.casic.electric.detector.utils.LocationHub
+import com.casic.electric.detector.utils.RouteOnMap
import com.casic.electric.detector.vm.TaskViewModel
import com.casic.electric.detector.widgets.QueryMarkerDialog
import com.casic.electric.detector.widgets.SamplePopupWindow
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.callback.OnDownloadListener
-import com.pengxh.kt.lite.extensions.*
+import com.pengxh.kt.lite.extensions.createDownloadFileDir
+import com.pengxh.kt.lite.extensions.downloadFile
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.isNetworkConnected
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.toJson
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
import com.pengxh.kt.lite.widget.dialog.NoNetworkDialog
-import kotlinx.android.synthetic.main.activity_main.*
+import kotlinx.android.synthetic.main.activity_main.aimButton
+import kotlinx.android.synthetic.main.activity_main.currentLocationView
+import kotlinx.android.synthetic.main.activity_main.detectionButton
+import kotlinx.android.synthetic.main.activity_main.inspectionButton
+import kotlinx.android.synthetic.main.activity_main.installButton
+import kotlinx.android.synthetic.main.activity_main.mapView
+import kotlinx.android.synthetic.main.activity_main.rightImageView
+import kotlinx.android.synthetic.main.activity_main.rootView
+import kotlinx.android.synthetic.main.activity_main.viewButton
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -271,10 +290,12 @@
}
}
- //移动地图到所有labelBeans的第一个点
- val center = LatLng(latitudeList.first(), longitudeList.first())
- //移动到指定经纬度
- aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(center, 16f))
+ if (latitudeList.isNotEmpty() && longitudeList.isNotEmpty()) {
+ //移动地图到所有labelBeans的第一个点
+ val center = LatLng(latitudeList.first(), longitudeList.first())
+ //移动到指定经纬度
+ aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(center, 16f))
+ }
showLabelsOnMap()
}
diff --git a/build.gradle b/build.gradle
index bf95b75..987ad74 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.6.4'
+ classpath 'com.android.tools.build:gradle:4.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'
@@ -26,6 +26,6 @@
}
}
-task clean(type: Delete) {
+tasks.register('clean', Delete) {
delete rootProject.buildDir
}
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index e743491..afdd294 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Tue Aug 15 13:45:01 CST 2023
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME